diff options
Diffstat (limited to 'vm/mterp/x86/OP_MUL_INT_2ADDR.S')
-rw-r--r-- | vm/mterp/x86/OP_MUL_INT_2ADDR.S | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/vm/mterp/x86/OP_MUL_INT_2ADDR.S b/vm/mterp/x86/OP_MUL_INT_2ADDR.S new file mode 100644 index 0000000..ebd5160 --- /dev/null +++ b/vm/mterp/x86/OP_MUL_INT_2ADDR.S @@ -0,0 +1,13 @@ +%verify "executed" + /* mul vA, vB */ + movzx rINSTbl,%ecx # ecx<- A+ + sarl $$4,rINST # rINST<- B + GET_VREG_R %eax rINST # eax<- vB + andb $$0xf,%cl # ecx<- A + SPILL(rIBASE) + imull (rFP,%ecx,4),%eax # trashes rIBASE/edx + UNSPILL(rIBASE) + SET_VREG %eax %ecx + FETCH_INST_OPCODE 1 %ecx + ADVANCE_PC 1 + GOTO_NEXT_R %ecx |