Absolute abs rdest, rsrc ## addu rdest, $0, rsrc bgez rsrc 8 sub rdest, $0, rsrc Divide w/ overflow div rdest, rsrc1, src2 ## bne src2, $0, 8 break $0 div rsrc1, src2 mflo rdest Divide w/o overflow divu rdest, rsrc1, src2 ## bne src2, $0, 8 break $0 divu rsrc1, src2 mflo rdest Multiply (No Overflow) mul rdest, rsrc1, src2 ## mult rsrc1, rsrc2 mflo rdest Multiply (With Overflow) mulo, rdest, rsrc1, rsc2 ## mult src1, src2 mfhi $1 mflo rdest sra rdest, rdest, 31 beq $1, src1, 8 break $0 mflo rdest Unsigned multiply w/ overflow mulou rdest, rsrc1, src2 ## multu rsrc1, src2 mfhi $1 beq $1, $0, 8 break $0 mflo rdest Negate value w/ overflow neg rdest, rsrc ## sub rdest, $0, rsrc Negate value w/o overflow negu rdest, rsrc ## subu rdest, $0, rsrc Not not rdest, rsrc ## nor rdest, rsrc, $0 Remainder rem rdest, rsrc1, rsrc2 ## bne rsrc2, $0, 8 break $0 div rsrc1, rsrc2 mfhi rdest Unsigned Remainder remu rdest, rsrc1, rsrc2 ## bne rsrc2, $0, 8 break $0 divu rsrc1, rsrc2 mfhi rdest Rotate left rol rdest, rsrc1, rsrc2 ## subu $1, $0, rsrc2 srlv $1, rsrc1, $1 sllv rdest, rsrc1, rsrc2 or rdest, rdest, $1 Rotate right ror rdest, rsrc1, rsrc2 ## subu $1, $0, rsrc2 sllv $1, rsrc1, $1 srlv rdest, rsrc1, rsrc2 or rdest, rdest, $1 Load Immediate li rdest, imm ## ori rdest, $0, imm Set equal seq rdest, rsrc1, rsrc2 ## beq rsrc2, rsrc1, 12 ori rdest, $0, 8 beq $0, $0, 8 ori rdest, $0, 1 Set greater than equal sge rdest, rsrc1, rsrc2 ## bne rsrc2, rsrc1, 12 ori rdest, $0, 1 beq $0, $0, 8 slt rdest, rsrc2, rsrc1 Set greater than equal unsigned sgeu rdest, rsrc1, rsrc2 ## bne rsrc2, rsrc1, 12 ori rdest, $0, 1 beq $0, $0, 8 sltu rdest, rsrc2, rsrc1 Set greater than sgt rdest, rsrc1, rsrc2 ## slt rdest, rsrc2, rsrc1 Set greater than unsigned sgtu rdest, rsrc1, rsrc2 ## sltu rdest, rsrc2, rsrc1 Set less than equal sle rdest, rsrc1, rsrc2 ## bne rsrc2, rsrc1, 12 ori rdest, $0, 1 beq $0, $0, 8 slt rdest, rsrc1, rsrc2 Set less than equal sleu rdest, rsrc1, rsrc2 ## bne rsrc2, rsrc1, 12 ori rdest, $0, 1 beq $0, $0, 8 sltu rdest, rsrc1, rsrc2 Set not equal sne rdest, rsrc1, rsrc2 ## beq rsrc2, rsrc1, 12 ori rdest, $0, 1 beq $0, $0, 8 ori rdest, $0, 0 Branch b label ## bgez $0, label #### beq $0, label Branch on equal zero beqz rsrc, label ## beq rsrc, $0, label Branch on greater than equal bge rsrc1, rsrc2, label ## slt $1, rsrc1, rsrc2 beq $1, $0, label Branch on greater than equal unsigned bgeu rsrc1, rsrc2, label ## sltu $1, rsrc1, rsrc2 beq $1, $0, label Branch on greater than bgt rsrc1, src2, label ## slt $1, src2, rsrc1 bne $1, $0, label Branch on greater than unsigned bgtu rsrc1, src2, label ## sltu $1, src2, rsrc1 bne $1, $0, label Branch on less than equal ble rsrc1, src2, label ## slt $1, src2, rsrc1 beq $1, $0, label Branch on less than equal unsigned bleu rsrc1, src2, label ## sltu $1, src2, rsrc1 beq $1, $0, label Branch on less than ble rsrc1, src2, label ## slt $1, rsrc1, src2 bne $1, $0, label Branch on less than unsigned bleu rsrc1, src2, label ## sltu $1, rsrc1, src2 bne $1, $0, label Branch on not equal zero bnez rsrc, label ## bne rsrc, $0, label Load Address la rdest, address ## ori rdest, $0, addr Unaligned load halfword ulh rdest, address ## lb rdest, address+1($0) lbu $1, 1234($0) sll rdest, rdest, 8 or rdest, rdest, $1 Unaligned load halfword unsigned ulhu rdest, address ## lbu rdest, address+1($0) lbu $1, 1234($0) sll rdest, rdest, 8 or rdest, rdest, $1 Unalligned load word ulw rdest, address ## lwl rdest, address+3($0) lwr rdest, address($0) Store doubleword sd rsrc, address ## sw rsrc, address($0) sw rsrc+1, address+4($0) Unaligned store halfword ush rsrc, address ## sb rsrc, address($0) srl $1, rsrc, 8 sb $1, address+1($0) Unaligned store word usw rsrc, address ## swl rsrc, address+3($0) swr rsrc, address($0) Move move rdest, rsrc ## addu rdest, $0, rsrc =================================== Non-Pseudoinstructions that were axed bgez bgezal bgtz blez bltzal bltz lwl lwr