;__________________________________________________________________ ; Macros to Reverse Arguments for MIPS Instructions ;__________________________________________________________________ ADD: MACRO ARG1, ARG2, ARG3 IADD ARG2, ARG3, ARG1 ENDM ADDU: MACRO ARG1, ARG2, ARG3 IADDU ARG2, ARG3, ARG1 ENDM ADDIU: MACRO ARG1, ARG2, ARG3 IADDIU ARG2, ARG1, ARG3 ENDM ADDI: MACRO ARG1, ARG2, ARG3 IADDIU ARG2, ARG1, ARG3 ENDM AND: MACRO ARG1, ARG2, ARG3 IAND ARG2, ARG3, ARG1 ENDM ANDI: MACRO ARG1, ARG2, ARG3 IANDI ARG2, ARG1, ARG3 ENDM BEQ: MACRO ARG1,ARG2,ARG3 IBEQ ARG1, ARG2, ARG3< ENDM BNE: MACRO ARG1,ARG2,ARG3 IBNE ARG1, ARG2, ARG3< ENDM DIV: MACRO ARG1, ARG2, ARG3 IDIV ARG2, ARG3, ARG1 ENDM DIVU: MACRO ARG1, ARG2, ARG3 IDIVU ARG2, ARG3, ARG1 ENDM LW: MACRO ARG1, ARG2, ARG3 ILW ARG3, ARG1, ARG2 ENDM LUI: MACRO ARG1, ARG2, ARG3 ILUI ARG2, ARG1, ARG3 ENDM MULT: MACRO ARG1, ARG2, ARG3 IMULT ARG2, ARG3, ARG1 ENDM MULTU: MACRO ARG1, ARG2, ARG3 IMULTU ARG2, ARG3, ARG1 ENDM ORI: MACRO ARG1, ARG2, ARG3 IORI ARG2, ARG1, ARG3 ENDM OR: MACRO ARG1, ARG2, ARG3 IOR ARG3, ARG1, ARG2 ENDM SLT: MACRO ARG1, ARG2, ARG3 ISLT ARG2, ARG3, ARG1 ENDM SLTI: MACRO ARG1, ARG2, ARG3 ISLTI ARG2, ARG1, ARG3 ENDM SLTU: MACRO ARG1, ARG2, ARG3 ISLTU ARG2, ARG3, ARG1 ENDM SLTIU: MACRO ARG1, ARG2, ARG3 ISLTIU ARG2, ARG1, ARG3 ENDM SLL: MACRO ARG1, ARG2, ARG3 ISLL ARG2, ARG1, ARG3 ENDM SRL: MACRO ARG1, ARG2, ARG3 ISRL ARG2, ARG1, ARG3 ENDM SUBU: MACRO ARG1, ARG2, ARG3 ISUBU ARG2, ARG3, ARG1 ENDM SUBT: MACRO ARG1, ARG2, ARG3 ISUB ARG2, ARG3, ARG1 ENDM SW: MACRO ARG1, ARG2, ARG3 ISW ARG3, ARG1, ARG2 ENDM ; Example using a Macro for Pseudo Instructions BGE: MACRO ARG1, ARG2, ARG3 SLT $AT,ARG1,ARG2 BEQ $AT,$ZERO,ARG3 ENDM END