blob: 9f7106e6206574ccf3eca43013e84df1d5367960 [file] [log] [blame]
/*
* Generic 64-bit binary operation.
*/
/* binop vAA, vBB, vCC */
movzbl 2(rPC),%eax # eax <- BB
movzbl 3(rPC),%ecx # ecx <- CC
movl rIBASE,LOCAL0(%esp) # save rIBASE
GET_VREG rIBASE %eax # rIBASE <- v[BB+0]
GET_VREG_HIGH %eax %eax # eax <- v[BB+1]
$instr1 # ex: addl (rFP,%ecx,4),rIBASE
$instr2 # ex: adcl 4(rFP,%ecx,4),%eax
SET_VREG rIBASE rINST # v[AA+0] <- rIBASE
movl LOCAL0(%esp),rIBASE # restore rIBASE
SET_VREG_HIGH %eax rINST # v[AA+1] <- eax
ADVANCE_PC_FETCH_AND_GOTO_NEXT 2