1 %default {"instr1":"","instr2":"","instr3":""} 2 /* 3 * Generic 64-bit unary operation. 4 * Operand in %ecx:%eax 5 * 6 * For: neg-long, not-long 7 */ 8 /* unop vA, vB */ 9 movzbl rINSTbl,%ecx # ecx<- BA 10 sarl $$4,%ecx # ecx<- B 11 andb $$0xf,rINSTbl # rINST<- A 12 GET_VREG_WORD %eax %ecx 0 # eax<- v[B+0] 13 GET_VREG_WORD %ecx %ecx 1 # ecx<- v[B+1] 14 $instr1 # ex: negl %eax 15 $instr2 # ex: adcl $$0,%ecx 16 $instr3 # ex: negl %ecx 17 SET_VREG_WORD %eax rINST 0 # v[A+0] <- eax 18 GET_INST_OPCODE 1 %eax 19 SET_VREG_WORD %ecx rINST 1 # v[A+1] <- ecx 20 ADVANCE_PC 1 21 GOTO_NEXT_R %eax 22