summaryrefslogtreecommitdiff
path: root/mips/gen/lexer.hgen
diff options
context:
space:
mode:
Diffstat (limited to 'mips/gen/lexer.hgen')
-rw-r--r--mips/gen/lexer.hgen116
1 files changed, 116 insertions, 0 deletions
diff --git a/mips/gen/lexer.hgen b/mips/gen/lexer.hgen
new file mode 100644
index 00000000..c01b14cc
--- /dev/null
+++ b/mips/gen/lexer.hgen
@@ -0,0 +1,116 @@
+"add" , RTYPE {txt="ADD" ; op=MIPSROpADD };
+"addu" , RTYPE {txt="ADDU" ; op=MIPSROpADDU };
+"and" , RTYPE {txt="AND" ; op=MIPSROpAND };
+"dadd" , RTYPE {txt="DADD" ; op=MIPSROpDADD };
+"daddu" , RTYPE {txt="DADDU" ; op=MIPSROpDADDU };
+"dsub" , RTYPE {txt="DSUB" ; op=MIPSROpDSUB };
+"dsubu" , RTYPE {txt="DSUBU" ; op=MIPSROpDSUBU };
+"movn" , RTYPE {txt="MOVN" ; op=MIPSROpMOVN };
+"movz" , RTYPE {txt="MOVZ" ; op=MIPSROpMOVZ };
+"mul" , RTYPE {txt="MUL" ; op=MIPSROpMUL };
+"nor" , RTYPE {txt="NOR" ; op=MIPSROpNOR };
+"or" , RTYPE {txt="OR" ; op=MIPSROpOR };
+"slt" , RTYPE {txt="SLT" ; op=MIPSROpSLT };
+"sltu" , RTYPE {txt="SLTU" ; op=MIPSROpSLTU };
+"sub" , RTYPE {txt="SUB" ; op=MIPSROpSUB };
+"subu" , RTYPE {txt="SUBU" ; op=MIPSROpSUBU };
+"xor" , RTYPE {txt="XOR" ; op=MIPSROpXOR };
+
+"addi" , ITYPE {txt="ADDI" ; op=MIPSIOpADDI };
+"addiu" , ITYPE {txt="ADDIU" ; op=MIPSIOpADDIU };
+"andi" , ITYPE {txt="ANDI" ; op=MIPSIOpANDI };
+"daddi" , ITYPE {txt="DADDI" ; op=MIPSIOpDADDI };
+"daddiu", ITYPE {txt="DADDIU"; op=MIPSIOpDADDIU };
+"ori" , ITYPE {txt="ORI" ; op=MIPSIOpORI };
+"slti" , ITYPE {txt="SLTI" ; op=MIPSIOpSLTI };
+"sltiu" , ITYPE {txt="SLTIU" ; op=MIPSIOpSLTIU };
+"xori" , ITYPE {txt="XORI" ; op=MIPSIOpXORI };
+
+"dsll" , SHIFTI {txt="DSLL" ; op=MIPSDSLL };
+"dsll32" , SHIFTI {txt="DSLL32" ; op=MIPSDSLL32 };
+"dsra" , SHIFTI {txt="DSRA" ; op=MIPSDSRA };
+"dsra32" , SHIFTI {txt="DSRA32" ; op=MIPSDSRA32 };
+"dsrl" , SHIFTI {txt="DSRL" ; op=MIPSDSRL };
+"dsrl32" , SHIFTI {txt="DSRL32" ; op=MIPSDSRL32 };
+"sll" , SHIFTI {txt="SLL" ; op=MIPSSLL };
+"sra" , SHIFTI {txt="SRA" ; op=MIPSSRA };
+"srl" , SHIFTI {txt="SRL" ; op=MIPSSRL };
+
+"dsllv", SHIFTV {txt="DSLLV" ; op=MIPSDSLLV };
+"dsrav", SHIFTV {txt="DSRAV" ; op=MIPSDSRAV };
+"dsrlv", SHIFTV {txt="DSRLV" ; op=MIPSDSRLV };
+"sllv" , SHIFTV {txt="SLLV" ; op=MIPSSLLV };
+"srav" , SHIFTV {txt="SRAV" ; op=MIPSSRAV };
+"srlv" , SHIFTV {txt="SRLV" ; op=MIPSSRLV };
+
+"ddiv" , MULDIV {txt="DDIV" ; op=MIPSDDIV };
+"ddivu" , MULDIV {txt="DDIVU" ; op=MIPSDDIVU };
+"div" , MULDIV {txt="DIV" ; op=MIPSDIV };
+"divu" , MULDIV {txt="DIVU" ; op=MIPSDIVU };
+"dmult" , MULDIV {txt="DMULT" ; op=MIPSDMULT };
+"dmultu", MULDIV {txt="DMULTU"; op=MIPSDMULTU };
+"madd" , MULDIV {txt="MADD" ; op=MIPSMADD };
+"maddu" , MULDIV {txt="MADDU" ; op=MIPSMADDU };
+"msub" , MULDIV {txt="MSUB" ; op=MIPSMSUB };
+"msubu" , MULDIV {txt="MSUBU" ; op=MIPSMSUBU };
+"mult" , MULDIV {txt="MULT" ; op=MIPSMULT };
+"multu" , MULDIV {txt="MULTU" ; op=MIPSMULTU };
+
+"mfhi" , MFHILO {txt="MFHI" ; op=MIPSMFHI };
+"mflo" , MFHILO {txt="MFLO" ; op=MIPSMFLO };
+"mthi" , MFHILO {txt="MTHI" ; op=MIPSMTHI };
+"mtlo" , MFHILO {txt="MTLO" ; op=MIPSMTLO };
+
+"lui" , LUI {txt="LUI" };
+
+"lb" , LOAD {txt="LB" ; width=MIPSByte ; signed=true; linked=false };
+"lbu" , LOAD {txt="LBU" ; width=MIPSByte ; signed=false; linked=false };
+"lh" , LOAD {txt="LH" ; width=MIPSHalf ; signed=true; linked=false };
+"lhu" , LOAD {txt="LHU" ; width=MIPSHalf ; signed=false; linked=false };
+"lw" , LOAD {txt="LW" ; width=MIPSWord ; signed=true; linked=false };
+"lwu" , LOAD {txt="LWU" ; width=MIPSWord ; signed=false; linked=false };
+"ld" , LOAD {txt="LD" ; width=MIPSDouble ; signed=false; linked=false };
+"ll" , LOAD {txt="LL" ; width=MIPSWord ; signed=true; linked=true };
+"lld" , LOAD {txt="LLD" ; width=MIPSDouble ; signed=false; linked=true };
+
+"sb" , STORE {txt="SB" ; width=MIPSByte ; conditional=false };
+"sh" , STORE {txt="SH" ; width=MIPSHalf ; conditional=false };
+"sw" , STORE {txt="SW" ; width=MIPSWord ; conditional=false };
+"sd" , STORE {txt="SD" ; width=MIPSDouble ; conditional=false };
+"sc" , STORE {txt="SC" ; width=MIPSWord ; conditional=true };
+"scd" , STORE {txt="SCD" ; width=MIPSDouble ; conditional=true };
+
+"lwl" , LSLR {txt="LWL" ; store=false; double=false; left=true };
+"lwr" , LSLR {txt="LWR" ; store=false; double=false; left=false};
+"ldl" , LSLR {txt="LDL" ; store=false; double=true ; left=true };
+"ldr" , LSLR {txt="LDR" ; store=false; double=true ; left=false};
+"swl" , LSLR {txt="SWL" ; store=true ; double=false; left=true };
+"swr" , LSLR {txt="SWR" ; store=true ; double=false; left=false};
+"sdl" , LSLR {txt="SDL" ; store=true ; double=true ; left=true };
+"sdr" , LSLR {txt="SDR" ; store=true ; double=true ; left=false};
+"sync", SYNC {txt="SYNC"};
+
+"beq", BEQ {txt="BEQ"; ne=false; likely=false };
+"beql", BEQ {txt="BEQ"; ne=false; likely=true };
+"bne", BEQ {txt="BEQ"; ne=true ; likely=false };
+"bnel", BEQ {txt="BEQ"; ne=true ; likely=true };
+
+"bltz", BCMPZ {txt="BCMPZ"; cmp=MIPS_LT; likely=false; link=false };
+"bltzal", BCMPZ {txt="BCMPZ"; cmp=MIPS_LT; likely=false; link=true };
+"bltzl", BCMPZ {txt="BCMPZ"; cmp=MIPS_LT; likely=true; link=false };
+"bltzall",BCMPZ {txt="BCMPZ"; cmp=MIPS_LT; likely=true; link=true };
+
+"bgez", BCMPZ {txt="BCMPZ"; cmp=MIPS_GE; likely=false; link=false };
+"bgezal", BCMPZ {txt="BCMPZ"; cmp=MIPS_GE; likely=false; link=true };
+"bgezl", BCMPZ {txt="BCMPZ"; cmp=MIPS_GE; likely=true; link=false };
+"bgezall",BCMPZ {txt="BCMPZ"; cmp=MIPS_GE; likely=true; link=true };
+
+"bgtz", BCMPZ {txt="BCMPZ"; cmp=MIPS_GT; likely=false; link=false };
+"bgtzl", BCMPZ {txt="BCMPZ"; cmp=MIPS_GT; likely=true; link=false };
+
+"blez", BCMPZ {txt="BCMPZ"; cmp=MIPS_LE; likely=false; link=false };
+"blezl", BCMPZ {txt="BCMPZ"; cmp=MIPS_LE; likely=true; link=false };
+"j", J {txt="J"};
+"jal", JAL {txt="JAL"};
+"jr", JR {txt="JR"};
+"jalr", JALR {txt="JALR"};