%default {"result":"","special":""} /* * 32-bit div/rem "lit8" binary operation. Handles special case of * op0=minint & op1=-1 */ /* div/rem/lit8 vAA, vBB, #+CC */ movzbl 2(rPC),%eax # eax<- BB movsbl 3(rPC),%ecx # ecx<- ssssssCC GET_VREG (%eax,%eax) # eax<- rBB movzx rINST_HI,rINST_FULL # rINST_FULL<- AA SPILL(rPC) cmpl $$0,%ecx je common_errDivideByZero cmpl $$0x80000000,%eax jne .L${opcode}_continue_div cmpl $$-1,%ecx jne .L${opcode}_continue_div movl $special,$result jmp .L${opcode}_finish_div %break .L${opcode}_continue_div: cltd idivl %ecx .L${opcode}_finish_div: SET_VREG($result,rINST_FULL) UNSPILL(rPC) FETCH_INST_WORD(2) ADVANCE_PC(2) GOTO_NEXT