OSDN Git Service

original
[gb-231r1-is01/Gingerbread_2.3.3_r1_IS01.git] / dalvik / vm / mterp / x86 / OP_NEG_LONG.S
1 %verify "executed"
2     /* unop vA, vB */
3     movzbl    rINST_HI,%ecx            # ecx<- BA
4     sarl      $$4,%ecx                 # ecx<- B
5     movzbl    rINST_HI,rINST_FULL      # ecx<- BA
6     andb      $$0xf,rINST_LO           # rINST_FULL<- A
7     GET_VREG_WORD(%eax,%ecx,0)         # eax<- v[B+0]
8     GET_VREG_WORD(%ecx,%ecx,1)         # ecx<- v[B+1]
9     negl      %eax
10     adcl      $$0,%ecx
11     negl      %ecx
12     SET_VREG_WORD(%eax,rINST_FULL,0)   # v[A+0]<- eax
13     SET_VREG_WORD(%ecx,rINST_FULL,1)   # v[A+1]<- ecx
14     FETCH_INST_WORD(1)
15     ADVANCE_PC(1)
16     GOTO_NEXT