# HG changeset patch # User Josef Eisl # Date 1434614309 -7200 # Node ID f00f1f9df48edae46021555861110d561b4ab91b # Parent 85a6fc0b4129c77268852cca14fc00f03ee1ea50 AMD64Assembler: add PUSH and POP. diff -r 85a6fc0b4129 -r f00f1f9df48e graal/com.oracle.graal.asm.amd64/src/com/oracle/graal/asm/amd64/AMD64Assembler.java --- 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;