changeset 22005:f00f1f9df48e

AMD64Assembler: add PUSH and POP.
author Josef Eisl <josef.eisl@jku.at>
date Thu, 18 Jun 2015 09:58:29 +0200
parents 85a6fc0b4129
children 985f49785f06
files graal/com.oracle.graal.asm.amd64/src/com/oracle/graal/asm/amd64/AMD64Assembler.java
diffstat 1 files changed, 7 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.asm.amd64/src/com/oracle/graal/asm/amd64/AMD64Assembler.java	Thu Jun 18 11:42:07 2015 +0200
+++ b/graal/com.oracle.graal.asm.amd64/src/com/oracle/graal/asm/amd64/AMD64Assembler.java	Thu Jun 18 09:58:29 2015 +0200
@@ -256,6 +256,7 @@
         ByteAssertion(CPU, CPU, BYTE),
         IntegerAssertion(CPU, CPU, WORD, DWORD, QWORD),
         No16BitAssertion(CPU, CPU, DWORD, QWORD),
+        No32BitAssertion(CPU, CPU, WORD, QWORD),
         QwordOnlyAssertion(CPU, CPU, QWORD),
         FloatingAssertion(XMM, XMM, SS, SD, PS, PD),
         PackedFloatingAssertion(XMM, XMM, PS, PD),
@@ -734,6 +735,8 @@
         public static final AMD64MOp IDIV = new AMD64MOp("IDIV", 0xF7, 7);
         public static final AMD64MOp INC  = new AMD64MOp("INC",  0xFF, 0);
         public static final AMD64MOp DEC  = new AMD64MOp("DEC",  0xFF, 1);
+        public static final AMD64MOp PUSH = new AMD64MOp("PUSH", 0xFF, 6, OpAssertion.No32BitAssertion);
+        public static final AMD64MOp POP  = new AMD64MOp("POP",  0x8F, 0, OpAssertion.No32BitAssertion);
         // @formatter:on
 
         private final int ext;
@@ -746,6 +749,10 @@
             this(opcode, prefix, op, ext, OpAssertion.IntegerAssertion);
         }
 
+        protected AMD64MOp(String opcode, int op, int ext, OpAssertion assertion) {
+            this(opcode, 0, op, ext, assertion);
+        }
+
         protected AMD64MOp(String opcode, int prefix, int op, int ext, OpAssertion assertion) {
             super(opcode, 0, prefix, op, assertion, null);
             this.ext = ext;