1%verify "executed" 2 /* 3 * Long integer shift, 2addr version. vA is 64-bit value/result, vB is 4 * 32-bit shift distance. 5 */ 6 /* shl-long/2addr vA, vB */ 7 /* ecx gets shift count */ 8 /* Need to spill edx */ 9 /* rINST gets AA */ 10 movzbl rINST_HI,%ecx # ecx<- BA 11 movzbl rINST_HI,rINST_FULL # rINST_HI<- BA 12 andb $$0xf,rINST_LO # rINST_FULL<- A 13 GET_VREG_WORD(%eax,rINST_FULL,0) # eax<- v[AA+0] 14 sarl $$4,%ecx # ecx<- B 15 SPILL(rPC) 16 GET_VREG_WORD(%edx,rINST_FULL,1) # edx<- v[AA+1] 17 GET_VREG(%ecx,%ecx) # ecx<- vBB 18 shrdl %edx,%eax 19 sarl %cl,%edx 20 testb $$32,%cl 21 je 2f 22 movl %edx,%eax 23 sarl $$31,%edx 242: 25 SET_VREG_WORD(%edx,rINST_FULL,1) # v[AA+1]<- edx 26 UNSPILL(rPC) 27 jmp .L${opcode}_finish 28%break 29 30 31.L${opcode}_finish: 32 SET_VREG_WORD(%eax,rINST_FULL,0) # v[AA+0]<- eax 33 FETCH_INST_WORD(1) 34 ADVANCE_PC(1) 35 GOTO_NEXT 36