summaryrefslogtreecommitdiff
path: root/vm/mterp/x86/OP_CONST_WIDE_16.S
diff options
context:
space:
mode:
Diffstat (limited to 'vm/mterp/x86/OP_CONST_WIDE_16.S')
-rw-r--r--vm/mterp/x86/OP_CONST_WIDE_16.S12
1 files changed, 12 insertions, 0 deletions
diff --git a/vm/mterp/x86/OP_CONST_WIDE_16.S b/vm/mterp/x86/OP_CONST_WIDE_16.S
new file mode 100644
index 0000000..03270dc
--- /dev/null
+++ b/vm/mterp/x86/OP_CONST_WIDE_16.S
@@ -0,0 +1,12 @@
+%verify "executed"
+ /* const-wide/16 vAA, #+BBBB */
+ movswl 2(rPC),%eax # eax<- ssssBBBB
+ SPILL(rPC)
+ movzbl rINST_HI,%ecx # ecx<- AA
+ FETCH_INST_WORD(2)
+ cltd # rPC:eax<- ssssssssssssBBBB
+ SET_VREG_WORD(rPC,%ecx,1) # store msw
+ UNSPILL(rPC)
+ SET_VREG_WORD(%eax,%ecx,0) # store lsw
+ ADVANCE_PC(2)
+ GOTO_NEXT