aboutsummaryrefslogtreecommitdiff
path: root/pk/riscv-opc.h
diff options
context:
space:
mode:
authorAndrew Waterman <waterman@s144.Millennium.Berkeley.EDU>2010-11-05 14:06:12 -0700
committerAndrew Waterman <waterman@s144.Millennium.Berkeley.EDU>2010-11-21 16:54:33 -0800
commit16a55362caca7f9bd5376eb1af20dbc3581159e2 (patch)
treed228df31c2e1e2554ff35e081219dd43ab1bc145 /pk/riscv-opc.h
parent4daccfc1cf46ee25b73bc39dcc89844d696c6ec9 (diff)
downloadpk-16a55362caca7f9bd5376eb1af20dbc3581159e2.zip
pk-16a55362caca7f9bd5376eb1af20dbc3581159e2.tar.gz
pk-16a55362caca7f9bd5376eb1af20dbc3581159e2.tar.bz2
[xcc, sim, pk, opcodes] new instruction encoding!
Diffstat (limited to 'pk/riscv-opc.h')
-rw-r--r--pk/riscv-opc.h666
1 files changed, 332 insertions, 334 deletions
diff --git a/pk/riscv-opc.h b/pk/riscv-opc.h
index 864014f..ea28b92 100644
--- a/pk/riscv-opc.h
+++ b/pk/riscv-opc.h
@@ -1,359 +1,357 @@
/* Automatically generated by parse-opcodes */
-#define MATCH_MFF_D 0xd4006b00
-#define MASK_MFF_D 0xfe0fffe0
-#define MATCH_SGNINJ_D 0xd40060a0
-#define MASK_SGNINJ_D 0xfe007fe0
-#define MATCH_AMO_ADD 0xf4003000
-#define MASK_AMO_ADD 0xfe007fe0
-#define MATCH_CVT_D_L_RM 0xd4006580
-#define MASK_CVT_D_L_RM 0xfff067e0
-#define MATCH_REMUW 0xee0010e0
-#define MASK_REMUW 0xfe007fe0
+#define MATCH_MFF_D 0xd5ac0000
+#define MASK_MFF_D 0xffff83e0
+#define MATCH_SGNINJ_D 0xd5828000
+#define MASK_SGNINJ_D 0xffff8000
+#define MATCH_AMO_ADD 0xf4c00000
+#define MASK_AMO_ADD 0xffff8000
+#define MATCH_CVT_D_L_RM 0xd5c60000
+#define MASK_CVT_D_L_RM 0xffcffc00
+#define MATCH_REMUW 0xee438000
+#define MASK_REMUW 0xffff8000
#define MATCH_NMADD_S 0xde000000
-#define MASK_NMADD_S 0xfe007c00
-#define MATCH_BLTU 0xe6006000
-#define MASK_BLTU 0xfe007000
-#define MATCH_C_EQ_S 0xd40002a0
-#define MASK_C_EQ_S 0xfe007fe0
-#define MATCH_SGNINJ_S 0xd40000a0
-#define MASK_SGNINJ_S 0xfe007fe0
-#define MATCH_DIV_D 0xd4006060
-#define MASK_DIV_D 0xfe007fe0
-#define MATCH_CVT_S_W 0xd40001c0
-#define MASK_CVT_S_W 0xfff07fe0
-#define MATCH_CVTU_S_W_RM 0xd40005e0
-#define MASK_CVTU_S_W_RM 0xfff067e0
-#define MATCH_NMADD_D 0xde006000
-#define MASK_NMADD_D 0xfe007c00
-#define MATCH_C_EQ_D 0xd40062a0
-#define MASK_C_EQ_D 0xfe007fe0
-#define MATCH_SLLIW 0xec007040
-#define MASK_SLLIW 0xfe007fe0
-#define MATCH_LB 0xf0000000
-#define MASK_LB 0xfe007000
-#define MATCH_CVT_L_S_RM 0xd4000500
-#define MASK_CVT_L_S_RM 0xfff067e0
-#define MATCH_CVTU_D_L 0xd40061a0
-#define MASK_CVTU_D_L 0xfff07fe0
-#define MATCH_LH 0xf0001000
-#define MASK_LH 0xfe007000
-#define MATCH_MSUB_S_RM 0xda000400
-#define MASK_MSUB_S_RM 0xfe006400
-#define MATCH_LW 0xf0002000
-#define MASK_LW 0xfe007000
+#define MASK_NMADD_S 0xfff00000
+#define MATCH_BLTU 0xe7800000
+#define MASK_BLTU 0xffc00000
+#define MATCH_C_EQ_S 0xd40a8000
+#define MASK_C_EQ_S 0xffff8000
+#define MATCH_SGNINJ_S 0xd4028000
+#define MASK_SGNINJ_S 0xffff8000
+#define MATCH_DIV_D 0xd5818000
+#define MASK_DIV_D 0xffff8000
+#define MATCH_CVT_S_W 0xd4070000
+#define MASK_CVT_S_W 0xfffffc00
+#define MATCH_CVTU_S_W_RM 0xd4478000
+#define MASK_CVTU_S_W_RM 0xffcffc00
+#define MATCH_NMADD_D 0xdf800000
+#define MASK_NMADD_D 0xfff00000
+#define MATCH_C_EQ_D 0xd58a8000
+#define MASK_C_EQ_D 0xffff8000
+#define MATCH_SLLIW 0xedc10000
+#define MASK_SLLIW 0xffff8000
+#define MATCH_AMOW_MAX 0xf4828000
+#define MASK_AMOW_MAX 0xffff8000
+#define MATCH_CVT_L_S_RM 0xd4440000
+#define MASK_CVT_L_S_RM 0xffcffc00
+#define MATCH_CVTU_D_L 0xd5868000
+#define MASK_CVTU_D_L 0xfffffc00
+#define MATCH_LH 0xf0400000
+#define MASK_LH 0xffc00000
+#define MATCH_MSUB_S_RM 0xda400000
+#define MASK_MSUB_S_RM 0xffc00000
+#define MATCH_LW 0xf0800000
+#define MASK_LW 0xffc00000
#define MATCH_ADD 0xea000000
-#define MASK_ADD 0xfe007fe0
-#define MATCH_CVT_W_D_RM 0xd4006540
-#define MASK_CVT_W_D_RM 0xfff067e0
-#define MATCH_AMOW_AND 0xf4002040
-#define MASK_AMOW_AND 0xfe007fe0
-#define MATCH_MFPCR 0xfc004000
-#define MASK_MFPCR 0xfe0fffe0
-#define MATCH_CVTU_D_W 0xd40061e0
-#define MASK_CVTU_D_W 0xfff07fe0
-#define MATCH_BNE 0xe6001000
-#define MASK_BNE 0xfe007000
-#define MATCH_MTPCR 0xfc005000
-#define MASK_MTPCR 0xfe007fff
+#define MASK_ADD 0xffff8000
+#define MATCH_CVT_W_D_RM 0xd5c50000
+#define MASK_CVT_W_D_RM 0xffcffc00
+#define MATCH_AMOW_AND 0xf4810000
+#define MASK_AMOW_AND 0xffff8000
+#define MATCH_MFPCR 0xd6400000
+#define MASK_MFPCR 0xffff83e0
+#define MATCH_CVTU_D_W 0xd5878000
+#define MASK_CVTU_D_W 0xfffffc00
+#define MATCH_BNE 0xe6400000
+#define MASK_BNE 0xffc00000
+#define MATCH_MTPCR 0xd6408000
+#define MASK_MTPCR 0xffff801f
#define MATCH_ADD_S 0xd4000000
-#define MASK_ADD_S 0xfe007fe0
-#define MATCH_BGEU 0xe6007000
-#define MASK_BGEU 0xfe007000
-#define MATCH_DI 0xfc001000
+#define MASK_ADD_S 0xffff8000
+#define MATCH_BGEU 0xe7c00000
+#define MASK_BGEU 0xffc00000
+#define MATCH_DI 0xd6008000
#define MASK_DI 0xffffffe0
-#define MATCH_SLTIU 0xe8003000
-#define MASK_SLTIU 0xfe007000
-#define MATCH_MFFL_D 0xd4006b20
-#define MASK_MFFL_D 0xfe0fffe0
-#define MATCH_MADD_S_RM 0xd8000400
-#define MASK_MADD_S_RM 0xfe006400
-#define MATCH_BREAK 0xf6006000
-#define MASK_BREAK 0xfffff000
-#define MATCH_ADD_D 0xd4006000
-#define MASK_ADD_D 0xfe007fe0
-#define MATCH_MUL 0xea001000
-#define MASK_MUL 0xfe007fe0
-#define MATCH_AMOW_MIN 0xf4002080
-#define MASK_AMOW_MIN 0xfe007fe0
-#define MATCH_NOR 0xea0000e0
-#define MASK_NOR 0xfe007fe0
-#define MATCH_NMSUB_D 0xdc006000
-#define MASK_NMSUB_D 0xfe007c00
-#define MATCH_AMO_SWAP 0xf4003020
-#define MASK_AMO_SWAP 0xfe007fe0
-#define MATCH_CVTU_S_L_RM 0xd40005a0
-#define MASK_CVTU_S_L_RM 0xfff067e0
-#define MATCH_MADD_D_RM 0xd8006400
-#define MASK_MADD_D_RM 0xfe006400
-#define MATCH_SRLI 0xe8007080
-#define MASK_SRLI 0xfe007fc0
-#define MATCH_DIVUW 0xee0010a0
-#define MASK_DIVUW 0xfe007fe0
-#define MATCH_MFFH_D 0xd4006b40
-#define MASK_MFFH_D 0xfe0fffe0
-#define MATCH_SRLW 0xee007080
-#define MASK_SRLW 0xfe007fe0
+#define MATCH_SLTIU 0xe8c00000
+#define MASK_SLTIU 0xffc00000
+#define MATCH_MFFL_D 0xd5ac8000
+#define MASK_MFFL_D 0xffff83e0
+#define MATCH_MADD_S_RM 0xd8400000
+#define MASK_MADD_S_RM 0xffc00000
+#define MATCH_SGNMUL_D 0xd5838000
+#define MASK_SGNMUL_D 0xffff8000
+#define MATCH_ADD_D 0xd5800000
+#define MASK_ADD_D 0xffff8000
+#define MATCH_MUL 0xea400000
+#define MASK_MUL 0xffff8000
+#define MATCH_AMOW_MIN 0xf4820000
+#define MASK_AMOW_MIN 0xffff8000
+#define MATCH_NOR 0xea038000
+#define MASK_NOR 0xffff8000
+#define MATCH_NMSUB_D 0xdd800000
+#define MASK_NMSUB_D 0xfff00000
+#define MATCH_AMO_SWAP 0xf4c08000
+#define MASK_AMO_SWAP 0xffff8000
+#define MATCH_CVTU_S_L_RM 0xd4468000
+#define MASK_CVTU_S_L_RM 0xffcffc00
+#define MATCH_MADD_D_RM 0xd9c00000
+#define MASK_MADD_D_RM 0xffc00000
+#define MATCH_SRLI 0xe9c20000
+#define MASK_SRLI 0xffff0000
+#define MATCH_DIVUW 0xee428000
+#define MASK_DIVUW 0xffff8000
+#define MATCH_MFFH_D 0xd5ad0000
+#define MASK_MFFH_D 0xffff83e0
+#define MATCH_SRLW 0xefc20000
+#define MASK_SRLW 0xffff8000
#define MATCH_NMSUB_S 0xdc000000
-#define MASK_NMSUB_S 0xfe007c00
-#define MATCH_MFCR 0xf6002000
-#define MASK_MFCR 0xfe0fffe0
-#define MATCH_C_LE_D 0xd40062e0
-#define MASK_C_LE_D 0xfe007fe0
-#define MATCH_DIV 0xea001080
-#define MASK_DIV 0xfe007fe0
-#define MATCH_MFF_S 0xd4000b00
-#define MASK_MFF_S 0xfe0fffe0
-#define MATCH_AMOW_OR 0xf4002060
-#define MASK_AMOW_OR 0xfe007fe0
-#define MATCH_EI 0xfc000000
+#define MASK_NMSUB_S 0xfff00000
+#define MATCH_MFCR 0xf6400000
+#define MASK_MFCR 0xffff83e0
+#define MATCH_C_LE_D 0xd58b8000
+#define MASK_C_LE_D 0xffff8000
+#define MATCH_DIV 0xea420000
+#define MASK_DIV 0xffff8000
+#define MATCH_MFF_S 0xd42c0000
+#define MASK_MFF_S 0xffff83e0
+#define MATCH_AMOW_OR 0xf4818000
+#define MASK_AMOW_OR 0xffff8000
+#define MATCH_EI 0xd6000000
#define MASK_EI 0xffffffe0
-#define MATCH_SGNMUL_D 0xd40060e0
-#define MASK_SGNMUL_D 0xfe007fe0
-#define MATCH_SYNC 0xf6004000
+#define MATCH_SYNC 0xf6800000
#define MASK_SYNC 0xffffffff
-#define MATCH_MTF_S 0xd4000b80
-#define MASK_MTF_S 0xfff07fe0
-#define MATCH_CVTU_W_D_RM 0xd4006560
-#define MASK_CVTU_W_D_RM 0xfff067e0
-#define MATCH_S_S 0xd2002000
-#define MASK_S_S 0xfe007000
-#define MATCH_MTCR 0xf6003000
-#define MASK_MTCR 0xfe007fff
+#define MATCH_MTF_S 0xd42e0000
+#define MASK_MTF_S 0xfffffc00
+#define MATCH_CVTU_W_D_RM 0xd5c58000
+#define MASK_CVTU_W_D_RM 0xffcffc00
+#define MATCH_S_S 0xd2800000
+#define MASK_S_S 0xffc00000
+#define MATCH_MTCR 0xf6408000
+#define MASK_MTCR 0xffff801f
#define MATCH_MSUB_S 0xda000000
-#define MASK_MSUB_S 0xfe007c00
+#define MASK_MSUB_S 0xfff00000
#define MATCH_ADDW 0xee000000
-#define MASK_ADDW 0xfe007fe0
-#define MATCH_SLTU 0xea000060
-#define MASK_SLTU 0xfe007fe0
-#define MATCH_XOR 0xea0000c0
-#define MASK_XOR 0xfe007fe0
-#define MATCH_SUB 0xea000020
-#define MASK_SUB 0xfe007fe0
-#define MATCH_ERET 0xfc002000
+#define MASK_ADDW 0xffff8000
+#define MATCH_SLTU 0xea018000
+#define MASK_SLTU 0xffff8000
+#define MATCH_XOR 0xea030000
+#define MASK_XOR 0xffff8000
+#define MATCH_SUB 0xea008000
+#define MASK_SUB 0xffff8000
+#define MATCH_ERET 0xd6800000
#define MASK_ERET 0xffffffff
-#define MATCH_SQRT_D_RM 0xd4006480
-#define MASK_SQRT_D_RM 0xfff067e0
-#define MATCH_BLT 0xe6004000
-#define MASK_BLT 0xfe007000
-#define MATCH_SGNINJN_D 0xd40060c0
-#define MASK_SGNINJN_D 0xfe007fe0
-#define MATCH_REM 0xea0010c0
-#define MASK_REM 0xfe007fe0
-#define MATCH_SRLIW 0xec007080
-#define MASK_SRLIW 0xfe007fe0
+#define MATCH_SQRT_D_RM 0xd5c20000
+#define MASK_SQRT_D_RM 0xffcffc00
+#define MATCH_BLT 0xe7000000
+#define MASK_BLT 0xffc00000
+#define MATCH_SGNINJN_D 0xd5830000
+#define MASK_SGNINJN_D 0xffff8000
+#define MATCH_REM 0xea430000
+#define MASK_REM 0xffff8000
+#define MATCH_SRLIW 0xedc20000
+#define MASK_SRLIW 0xffff8000
#define MATCH_LUI 0xe2000000
#define MASK_LUI 0xfe000000
-#define MATCH_CVTU_D_L_RM 0xd40065a0
-#define MASK_CVTU_D_L_RM 0xfff067e0
+#define MATCH_CVTU_D_L_RM 0xd5c68000
+#define MASK_CVTU_D_L_RM 0xffcffc00
#define MATCH_ADDI 0xe8000000
-#define MASK_ADDI 0xfe007000
-#define MATCH_ADD_D_RM 0xd4006400
-#define MASK_ADD_D_RM 0xfe0067e0
-#define MATCH_MULH 0xea001040
-#define MASK_MULH 0xfe007fe0
-#define MATCH_MULHUW 0xee001060
-#define MASK_MULHUW 0xfe007fe0
-#define MATCH_SGNINJN_S 0xd40000c0
-#define MASK_SGNINJN_S 0xfe007fe0
-#define MATCH_SRAI 0xe80070c0
-#define MASK_SRAI 0xfe007fc0
-#define MATCH_SRAW 0xee0070c0
-#define MASK_SRAW 0xfe007fe0
-#define MATCH_LD 0xf0003000
-#define MASK_LD 0xfe007000
-#define MATCH_ORI 0xe8005000
-#define MASK_ORI 0xfe007000
-#define MATCH_CVT_L_D_RM 0xd4006500
-#define MASK_CVT_L_D_RM 0xfff067e0
-#define MATCH_AMOW_MAX 0xf40020a0
-#define MASK_AMOW_MAX 0xfe007fe0
+#define MASK_ADDI 0xffc00000
+#define MATCH_ADD_D_RM 0xd5c00000
+#define MASK_ADD_D_RM 0xffcf8000
+#define MATCH_MULH 0xea410000
+#define MASK_MULH 0xffff8000
+#define MATCH_MULHUW 0xee418000
+#define MASK_MULHUW 0xffff8000
+#define MATCH_SGNINJN_S 0xd4030000
+#define MASK_SGNINJN_S 0xffff8000
+#define MATCH_SRAI 0xe9c30000
+#define MASK_SRAI 0xffff0000
+#define MATCH_SRAW 0xefc30000
+#define MASK_SRAW 0xffff8000
+#define MATCH_LD 0xf0c00000
+#define MASK_LD 0xffc00000
+#define MATCH_ORI 0xe9400000
+#define MASK_ORI 0xffc00000
+#define MATCH_CVT_L_D_RM 0xd5c40000
+#define MASK_CVT_L_D_RM 0xffcffc00
+#define MATCH_LB 0xf0000000
+#define MASK_LB 0xffc00000
#define MATCH_ADDIW 0xec000000
-#define MASK_ADDIW 0xfe007000
-#define MATCH_MULW 0xee001000
-#define MASK_MULW 0xfe007fe0
-#define MATCH_MTFLH_D 0xd4006f80
-#define MASK_MTFLH_D 0xfe007fe0
-#define MATCH_MUL_S_RM 0xd4000440
-#define MASK_MUL_S_RM 0xfe0067e0
-#define MATCH_SRA 0xea0070c0
-#define MASK_SRA 0xfe007fe0
-#define MATCH_BGE 0xe6005000
-#define MASK_BGE 0xfe007000
-#define MATCH_SRAIW 0xec0070c0
-#define MASK_SRAIW 0xfe007fe0
-#define MATCH_SRL 0xea007080
-#define MASK_SRL 0xfe007fe0
-#define MATCH_CVTU_L_S_RM 0xd4000520
-#define MASK_CVTU_L_S_RM 0xfff067e0
-#define MATCH_NMSUB_D_RM 0xdc006400
-#define MASK_NMSUB_D_RM 0xfe006400
-#define MATCH_NMSUB_S_RM 0xdc000400
-#define MASK_NMSUB_S_RM 0xfe006400
-#define MATCH_OR 0xea0000a0
-#define MASK_OR 0xfe007fe0
-#define MATCH_CVT_S_W_RM 0xd40005c0
-#define MASK_CVT_S_W_RM 0xfff067e0
-#define MATCH_SUBW 0xee000020
-#define MASK_SUBW 0xfe007fe0
-#define MATCH_JALR_C 0xf6000000
-#define MASK_JALR_C 0xfff07fe0
-#define MATCH_CVTU_S_W 0xd40001e0
-#define MASK_CVTU_S_W 0xfff07fe0
-#define MATCH_AMOW_MINU 0xf40020c0
-#define MASK_AMOW_MINU 0xfe007fe0
-#define MATCH_JALR_J 0xf6000040
-#define MASK_JALR_J 0xfff07fe0
-#define MATCH_S_D 0xd2003000
-#define MASK_S_D 0xfe007000
-#define MATCH_AMO_OR 0xf4003060
-#define MASK_AMO_OR 0xfe007fe0
-#define MATCH_XORI 0xe8006000
-#define MASK_XORI 0xfe007000
-#define MATCH_JALR_R 0xf6000020
-#define MASK_JALR_R 0xfff07fe0
-#define MATCH_NMADD_S_RM 0xde000400
-#define MASK_NMADD_S_RM 0xfe006400
-#define MATCH_CVTU_S_L 0xd40001a0
-#define MASK_CVTU_S_L 0xfff07fe0
-#define MATCH_AMO_MAX 0xf40030a0
-#define MASK_AMO_MAX 0xfe007fe0
-#define MATCH_AMO_MIN 0xf4003080
-#define MASK_AMO_MIN 0xfe007fe0
-#define MATCH_ANDI 0xe8004000
-#define MASK_ANDI 0xfe007000
-#define MATCH_SQRT_S_RM 0xd4000480
-#define MASK_SQRT_S_RM 0xfff067e0
-#define MATCH_CVTU_L_D_RM 0xd4006520
-#define MASK_CVTU_L_D_RM 0xfff067e0
+#define MASK_ADDIW 0xffc00000
+#define MATCH_MULW 0xee400000
+#define MASK_MULW 0xffff8000
+#define MATCH_MTFLH_D 0xd5be0000
+#define MASK_MTFLH_D 0xffff8000
+#define MATCH_MUL_S_RM 0xd4410000
+#define MASK_MUL_S_RM 0xffcf8000
+#define MATCH_SRA 0xebc30000
+#define MASK_SRA 0xffff8000
+#define MATCH_BGE 0xe7400000
+#define MASK_BGE 0xffc00000
+#define MATCH_SRAIW 0xedc30000
+#define MASK_SRAIW 0xffff8000
+#define MATCH_SRL 0xebc20000
+#define MASK_SRL 0xffff8000
+#define MATCH_CVTU_L_S_RM 0xd4448000
+#define MASK_CVTU_L_S_RM 0xffcffc00
+#define MATCH_NMSUB_D_RM 0xddc00000
+#define MASK_NMSUB_D_RM 0xffc00000
+#define MATCH_NMSUB_S_RM 0xdc400000
+#define MASK_NMSUB_S_RM 0xffc00000
+#define MATCH_OR 0xea028000
+#define MASK_OR 0xffff8000
+#define MATCH_CVT_S_W_RM 0xd4470000
+#define MASK_CVT_S_W_RM 0xffcffc00
+#define MATCH_SUBW 0xee008000
+#define MASK_SUBW 0xffff8000
+#define MATCH_JALR_C 0xe4000000
+#define MASK_JALR_C 0xffc00000
+#define MATCH_CVTU_S_W 0xd4078000
+#define MASK_CVTU_S_W 0xfffffc00
+#define MATCH_AMOW_MINU 0xf4830000
+#define MASK_AMOW_MINU 0xffff8000
+#define MATCH_JALR_J 0xe4800000
+#define MASK_JALR_J 0xffc00000
+#define MATCH_S_D 0xd2c00000
+#define MASK_S_D 0xffc00000
+#define MATCH_AMO_OR 0xf4c18000
+#define MASK_AMO_OR 0xffff8000
+#define MATCH_XORI 0xe9800000
+#define MASK_XORI 0xffc00000
+#define MATCH_JALR_R 0xe4400000
+#define MASK_JALR_R 0xffc00000
+#define MATCH_NMADD_S_RM 0xde400000
+#define MASK_NMADD_S_RM 0xffc00000
+#define MATCH_CVTU_S_L 0xd4068000
+#define MASK_CVTU_S_L 0xfffffc00
+#define MATCH_AMO_MAX 0xf4c28000
+#define MASK_AMO_MAX 0xffff8000
+#define MATCH_AMO_MIN 0xf4c20000
+#define MASK_AMO_MIN 0xffff8000
+#define MATCH_ANDI 0xe9000000
+#define MASK_ANDI 0xffc00000
+#define MATCH_SQRT_S_RM 0xd4420000
+#define MASK_SQRT_S_RM 0xffcffc00
+#define MATCH_CVTU_L_D_RM 0xd5c48000
+#define MASK_CVTU_L_D_RM 0xffcffc00
#define MATCH_JAL 0xc2000000
#define MASK_JAL 0xfe000000
-#define MATCH_LWU 0xf0006000
-#define MASK_LWU 0xfe007000
-#define MATCH_CVT_S_D_RM 0xd4000660
-#define MASK_CVT_S_D_RM 0xfff067e0
-#define MATCH_AMO_MINU 0xf40030c0
-#define MASK_AMO_MINU 0xfe007fe0
-#define MATCH_SUB_S_RM 0xd4000420
-#define MASK_SUB_S_RM 0xfe0067e0
-#define MATCH_CVT_S_L 0xd4000180
-#define MASK_CVT_S_L 0xfff07fe0
-#define MATCH_DIV_S_RM 0xd4000460
-#define MASK_DIV_S_RM 0xfe0067e0
-#define MATCH_MUL_D_RM 0xd4006440
-#define MASK_MUL_D_RM 0xfe0067e0
-#define MATCH_SUB_S 0xd4000020
-#define MASK_SUB_S 0xfe007fe0
-#define MATCH_NMADD_D_RM 0xde006400
-#define MASK_NMADD_D_RM 0xfe006400
-#define MATCH_SLT 0xea000040
-#define MASK_SLT 0xfe007fe0
-#define MATCH_SLLW 0xee007040
-#define MASK_SLLW 0xfe007fe0
+#define MATCH_LWU 0xf1800000
+#define MASK_LWU 0xffc00000
+#define MATCH_CVT_S_D_RM 0xd4498000
+#define MASK_CVT_S_D_RM 0xffcffc00
+#define MATCH_AMO_MINU 0xf4c30000
+#define MASK_AMO_MINU 0xffff8000
+#define MATCH_SUB_S_RM 0xd4408000
+#define MASK_SUB_S_RM 0xffcf8000
+#define MATCH_CVT_S_L 0xd4060000
+#define MASK_CVT_S_L 0xfffffc00
+#define MATCH_DIV_S_RM 0xd4418000
+#define MASK_DIV_S_RM 0xffcf8000
+#define MATCH_MUL_D_RM 0xd5c10000
+#define MASK_MUL_D_RM 0xffcf8000
+#define MATCH_SUB_S 0xd4008000
+#define MASK_SUB_S 0xffff8000
+#define MATCH_NMADD_D_RM 0xdfc00000
+#define MASK_NMADD_D_RM 0xffc00000
+#define MATCH_SLT 0xea010000
+#define MASK_SLT 0xffff8000
+#define MATCH_SLLW 0xefc10000
+#define MASK_SLLW 0xffff8000
#define MATCH_J 0xc0000000
#define MASK_J 0xfe000000
-#define MATCH_SLTI 0xe8002000
-#define MASK_SLTI 0xfe007000
-#define MATCH_REMU 0xea0010e0
-#define MASK_REMU 0xfe007fe0
-#define MATCH_REMW 0xee0010c0
-#define MASK_REMW 0xfe007fe0
-#define MATCH_SLL 0xea007040
-#define MASK_SLL 0xfe007fe0
-#define MATCH_SLLI 0xe8007040
-#define MASK_SLLI 0xfe007fc0
-#define MATCH_SUB_D 0xd4006020
-#define MASK_SUB_D 0xfe007fe0
-#define MATCH_CVT_S_L_RM 0xd4000580
-#define MASK_CVT_S_L_RM 0xfff067e0
+#define MATCH_SLTI 0xe8800000
+#define MASK_SLTI 0xffc00000
+#define MATCH_REMU 0xea438000
+#define MASK_REMU 0xffff8000
+#define MATCH_REMW 0xee430000
+#define MASK_REMW 0xffff8000
+#define MATCH_SLL 0xebc10000
+#define MASK_SLL 0xffff8000
+#define MATCH_SLLI 0xe9c10000
+#define MASK_SLLI 0xffff0000
+#define MATCH_SUB_D 0xd5808000
+#define MASK_SUB_D 0xffff8000
+#define MATCH_CVT_S_L_RM 0xd4460000
+#define MASK_CVT_S_L_RM 0xffcffc00
#define MATCH_BEQ 0xe6000000
-#define MASK_BEQ 0xfe007000
-#define MATCH_AND 0xea000080
-#define MASK_AND 0xfe007fe0
-#define MATCH_LBU 0xf0004000
-#define MASK_LBU 0xfe007000
-#define MATCH_SQRT_S 0xd4000080
-#define MASK_SQRT_S 0xfff07fe0
-#define MATCH_SYSCALL 0xf6005000
-#define MASK_SYSCALL 0xfffff000
-#define MATCH_C_LT_S 0xd40002c0
-#define MASK_C_LT_S 0xfe007fe0
-#define MATCH_MTF_D 0xd4006b80
-#define MASK_MTF_D 0xfff07fe0
-#define MATCH_SQRT_D 0xd4006080
-#define MASK_SQRT_D 0xfff07fe0
-#define MATCH_ADD_S_RM 0xd4000400
-#define MASK_ADD_S_RM 0xfe0067e0
-#define MATCH_AMOW_ADD 0xf4002000
-#define MASK_AMOW_ADD 0xfe007fe0
-#define MATCH_MULHW 0xee001040
-#define MASK_MULHW 0xfe007fe0
+#define MASK_BEQ 0xffc00000
+#define MATCH_AND 0xea020000
+#define MASK_AND 0xffff8000
+#define MATCH_LBU 0xf1000000
+#define MASK_LBU 0xffc00000
+#define MATCH_SQRT_S 0xd4020000
+#define MASK_SQRT_S 0xfffffc00
+#define MATCH_SYSCALL 0xf6c00000
+#define MASK_SYSCALL 0xffc003ff
+#define MATCH_C_LT_S 0xd40b0000
+#define MASK_C_LT_S 0xffff8000
+#define MATCH_MTF_D 0xd5ae0000
+#define MASK_MTF_D 0xfffffc00
+#define MATCH_SQRT_D 0xd5820000
+#define MASK_SQRT_D 0xfffffc00
+#define MATCH_ADD_S_RM 0xd4400000
+#define MASK_ADD_S_RM 0xffcf8000
+#define MATCH_AMOW_ADD 0xf4800000
+#define MASK_AMOW_ADD 0xffff8000
+#define MATCH_MULHW 0xee410000
+#define MASK_MULHW 0xffff8000
#define MATCH_MADD_S 0xd8000000
-#define MASK_MADD_S 0xfe007c00
-#define MATCH_MULHU 0xea001060
-#define MASK_MULHU 0xfe007fe0
-#define MATCH_AMO_AND 0xf4003040
-#define MASK_AMO_AND 0xfe007fe0
-#define MATCH_MSUB_D 0xda006000
-#define MASK_MSUB_D 0xfe007c00
-#define MATCH_SGNMUL_S 0xd40000e0
-#define MASK_SGNMUL_S 0xfe007fe0
-#define MATCH_RDNPC 0xf6001000
+#define MASK_MADD_S 0xfff00000
+#define MATCH_MULHU 0xea418000
+#define MASK_MULHU 0xffff8000
+#define MATCH_AMO_AND 0xf4c10000
+#define MASK_AMO_AND 0xffff8000
+#define MATCH_MSUB_D 0xdb800000
+#define MASK_MSUB_D 0xfff00000
+#define MATCH_SGNMUL_S 0xd4038000
+#define MASK_SGNMUL_S 0xffff8000
+#define MATCH_RDNPC 0xf6000000
#define MASK_RDNPC 0xffffffe0
-#define MATCH_DIV_D_RM 0xd4006460
-#define MASK_DIV_D_RM 0xfe0067e0
-#define MATCH_MADD_D 0xd8006000
-#define MASK_MADD_D 0xfe007c00
-#define MATCH_SYNCI 0xf0007000
-#define MASK_SYNCI 0xfff07000
-#define MATCH_DIV_S 0xd4000060
-#define MASK_DIV_S 0xfe007fe0
+#define MATCH_DIV_D_RM 0xd5c18000
+#define MASK_DIV_D_RM 0xffcf8000
+#define MATCH_MADD_D 0xd9800000
+#define MASK_MADD_D 0xfff00000
+#define MATCH_SYNCI 0xf1c00000
+#define MASK_SYNCI 0xffc0001f
+#define MATCH_DIV_S 0xd4018000
+#define MASK_DIV_S 0xffff8000
#define MATCH_UNIMP 0x0
#define MASK_UNIMP 0xffffffff
-#define MATCH_CVT_S_D 0xd4000260
-#define MASK_CVT_S_D 0xfff07fe0
-#define MATCH_C_LE_S 0xd40002e0
-#define MASK_C_LE_S 0xfe007fe0
-#define MATCH_MUL_S 0xd4000040
-#define MASK_MUL_S 0xfe007fe0
-#define MATCH_CVT_W_S_RM 0xd4000540
-#define MASK_CVT_W_S_RM 0xfff067e0
-#define MATCH_CVT_D_S 0xd4006200
-#define MASK_CVT_D_S 0xfff07fe0
-#define MATCH_CVT_D_W 0xd40061c0
-#define MASK_CVT_D_W 0xfff07fe0
-#define MATCH_L_S 0xd0002000
-#define MASK_L_S 0xfe007000
-#define MATCH_CVT_D_L 0xd4006180
-#define MASK_CVT_D_L 0xfff07fe0
-#define MATCH_DIVW 0xee001080
-#define MASK_DIVW 0xfe007fe0
-#define MATCH_L_D 0xd0003000
-#define MASK_L_D 0xfe007000
-#define MATCH_DIVU 0xea0010a0
-#define MASK_DIVU 0xfe007fe0
-#define MATCH_MUL_D 0xd4006040
-#define MASK_MUL_D 0xfe007fe0
-#define MATCH_MSUB_D_RM 0xda006400
-#define MASK_MSUB_D_RM 0xfe006400
-#define MATCH_SW 0xf2002000
-#define MASK_SW 0xfe007000
-#define MATCH_AMOW_SWAP 0xf4002020
-#define MASK_AMOW_SWAP 0xfe007fe0
-#define MATCH_LHU 0xf0005000
-#define MASK_LHU 0xfe007000
-#define MATCH_SH 0xf2001000
-#define MASK_SH 0xfe007000
-#define MATCH_AMO_MAXU 0xf40030e0
-#define MASK_AMO_MAXU 0xfe007fe0
-#define MATCH_AMOW_MAXU 0xf40020e0
-#define MASK_AMOW_MAXU 0xfe007fe0
+#define MATCH_CVT_S_D 0xd4098000
+#define MASK_CVT_S_D 0xfffffc00
+#define MATCH_C_LE_S 0xd40b8000
+#define MASK_C_LE_S 0xffff8000
+#define MATCH_MUL_S 0xd4010000
+#define MASK_MUL_S 0xffff8000
+#define MATCH_CVT_W_S_RM 0xd4450000
+#define MASK_CVT_W_S_RM 0xffcffc00
+#define MATCH_CVT_D_S 0xd5880000
+#define MASK_CVT_D_S 0xfffffc00
+#define MATCH_CVT_D_W 0xd5870000
+#define MASK_CVT_D_W 0xfffffc00
+#define MATCH_L_S 0xd0800000
+#define MASK_L_S 0xffc00000
+#define MATCH_CVT_D_L 0xd5860000
+#define MASK_CVT_D_L 0xfffffc00
+#define MATCH_DIVW 0xee420000
+#define MASK_DIVW 0xffff8000
+#define MATCH_L_D 0xd0c00000
+#define MASK_L_D 0xffc00000
+#define MATCH_DIVU 0xea428000
+#define MASK_DIVU 0xffff8000
+#define MATCH_MUL_D 0xd5810000
+#define MASK_MUL_D 0xffff8000
+#define MATCH_MSUB_D_RM 0xdbc00000
+#define MASK_MSUB_D_RM 0xffc00000
+#define MATCH_SW 0xf2800000
+#define MASK_SW 0xffc00000
+#define MATCH_AMOW_SWAP 0xf4808000
+#define MASK_AMOW_SWAP 0xffff8000
+#define MATCH_LHU 0xf1400000
+#define MASK_LHU 0xffc00000
+#define MATCH_SH 0xf2400000
+#define MASK_SH 0xffc00000
+#define MATCH_AMO_MAXU 0xf4c38000
+#define MASK_AMO_MAXU 0xffff8000
+#define MATCH_AMOW_MAXU 0xf4838000
+#define MASK_AMOW_MAXU 0xffff8000
#define MATCH_SB 0xf2000000
-#define MASK_SB 0xfe007000
-#define MATCH_C_LT_D 0xd40062c0
-#define MASK_C_LT_D 0xfe007fe0
-#define MATCH_CVTU_W_S_RM 0xd4000560
-#define MASK_CVTU_W_S_RM 0xfff067e0
-#define MATCH_SUB_D_RM 0xd4006420
-#define MASK_SUB_D_RM 0xfe0067e0
-#define MATCH_SD 0xf2003000
-#define MASK_SD 0xfe007000
+#define MASK_SB 0xffc00000
+#define MATCH_C_LT_D 0xd58b0000
+#define MASK_C_LT_D 0xffff8000
+#define MATCH_CVTU_W_S_RM 0xd4458000
+#define MASK_CVTU_W_S_RM 0xffcffc00
+#define MATCH_SUB_D_RM 0xd5c08000
+#define MASK_SUB_D_RM 0xffcf8000
+#define MATCH_SD 0xf2c00000
+#define MASK_SD 0xffc00000