diff options
Diffstat (limited to 'vm/mterp/x86/OP_CONST_WIDE_32.S')
-rw-r--r-- | vm/mterp/x86/OP_CONST_WIDE_32.S | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/vm/mterp/x86/OP_CONST_WIDE_32.S b/vm/mterp/x86/OP_CONST_WIDE_32.S new file mode 100644 index 0000000..12cdd01 --- /dev/null +++ b/vm/mterp/x86/OP_CONST_WIDE_32.S @@ -0,0 +1,11 @@ +%verify "executed" + /* const-wide/32 vAA, #+BBBBbbbb */ + movl 2(rPC),%eax # eax<- BBBBbbbb + SPILL(rIBASE) # save rIBASE (cltd trashes it) + cltd # rIBASE:eax<- ssssssssssssBBBB + SET_VREG_WORD rIBASE rINST,1 # store msw + FETCH_INST_OPCODE 3 %ecx + UNSPILL(rIBASE) # restore rIBASE + SET_VREG_WORD %eax rINST 0 # store lsw + ADVANCE_PC 3 + GOTO_NEXT_R %ecx |