112771Sqtt2@cornell.edu// See LICENSE for license details.
212771Sqtt2@cornell.edu
312771Sqtt2@cornell.edu#ifndef RISCV_CSR_ENCODING_H
412771Sqtt2@cornell.edu#define RISCV_CSR_ENCODING_H
512771Sqtt2@cornell.edu
612771Sqtt2@cornell.edu#define MSTATUS_UIE         0x00000001
712771Sqtt2@cornell.edu#define MSTATUS_SIE         0x00000002
812771Sqtt2@cornell.edu#define MSTATUS_HIE         0x00000004
912771Sqtt2@cornell.edu#define MSTATUS_MIE         0x00000008
1012771Sqtt2@cornell.edu#define MSTATUS_UPIE        0x00000010
1112771Sqtt2@cornell.edu#define MSTATUS_SPIE        0x00000020
1212771Sqtt2@cornell.edu#define MSTATUS_HPIE        0x00000040
1312771Sqtt2@cornell.edu#define MSTATUS_MPIE        0x00000080
1412771Sqtt2@cornell.edu#define MSTATUS_SPP         0x00000100
1512771Sqtt2@cornell.edu#define MSTATUS_HPP         0x00000600
1612771Sqtt2@cornell.edu#define MSTATUS_MPP         0x00001800
1712771Sqtt2@cornell.edu#define MSTATUS_FS          0x00006000
1812771Sqtt2@cornell.edu#define MSTATUS_XS          0x00018000
1912771Sqtt2@cornell.edu#define MSTATUS_MPRV        0x00020000
2012771Sqtt2@cornell.edu#define MSTATUS_SUM         0x00040000
2112771Sqtt2@cornell.edu#define MSTATUS_MXR         0x00080000
2212771Sqtt2@cornell.edu#define MSTATUS_TVM         0x00100000
2312771Sqtt2@cornell.edu#define MSTATUS_TW          0x00200000
2412771Sqtt2@cornell.edu#define MSTATUS_TSR         0x00400000
2512771Sqtt2@cornell.edu#define MSTATUS32_SD        0x80000000
2612771Sqtt2@cornell.edu#define MSTATUS_UXL         0x0000000300000000
2712771Sqtt2@cornell.edu#define MSTATUS_SXL         0x0000000C00000000
2812771Sqtt2@cornell.edu#define MSTATUS64_SD        0x8000000000000000
2912771Sqtt2@cornell.edu
3012771Sqtt2@cornell.edu#define SSTATUS_UIE         0x00000001
3112771Sqtt2@cornell.edu#define SSTATUS_SIE         0x00000002
3212771Sqtt2@cornell.edu#define SSTATUS_UPIE        0x00000010
3312771Sqtt2@cornell.edu#define SSTATUS_SPIE        0x00000020
3412771Sqtt2@cornell.edu#define SSTATUS_SPP         0x00000100
3512771Sqtt2@cornell.edu#define SSTATUS_FS          0x00006000
3612771Sqtt2@cornell.edu#define SSTATUS_XS          0x00018000
3712771Sqtt2@cornell.edu#define SSTATUS_SUM         0x00040000
3812771Sqtt2@cornell.edu#define SSTATUS_MXR         0x00080000
3912771Sqtt2@cornell.edu#define SSTATUS32_SD        0x80000000
4012771Sqtt2@cornell.edu#define SSTATUS_UXL         0x0000000300000000
4112771Sqtt2@cornell.edu#define SSTATUS64_SD        0x8000000000000000
4212771Sqtt2@cornell.edu
4312771Sqtt2@cornell.edu#define DCSR_XDEBUGVER      (3U<<30)
4412771Sqtt2@cornell.edu#define DCSR_NDRESET        (1<<29)
4512771Sqtt2@cornell.edu#define DCSR_FULLRESET      (1<<28)
4612771Sqtt2@cornell.edu#define DCSR_EBREAKM        (1<<15)
4712771Sqtt2@cornell.edu#define DCSR_EBREAKH        (1<<14)
4812771Sqtt2@cornell.edu#define DCSR_EBREAKS        (1<<13)
4912771Sqtt2@cornell.edu#define DCSR_EBREAKU        (1<<12)
5012771Sqtt2@cornell.edu#define DCSR_STOPCYCLE      (1<<10)
5112771Sqtt2@cornell.edu#define DCSR_STOPTIME       (1<<9)
5212771Sqtt2@cornell.edu#define DCSR_CAUSE          (7<<6)
5312771Sqtt2@cornell.edu#define DCSR_DEBUGINT       (1<<5)
5412771Sqtt2@cornell.edu#define DCSR_HALT           (1<<3)
5512771Sqtt2@cornell.edu#define DCSR_STEP           (1<<2)
5612771Sqtt2@cornell.edu#define DCSR_PRV            (3<<0)
5712771Sqtt2@cornell.edu
5812771Sqtt2@cornell.edu#define DCSR_CAUSE_NONE     0
5912771Sqtt2@cornell.edu#define DCSR_CAUSE_SWBP     1
6012771Sqtt2@cornell.edu#define DCSR_CAUSE_HWBP     2
6112771Sqtt2@cornell.edu#define DCSR_CAUSE_DEBUGINT 3
6212771Sqtt2@cornell.edu#define DCSR_CAUSE_STEP     4
6312771Sqtt2@cornell.edu#define DCSR_CAUSE_HALT     5
6412771Sqtt2@cornell.edu
6512771Sqtt2@cornell.edu#define MCONTROL_TYPE(xlen)    (0xfULL<<((xlen)-4))
6612771Sqtt2@cornell.edu#define MCONTROL_DMODE(xlen)   (1ULL<<((xlen)-5))
6712771Sqtt2@cornell.edu#define MCONTROL_MASKMAX(xlen) (0x3fULL<<((xlen)-11))
6812771Sqtt2@cornell.edu
6912771Sqtt2@cornell.edu#define MCONTROL_SELECT     (1<<19)
7012771Sqtt2@cornell.edu#define MCONTROL_TIMING     (1<<18)
7112771Sqtt2@cornell.edu#define MCONTROL_ACTION     (0x3f<<12)
7212771Sqtt2@cornell.edu#define MCONTROL_CHAIN      (1<<11)
7312771Sqtt2@cornell.edu#define MCONTROL_MATCH      (0xf<<7)
7412771Sqtt2@cornell.edu#define MCONTROL_M          (1<<6)
7512771Sqtt2@cornell.edu#define MCONTROL_H          (1<<5)
7612771Sqtt2@cornell.edu#define MCONTROL_S          (1<<4)
7712771Sqtt2@cornell.edu#define MCONTROL_U          (1<<3)
7812771Sqtt2@cornell.edu#define MCONTROL_EXECUTE    (1<<2)
7912771Sqtt2@cornell.edu#define MCONTROL_STORE      (1<<1)
8012771Sqtt2@cornell.edu#define MCONTROL_LOAD       (1<<0)
8112771Sqtt2@cornell.edu
8212771Sqtt2@cornell.edu#define MCONTROL_TYPE_NONE      0
8312771Sqtt2@cornell.edu#define MCONTROL_TYPE_MATCH     2
8412771Sqtt2@cornell.edu
8512771Sqtt2@cornell.edu#define MCONTROL_ACTION_DEBUG_EXCEPTION   0
8612771Sqtt2@cornell.edu#define MCONTROL_ACTION_DEBUG_MODE        1
8712771Sqtt2@cornell.edu#define MCONTROL_ACTION_TRACE_START       2
8812771Sqtt2@cornell.edu#define MCONTROL_ACTION_TRACE_STOP        3
8912771Sqtt2@cornell.edu#define MCONTROL_ACTION_TRACE_EMIT        4
9012771Sqtt2@cornell.edu
9112771Sqtt2@cornell.edu#define MCONTROL_MATCH_EQUAL     0
9212771Sqtt2@cornell.edu#define MCONTROL_MATCH_NAPOT     1
9312771Sqtt2@cornell.edu#define MCONTROL_MATCH_GE        2
9412771Sqtt2@cornell.edu#define MCONTROL_MATCH_LT        3
9512771Sqtt2@cornell.edu#define MCONTROL_MATCH_MASK_LOW  4
9612771Sqtt2@cornell.edu#define MCONTROL_MATCH_MASK_HIGH 5
9712771Sqtt2@cornell.edu
9812771Sqtt2@cornell.edu#define MIP_SSIP            (1 << IRQ_S_SOFT)
9912771Sqtt2@cornell.edu#define MIP_HSIP            (1 << IRQ_H_SOFT)
10012771Sqtt2@cornell.edu#define MIP_MSIP            (1 << IRQ_M_SOFT)
10112771Sqtt2@cornell.edu#define MIP_STIP            (1 << IRQ_S_TIMER)
10212771Sqtt2@cornell.edu#define MIP_HTIP            (1 << IRQ_H_TIMER)
10312771Sqtt2@cornell.edu#define MIP_MTIP            (1 << IRQ_M_TIMER)
10412771Sqtt2@cornell.edu#define MIP_SEIP            (1 << IRQ_S_EXT)
10512771Sqtt2@cornell.edu#define MIP_HEIP            (1 << IRQ_H_EXT)
10612771Sqtt2@cornell.edu#define MIP_MEIP            (1 << IRQ_M_EXT)
10712771Sqtt2@cornell.edu
10812771Sqtt2@cornell.edu#define SIP_SSIP MIP_SSIP
10912771Sqtt2@cornell.edu#define SIP_STIP MIP_STIP
11012771Sqtt2@cornell.edu
11112771Sqtt2@cornell.edu#define PRV_U 0
11212771Sqtt2@cornell.edu#define PRV_S 1
11312771Sqtt2@cornell.edu#define PRV_H 2
11412771Sqtt2@cornell.edu#define PRV_M 3
11512771Sqtt2@cornell.edu
11612771Sqtt2@cornell.edu#define SATP32_MODE 0x80000000
11712771Sqtt2@cornell.edu#define SATP32_ASID 0x7FC00000
11812771Sqtt2@cornell.edu#define SATP32_PPN  0x003FFFFF
11912771Sqtt2@cornell.edu#define SATP64_MODE 0xF000000000000000
12012771Sqtt2@cornell.edu#define SATP64_ASID 0x0FFFF00000000000
12112771Sqtt2@cornell.edu#define SATP64_PPN  0x00000FFFFFFFFFFF
12212771Sqtt2@cornell.edu
12312771Sqtt2@cornell.edu#define SATP_MODE_OFF  0
12412771Sqtt2@cornell.edu#define SATP_MODE_SV32 1
12512771Sqtt2@cornell.edu#define SATP_MODE_SV39 8
12612771Sqtt2@cornell.edu#define SATP_MODE_SV48 9
12712771Sqtt2@cornell.edu#define SATP_MODE_SV57 10
12812771Sqtt2@cornell.edu#define SATP_MODE_SV64 11
12912771Sqtt2@cornell.edu
13012771Sqtt2@cornell.edu#define PMP_R     0x01
13112771Sqtt2@cornell.edu#define PMP_W     0x02
13212771Sqtt2@cornell.edu#define PMP_X     0x04
13312771Sqtt2@cornell.edu#define PMP_A     0x18
13412771Sqtt2@cornell.edu#define PMP_L     0x80
13512771Sqtt2@cornell.edu#define PMP_SHIFT 2
13612771Sqtt2@cornell.edu
13712771Sqtt2@cornell.edu#define PMP_TOR   0x08
13812771Sqtt2@cornell.edu#define PMP_NA4   0x10
13912771Sqtt2@cornell.edu#define PMP_NAPOT 0x18
14012771Sqtt2@cornell.edu
14112771Sqtt2@cornell.edu#define IRQ_S_SOFT   1
14212771Sqtt2@cornell.edu#define IRQ_H_SOFT   2
14312771Sqtt2@cornell.edu#define IRQ_M_SOFT   3
14412771Sqtt2@cornell.edu#define IRQ_S_TIMER  5
14512771Sqtt2@cornell.edu#define IRQ_H_TIMER  6
14612771Sqtt2@cornell.edu#define IRQ_M_TIMER  7
14712771Sqtt2@cornell.edu#define IRQ_S_EXT    9
14812771Sqtt2@cornell.edu#define IRQ_H_EXT    10
14912771Sqtt2@cornell.edu#define IRQ_M_EXT    11
15012771Sqtt2@cornell.edu#define IRQ_COP      12
15112771Sqtt2@cornell.edu#define IRQ_HOST     13
15212771Sqtt2@cornell.edu
15312771Sqtt2@cornell.edu#define DEFAULT_RSTVEC     0x00001000
15412771Sqtt2@cornell.edu#define CLINT_BASE         0x02000000
15512771Sqtt2@cornell.edu#define CLINT_SIZE         0x000c0000
15612771Sqtt2@cornell.edu#define EXT_IO_BASE        0x40000000
15712771Sqtt2@cornell.edu#define DRAM_BASE          0x80000000
15812771Sqtt2@cornell.edu
15912771Sqtt2@cornell.edu// page table entry (PTE) fields
16012771Sqtt2@cornell.edu#define PTE_V     0x001 // Valid
16112771Sqtt2@cornell.edu#define PTE_R     0x002 // Read
16212771Sqtt2@cornell.edu#define PTE_W     0x004 // Write
16312771Sqtt2@cornell.edu#define PTE_X     0x008 // Execute
16412771Sqtt2@cornell.edu#define PTE_U     0x010 // User
16512771Sqtt2@cornell.edu#define PTE_G     0x020 // Global
16612771Sqtt2@cornell.edu#define PTE_A     0x040 // Accessed
16712771Sqtt2@cornell.edu#define PTE_D     0x080 // Dirty
16812771Sqtt2@cornell.edu#define PTE_SOFT  0x300 // Reserved for Software
16912771Sqtt2@cornell.edu
17012771Sqtt2@cornell.edu#define PTE_PPN_SHIFT 10
17112771Sqtt2@cornell.edu
17212771Sqtt2@cornell.edu#define PTE_TABLE(PTE) (((PTE) & (PTE_V | PTE_R | PTE_W | PTE_X)) == PTE_V)
17312771Sqtt2@cornell.edu
17412771Sqtt2@cornell.edu#ifdef __riscv
17512771Sqtt2@cornell.edu
17612771Sqtt2@cornell.edu#if __riscv_xlen == 64
17712771Sqtt2@cornell.edu# define MSTATUS_SD MSTATUS64_SD
17812771Sqtt2@cornell.edu# define SSTATUS_SD SSTATUS64_SD
17912771Sqtt2@cornell.edu# define RISCV_PGLEVEL_BITS 9
18012771Sqtt2@cornell.edu# define SATP_MODE SATP64_MODE
18112771Sqtt2@cornell.edu#else
18212771Sqtt2@cornell.edu# define MSTATUS_SD MSTATUS32_SD
18312771Sqtt2@cornell.edu# define SSTATUS_SD SSTATUS32_SD
18412771Sqtt2@cornell.edu# define RISCV_PGLEVEL_BITS 10
18512771Sqtt2@cornell.edu# define SATP_MODE SATP32_MODE
18612771Sqtt2@cornell.edu#endif
18712771Sqtt2@cornell.edu#define RISCV_PGSHIFT 12
18812771Sqtt2@cornell.edu#define RISCV_PGSIZE (1 << RISCV_PGSHIFT)
18912771Sqtt2@cornell.edu
19012771Sqtt2@cornell.edu#ifndef __ASSEMBLER__
19112771Sqtt2@cornell.edu
19212771Sqtt2@cornell.edu#ifdef __GNUC__
19312771Sqtt2@cornell.edu
19412771Sqtt2@cornell.edu#define read_csr(reg) ({ unsigned long __tmp; \
19512771Sqtt2@cornell.edu  asm volatile ("csrr %0, " #reg : "=r"(__tmp)); \
19612771Sqtt2@cornell.edu  __tmp; })
19712771Sqtt2@cornell.edu
19812771Sqtt2@cornell.edu#define write_csr(reg, val) ({ \
19912771Sqtt2@cornell.edu  asm volatile ("csrw " #reg ", %0" :: "rK"(val)); })
20012771Sqtt2@cornell.edu
20112771Sqtt2@cornell.edu#define swap_csr(reg, val) ({ unsigned long __tmp; \
20212771Sqtt2@cornell.edu  asm volatile ("csrrw %0, " #reg ", %1" : "=r"(__tmp) : "rK"(val)); \
20312771Sqtt2@cornell.edu  __tmp; })
20412771Sqtt2@cornell.edu
20512771Sqtt2@cornell.edu#define set_csr(reg, bit) ({ unsigned long __tmp; \
20612771Sqtt2@cornell.edu  asm volatile ("csrrs %0, " #reg ", %1" : "=r"(__tmp) : "rK"(bit)); \
20712771Sqtt2@cornell.edu  __tmp; })
20812771Sqtt2@cornell.edu
20912771Sqtt2@cornell.edu#define clear_csr(reg, bit) ({ unsigned long __tmp; \
21012771Sqtt2@cornell.edu  asm volatile ("csrrc %0, " #reg ", %1" : "=r"(__tmp) : "rK"(bit)); \
21112771Sqtt2@cornell.edu  __tmp; })
21212771Sqtt2@cornell.edu
21312771Sqtt2@cornell.edu#define rdtime() read_csr(time)
21412771Sqtt2@cornell.edu#define rdcycle() read_csr(cycle)
21512771Sqtt2@cornell.edu#define rdinstret() read_csr(instret)
21612771Sqtt2@cornell.edu
21712771Sqtt2@cornell.edu#endif
21812771Sqtt2@cornell.edu
21912771Sqtt2@cornell.edu#endif
22012771Sqtt2@cornell.edu
22112771Sqtt2@cornell.edu#endif
22212771Sqtt2@cornell.edu
22312771Sqtt2@cornell.edu#endif
22412771Sqtt2@cornell.edu/* Automatically generated by parse-opcodes.  */
22512771Sqtt2@cornell.edu#ifndef RISCV_ENCODING_H
22612771Sqtt2@cornell.edu#define RISCV_ENCODING_H
22712771Sqtt2@cornell.edu#define MATCH_BEQ 0x63
22812771Sqtt2@cornell.edu#define MASK_BEQ  0x707f
22912771Sqtt2@cornell.edu#define MATCH_BNE 0x1063
23012771Sqtt2@cornell.edu#define MASK_BNE  0x707f
23112771Sqtt2@cornell.edu#define MATCH_BLT 0x4063
23212771Sqtt2@cornell.edu#define MASK_BLT  0x707f
23312771Sqtt2@cornell.edu#define MATCH_BGE 0x5063
23412771Sqtt2@cornell.edu#define MASK_BGE  0x707f
23512771Sqtt2@cornell.edu#define MATCH_BLTU 0x6063
23612771Sqtt2@cornell.edu#define MASK_BLTU  0x707f
23712771Sqtt2@cornell.edu#define MATCH_BGEU 0x7063
23812771Sqtt2@cornell.edu#define MASK_BGEU  0x707f
23912771Sqtt2@cornell.edu#define MATCH_JALR 0x67
24012771Sqtt2@cornell.edu#define MASK_JALR  0x707f
24112771Sqtt2@cornell.edu#define MATCH_JAL 0x6f
24212771Sqtt2@cornell.edu#define MASK_JAL  0x7f
24312771Sqtt2@cornell.edu#define MATCH_LUI 0x37
24412771Sqtt2@cornell.edu#define MASK_LUI  0x7f
24512771Sqtt2@cornell.edu#define MATCH_AUIPC 0x17
24612771Sqtt2@cornell.edu#define MASK_AUIPC  0x7f
24712771Sqtt2@cornell.edu#define MATCH_ADDI 0x13
24812771Sqtt2@cornell.edu#define MASK_ADDI  0x707f
24912771Sqtt2@cornell.edu#define MATCH_SLLI 0x1013
25012771Sqtt2@cornell.edu#define MASK_SLLI  0xfc00707f
25112771Sqtt2@cornell.edu#define MATCH_SLTI 0x2013
25212771Sqtt2@cornell.edu#define MASK_SLTI  0x707f
25312771Sqtt2@cornell.edu#define MATCH_SLTIU 0x3013
25412771Sqtt2@cornell.edu#define MASK_SLTIU  0x707f
25512771Sqtt2@cornell.edu#define MATCH_XORI 0x4013
25612771Sqtt2@cornell.edu#define MASK_XORI  0x707f
25712771Sqtt2@cornell.edu#define MATCH_SRLI 0x5013
25812771Sqtt2@cornell.edu#define MASK_SRLI  0xfc00707f
25912771Sqtt2@cornell.edu#define MATCH_SRAI 0x40005013
26012771Sqtt2@cornell.edu#define MASK_SRAI  0xfc00707f
26112771Sqtt2@cornell.edu#define MATCH_ORI 0x6013
26212771Sqtt2@cornell.edu#define MASK_ORI  0x707f
26312771Sqtt2@cornell.edu#define MATCH_ANDI 0x7013
26412771Sqtt2@cornell.edu#define MASK_ANDI  0x707f
26512771Sqtt2@cornell.edu#define MATCH_ADD 0x33
26612771Sqtt2@cornell.edu#define MASK_ADD  0xfe00707f
26712771Sqtt2@cornell.edu#define MATCH_SUB 0x40000033
26812771Sqtt2@cornell.edu#define MASK_SUB  0xfe00707f
26912771Sqtt2@cornell.edu#define MATCH_SLL 0x1033
27012771Sqtt2@cornell.edu#define MASK_SLL  0xfe00707f
27112771Sqtt2@cornell.edu#define MATCH_SLT 0x2033
27212771Sqtt2@cornell.edu#define MASK_SLT  0xfe00707f
27312771Sqtt2@cornell.edu#define MATCH_SLTU 0x3033
27412771Sqtt2@cornell.edu#define MASK_SLTU  0xfe00707f
27512771Sqtt2@cornell.edu#define MATCH_XOR 0x4033
27612771Sqtt2@cornell.edu#define MASK_XOR  0xfe00707f
27712771Sqtt2@cornell.edu#define MATCH_SRL 0x5033
27812771Sqtt2@cornell.edu#define MASK_SRL  0xfe00707f
27912771Sqtt2@cornell.edu#define MATCH_SRA 0x40005033
28012771Sqtt2@cornell.edu#define MASK_SRA  0xfe00707f
28112771Sqtt2@cornell.edu#define MATCH_OR 0x6033
28212771Sqtt2@cornell.edu#define MASK_OR  0xfe00707f
28312771Sqtt2@cornell.edu#define MATCH_AND 0x7033
28412771Sqtt2@cornell.edu#define MASK_AND  0xfe00707f
28512771Sqtt2@cornell.edu#define MATCH_ADDIW 0x1b
28612771Sqtt2@cornell.edu#define MASK_ADDIW  0x707f
28712771Sqtt2@cornell.edu#define MATCH_SLLIW 0x101b
28812771Sqtt2@cornell.edu#define MASK_SLLIW  0xfe00707f
28912771Sqtt2@cornell.edu#define MATCH_SRLIW 0x501b
29012771Sqtt2@cornell.edu#define MASK_SRLIW  0xfe00707f
29112771Sqtt2@cornell.edu#define MATCH_SRAIW 0x4000501b
29212771Sqtt2@cornell.edu#define MASK_SRAIW  0xfe00707f
29312771Sqtt2@cornell.edu#define MATCH_ADDW 0x3b
29412771Sqtt2@cornell.edu#define MASK_ADDW  0xfe00707f
29512771Sqtt2@cornell.edu#define MATCH_SUBW 0x4000003b
29612771Sqtt2@cornell.edu#define MASK_SUBW  0xfe00707f
29712771Sqtt2@cornell.edu#define MATCH_SLLW 0x103b
29812771Sqtt2@cornell.edu#define MASK_SLLW  0xfe00707f
29912771Sqtt2@cornell.edu#define MATCH_SRLW 0x503b
30012771Sqtt2@cornell.edu#define MASK_SRLW  0xfe00707f
30112771Sqtt2@cornell.edu#define MATCH_SRAW 0x4000503b
30212771Sqtt2@cornell.edu#define MASK_SRAW  0xfe00707f
30312771Sqtt2@cornell.edu#define MATCH_LB 0x3
30412771Sqtt2@cornell.edu#define MASK_LB  0x707f
30512771Sqtt2@cornell.edu#define MATCH_LH 0x1003
30612771Sqtt2@cornell.edu#define MASK_LH  0x707f
30712771Sqtt2@cornell.edu#define MATCH_LW 0x2003
30812771Sqtt2@cornell.edu#define MASK_LW  0x707f
30912771Sqtt2@cornell.edu#define MATCH_LD 0x3003
31012771Sqtt2@cornell.edu#define MASK_LD  0x707f
31112771Sqtt2@cornell.edu#define MATCH_LBU 0x4003
31212771Sqtt2@cornell.edu#define MASK_LBU  0x707f
31312771Sqtt2@cornell.edu#define MATCH_LHU 0x5003
31412771Sqtt2@cornell.edu#define MASK_LHU  0x707f
31512771Sqtt2@cornell.edu#define MATCH_LWU 0x6003
31612771Sqtt2@cornell.edu#define MASK_LWU  0x707f
31712771Sqtt2@cornell.edu#define MATCH_SB 0x23
31812771Sqtt2@cornell.edu#define MASK_SB  0x707f
31912771Sqtt2@cornell.edu#define MATCH_SH 0x1023
32012771Sqtt2@cornell.edu#define MASK_SH  0x707f
32112771Sqtt2@cornell.edu#define MATCH_SW 0x2023
32212771Sqtt2@cornell.edu#define MASK_SW  0x707f
32312771Sqtt2@cornell.edu#define MATCH_SD 0x3023
32412771Sqtt2@cornell.edu#define MASK_SD  0x707f
32512771Sqtt2@cornell.edu#define MATCH_FENCE 0xf
32612771Sqtt2@cornell.edu#define MASK_FENCE  0x707f
32712771Sqtt2@cornell.edu#define MATCH_FENCE_I 0x100f
32812771Sqtt2@cornell.edu#define MASK_FENCE_I  0x707f
32912771Sqtt2@cornell.edu#define MATCH_MUL 0x2000033
33012771Sqtt2@cornell.edu#define MASK_MUL  0xfe00707f
33112771Sqtt2@cornell.edu#define MATCH_MULH 0x2001033
33212771Sqtt2@cornell.edu#define MASK_MULH  0xfe00707f
33312771Sqtt2@cornell.edu#define MATCH_MULHSU 0x2002033
33412771Sqtt2@cornell.edu#define MASK_MULHSU  0xfe00707f
33512771Sqtt2@cornell.edu#define MATCH_MULHU 0x2003033
33612771Sqtt2@cornell.edu#define MASK_MULHU  0xfe00707f
33712771Sqtt2@cornell.edu#define MATCH_DIV 0x2004033
33812771Sqtt2@cornell.edu#define MASK_DIV  0xfe00707f
33912771Sqtt2@cornell.edu#define MATCH_DIVU 0x2005033
34012771Sqtt2@cornell.edu#define MASK_DIVU  0xfe00707f
34112771Sqtt2@cornell.edu#define MATCH_REM 0x2006033
34212771Sqtt2@cornell.edu#define MASK_REM  0xfe00707f
34312771Sqtt2@cornell.edu#define MATCH_REMU 0x2007033
34412771Sqtt2@cornell.edu#define MASK_REMU  0xfe00707f
34512771Sqtt2@cornell.edu#define MATCH_MULW 0x200003b
34612771Sqtt2@cornell.edu#define MASK_MULW  0xfe00707f
34712771Sqtt2@cornell.edu#define MATCH_DIVW 0x200403b
34812771Sqtt2@cornell.edu#define MASK_DIVW  0xfe00707f
34912771Sqtt2@cornell.edu#define MATCH_DIVUW 0x200503b
35012771Sqtt2@cornell.edu#define MASK_DIVUW  0xfe00707f
35112771Sqtt2@cornell.edu#define MATCH_REMW 0x200603b
35212771Sqtt2@cornell.edu#define MASK_REMW  0xfe00707f
35312771Sqtt2@cornell.edu#define MATCH_REMUW 0x200703b
35412771Sqtt2@cornell.edu#define MASK_REMUW  0xfe00707f
35512771Sqtt2@cornell.edu#define MATCH_AMOADD_W 0x202f
35612771Sqtt2@cornell.edu#define MASK_AMOADD_W  0xf800707f
35712771Sqtt2@cornell.edu#define MATCH_AMOXOR_W 0x2000202f
35812771Sqtt2@cornell.edu#define MASK_AMOXOR_W  0xf800707f
35912771Sqtt2@cornell.edu#define MATCH_AMOOR_W 0x4000202f
36012771Sqtt2@cornell.edu#define MASK_AMOOR_W  0xf800707f
36112771Sqtt2@cornell.edu#define MATCH_AMOAND_W 0x6000202f
36212771Sqtt2@cornell.edu#define MASK_AMOAND_W  0xf800707f
36312771Sqtt2@cornell.edu#define MATCH_AMOMIN_W 0x8000202f
36412771Sqtt2@cornell.edu#define MASK_AMOMIN_W  0xf800707f
36512771Sqtt2@cornell.edu#define MATCH_AMOMAX_W 0xa000202f
36612771Sqtt2@cornell.edu#define MASK_AMOMAX_W  0xf800707f
36712771Sqtt2@cornell.edu#define MATCH_AMOMINU_W 0xc000202f
36812771Sqtt2@cornell.edu#define MASK_AMOMINU_W  0xf800707f
36912771Sqtt2@cornell.edu#define MATCH_AMOMAXU_W 0xe000202f
37012771Sqtt2@cornell.edu#define MASK_AMOMAXU_W  0xf800707f
37112771Sqtt2@cornell.edu#define MATCH_AMOSWAP_W 0x800202f
37212771Sqtt2@cornell.edu#define MASK_AMOSWAP_W  0xf800707f
37312771Sqtt2@cornell.edu#define MATCH_LR_W 0x1000202f
37412771Sqtt2@cornell.edu#define MASK_LR_W  0xf9f0707f
37512771Sqtt2@cornell.edu#define MATCH_SC_W 0x1800202f
37612771Sqtt2@cornell.edu#define MASK_SC_W  0xf800707f
37712771Sqtt2@cornell.edu#define MATCH_AMOADD_D 0x302f
37812771Sqtt2@cornell.edu#define MASK_AMOADD_D  0xf800707f
37912771Sqtt2@cornell.edu#define MATCH_AMOXOR_D 0x2000302f
38012771Sqtt2@cornell.edu#define MASK_AMOXOR_D  0xf800707f
38112771Sqtt2@cornell.edu#define MATCH_AMOOR_D 0x4000302f
38212771Sqtt2@cornell.edu#define MASK_AMOOR_D  0xf800707f
38312771Sqtt2@cornell.edu#define MATCH_AMOAND_D 0x6000302f
38412771Sqtt2@cornell.edu#define MASK_AMOAND_D  0xf800707f
38512771Sqtt2@cornell.edu#define MATCH_AMOMIN_D 0x8000302f
38612771Sqtt2@cornell.edu#define MASK_AMOMIN_D  0xf800707f
38712771Sqtt2@cornell.edu#define MATCH_AMOMAX_D 0xa000302f
38812771Sqtt2@cornell.edu#define MASK_AMOMAX_D  0xf800707f
38912771Sqtt2@cornell.edu#define MATCH_AMOMINU_D 0xc000302f
39012771Sqtt2@cornell.edu#define MASK_AMOMINU_D  0xf800707f
39112771Sqtt2@cornell.edu#define MATCH_AMOMAXU_D 0xe000302f
39212771Sqtt2@cornell.edu#define MASK_AMOMAXU_D  0xf800707f
39312771Sqtt2@cornell.edu#define MATCH_AMOSWAP_D 0x800302f
39412771Sqtt2@cornell.edu#define MASK_AMOSWAP_D  0xf800707f
39512771Sqtt2@cornell.edu#define MATCH_LR_D 0x1000302f
39612771Sqtt2@cornell.edu#define MASK_LR_D  0xf9f0707f
39712771Sqtt2@cornell.edu#define MATCH_SC_D 0x1800302f
39812771Sqtt2@cornell.edu#define MASK_SC_D  0xf800707f
39912771Sqtt2@cornell.edu#define MATCH_ECALL 0x73
40012771Sqtt2@cornell.edu#define MASK_ECALL  0xffffffff
40112771Sqtt2@cornell.edu#define MATCH_EBREAK 0x100073
40212771Sqtt2@cornell.edu#define MASK_EBREAK  0xffffffff
40312771Sqtt2@cornell.edu#define MATCH_URET 0x200073
40412771Sqtt2@cornell.edu#define MASK_URET  0xffffffff
40512771Sqtt2@cornell.edu#define MATCH_SRET 0x10200073
40612771Sqtt2@cornell.edu#define MASK_SRET  0xffffffff
40712771Sqtt2@cornell.edu#define MATCH_MRET 0x30200073
40812771Sqtt2@cornell.edu#define MASK_MRET  0xffffffff
40912771Sqtt2@cornell.edu#define MATCH_DRET 0x7b200073
41012771Sqtt2@cornell.edu#define MASK_DRET  0xffffffff
41112771Sqtt2@cornell.edu#define MATCH_SFENCE_VMA 0x12000073
41212771Sqtt2@cornell.edu#define MASK_SFENCE_VMA  0xfe007fff
41312771Sqtt2@cornell.edu#define MATCH_WFI 0x10500073
41412771Sqtt2@cornell.edu#define MASK_WFI  0xffffffff
41512771Sqtt2@cornell.edu#define MATCH_CSRRW 0x1073
41612771Sqtt2@cornell.edu#define MASK_CSRRW  0x707f
41712771Sqtt2@cornell.edu#define MATCH_CSRRS 0x2073
41812771Sqtt2@cornell.edu#define MASK_CSRRS  0x707f
41912771Sqtt2@cornell.edu#define MATCH_CSRRC 0x3073
42012771Sqtt2@cornell.edu#define MASK_CSRRC  0x707f
42112771Sqtt2@cornell.edu#define MATCH_CSRRWI 0x5073
42212771Sqtt2@cornell.edu#define MASK_CSRRWI  0x707f
42312771Sqtt2@cornell.edu#define MATCH_CSRRSI 0x6073
42412771Sqtt2@cornell.edu#define MASK_CSRRSI  0x707f
42512771Sqtt2@cornell.edu#define MATCH_CSRRCI 0x7073
42612771Sqtt2@cornell.edu#define MASK_CSRRCI  0x707f
42712771Sqtt2@cornell.edu#define MATCH_FADD_S 0x53
42812771Sqtt2@cornell.edu#define MASK_FADD_S  0xfe00007f
42912771Sqtt2@cornell.edu#define MATCH_FSUB_S 0x8000053
43012771Sqtt2@cornell.edu#define MASK_FSUB_S  0xfe00007f
43112771Sqtt2@cornell.edu#define MATCH_FMUL_S 0x10000053
43212771Sqtt2@cornell.edu#define MASK_FMUL_S  0xfe00007f
43312771Sqtt2@cornell.edu#define MATCH_FDIV_S 0x18000053
43412771Sqtt2@cornell.edu#define MASK_FDIV_S  0xfe00007f
43512771Sqtt2@cornell.edu#define MATCH_FSGNJ_S 0x20000053
43612771Sqtt2@cornell.edu#define MASK_FSGNJ_S  0xfe00707f
43712771Sqtt2@cornell.edu#define MATCH_FSGNJN_S 0x20001053
43812771Sqtt2@cornell.edu#define MASK_FSGNJN_S  0xfe00707f
43912771Sqtt2@cornell.edu#define MATCH_FSGNJX_S 0x20002053
44012771Sqtt2@cornell.edu#define MASK_FSGNJX_S  0xfe00707f
44112771Sqtt2@cornell.edu#define MATCH_FMIN_S 0x28000053
44212771Sqtt2@cornell.edu#define MASK_FMIN_S  0xfe00707f
44312771Sqtt2@cornell.edu#define MATCH_FMAX_S 0x28001053
44412771Sqtt2@cornell.edu#define MASK_FMAX_S  0xfe00707f
44512771Sqtt2@cornell.edu#define MATCH_FSQRT_S 0x58000053
44612771Sqtt2@cornell.edu#define MASK_FSQRT_S  0xfff0007f
44712771Sqtt2@cornell.edu#define MATCH_FADD_D 0x2000053
44812771Sqtt2@cornell.edu#define MASK_FADD_D  0xfe00007f
44912771Sqtt2@cornell.edu#define MATCH_FSUB_D 0xa000053
45012771Sqtt2@cornell.edu#define MASK_FSUB_D  0xfe00007f
45112771Sqtt2@cornell.edu#define MATCH_FMUL_D 0x12000053
45212771Sqtt2@cornell.edu#define MASK_FMUL_D  0xfe00007f
45312771Sqtt2@cornell.edu#define MATCH_FDIV_D 0x1a000053
45412771Sqtt2@cornell.edu#define MASK_FDIV_D  0xfe00007f
45512771Sqtt2@cornell.edu#define MATCH_FSGNJ_D 0x22000053
45612771Sqtt2@cornell.edu#define MASK_FSGNJ_D  0xfe00707f
45712771Sqtt2@cornell.edu#define MATCH_FSGNJN_D 0x22001053
45812771Sqtt2@cornell.edu#define MASK_FSGNJN_D  0xfe00707f
45912771Sqtt2@cornell.edu#define MATCH_FSGNJX_D 0x22002053
46012771Sqtt2@cornell.edu#define MASK_FSGNJX_D  0xfe00707f
46112771Sqtt2@cornell.edu#define MATCH_FMIN_D 0x2a000053
46212771Sqtt2@cornell.edu#define MASK_FMIN_D  0xfe00707f
46312771Sqtt2@cornell.edu#define MATCH_FMAX_D 0x2a001053
46412771Sqtt2@cornell.edu#define MASK_FMAX_D  0xfe00707f
46512771Sqtt2@cornell.edu#define MATCH_FCVT_S_D 0x40100053
46612771Sqtt2@cornell.edu#define MASK_FCVT_S_D  0xfff0007f
46712771Sqtt2@cornell.edu#define MATCH_FCVT_D_S 0x42000053
46812771Sqtt2@cornell.edu#define MASK_FCVT_D_S  0xfff0007f
46912771Sqtt2@cornell.edu#define MATCH_FSQRT_D 0x5a000053
47012771Sqtt2@cornell.edu#define MASK_FSQRT_D  0xfff0007f
47112771Sqtt2@cornell.edu#define MATCH_FADD_Q 0x6000053
47212771Sqtt2@cornell.edu#define MASK_FADD_Q  0xfe00007f
47312771Sqtt2@cornell.edu#define MATCH_FSUB_Q 0xe000053
47412771Sqtt2@cornell.edu#define MASK_FSUB_Q  0xfe00007f
47512771Sqtt2@cornell.edu#define MATCH_FMUL_Q 0x16000053
47612771Sqtt2@cornell.edu#define MASK_FMUL_Q  0xfe00007f
47712771Sqtt2@cornell.edu#define MATCH_FDIV_Q 0x1e000053
47812771Sqtt2@cornell.edu#define MASK_FDIV_Q  0xfe00007f
47912771Sqtt2@cornell.edu#define MATCH_FSGNJ_Q 0x26000053
48012771Sqtt2@cornell.edu#define MASK_FSGNJ_Q  0xfe00707f
48112771Sqtt2@cornell.edu#define MATCH_FSGNJN_Q 0x26001053
48212771Sqtt2@cornell.edu#define MASK_FSGNJN_Q  0xfe00707f
48312771Sqtt2@cornell.edu#define MATCH_FSGNJX_Q 0x26002053
48412771Sqtt2@cornell.edu#define MASK_FSGNJX_Q  0xfe00707f
48512771Sqtt2@cornell.edu#define MATCH_FMIN_Q 0x2e000053
48612771Sqtt2@cornell.edu#define MASK_FMIN_Q  0xfe00707f
48712771Sqtt2@cornell.edu#define MATCH_FMAX_Q 0x2e001053
48812771Sqtt2@cornell.edu#define MASK_FMAX_Q  0xfe00707f
48912771Sqtt2@cornell.edu#define MATCH_FCVT_S_Q 0x40300053
49012771Sqtt2@cornell.edu#define MASK_FCVT_S_Q  0xfff0007f
49112771Sqtt2@cornell.edu#define MATCH_FCVT_Q_S 0x46000053
49212771Sqtt2@cornell.edu#define MASK_FCVT_Q_S  0xfff0007f
49312771Sqtt2@cornell.edu#define MATCH_FCVT_D_Q 0x42300053
49412771Sqtt2@cornell.edu#define MASK_FCVT_D_Q  0xfff0007f
49512771Sqtt2@cornell.edu#define MATCH_FCVT_Q_D 0x46100053
49612771Sqtt2@cornell.edu#define MASK_FCVT_Q_D  0xfff0007f
49712771Sqtt2@cornell.edu#define MATCH_FSQRT_Q 0x5e000053
49812771Sqtt2@cornell.edu#define MASK_FSQRT_Q  0xfff0007f
49912771Sqtt2@cornell.edu#define MATCH_FLE_S 0xa0000053
50012771Sqtt2@cornell.edu#define MASK_FLE_S  0xfe00707f
50112771Sqtt2@cornell.edu#define MATCH_FLT_S 0xa0001053
50212771Sqtt2@cornell.edu#define MASK_FLT_S  0xfe00707f
50312771Sqtt2@cornell.edu#define MATCH_FEQ_S 0xa0002053
50412771Sqtt2@cornell.edu#define MASK_FEQ_S  0xfe00707f
50512771Sqtt2@cornell.edu#define MATCH_FLE_D 0xa2000053
50612771Sqtt2@cornell.edu#define MASK_FLE_D  0xfe00707f
50712771Sqtt2@cornell.edu#define MATCH_FLT_D 0xa2001053
50812771Sqtt2@cornell.edu#define MASK_FLT_D  0xfe00707f
50912771Sqtt2@cornell.edu#define MATCH_FEQ_D 0xa2002053
51012771Sqtt2@cornell.edu#define MASK_FEQ_D  0xfe00707f
51112771Sqtt2@cornell.edu#define MATCH_FLE_Q 0xa6000053
51212771Sqtt2@cornell.edu#define MASK_FLE_Q  0xfe00707f
51312771Sqtt2@cornell.edu#define MATCH_FLT_Q 0xa6001053
51412771Sqtt2@cornell.edu#define MASK_FLT_Q  0xfe00707f
51512771Sqtt2@cornell.edu#define MATCH_FEQ_Q 0xa6002053
51612771Sqtt2@cornell.edu#define MASK_FEQ_Q  0xfe00707f
51712771Sqtt2@cornell.edu#define MATCH_FCVT_W_S 0xc0000053
51812771Sqtt2@cornell.edu#define MASK_FCVT_W_S  0xfff0007f
51912771Sqtt2@cornell.edu#define MATCH_FCVT_WU_S 0xc0100053
52012771Sqtt2@cornell.edu#define MASK_FCVT_WU_S  0xfff0007f
52112771Sqtt2@cornell.edu#define MATCH_FCVT_L_S 0xc0200053
52212771Sqtt2@cornell.edu#define MASK_FCVT_L_S  0xfff0007f
52312771Sqtt2@cornell.edu#define MATCH_FCVT_LU_S 0xc0300053
52412771Sqtt2@cornell.edu#define MASK_FCVT_LU_S  0xfff0007f
52512771Sqtt2@cornell.edu#define MATCH_FMV_X_W 0xe0000053
52612771Sqtt2@cornell.edu#define MASK_FMV_X_W  0xfff0707f
52712771Sqtt2@cornell.edu#define MATCH_FCLASS_S 0xe0001053
52812771Sqtt2@cornell.edu#define MASK_FCLASS_S  0xfff0707f
52912771Sqtt2@cornell.edu#define MATCH_FCVT_W_D 0xc2000053
53012771Sqtt2@cornell.edu#define MASK_FCVT_W_D  0xfff0007f
53112771Sqtt2@cornell.edu#define MATCH_FCVT_WU_D 0xc2100053
53212771Sqtt2@cornell.edu#define MASK_FCVT_WU_D  0xfff0007f
53312771Sqtt2@cornell.edu#define MATCH_FCVT_L_D 0xc2200053
53412771Sqtt2@cornell.edu#define MASK_FCVT_L_D  0xfff0007f
53512771Sqtt2@cornell.edu#define MATCH_FCVT_LU_D 0xc2300053
53612771Sqtt2@cornell.edu#define MASK_FCVT_LU_D  0xfff0007f
53712771Sqtt2@cornell.edu#define MATCH_FMV_X_D 0xe2000053
53812771Sqtt2@cornell.edu#define MASK_FMV_X_D  0xfff0707f
53912771Sqtt2@cornell.edu#define MATCH_FCLASS_D 0xe2001053
54012771Sqtt2@cornell.edu#define MASK_FCLASS_D  0xfff0707f
54112771Sqtt2@cornell.edu#define MATCH_FCVT_W_Q 0xc6000053
54212771Sqtt2@cornell.edu#define MASK_FCVT_W_Q  0xfff0007f
54312771Sqtt2@cornell.edu#define MATCH_FCVT_WU_Q 0xc6100053
54412771Sqtt2@cornell.edu#define MASK_FCVT_WU_Q  0xfff0007f
54512771Sqtt2@cornell.edu#define MATCH_FCVT_L_Q 0xc6200053
54612771Sqtt2@cornell.edu#define MASK_FCVT_L_Q  0xfff0007f
54712771Sqtt2@cornell.edu#define MATCH_FCVT_LU_Q 0xc6300053
54812771Sqtt2@cornell.edu#define MASK_FCVT_LU_Q  0xfff0007f
54912771Sqtt2@cornell.edu#define MATCH_FMV_X_Q 0xe6000053
55012771Sqtt2@cornell.edu#define MASK_FMV_X_Q  0xfff0707f
55112771Sqtt2@cornell.edu#define MATCH_FCLASS_Q 0xe6001053
55212771Sqtt2@cornell.edu#define MASK_FCLASS_Q  0xfff0707f
55312771Sqtt2@cornell.edu#define MATCH_FCVT_S_W 0xd0000053
55412771Sqtt2@cornell.edu#define MASK_FCVT_S_W  0xfff0007f
55512771Sqtt2@cornell.edu#define MATCH_FCVT_S_WU 0xd0100053
55612771Sqtt2@cornell.edu#define MASK_FCVT_S_WU  0xfff0007f
55712771Sqtt2@cornell.edu#define MATCH_FCVT_S_L 0xd0200053
55812771Sqtt2@cornell.edu#define MASK_FCVT_S_L  0xfff0007f
55912771Sqtt2@cornell.edu#define MATCH_FCVT_S_LU 0xd0300053
56012771Sqtt2@cornell.edu#define MASK_FCVT_S_LU  0xfff0007f
56112771Sqtt2@cornell.edu#define MATCH_FMV_W_X 0xf0000053
56212771Sqtt2@cornell.edu#define MASK_FMV_W_X  0xfff0707f
56312771Sqtt2@cornell.edu#define MATCH_FCVT_D_W 0xd2000053
56412771Sqtt2@cornell.edu#define MASK_FCVT_D_W  0xfff0007f
56512771Sqtt2@cornell.edu#define MATCH_FCVT_D_WU 0xd2100053
56612771Sqtt2@cornell.edu#define MASK_FCVT_D_WU  0xfff0007f
56712771Sqtt2@cornell.edu#define MATCH_FCVT_D_L 0xd2200053
56812771Sqtt2@cornell.edu#define MASK_FCVT_D_L  0xfff0007f
56912771Sqtt2@cornell.edu#define MATCH_FCVT_D_LU 0xd2300053
57012771Sqtt2@cornell.edu#define MASK_FCVT_D_LU  0xfff0007f
57112771Sqtt2@cornell.edu#define MATCH_FMV_D_X 0xf2000053
57212771Sqtt2@cornell.edu#define MASK_FMV_D_X  0xfff0707f
57312771Sqtt2@cornell.edu#define MATCH_FCVT_Q_W 0xd6000053
57412771Sqtt2@cornell.edu#define MASK_FCVT_Q_W  0xfff0007f
57512771Sqtt2@cornell.edu#define MATCH_FCVT_Q_WU 0xd6100053
57612771Sqtt2@cornell.edu#define MASK_FCVT_Q_WU  0xfff0007f
57712771Sqtt2@cornell.edu#define MATCH_FCVT_Q_L 0xd6200053
57812771Sqtt2@cornell.edu#define MASK_FCVT_Q_L  0xfff0007f
57912771Sqtt2@cornell.edu#define MATCH_FCVT_Q_LU 0xd6300053
58012771Sqtt2@cornell.edu#define MASK_FCVT_Q_LU  0xfff0007f
58112771Sqtt2@cornell.edu#define MATCH_FMV_Q_X 0xf6000053
58212771Sqtt2@cornell.edu#define MASK_FMV_Q_X  0xfff0707f
58312771Sqtt2@cornell.edu#define MATCH_FLW 0x2007
58412771Sqtt2@cornell.edu#define MASK_FLW  0x707f
58512771Sqtt2@cornell.edu#define MATCH_FLD 0x3007
58612771Sqtt2@cornell.edu#define MASK_FLD  0x707f
58712771Sqtt2@cornell.edu#define MATCH_FLQ 0x4007
58812771Sqtt2@cornell.edu#define MASK_FLQ  0x707f
58912771Sqtt2@cornell.edu#define MATCH_FSW 0x2027
59012771Sqtt2@cornell.edu#define MASK_FSW  0x707f
59112771Sqtt2@cornell.edu#define MATCH_FSD 0x3027
59212771Sqtt2@cornell.edu#define MASK_FSD  0x707f
59312771Sqtt2@cornell.edu#define MATCH_FSQ 0x4027
59412771Sqtt2@cornell.edu#define MASK_FSQ  0x707f
59512771Sqtt2@cornell.edu#define MATCH_FMADD_S 0x43
59612771Sqtt2@cornell.edu#define MASK_FMADD_S  0x600007f
59712771Sqtt2@cornell.edu#define MATCH_FMSUB_S 0x47
59812771Sqtt2@cornell.edu#define MASK_FMSUB_S  0x600007f
59912771Sqtt2@cornell.edu#define MATCH_FNMSUB_S 0x4b
60012771Sqtt2@cornell.edu#define MASK_FNMSUB_S  0x600007f
60112771Sqtt2@cornell.edu#define MATCH_FNMADD_S 0x4f
60212771Sqtt2@cornell.edu#define MASK_FNMADD_S  0x600007f
60312771Sqtt2@cornell.edu#define MATCH_FMADD_D 0x2000043
60412771Sqtt2@cornell.edu#define MASK_FMADD_D  0x600007f
60512771Sqtt2@cornell.edu#define MATCH_FMSUB_D 0x2000047
60612771Sqtt2@cornell.edu#define MASK_FMSUB_D  0x600007f
60712771Sqtt2@cornell.edu#define MATCH_FNMSUB_D 0x200004b
60812771Sqtt2@cornell.edu#define MASK_FNMSUB_D  0x600007f
60912771Sqtt2@cornell.edu#define MATCH_FNMADD_D 0x200004f
61012771Sqtt2@cornell.edu#define MASK_FNMADD_D  0x600007f
61112771Sqtt2@cornell.edu#define MATCH_FMADD_Q 0x6000043
61212771Sqtt2@cornell.edu#define MASK_FMADD_Q  0x600007f
61312771Sqtt2@cornell.edu#define MATCH_FMSUB_Q 0x6000047
61412771Sqtt2@cornell.edu#define MASK_FMSUB_Q  0x600007f
61512771Sqtt2@cornell.edu#define MATCH_FNMSUB_Q 0x600004b
61612771Sqtt2@cornell.edu#define MASK_FNMSUB_Q  0x600007f
61712771Sqtt2@cornell.edu#define MATCH_FNMADD_Q 0x600004f
61812771Sqtt2@cornell.edu#define MASK_FNMADD_Q  0x600007f
61912771Sqtt2@cornell.edu#define MATCH_C_NOP 0x1
62012771Sqtt2@cornell.edu#define MASK_C_NOP  0xffff
62112771Sqtt2@cornell.edu#define MATCH_C_ADDI16SP 0x6101
62212771Sqtt2@cornell.edu#define MASK_C_ADDI16SP  0xef83
62312771Sqtt2@cornell.edu#define MATCH_C_JR 0x8002
62412771Sqtt2@cornell.edu#define MASK_C_JR  0xf07f
62512771Sqtt2@cornell.edu#define MATCH_C_JALR 0x9002
62612771Sqtt2@cornell.edu#define MASK_C_JALR  0xf07f
62712771Sqtt2@cornell.edu#define MATCH_C_EBREAK 0x9002
62812771Sqtt2@cornell.edu#define MASK_C_EBREAK  0xffff
62912771Sqtt2@cornell.edu#define MATCH_C_LD 0x6000
63012771Sqtt2@cornell.edu#define MASK_C_LD  0xe003
63112771Sqtt2@cornell.edu#define MATCH_C_SD 0xe000
63212771Sqtt2@cornell.edu#define MASK_C_SD  0xe003
63312771Sqtt2@cornell.edu#define MATCH_C_ADDIW 0x2001
63412771Sqtt2@cornell.edu#define MASK_C_ADDIW  0xe003
63512771Sqtt2@cornell.edu#define MATCH_C_LDSP 0x6002
63612771Sqtt2@cornell.edu#define MASK_C_LDSP  0xe003
63712771Sqtt2@cornell.edu#define MATCH_C_SDSP 0xe002
63812771Sqtt2@cornell.edu#define MASK_C_SDSP  0xe003
63912771Sqtt2@cornell.edu#define MATCH_C_ADDI4SPN 0x0
64012771Sqtt2@cornell.edu#define MASK_C_ADDI4SPN  0xe003
64112771Sqtt2@cornell.edu#define MATCH_C_FLD 0x2000
64212771Sqtt2@cornell.edu#define MASK_C_FLD  0xe003
64312771Sqtt2@cornell.edu#define MATCH_C_LW 0x4000
64412771Sqtt2@cornell.edu#define MASK_C_LW  0xe003
64512771Sqtt2@cornell.edu#define MATCH_C_FLW 0x6000
64612771Sqtt2@cornell.edu#define MASK_C_FLW  0xe003
64712771Sqtt2@cornell.edu#define MATCH_C_FSD 0xa000
64812771Sqtt2@cornell.edu#define MASK_C_FSD  0xe003
64912771Sqtt2@cornell.edu#define MATCH_C_SW 0xc000
65012771Sqtt2@cornell.edu#define MASK_C_SW  0xe003
65112771Sqtt2@cornell.edu#define MATCH_C_FSW 0xe000
65212771Sqtt2@cornell.edu#define MASK_C_FSW  0xe003
65312771Sqtt2@cornell.edu#define MATCH_C_ADDI 0x1
65412771Sqtt2@cornell.edu#define MASK_C_ADDI  0xe003
65512771Sqtt2@cornell.edu#define MATCH_C_JAL 0x2001
65612771Sqtt2@cornell.edu#define MASK_C_JAL  0xe003
65712771Sqtt2@cornell.edu#define MATCH_C_LI 0x4001
65812771Sqtt2@cornell.edu#define MASK_C_LI  0xe003
65912771Sqtt2@cornell.edu#define MATCH_C_LUI 0x6001
66012771Sqtt2@cornell.edu#define MASK_C_LUI  0xe003
66112771Sqtt2@cornell.edu#define MATCH_C_SRLI 0x8001
66212771Sqtt2@cornell.edu#define MASK_C_SRLI  0xec03
66312771Sqtt2@cornell.edu#define MATCH_C_SRAI 0x8401
66412771Sqtt2@cornell.edu#define MASK_C_SRAI  0xec03
66512771Sqtt2@cornell.edu#define MATCH_C_ANDI 0x8801
66612771Sqtt2@cornell.edu#define MASK_C_ANDI  0xec03
66712771Sqtt2@cornell.edu#define MATCH_C_SUB 0x8c01
66812771Sqtt2@cornell.edu#define MASK_C_SUB  0xfc63
66912771Sqtt2@cornell.edu#define MATCH_C_XOR 0x8c21
67012771Sqtt2@cornell.edu#define MASK_C_XOR  0xfc63
67112771Sqtt2@cornell.edu#define MATCH_C_OR 0x8c41
67212771Sqtt2@cornell.edu#define MASK_C_OR  0xfc63
67312771Sqtt2@cornell.edu#define MATCH_C_AND 0x8c61
67412771Sqtt2@cornell.edu#define MASK_C_AND  0xfc63
67512771Sqtt2@cornell.edu#define MATCH_C_SUBW 0x9c01
67612771Sqtt2@cornell.edu#define MASK_C_SUBW  0xfc63
67712771Sqtt2@cornell.edu#define MATCH_C_ADDW 0x9c21
67812771Sqtt2@cornell.edu#define MASK_C_ADDW  0xfc63
67912771Sqtt2@cornell.edu#define MATCH_C_J 0xa001
68012771Sqtt2@cornell.edu#define MASK_C_J  0xe003
68112771Sqtt2@cornell.edu#define MATCH_C_BEQZ 0xc001
68212771Sqtt2@cornell.edu#define MASK_C_BEQZ  0xe003
68312771Sqtt2@cornell.edu#define MATCH_C_BNEZ 0xe001
68412771Sqtt2@cornell.edu#define MASK_C_BNEZ  0xe003
68512771Sqtt2@cornell.edu#define MATCH_C_SLLI 0x2
68612771Sqtt2@cornell.edu#define MASK_C_SLLI  0xe003
68712771Sqtt2@cornell.edu#define MATCH_C_FLDSP 0x2002
68812771Sqtt2@cornell.edu#define MASK_C_FLDSP  0xe003
68912771Sqtt2@cornell.edu#define MATCH_C_LWSP 0x4002
69012771Sqtt2@cornell.edu#define MASK_C_LWSP  0xe003
69112771Sqtt2@cornell.edu#define MATCH_C_FLWSP 0x6002
69212771Sqtt2@cornell.edu#define MASK_C_FLWSP  0xe003
69312771Sqtt2@cornell.edu#define MATCH_C_MV 0x8002
69412771Sqtt2@cornell.edu#define MASK_C_MV  0xf003
69512771Sqtt2@cornell.edu#define MATCH_C_ADD 0x9002
69612771Sqtt2@cornell.edu#define MASK_C_ADD  0xf003
69712771Sqtt2@cornell.edu#define MATCH_C_FSDSP 0xa002
69812771Sqtt2@cornell.edu#define MASK_C_FSDSP  0xe003
69912771Sqtt2@cornell.edu#define MATCH_C_SWSP 0xc002
70012771Sqtt2@cornell.edu#define MASK_C_SWSP  0xe003
70112771Sqtt2@cornell.edu#define MATCH_C_FSWSP 0xe002
70212771Sqtt2@cornell.edu#define MASK_C_FSWSP  0xe003
70312771Sqtt2@cornell.edu#define MATCH_CUSTOM0 0xb
70412771Sqtt2@cornell.edu#define MASK_CUSTOM0  0x707f
70512771Sqtt2@cornell.edu#define MATCH_CUSTOM0_RS1 0x200b
70612771Sqtt2@cornell.edu#define MASK_CUSTOM0_RS1  0x707f
70712771Sqtt2@cornell.edu#define MATCH_CUSTOM0_RS1_RS2 0x300b
70812771Sqtt2@cornell.edu#define MASK_CUSTOM0_RS1_RS2  0x707f
70912771Sqtt2@cornell.edu#define MATCH_CUSTOM0_RD 0x400b
71012771Sqtt2@cornell.edu#define MASK_CUSTOM0_RD  0x707f
71112771Sqtt2@cornell.edu#define MATCH_CUSTOM0_RD_RS1 0x600b
71212771Sqtt2@cornell.edu#define MASK_CUSTOM0_RD_RS1  0x707f
71312771Sqtt2@cornell.edu#define MATCH_CUSTOM0_RD_RS1_RS2 0x700b
71412771Sqtt2@cornell.edu#define MASK_CUSTOM0_RD_RS1_RS2  0x707f
71512771Sqtt2@cornell.edu#define MATCH_CUSTOM1 0x2b
71612771Sqtt2@cornell.edu#define MASK_CUSTOM1  0x707f
71712771Sqtt2@cornell.edu#define MATCH_CUSTOM1_RS1 0x202b
71812771Sqtt2@cornell.edu#define MASK_CUSTOM1_RS1  0x707f
71912771Sqtt2@cornell.edu#define MATCH_CUSTOM1_RS1_RS2 0x302b
72012771Sqtt2@cornell.edu#define MASK_CUSTOM1_RS1_RS2  0x707f
72112771Sqtt2@cornell.edu#define MATCH_CUSTOM1_RD 0x402b
72212771Sqtt2@cornell.edu#define MASK_CUSTOM1_RD  0x707f
72312771Sqtt2@cornell.edu#define MATCH_CUSTOM1_RD_RS1 0x602b
72412771Sqtt2@cornell.edu#define MASK_CUSTOM1_RD_RS1  0x707f
72512771Sqtt2@cornell.edu#define MATCH_CUSTOM1_RD_RS1_RS2 0x702b
72612771Sqtt2@cornell.edu#define MASK_CUSTOM1_RD_RS1_RS2  0x707f
72712771Sqtt2@cornell.edu#define MATCH_CUSTOM2 0x5b
72812771Sqtt2@cornell.edu#define MASK_CUSTOM2  0x707f
72912771Sqtt2@cornell.edu#define MATCH_CUSTOM2_RS1 0x205b
73012771Sqtt2@cornell.edu#define MASK_CUSTOM2_RS1  0x707f
73112771Sqtt2@cornell.edu#define MATCH_CUSTOM2_RS1_RS2 0x305b
73212771Sqtt2@cornell.edu#define MASK_CUSTOM2_RS1_RS2  0x707f
73312771Sqtt2@cornell.edu#define MATCH_CUSTOM2_RD 0x405b
73412771Sqtt2@cornell.edu#define MASK_CUSTOM2_RD  0x707f
73512771Sqtt2@cornell.edu#define MATCH_CUSTOM2_RD_RS1 0x605b
73612771Sqtt2@cornell.edu#define MASK_CUSTOM2_RD_RS1  0x707f
73712771Sqtt2@cornell.edu#define MATCH_CUSTOM2_RD_RS1_RS2 0x705b
73812771Sqtt2@cornell.edu#define MASK_CUSTOM2_RD_RS1_RS2  0x707f
73912771Sqtt2@cornell.edu#define MATCH_CUSTOM3 0x7b
74012771Sqtt2@cornell.edu#define MASK_CUSTOM3  0x707f
74112771Sqtt2@cornell.edu#define MATCH_CUSTOM3_RS1 0x207b
74212771Sqtt2@cornell.edu#define MASK_CUSTOM3_RS1  0x707f
74312771Sqtt2@cornell.edu#define MATCH_CUSTOM3_RS1_RS2 0x307b
74412771Sqtt2@cornell.edu#define MASK_CUSTOM3_RS1_RS2  0x707f
74512771Sqtt2@cornell.edu#define MATCH_CUSTOM3_RD 0x407b
74612771Sqtt2@cornell.edu#define MASK_CUSTOM3_RD  0x707f
74712771Sqtt2@cornell.edu#define MATCH_CUSTOM3_RD_RS1 0x607b
74812771Sqtt2@cornell.edu#define MASK_CUSTOM3_RD_RS1  0x707f
74912771Sqtt2@cornell.edu#define MATCH_CUSTOM3_RD_RS1_RS2 0x707b
75012771Sqtt2@cornell.edu#define MASK_CUSTOM3_RD_RS1_RS2  0x707f
75112771Sqtt2@cornell.edu#define CSR_FFLAGS 0x1
75212771Sqtt2@cornell.edu#define CSR_FRM 0x2
75312771Sqtt2@cornell.edu#define CSR_FCSR 0x3
75412771Sqtt2@cornell.edu#define CSR_CYCLE 0xc00
75512771Sqtt2@cornell.edu#define CSR_TIME 0xc01
75612771Sqtt2@cornell.edu#define CSR_INSTRET 0xc02
75712771Sqtt2@cornell.edu#define CSR_HPMCOUNTER3 0xc03
75812771Sqtt2@cornell.edu#define CSR_HPMCOUNTER4 0xc04
75912771Sqtt2@cornell.edu#define CSR_HPMCOUNTER5 0xc05
76012771Sqtt2@cornell.edu#define CSR_HPMCOUNTER6 0xc06
76112771Sqtt2@cornell.edu#define CSR_HPMCOUNTER7 0xc07
76212771Sqtt2@cornell.edu#define CSR_HPMCOUNTER8 0xc08
76312771Sqtt2@cornell.edu#define CSR_HPMCOUNTER9 0xc09
76412771Sqtt2@cornell.edu#define CSR_HPMCOUNTER10 0xc0a
76512771Sqtt2@cornell.edu#define CSR_HPMCOUNTER11 0xc0b
76612771Sqtt2@cornell.edu#define CSR_HPMCOUNTER12 0xc0c
76712771Sqtt2@cornell.edu#define CSR_HPMCOUNTER13 0xc0d
76812771Sqtt2@cornell.edu#define CSR_HPMCOUNTER14 0xc0e
76912771Sqtt2@cornell.edu#define CSR_HPMCOUNTER15 0xc0f
77012771Sqtt2@cornell.edu#define CSR_HPMCOUNTER16 0xc10
77112771Sqtt2@cornell.edu#define CSR_HPMCOUNTER17 0xc11
77212771Sqtt2@cornell.edu#define CSR_HPMCOUNTER18 0xc12
77312771Sqtt2@cornell.edu#define CSR_HPMCOUNTER19 0xc13
77412771Sqtt2@cornell.edu#define CSR_HPMCOUNTER20 0xc14
77512771Sqtt2@cornell.edu#define CSR_HPMCOUNTER21 0xc15
77612771Sqtt2@cornell.edu#define CSR_HPMCOUNTER22 0xc16
77712771Sqtt2@cornell.edu#define CSR_HPMCOUNTER23 0xc17
77812771Sqtt2@cornell.edu#define CSR_HPMCOUNTER24 0xc18
77912771Sqtt2@cornell.edu#define CSR_HPMCOUNTER25 0xc19
78012771Sqtt2@cornell.edu#define CSR_HPMCOUNTER26 0xc1a
78112771Sqtt2@cornell.edu#define CSR_HPMCOUNTER27 0xc1b
78212771Sqtt2@cornell.edu#define CSR_HPMCOUNTER28 0xc1c
78312771Sqtt2@cornell.edu#define CSR_HPMCOUNTER29 0xc1d
78412771Sqtt2@cornell.edu#define CSR_HPMCOUNTER30 0xc1e
78512771Sqtt2@cornell.edu#define CSR_HPMCOUNTER31 0xc1f
78612771Sqtt2@cornell.edu#define CSR_SSTATUS 0x100
78712771Sqtt2@cornell.edu#define CSR_SIE 0x104
78812771Sqtt2@cornell.edu#define CSR_STVEC 0x105
78912771Sqtt2@cornell.edu#define CSR_SCOUNTEREN 0x106
79012771Sqtt2@cornell.edu#define CSR_SSCRATCH 0x140
79112771Sqtt2@cornell.edu#define CSR_SEPC 0x141
79212771Sqtt2@cornell.edu#define CSR_SCAUSE 0x142
79312771Sqtt2@cornell.edu#define CSR_STVAL 0x143
79412771Sqtt2@cornell.edu#define CSR_SIP 0x144
79512771Sqtt2@cornell.edu#define CSR_SATP 0x180
79612771Sqtt2@cornell.edu#define CSR_MSTATUS 0x300
79712771Sqtt2@cornell.edu#define CSR_MISA 0x301
79812771Sqtt2@cornell.edu#define CSR_MEDELEG 0x302
79912771Sqtt2@cornell.edu#define CSR_MIDELEG 0x303
80012771Sqtt2@cornell.edu#define CSR_MIE 0x304
80112771Sqtt2@cornell.edu#define CSR_MTVEC 0x305
80212771Sqtt2@cornell.edu#define CSR_MCOUNTEREN 0x306
80312771Sqtt2@cornell.edu#define CSR_MSCRATCH 0x340
80412771Sqtt2@cornell.edu#define CSR_MEPC 0x341
80512771Sqtt2@cornell.edu#define CSR_MCAUSE 0x342
80612771Sqtt2@cornell.edu#define CSR_MTVAL 0x343
80712771Sqtt2@cornell.edu#define CSR_MIP 0x344
80812771Sqtt2@cornell.edu#define CSR_PMPCFG0 0x3a0
80912771Sqtt2@cornell.edu#define CSR_PMPCFG1 0x3a1
81012771Sqtt2@cornell.edu#define CSR_PMPCFG2 0x3a2
81112771Sqtt2@cornell.edu#define CSR_PMPCFG3 0x3a3
81212771Sqtt2@cornell.edu#define CSR_PMPADDR0 0x3b0
81312771Sqtt2@cornell.edu#define CSR_PMPADDR1 0x3b1
81412771Sqtt2@cornell.edu#define CSR_PMPADDR2 0x3b2
81512771Sqtt2@cornell.edu#define CSR_PMPADDR3 0x3b3
81612771Sqtt2@cornell.edu#define CSR_PMPADDR4 0x3b4
81712771Sqtt2@cornell.edu#define CSR_PMPADDR5 0x3b5
81812771Sqtt2@cornell.edu#define CSR_PMPADDR6 0x3b6
81912771Sqtt2@cornell.edu#define CSR_PMPADDR7 0x3b7
82012771Sqtt2@cornell.edu#define CSR_PMPADDR8 0x3b8
82112771Sqtt2@cornell.edu#define CSR_PMPADDR9 0x3b9
82212771Sqtt2@cornell.edu#define CSR_PMPADDR10 0x3ba
82312771Sqtt2@cornell.edu#define CSR_PMPADDR11 0x3bb
82412771Sqtt2@cornell.edu#define CSR_PMPADDR12 0x3bc
82512771Sqtt2@cornell.edu#define CSR_PMPADDR13 0x3bd
82612771Sqtt2@cornell.edu#define CSR_PMPADDR14 0x3be
82712771Sqtt2@cornell.edu#define CSR_PMPADDR15 0x3bf
82812771Sqtt2@cornell.edu#define CSR_TSELECT 0x7a0
82912771Sqtt2@cornell.edu#define CSR_TDATA1 0x7a1
83012771Sqtt2@cornell.edu#define CSR_TDATA2 0x7a2
83112771Sqtt2@cornell.edu#define CSR_TDATA3 0x7a3
83212771Sqtt2@cornell.edu#define CSR_DCSR 0x7b0
83312771Sqtt2@cornell.edu#define CSR_DPC 0x7b1
83412771Sqtt2@cornell.edu#define CSR_DSCRATCH 0x7b2
83512771Sqtt2@cornell.edu#define CSR_MCYCLE 0xb00
83612771Sqtt2@cornell.edu#define CSR_MINSTRET 0xb02
83712771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER3 0xb03
83812771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER4 0xb04
83912771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER5 0xb05
84012771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER6 0xb06
84112771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER7 0xb07
84212771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER8 0xb08
84312771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER9 0xb09
84412771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER10 0xb0a
84512771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER11 0xb0b
84612771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER12 0xb0c
84712771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER13 0xb0d
84812771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER14 0xb0e
84912771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER15 0xb0f
85012771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER16 0xb10
85112771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER17 0xb11
85212771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER18 0xb12
85312771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER19 0xb13
85412771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER20 0xb14
85512771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER21 0xb15
85612771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER22 0xb16
85712771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER23 0xb17
85812771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER24 0xb18
85912771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER25 0xb19
86012771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER26 0xb1a
86112771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER27 0xb1b
86212771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER28 0xb1c
86312771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER29 0xb1d
86412771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER30 0xb1e
86512771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER31 0xb1f
86612771Sqtt2@cornell.edu#define CSR_MHPMEVENT3 0x323
86712771Sqtt2@cornell.edu#define CSR_MHPMEVENT4 0x324
86812771Sqtt2@cornell.edu#define CSR_MHPMEVENT5 0x325
86912771Sqtt2@cornell.edu#define CSR_MHPMEVENT6 0x326
87012771Sqtt2@cornell.edu#define CSR_MHPMEVENT7 0x327
87112771Sqtt2@cornell.edu#define CSR_MHPMEVENT8 0x328
87212771Sqtt2@cornell.edu#define CSR_MHPMEVENT9 0x329
87312771Sqtt2@cornell.edu#define CSR_MHPMEVENT10 0x32a
87412771Sqtt2@cornell.edu#define CSR_MHPMEVENT11 0x32b
87512771Sqtt2@cornell.edu#define CSR_MHPMEVENT12 0x32c
87612771Sqtt2@cornell.edu#define CSR_MHPMEVENT13 0x32d
87712771Sqtt2@cornell.edu#define CSR_MHPMEVENT14 0x32e
87812771Sqtt2@cornell.edu#define CSR_MHPMEVENT15 0x32f
87912771Sqtt2@cornell.edu#define CSR_MHPMEVENT16 0x330
88012771Sqtt2@cornell.edu#define CSR_MHPMEVENT17 0x331
88112771Sqtt2@cornell.edu#define CSR_MHPMEVENT18 0x332
88212771Sqtt2@cornell.edu#define CSR_MHPMEVENT19 0x333
88312771Sqtt2@cornell.edu#define CSR_MHPMEVENT20 0x334
88412771Sqtt2@cornell.edu#define CSR_MHPMEVENT21 0x335
88512771Sqtt2@cornell.edu#define CSR_MHPMEVENT22 0x336
88612771Sqtt2@cornell.edu#define CSR_MHPMEVENT23 0x337
88712771Sqtt2@cornell.edu#define CSR_MHPMEVENT24 0x338
88812771Sqtt2@cornell.edu#define CSR_MHPMEVENT25 0x339
88912771Sqtt2@cornell.edu#define CSR_MHPMEVENT26 0x33a
89012771Sqtt2@cornell.edu#define CSR_MHPMEVENT27 0x33b
89112771Sqtt2@cornell.edu#define CSR_MHPMEVENT28 0x33c
89212771Sqtt2@cornell.edu#define CSR_MHPMEVENT29 0x33d
89312771Sqtt2@cornell.edu#define CSR_MHPMEVENT30 0x33e
89412771Sqtt2@cornell.edu#define CSR_MHPMEVENT31 0x33f
89512771Sqtt2@cornell.edu#define CSR_MVENDORID 0xf11
89612771Sqtt2@cornell.edu#define CSR_MARCHID 0xf12
89712771Sqtt2@cornell.edu#define CSR_MIMPID 0xf13
89812771Sqtt2@cornell.edu#define CSR_MHARTID 0xf14
89912771Sqtt2@cornell.edu#define CSR_CYCLEH 0xc80
90012771Sqtt2@cornell.edu#define CSR_TIMEH 0xc81
90112771Sqtt2@cornell.edu#define CSR_INSTRETH 0xc82
90212771Sqtt2@cornell.edu#define CSR_HPMCOUNTER3H 0xc83
90312771Sqtt2@cornell.edu#define CSR_HPMCOUNTER4H 0xc84
90412771Sqtt2@cornell.edu#define CSR_HPMCOUNTER5H 0xc85
90512771Sqtt2@cornell.edu#define CSR_HPMCOUNTER6H 0xc86
90612771Sqtt2@cornell.edu#define CSR_HPMCOUNTER7H 0xc87
90712771Sqtt2@cornell.edu#define CSR_HPMCOUNTER8H 0xc88
90812771Sqtt2@cornell.edu#define CSR_HPMCOUNTER9H 0xc89
90912771Sqtt2@cornell.edu#define CSR_HPMCOUNTER10H 0xc8a
91012771Sqtt2@cornell.edu#define CSR_HPMCOUNTER11H 0xc8b
91112771Sqtt2@cornell.edu#define CSR_HPMCOUNTER12H 0xc8c
91212771Sqtt2@cornell.edu#define CSR_HPMCOUNTER13H 0xc8d
91312771Sqtt2@cornell.edu#define CSR_HPMCOUNTER14H 0xc8e
91412771Sqtt2@cornell.edu#define CSR_HPMCOUNTER15H 0xc8f
91512771Sqtt2@cornell.edu#define CSR_HPMCOUNTER16H 0xc90
91612771Sqtt2@cornell.edu#define CSR_HPMCOUNTER17H 0xc91
91712771Sqtt2@cornell.edu#define CSR_HPMCOUNTER18H 0xc92
91812771Sqtt2@cornell.edu#define CSR_HPMCOUNTER19H 0xc93
91912771Sqtt2@cornell.edu#define CSR_HPMCOUNTER20H 0xc94
92012771Sqtt2@cornell.edu#define CSR_HPMCOUNTER21H 0xc95
92112771Sqtt2@cornell.edu#define CSR_HPMCOUNTER22H 0xc96
92212771Sqtt2@cornell.edu#define CSR_HPMCOUNTER23H 0xc97
92312771Sqtt2@cornell.edu#define CSR_HPMCOUNTER24H 0xc98
92412771Sqtt2@cornell.edu#define CSR_HPMCOUNTER25H 0xc99
92512771Sqtt2@cornell.edu#define CSR_HPMCOUNTER26H 0xc9a
92612771Sqtt2@cornell.edu#define CSR_HPMCOUNTER27H 0xc9b
92712771Sqtt2@cornell.edu#define CSR_HPMCOUNTER28H 0xc9c
92812771Sqtt2@cornell.edu#define CSR_HPMCOUNTER29H 0xc9d
92912771Sqtt2@cornell.edu#define CSR_HPMCOUNTER30H 0xc9e
93012771Sqtt2@cornell.edu#define CSR_HPMCOUNTER31H 0xc9f
93112771Sqtt2@cornell.edu#define CSR_MCYCLEH 0xb80
93212771Sqtt2@cornell.edu#define CSR_MINSTRETH 0xb82
93312771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER3H 0xb83
93412771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER4H 0xb84
93512771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER5H 0xb85
93612771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER6H 0xb86
93712771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER7H 0xb87
93812771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER8H 0xb88
93912771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER9H 0xb89
94012771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER10H 0xb8a
94112771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER11H 0xb8b
94212771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER12H 0xb8c
94312771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER13H 0xb8d
94412771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER14H 0xb8e
94512771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER15H 0xb8f
94612771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER16H 0xb90
94712771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER17H 0xb91
94812771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER18H 0xb92
94912771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER19H 0xb93
95012771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER20H 0xb94
95112771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER21H 0xb95
95212771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER22H 0xb96
95312771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER23H 0xb97
95412771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER24H 0xb98
95512771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER25H 0xb99
95612771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER26H 0xb9a
95712771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER27H 0xb9b
95812771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER28H 0xb9c
95912771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER29H 0xb9d
96012771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER30H 0xb9e
96112771Sqtt2@cornell.edu#define CSR_MHPMCOUNTER31H 0xb9f
96212771Sqtt2@cornell.edu#define CAUSE_MISALIGNED_FETCH 0x0
96312771Sqtt2@cornell.edu#define CAUSE_FETCH_ACCESS 0x1
96412771Sqtt2@cornell.edu#define CAUSE_ILLEGAL_INSTRUCTION 0x2
96512771Sqtt2@cornell.edu#define CAUSE_BREAKPOINT 0x3
96612771Sqtt2@cornell.edu#define CAUSE_MISALIGNED_LOAD 0x4
96712771Sqtt2@cornell.edu#define CAUSE_LOAD_ACCESS 0x5
96812771Sqtt2@cornell.edu#define CAUSE_MISALIGNED_STORE 0x6
96912771Sqtt2@cornell.edu#define CAUSE_STORE_ACCESS 0x7
97012771Sqtt2@cornell.edu#define CAUSE_USER_ECALL 0x8
97112771Sqtt2@cornell.edu#define CAUSE_SUPERVISOR_ECALL 0x9
97212771Sqtt2@cornell.edu#define CAUSE_HYPERVISOR_ECALL 0xa
97312771Sqtt2@cornell.edu#define CAUSE_MACHINE_ECALL 0xb
97412771Sqtt2@cornell.edu#define CAUSE_FETCH_PAGE_FAULT 0xc
97512771Sqtt2@cornell.edu#define CAUSE_LOAD_PAGE_FAULT 0xd
97612771Sqtt2@cornell.edu#define CAUSE_STORE_PAGE_FAULT 0xf
97712771Sqtt2@cornell.edu#endif
97812771Sqtt2@cornell.edu#ifdef DECLARE_INSN
97912771Sqtt2@cornell.eduDECLARE_INSN(beq, MATCH_BEQ, MASK_BEQ)
98012771Sqtt2@cornell.eduDECLARE_INSN(bne, MATCH_BNE, MASK_BNE)
98112771Sqtt2@cornell.eduDECLARE_INSN(blt, MATCH_BLT, MASK_BLT)
98212771Sqtt2@cornell.eduDECLARE_INSN(bge, MATCH_BGE, MASK_BGE)
98312771Sqtt2@cornell.eduDECLARE_INSN(bltu, MATCH_BLTU, MASK_BLTU)
98412771Sqtt2@cornell.eduDECLARE_INSN(bgeu, MATCH_BGEU, MASK_BGEU)
98512771Sqtt2@cornell.eduDECLARE_INSN(jalr, MATCH_JALR, MASK_JALR)
98612771Sqtt2@cornell.eduDECLARE_INSN(jal, MATCH_JAL, MASK_JAL)
98712771Sqtt2@cornell.eduDECLARE_INSN(lui, MATCH_LUI, MASK_LUI)
98812771Sqtt2@cornell.eduDECLARE_INSN(auipc, MATCH_AUIPC, MASK_AUIPC)
98912771Sqtt2@cornell.eduDECLARE_INSN(addi, MATCH_ADDI, MASK_ADDI)
99012771Sqtt2@cornell.eduDECLARE_INSN(slli, MATCH_SLLI, MASK_SLLI)
99112771Sqtt2@cornell.eduDECLARE_INSN(slti, MATCH_SLTI, MASK_SLTI)
99212771Sqtt2@cornell.eduDECLARE_INSN(sltiu, MATCH_SLTIU, MASK_SLTIU)
99312771Sqtt2@cornell.eduDECLARE_INSN(xori, MATCH_XORI, MASK_XORI)
99412771Sqtt2@cornell.eduDECLARE_INSN(srli, MATCH_SRLI, MASK_SRLI)
99512771Sqtt2@cornell.eduDECLARE_INSN(srai, MATCH_SRAI, MASK_SRAI)
99612771Sqtt2@cornell.eduDECLARE_INSN(ori, MATCH_ORI, MASK_ORI)
99712771Sqtt2@cornell.eduDECLARE_INSN(andi, MATCH_ANDI, MASK_ANDI)
99812771Sqtt2@cornell.eduDECLARE_INSN(add, MATCH_ADD, MASK_ADD)
99912771Sqtt2@cornell.eduDECLARE_INSN(sub, MATCH_SUB, MASK_SUB)
100012771Sqtt2@cornell.eduDECLARE_INSN(sll, MATCH_SLL, MASK_SLL)
100112771Sqtt2@cornell.eduDECLARE_INSN(slt, MATCH_SLT, MASK_SLT)
100212771Sqtt2@cornell.eduDECLARE_INSN(sltu, MATCH_SLTU, MASK_SLTU)
100312771Sqtt2@cornell.eduDECLARE_INSN(xor, MATCH_XOR, MASK_XOR)
100412771Sqtt2@cornell.eduDECLARE_INSN(srl, MATCH_SRL, MASK_SRL)
100512771Sqtt2@cornell.eduDECLARE_INSN(sra, MATCH_SRA, MASK_SRA)
100612771Sqtt2@cornell.eduDECLARE_INSN(or, MATCH_OR, MASK_OR)
100712771Sqtt2@cornell.eduDECLARE_INSN(and, MATCH_AND, MASK_AND)
100812771Sqtt2@cornell.eduDECLARE_INSN(addiw, MATCH_ADDIW, MASK_ADDIW)
100912771Sqtt2@cornell.eduDECLARE_INSN(slliw, MATCH_SLLIW, MASK_SLLIW)
101012771Sqtt2@cornell.eduDECLARE_INSN(srliw, MATCH_SRLIW, MASK_SRLIW)
101112771Sqtt2@cornell.eduDECLARE_INSN(sraiw, MATCH_SRAIW, MASK_SRAIW)
101212771Sqtt2@cornell.eduDECLARE_INSN(addw, MATCH_ADDW, MASK_ADDW)
101312771Sqtt2@cornell.eduDECLARE_INSN(subw, MATCH_SUBW, MASK_SUBW)
101412771Sqtt2@cornell.eduDECLARE_INSN(sllw, MATCH_SLLW, MASK_SLLW)
101512771Sqtt2@cornell.eduDECLARE_INSN(srlw, MATCH_SRLW, MASK_SRLW)
101612771Sqtt2@cornell.eduDECLARE_INSN(sraw, MATCH_SRAW, MASK_SRAW)
101712771Sqtt2@cornell.eduDECLARE_INSN(lb, MATCH_LB, MASK_LB)
101812771Sqtt2@cornell.eduDECLARE_INSN(lh, MATCH_LH, MASK_LH)
101912771Sqtt2@cornell.eduDECLARE_INSN(lw, MATCH_LW, MASK_LW)
102012771Sqtt2@cornell.eduDECLARE_INSN(ld, MATCH_LD, MASK_LD)
102112771Sqtt2@cornell.eduDECLARE_INSN(lbu, MATCH_LBU, MASK_LBU)
102212771Sqtt2@cornell.eduDECLARE_INSN(lhu, MATCH_LHU, MASK_LHU)
102312771Sqtt2@cornell.eduDECLARE_INSN(lwu, MATCH_LWU, MASK_LWU)
102412771Sqtt2@cornell.eduDECLARE_INSN(sb, MATCH_SB, MASK_SB)
102512771Sqtt2@cornell.eduDECLARE_INSN(sh, MATCH_SH, MASK_SH)
102612771Sqtt2@cornell.eduDECLARE_INSN(sw, MATCH_SW, MASK_SW)
102712771Sqtt2@cornell.eduDECLARE_INSN(sd, MATCH_SD, MASK_SD)
102812771Sqtt2@cornell.eduDECLARE_INSN(fence, MATCH_FENCE, MASK_FENCE)
102912771Sqtt2@cornell.eduDECLARE_INSN(fence_i, MATCH_FENCE_I, MASK_FENCE_I)
103012771Sqtt2@cornell.eduDECLARE_INSN(mul, MATCH_MUL, MASK_MUL)
103112771Sqtt2@cornell.eduDECLARE_INSN(mulh, MATCH_MULH, MASK_MULH)
103212771Sqtt2@cornell.eduDECLARE_INSN(mulhsu, MATCH_MULHSU, MASK_MULHSU)
103312771Sqtt2@cornell.eduDECLARE_INSN(mulhu, MATCH_MULHU, MASK_MULHU)
103412771Sqtt2@cornell.eduDECLARE_INSN(div, MATCH_DIV, MASK_DIV)
103512771Sqtt2@cornell.eduDECLARE_INSN(divu, MATCH_DIVU, MASK_DIVU)
103612771Sqtt2@cornell.eduDECLARE_INSN(rem, MATCH_REM, MASK_REM)
103712771Sqtt2@cornell.eduDECLARE_INSN(remu, MATCH_REMU, MASK_REMU)
103812771Sqtt2@cornell.eduDECLARE_INSN(mulw, MATCH_MULW, MASK_MULW)
103912771Sqtt2@cornell.eduDECLARE_INSN(divw, MATCH_DIVW, MASK_DIVW)
104012771Sqtt2@cornell.eduDECLARE_INSN(divuw, MATCH_DIVUW, MASK_DIVUW)
104112771Sqtt2@cornell.eduDECLARE_INSN(remw, MATCH_REMW, MASK_REMW)
104212771Sqtt2@cornell.eduDECLARE_INSN(remuw, MATCH_REMUW, MASK_REMUW)
104312771Sqtt2@cornell.eduDECLARE_INSN(amoadd_w, MATCH_AMOADD_W, MASK_AMOADD_W)
104412771Sqtt2@cornell.eduDECLARE_INSN(amoxor_w, MATCH_AMOXOR_W, MASK_AMOXOR_W)
104512771Sqtt2@cornell.eduDECLARE_INSN(amoor_w, MATCH_AMOOR_W, MASK_AMOOR_W)
104612771Sqtt2@cornell.eduDECLARE_INSN(amoand_w, MATCH_AMOAND_W, MASK_AMOAND_W)
104712771Sqtt2@cornell.eduDECLARE_INSN(amomin_w, MATCH_AMOMIN_W, MASK_AMOMIN_W)
104812771Sqtt2@cornell.eduDECLARE_INSN(amomax_w, MATCH_AMOMAX_W, MASK_AMOMAX_W)
104912771Sqtt2@cornell.eduDECLARE_INSN(amominu_w, MATCH_AMOMINU_W, MASK_AMOMINU_W)
105012771Sqtt2@cornell.eduDECLARE_INSN(amomaxu_w, MATCH_AMOMAXU_W, MASK_AMOMAXU_W)
105112771Sqtt2@cornell.eduDECLARE_INSN(amoswap_w, MATCH_AMOSWAP_W, MASK_AMOSWAP_W)
105212771Sqtt2@cornell.eduDECLARE_INSN(lr_w, MATCH_LR_W, MASK_LR_W)
105312771Sqtt2@cornell.eduDECLARE_INSN(sc_w, MATCH_SC_W, MASK_SC_W)
105412771Sqtt2@cornell.eduDECLARE_INSN(amoadd_d, MATCH_AMOADD_D, MASK_AMOADD_D)
105512771Sqtt2@cornell.eduDECLARE_INSN(amoxor_d, MATCH_AMOXOR_D, MASK_AMOXOR_D)
105612771Sqtt2@cornell.eduDECLARE_INSN(amoor_d, MATCH_AMOOR_D, MASK_AMOOR_D)
105712771Sqtt2@cornell.eduDECLARE_INSN(amoand_d, MATCH_AMOAND_D, MASK_AMOAND_D)
105812771Sqtt2@cornell.eduDECLARE_INSN(amomin_d, MATCH_AMOMIN_D, MASK_AMOMIN_D)
105912771Sqtt2@cornell.eduDECLARE_INSN(amomax_d, MATCH_AMOMAX_D, MASK_AMOMAX_D)
106012771Sqtt2@cornell.eduDECLARE_INSN(amominu_d, MATCH_AMOMINU_D, MASK_AMOMINU_D)
106112771Sqtt2@cornell.eduDECLARE_INSN(amomaxu_d, MATCH_AMOMAXU_D, MASK_AMOMAXU_D)
106212771Sqtt2@cornell.eduDECLARE_INSN(amoswap_d, MATCH_AMOSWAP_D, MASK_AMOSWAP_D)
106312771Sqtt2@cornell.eduDECLARE_INSN(lr_d, MATCH_LR_D, MASK_LR_D)
106412771Sqtt2@cornell.eduDECLARE_INSN(sc_d, MATCH_SC_D, MASK_SC_D)
106512771Sqtt2@cornell.eduDECLARE_INSN(ecall, MATCH_ECALL, MASK_ECALL)
106612771Sqtt2@cornell.eduDECLARE_INSN(ebreak, MATCH_EBREAK, MASK_EBREAK)
106712771Sqtt2@cornell.eduDECLARE_INSN(uret, MATCH_URET, MASK_URET)
106812771Sqtt2@cornell.eduDECLARE_INSN(sret, MATCH_SRET, MASK_SRET)
106912771Sqtt2@cornell.eduDECLARE_INSN(mret, MATCH_MRET, MASK_MRET)
107012771Sqtt2@cornell.eduDECLARE_INSN(dret, MATCH_DRET, MASK_DRET)
107112771Sqtt2@cornell.eduDECLARE_INSN(sfence_vma, MATCH_SFENCE_VMA, MASK_SFENCE_VMA)
107212771Sqtt2@cornell.eduDECLARE_INSN(wfi, MATCH_WFI, MASK_WFI)
107312771Sqtt2@cornell.eduDECLARE_INSN(csrrw, MATCH_CSRRW, MASK_CSRRW)
107412771Sqtt2@cornell.eduDECLARE_INSN(csrrs, MATCH_CSRRS, MASK_CSRRS)
107512771Sqtt2@cornell.eduDECLARE_INSN(csrrc, MATCH_CSRRC, MASK_CSRRC)
107612771Sqtt2@cornell.eduDECLARE_INSN(csrrwi, MATCH_CSRRWI, MASK_CSRRWI)
107712771Sqtt2@cornell.eduDECLARE_INSN(csrrsi, MATCH_CSRRSI, MASK_CSRRSI)
107812771Sqtt2@cornell.eduDECLARE_INSN(csrrci, MATCH_CSRRCI, MASK_CSRRCI)
107912771Sqtt2@cornell.eduDECLARE_INSN(fadd_s, MATCH_FADD_S, MASK_FADD_S)
108012771Sqtt2@cornell.eduDECLARE_INSN(fsub_s, MATCH_FSUB_S, MASK_FSUB_S)
108112771Sqtt2@cornell.eduDECLARE_INSN(fmul_s, MATCH_FMUL_S, MASK_FMUL_S)
108212771Sqtt2@cornell.eduDECLARE_INSN(fdiv_s, MATCH_FDIV_S, MASK_FDIV_S)
108312771Sqtt2@cornell.eduDECLARE_INSN(fsgnj_s, MATCH_FSGNJ_S, MASK_FSGNJ_S)
108412771Sqtt2@cornell.eduDECLARE_INSN(fsgnjn_s, MATCH_FSGNJN_S, MASK_FSGNJN_S)
108512771Sqtt2@cornell.eduDECLARE_INSN(fsgnjx_s, MATCH_FSGNJX_S, MASK_FSGNJX_S)
108612771Sqtt2@cornell.eduDECLARE_INSN(fmin_s, MATCH_FMIN_S, MASK_FMIN_S)
108712771Sqtt2@cornell.eduDECLARE_INSN(fmax_s, MATCH_FMAX_S, MASK_FMAX_S)
108812771Sqtt2@cornell.eduDECLARE_INSN(fsqrt_s, MATCH_FSQRT_S, MASK_FSQRT_S)
108912771Sqtt2@cornell.eduDECLARE_INSN(fadd_d, MATCH_FADD_D, MASK_FADD_D)
109012771Sqtt2@cornell.eduDECLARE_INSN(fsub_d, MATCH_FSUB_D, MASK_FSUB_D)
109112771Sqtt2@cornell.eduDECLARE_INSN(fmul_d, MATCH_FMUL_D, MASK_FMUL_D)
109212771Sqtt2@cornell.eduDECLARE_INSN(fdiv_d, MATCH_FDIV_D, MASK_FDIV_D)
109312771Sqtt2@cornell.eduDECLARE_INSN(fsgnj_d, MATCH_FSGNJ_D, MASK_FSGNJ_D)
109412771Sqtt2@cornell.eduDECLARE_INSN(fsgnjn_d, MATCH_FSGNJN_D, MASK_FSGNJN_D)
109512771Sqtt2@cornell.eduDECLARE_INSN(fsgnjx_d, MATCH_FSGNJX_D, MASK_FSGNJX_D)
109612771Sqtt2@cornell.eduDECLARE_INSN(fmin_d, MATCH_FMIN_D, MASK_FMIN_D)
109712771Sqtt2@cornell.eduDECLARE_INSN(fmax_d, MATCH_FMAX_D, MASK_FMAX_D)
109812771Sqtt2@cornell.eduDECLARE_INSN(fcvt_s_d, MATCH_FCVT_S_D, MASK_FCVT_S_D)
109912771Sqtt2@cornell.eduDECLARE_INSN(fcvt_d_s, MATCH_FCVT_D_S, MASK_FCVT_D_S)
110012771Sqtt2@cornell.eduDECLARE_INSN(fsqrt_d, MATCH_FSQRT_D, MASK_FSQRT_D)
110112771Sqtt2@cornell.eduDECLARE_INSN(fadd_q, MATCH_FADD_Q, MASK_FADD_Q)
110212771Sqtt2@cornell.eduDECLARE_INSN(fsub_q, MATCH_FSUB_Q, MASK_FSUB_Q)
110312771Sqtt2@cornell.eduDECLARE_INSN(fmul_q, MATCH_FMUL_Q, MASK_FMUL_Q)
110412771Sqtt2@cornell.eduDECLARE_INSN(fdiv_q, MATCH_FDIV_Q, MASK_FDIV_Q)
110512771Sqtt2@cornell.eduDECLARE_INSN(fsgnj_q, MATCH_FSGNJ_Q, MASK_FSGNJ_Q)
110612771Sqtt2@cornell.eduDECLARE_INSN(fsgnjn_q, MATCH_FSGNJN_Q, MASK_FSGNJN_Q)
110712771Sqtt2@cornell.eduDECLARE_INSN(fsgnjx_q, MATCH_FSGNJX_Q, MASK_FSGNJX_Q)
110812771Sqtt2@cornell.eduDECLARE_INSN(fmin_q, MATCH_FMIN_Q, MASK_FMIN_Q)
110912771Sqtt2@cornell.eduDECLARE_INSN(fmax_q, MATCH_FMAX_Q, MASK_FMAX_Q)
111012771Sqtt2@cornell.eduDECLARE_INSN(fcvt_s_q, MATCH_FCVT_S_Q, MASK_FCVT_S_Q)
111112771Sqtt2@cornell.eduDECLARE_INSN(fcvt_q_s, MATCH_FCVT_Q_S, MASK_FCVT_Q_S)
111212771Sqtt2@cornell.eduDECLARE_INSN(fcvt_d_q, MATCH_FCVT_D_Q, MASK_FCVT_D_Q)
111312771Sqtt2@cornell.eduDECLARE_INSN(fcvt_q_d, MATCH_FCVT_Q_D, MASK_FCVT_Q_D)
111412771Sqtt2@cornell.eduDECLARE_INSN(fsqrt_q, MATCH_FSQRT_Q, MASK_FSQRT_Q)
111512771Sqtt2@cornell.eduDECLARE_INSN(fle_s, MATCH_FLE_S, MASK_FLE_S)
111612771Sqtt2@cornell.eduDECLARE_INSN(flt_s, MATCH_FLT_S, MASK_FLT_S)
111712771Sqtt2@cornell.eduDECLARE_INSN(feq_s, MATCH_FEQ_S, MASK_FEQ_S)
111812771Sqtt2@cornell.eduDECLARE_INSN(fle_d, MATCH_FLE_D, MASK_FLE_D)
111912771Sqtt2@cornell.eduDECLARE_INSN(flt_d, MATCH_FLT_D, MASK_FLT_D)
112012771Sqtt2@cornell.eduDECLARE_INSN(feq_d, MATCH_FEQ_D, MASK_FEQ_D)
112112771Sqtt2@cornell.eduDECLARE_INSN(fle_q, MATCH_FLE_Q, MASK_FLE_Q)
112212771Sqtt2@cornell.eduDECLARE_INSN(flt_q, MATCH_FLT_Q, MASK_FLT_Q)
112312771Sqtt2@cornell.eduDECLARE_INSN(feq_q, MATCH_FEQ_Q, MASK_FEQ_Q)
112412771Sqtt2@cornell.eduDECLARE_INSN(fcvt_w_s, MATCH_FCVT_W_S, MASK_FCVT_W_S)
112512771Sqtt2@cornell.eduDECLARE_INSN(fcvt_wu_s, MATCH_FCVT_WU_S, MASK_FCVT_WU_S)
112612771Sqtt2@cornell.eduDECLARE_INSN(fcvt_l_s, MATCH_FCVT_L_S, MASK_FCVT_L_S)
112712771Sqtt2@cornell.eduDECLARE_INSN(fcvt_lu_s, MATCH_FCVT_LU_S, MASK_FCVT_LU_S)
112812771Sqtt2@cornell.eduDECLARE_INSN(fmv_x_w, MATCH_FMV_X_W, MASK_FMV_X_W)
112912771Sqtt2@cornell.eduDECLARE_INSN(fclass_s, MATCH_FCLASS_S, MASK_FCLASS_S)
113012771Sqtt2@cornell.eduDECLARE_INSN(fcvt_w_d, MATCH_FCVT_W_D, MASK_FCVT_W_D)
113112771Sqtt2@cornell.eduDECLARE_INSN(fcvt_wu_d, MATCH_FCVT_WU_D, MASK_FCVT_WU_D)
113212771Sqtt2@cornell.eduDECLARE_INSN(fcvt_l_d, MATCH_FCVT_L_D, MASK_FCVT_L_D)
113312771Sqtt2@cornell.eduDECLARE_INSN(fcvt_lu_d, MATCH_FCVT_LU_D, MASK_FCVT_LU_D)
113412771Sqtt2@cornell.eduDECLARE_INSN(fmv_x_d, MATCH_FMV_X_D, MASK_FMV_X_D)
113512771Sqtt2@cornell.eduDECLARE_INSN(fclass_d, MATCH_FCLASS_D, MASK_FCLASS_D)
113612771Sqtt2@cornell.eduDECLARE_INSN(fcvt_w_q, MATCH_FCVT_W_Q, MASK_FCVT_W_Q)
113712771Sqtt2@cornell.eduDECLARE_INSN(fcvt_wu_q, MATCH_FCVT_WU_Q, MASK_FCVT_WU_Q)
113812771Sqtt2@cornell.eduDECLARE_INSN(fcvt_l_q, MATCH_FCVT_L_Q, MASK_FCVT_L_Q)
113912771Sqtt2@cornell.eduDECLARE_INSN(fcvt_lu_q, MATCH_FCVT_LU_Q, MASK_FCVT_LU_Q)
114012771Sqtt2@cornell.eduDECLARE_INSN(fmv_x_q, MATCH_FMV_X_Q, MASK_FMV_X_Q)
114112771Sqtt2@cornell.eduDECLARE_INSN(fclass_q, MATCH_FCLASS_Q, MASK_FCLASS_Q)
114212771Sqtt2@cornell.eduDECLARE_INSN(fcvt_s_w, MATCH_FCVT_S_W, MASK_FCVT_S_W)
114312771Sqtt2@cornell.eduDECLARE_INSN(fcvt_s_wu, MATCH_FCVT_S_WU, MASK_FCVT_S_WU)
114412771Sqtt2@cornell.eduDECLARE_INSN(fcvt_s_l, MATCH_FCVT_S_L, MASK_FCVT_S_L)
114512771Sqtt2@cornell.eduDECLARE_INSN(fcvt_s_lu, MATCH_FCVT_S_LU, MASK_FCVT_S_LU)
114612771Sqtt2@cornell.eduDECLARE_INSN(fmv_w_x, MATCH_FMV_W_X, MASK_FMV_W_X)
114712771Sqtt2@cornell.eduDECLARE_INSN(fcvt_d_w, MATCH_FCVT_D_W, MASK_FCVT_D_W)
114812771Sqtt2@cornell.eduDECLARE_INSN(fcvt_d_wu, MATCH_FCVT_D_WU, MASK_FCVT_D_WU)
114912771Sqtt2@cornell.eduDECLARE_INSN(fcvt_d_l, MATCH_FCVT_D_L, MASK_FCVT_D_L)
115012771Sqtt2@cornell.eduDECLARE_INSN(fcvt_d_lu, MATCH_FCVT_D_LU, MASK_FCVT_D_LU)
115112771Sqtt2@cornell.eduDECLARE_INSN(fmv_d_x, MATCH_FMV_D_X, MASK_FMV_D_X)
115212771Sqtt2@cornell.eduDECLARE_INSN(fcvt_q_w, MATCH_FCVT_Q_W, MASK_FCVT_Q_W)
115312771Sqtt2@cornell.eduDECLARE_INSN(fcvt_q_wu, MATCH_FCVT_Q_WU, MASK_FCVT_Q_WU)
115412771Sqtt2@cornell.eduDECLARE_INSN(fcvt_q_l, MATCH_FCVT_Q_L, MASK_FCVT_Q_L)
115512771Sqtt2@cornell.eduDECLARE_INSN(fcvt_q_lu, MATCH_FCVT_Q_LU, MASK_FCVT_Q_LU)
115612771Sqtt2@cornell.eduDECLARE_INSN(fmv_q_x, MATCH_FMV_Q_X, MASK_FMV_Q_X)
115712771Sqtt2@cornell.eduDECLARE_INSN(flw, MATCH_FLW, MASK_FLW)
115812771Sqtt2@cornell.eduDECLARE_INSN(fld, MATCH_FLD, MASK_FLD)
115912771Sqtt2@cornell.eduDECLARE_INSN(flq, MATCH_FLQ, MASK_FLQ)
116012771Sqtt2@cornell.eduDECLARE_INSN(fsw, MATCH_FSW, MASK_FSW)
116112771Sqtt2@cornell.eduDECLARE_INSN(fsd, MATCH_FSD, MASK_FSD)
116212771Sqtt2@cornell.eduDECLARE_INSN(fsq, MATCH_FSQ, MASK_FSQ)
116312771Sqtt2@cornell.eduDECLARE_INSN(fmadd_s, MATCH_FMADD_S, MASK_FMADD_S)
116412771Sqtt2@cornell.eduDECLARE_INSN(fmsub_s, MATCH_FMSUB_S, MASK_FMSUB_S)
116512771Sqtt2@cornell.eduDECLARE_INSN(fnmsub_s, MATCH_FNMSUB_S, MASK_FNMSUB_S)
116612771Sqtt2@cornell.eduDECLARE_INSN(fnmadd_s, MATCH_FNMADD_S, MASK_FNMADD_S)
116712771Sqtt2@cornell.eduDECLARE_INSN(fmadd_d, MATCH_FMADD_D, MASK_FMADD_D)
116812771Sqtt2@cornell.eduDECLARE_INSN(fmsub_d, MATCH_FMSUB_D, MASK_FMSUB_D)
116912771Sqtt2@cornell.eduDECLARE_INSN(fnmsub_d, MATCH_FNMSUB_D, MASK_FNMSUB_D)
117012771Sqtt2@cornell.eduDECLARE_INSN(fnmadd_d, MATCH_FNMADD_D, MASK_FNMADD_D)
117112771Sqtt2@cornell.eduDECLARE_INSN(fmadd_q, MATCH_FMADD_Q, MASK_FMADD_Q)
117212771Sqtt2@cornell.eduDECLARE_INSN(fmsub_q, MATCH_FMSUB_Q, MASK_FMSUB_Q)
117312771Sqtt2@cornell.eduDECLARE_INSN(fnmsub_q, MATCH_FNMSUB_Q, MASK_FNMSUB_Q)
117412771Sqtt2@cornell.eduDECLARE_INSN(fnmadd_q, MATCH_FNMADD_Q, MASK_FNMADD_Q)
117512771Sqtt2@cornell.eduDECLARE_INSN(c_nop, MATCH_C_NOP, MASK_C_NOP)
117612771Sqtt2@cornell.eduDECLARE_INSN(c_addi16sp, MATCH_C_ADDI16SP, MASK_C_ADDI16SP)
117712771Sqtt2@cornell.eduDECLARE_INSN(c_jr, MATCH_C_JR, MASK_C_JR)
117812771Sqtt2@cornell.eduDECLARE_INSN(c_jalr, MATCH_C_JALR, MASK_C_JALR)
117912771Sqtt2@cornell.eduDECLARE_INSN(c_ebreak, MATCH_C_EBREAK, MASK_C_EBREAK)
118012771Sqtt2@cornell.eduDECLARE_INSN(c_ld, MATCH_C_LD, MASK_C_LD)
118112771Sqtt2@cornell.eduDECLARE_INSN(c_sd, MATCH_C_SD, MASK_C_SD)
118212771Sqtt2@cornell.eduDECLARE_INSN(c_addiw, MATCH_C_ADDIW, MASK_C_ADDIW)
118312771Sqtt2@cornell.eduDECLARE_INSN(c_ldsp, MATCH_C_LDSP, MASK_C_LDSP)
118412771Sqtt2@cornell.eduDECLARE_INSN(c_sdsp, MATCH_C_SDSP, MASK_C_SDSP)
118512771Sqtt2@cornell.eduDECLARE_INSN(c_addi4spn, MATCH_C_ADDI4SPN, MASK_C_ADDI4SPN)
118612771Sqtt2@cornell.eduDECLARE_INSN(c_fld, MATCH_C_FLD, MASK_C_FLD)
118712771Sqtt2@cornell.eduDECLARE_INSN(c_lw, MATCH_C_LW, MASK_C_LW)
118812771Sqtt2@cornell.eduDECLARE_INSN(c_flw, MATCH_C_FLW, MASK_C_FLW)
118912771Sqtt2@cornell.eduDECLARE_INSN(c_fsd, MATCH_C_FSD, MASK_C_FSD)
119012771Sqtt2@cornell.eduDECLARE_INSN(c_sw, MATCH_C_SW, MASK_C_SW)
119112771Sqtt2@cornell.eduDECLARE_INSN(c_fsw, MATCH_C_FSW, MASK_C_FSW)
119212771Sqtt2@cornell.eduDECLARE_INSN(c_addi, MATCH_C_ADDI, MASK_C_ADDI)
119312771Sqtt2@cornell.eduDECLARE_INSN(c_jal, MATCH_C_JAL, MASK_C_JAL)
119412771Sqtt2@cornell.eduDECLARE_INSN(c_li, MATCH_C_LI, MASK_C_LI)
119512771Sqtt2@cornell.eduDECLARE_INSN(c_lui, MATCH_C_LUI, MASK_C_LUI)
119612771Sqtt2@cornell.eduDECLARE_INSN(c_srli, MATCH_C_SRLI, MASK_C_SRLI)
119712771Sqtt2@cornell.eduDECLARE_INSN(c_srai, MATCH_C_SRAI, MASK_C_SRAI)
119812771Sqtt2@cornell.eduDECLARE_INSN(c_andi, MATCH_C_ANDI, MASK_C_ANDI)
119912771Sqtt2@cornell.eduDECLARE_INSN(c_sub, MATCH_C_SUB, MASK_C_SUB)
120012771Sqtt2@cornell.eduDECLARE_INSN(c_xor, MATCH_C_XOR, MASK_C_XOR)
120112771Sqtt2@cornell.eduDECLARE_INSN(c_or, MATCH_C_OR, MASK_C_OR)
120212771Sqtt2@cornell.eduDECLARE_INSN(c_and, MATCH_C_AND, MASK_C_AND)
120312771Sqtt2@cornell.eduDECLARE_INSN(c_subw, MATCH_C_SUBW, MASK_C_SUBW)
120412771Sqtt2@cornell.eduDECLARE_INSN(c_addw, MATCH_C_ADDW, MASK_C_ADDW)
120512771Sqtt2@cornell.eduDECLARE_INSN(c_j, MATCH_C_J, MASK_C_J)
120612771Sqtt2@cornell.eduDECLARE_INSN(c_beqz, MATCH_C_BEQZ, MASK_C_BEQZ)
120712771Sqtt2@cornell.eduDECLARE_INSN(c_bnez, MATCH_C_BNEZ, MASK_C_BNEZ)
120812771Sqtt2@cornell.eduDECLARE_INSN(c_slli, MATCH_C_SLLI, MASK_C_SLLI)
120912771Sqtt2@cornell.eduDECLARE_INSN(c_fldsp, MATCH_C_FLDSP, MASK_C_FLDSP)
121012771Sqtt2@cornell.eduDECLARE_INSN(c_lwsp, MATCH_C_LWSP, MASK_C_LWSP)
121112771Sqtt2@cornell.eduDECLARE_INSN(c_flwsp, MATCH_C_FLWSP, MASK_C_FLWSP)
121212771Sqtt2@cornell.eduDECLARE_INSN(c_mv, MATCH_C_MV, MASK_C_MV)
121312771Sqtt2@cornell.eduDECLARE_INSN(c_add, MATCH_C_ADD, MASK_C_ADD)
121412771Sqtt2@cornell.eduDECLARE_INSN(c_fsdsp, MATCH_C_FSDSP, MASK_C_FSDSP)
121512771Sqtt2@cornell.eduDECLARE_INSN(c_swsp, MATCH_C_SWSP, MASK_C_SWSP)
121612771Sqtt2@cornell.eduDECLARE_INSN(c_fswsp, MATCH_C_FSWSP, MASK_C_FSWSP)
121712771Sqtt2@cornell.eduDECLARE_INSN(custom0, MATCH_CUSTOM0, MASK_CUSTOM0)
121812771Sqtt2@cornell.eduDECLARE_INSN(custom0_rs1, MATCH_CUSTOM0_RS1, MASK_CUSTOM0_RS1)
121912771Sqtt2@cornell.eduDECLARE_INSN(custom0_rs1_rs2, MATCH_CUSTOM0_RS1_RS2, MASK_CUSTOM0_RS1_RS2)
122012771Sqtt2@cornell.eduDECLARE_INSN(custom0_rd, MATCH_CUSTOM0_RD, MASK_CUSTOM0_RD)
122112771Sqtt2@cornell.eduDECLARE_INSN(custom0_rd_rs1, MATCH_CUSTOM0_RD_RS1, MASK_CUSTOM0_RD_RS1)
122212771Sqtt2@cornell.eduDECLARE_INSN(custom0_rd_rs1_rs2, MATCH_CUSTOM0_RD_RS1_RS2, MASK_CUSTOM0_RD_RS1_RS2)
122312771Sqtt2@cornell.eduDECLARE_INSN(custom1, MATCH_CUSTOM1, MASK_CUSTOM1)
122412771Sqtt2@cornell.eduDECLARE_INSN(custom1_rs1, MATCH_CUSTOM1_RS1, MASK_CUSTOM1_RS1)
122512771Sqtt2@cornell.eduDECLARE_INSN(custom1_rs1_rs2, MATCH_CUSTOM1_RS1_RS2, MASK_CUSTOM1_RS1_RS2)
122612771Sqtt2@cornell.eduDECLARE_INSN(custom1_rd, MATCH_CUSTOM1_RD, MASK_CUSTOM1_RD)
122712771Sqtt2@cornell.eduDECLARE_INSN(custom1_rd_rs1, MATCH_CUSTOM1_RD_RS1, MASK_CUSTOM1_RD_RS1)
122812771Sqtt2@cornell.eduDECLARE_INSN(custom1_rd_rs1_rs2, MATCH_CUSTOM1_RD_RS1_RS2, MASK_CUSTOM1_RD_RS1_RS2)
122912771Sqtt2@cornell.eduDECLARE_INSN(custom2, MATCH_CUSTOM2, MASK_CUSTOM2)
123012771Sqtt2@cornell.eduDECLARE_INSN(custom2_rs1, MATCH_CUSTOM2_RS1, MASK_CUSTOM2_RS1)
123112771Sqtt2@cornell.eduDECLARE_INSN(custom2_rs1_rs2, MATCH_CUSTOM2_RS1_RS2, MASK_CUSTOM2_RS1_RS2)
123212771Sqtt2@cornell.eduDECLARE_INSN(custom2_rd, MATCH_CUSTOM2_RD, MASK_CUSTOM2_RD)
123312771Sqtt2@cornell.eduDECLARE_INSN(custom2_rd_rs1, MATCH_CUSTOM2_RD_RS1, MASK_CUSTOM2_RD_RS1)
123412771Sqtt2@cornell.eduDECLARE_INSN(custom2_rd_rs1_rs2, MATCH_CUSTOM2_RD_RS1_RS2, MASK_CUSTOM2_RD_RS1_RS2)
123512771Sqtt2@cornell.eduDECLARE_INSN(custom3, MATCH_CUSTOM3, MASK_CUSTOM3)
123612771Sqtt2@cornell.eduDECLARE_INSN(custom3_rs1, MATCH_CUSTOM3_RS1, MASK_CUSTOM3_RS1)
123712771Sqtt2@cornell.eduDECLARE_INSN(custom3_rs1_rs2, MATCH_CUSTOM3_RS1_RS2, MASK_CUSTOM3_RS1_RS2)
123812771Sqtt2@cornell.eduDECLARE_INSN(custom3_rd, MATCH_CUSTOM3_RD, MASK_CUSTOM3_RD)
123912771Sqtt2@cornell.eduDECLARE_INSN(custom3_rd_rs1, MATCH_CUSTOM3_RD_RS1, MASK_CUSTOM3_RD_RS1)
124012771Sqtt2@cornell.eduDECLARE_INSN(custom3_rd_rs1_rs2, MATCH_CUSTOM3_RD_RS1_RS2, MASK_CUSTOM3_RD_RS1_RS2)
124112771Sqtt2@cornell.edu#endif
124212771Sqtt2@cornell.edu#ifdef DECLARE_CSR
124312771Sqtt2@cornell.eduDECLARE_CSR(fflags, CSR_FFLAGS)
124412771Sqtt2@cornell.eduDECLARE_CSR(frm, CSR_FRM)
124512771Sqtt2@cornell.eduDECLARE_CSR(fcsr, CSR_FCSR)
124612771Sqtt2@cornell.eduDECLARE_CSR(cycle, CSR_CYCLE)
124712771Sqtt2@cornell.eduDECLARE_CSR(time, CSR_TIME)
124812771Sqtt2@cornell.eduDECLARE_CSR(instret, CSR_INSTRET)
124912771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter3, CSR_HPMCOUNTER3)
125012771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter4, CSR_HPMCOUNTER4)
125112771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter5, CSR_HPMCOUNTER5)
125212771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter6, CSR_HPMCOUNTER6)
125312771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter7, CSR_HPMCOUNTER7)
125412771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter8, CSR_HPMCOUNTER8)
125512771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter9, CSR_HPMCOUNTER9)
125612771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter10, CSR_HPMCOUNTER10)
125712771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter11, CSR_HPMCOUNTER11)
125812771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter12, CSR_HPMCOUNTER12)
125912771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter13, CSR_HPMCOUNTER13)
126012771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter14, CSR_HPMCOUNTER14)
126112771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter15, CSR_HPMCOUNTER15)
126212771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter16, CSR_HPMCOUNTER16)
126312771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter17, CSR_HPMCOUNTER17)
126412771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter18, CSR_HPMCOUNTER18)
126512771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter19, CSR_HPMCOUNTER19)
126612771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter20, CSR_HPMCOUNTER20)
126712771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter21, CSR_HPMCOUNTER21)
126812771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter22, CSR_HPMCOUNTER22)
126912771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter23, CSR_HPMCOUNTER23)
127012771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter24, CSR_HPMCOUNTER24)
127112771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter25, CSR_HPMCOUNTER25)
127212771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter26, CSR_HPMCOUNTER26)
127312771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter27, CSR_HPMCOUNTER27)
127412771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter28, CSR_HPMCOUNTER28)
127512771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter29, CSR_HPMCOUNTER29)
127612771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter30, CSR_HPMCOUNTER30)
127712771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter31, CSR_HPMCOUNTER31)
127812771Sqtt2@cornell.eduDECLARE_CSR(sstatus, CSR_SSTATUS)
127912771Sqtt2@cornell.eduDECLARE_CSR(sie, CSR_SIE)
128012771Sqtt2@cornell.eduDECLARE_CSR(stvec, CSR_STVEC)
128112771Sqtt2@cornell.eduDECLARE_CSR(scounteren, CSR_SCOUNTEREN)
128212771Sqtt2@cornell.eduDECLARE_CSR(sscratch, CSR_SSCRATCH)
128312771Sqtt2@cornell.eduDECLARE_CSR(sepc, CSR_SEPC)
128412771Sqtt2@cornell.eduDECLARE_CSR(scause, CSR_SCAUSE)
128512771Sqtt2@cornell.eduDECLARE_CSR(stval, CSR_STVAL)
128612771Sqtt2@cornell.eduDECLARE_CSR(sip, CSR_SIP)
128712771Sqtt2@cornell.eduDECLARE_CSR(satp, CSR_SATP)
128812771Sqtt2@cornell.eduDECLARE_CSR(mstatus, CSR_MSTATUS)
128912771Sqtt2@cornell.eduDECLARE_CSR(misa, CSR_MISA)
129012771Sqtt2@cornell.eduDECLARE_CSR(medeleg, CSR_MEDELEG)
129112771Sqtt2@cornell.eduDECLARE_CSR(mideleg, CSR_MIDELEG)
129212771Sqtt2@cornell.eduDECLARE_CSR(mie, CSR_MIE)
129312771Sqtt2@cornell.eduDECLARE_CSR(mtvec, CSR_MTVEC)
129412771Sqtt2@cornell.eduDECLARE_CSR(mcounteren, CSR_MCOUNTEREN)
129512771Sqtt2@cornell.eduDECLARE_CSR(mscratch, CSR_MSCRATCH)
129612771Sqtt2@cornell.eduDECLARE_CSR(mepc, CSR_MEPC)
129712771Sqtt2@cornell.eduDECLARE_CSR(mcause, CSR_MCAUSE)
129812771Sqtt2@cornell.eduDECLARE_CSR(mtval, CSR_MTVAL)
129912771Sqtt2@cornell.eduDECLARE_CSR(mip, CSR_MIP)
130012771Sqtt2@cornell.eduDECLARE_CSR(pmpcfg0, CSR_PMPCFG0)
130112771Sqtt2@cornell.eduDECLARE_CSR(pmpcfg1, CSR_PMPCFG1)
130212771Sqtt2@cornell.eduDECLARE_CSR(pmpcfg2, CSR_PMPCFG2)
130312771Sqtt2@cornell.eduDECLARE_CSR(pmpcfg3, CSR_PMPCFG3)
130412771Sqtt2@cornell.eduDECLARE_CSR(pmpaddr0, CSR_PMPADDR0)
130512771Sqtt2@cornell.eduDECLARE_CSR(pmpaddr1, CSR_PMPADDR1)
130612771Sqtt2@cornell.eduDECLARE_CSR(pmpaddr2, CSR_PMPADDR2)
130712771Sqtt2@cornell.eduDECLARE_CSR(pmpaddr3, CSR_PMPADDR3)
130812771Sqtt2@cornell.eduDECLARE_CSR(pmpaddr4, CSR_PMPADDR4)
130912771Sqtt2@cornell.eduDECLARE_CSR(pmpaddr5, CSR_PMPADDR5)
131012771Sqtt2@cornell.eduDECLARE_CSR(pmpaddr6, CSR_PMPADDR6)
131112771Sqtt2@cornell.eduDECLARE_CSR(pmpaddr7, CSR_PMPADDR7)
131212771Sqtt2@cornell.eduDECLARE_CSR(pmpaddr8, CSR_PMPADDR8)
131312771Sqtt2@cornell.eduDECLARE_CSR(pmpaddr9, CSR_PMPADDR9)
131412771Sqtt2@cornell.eduDECLARE_CSR(pmpaddr10, CSR_PMPADDR10)
131512771Sqtt2@cornell.eduDECLARE_CSR(pmpaddr11, CSR_PMPADDR11)
131612771Sqtt2@cornell.eduDECLARE_CSR(pmpaddr12, CSR_PMPADDR12)
131712771Sqtt2@cornell.eduDECLARE_CSR(pmpaddr13, CSR_PMPADDR13)
131812771Sqtt2@cornell.eduDECLARE_CSR(pmpaddr14, CSR_PMPADDR14)
131912771Sqtt2@cornell.eduDECLARE_CSR(pmpaddr15, CSR_PMPADDR15)
132012771Sqtt2@cornell.eduDECLARE_CSR(tselect, CSR_TSELECT)
132112771Sqtt2@cornell.eduDECLARE_CSR(tdata1, CSR_TDATA1)
132212771Sqtt2@cornell.eduDECLARE_CSR(tdata2, CSR_TDATA2)
132312771Sqtt2@cornell.eduDECLARE_CSR(tdata3, CSR_TDATA3)
132412771Sqtt2@cornell.eduDECLARE_CSR(dcsr, CSR_DCSR)
132512771Sqtt2@cornell.eduDECLARE_CSR(dpc, CSR_DPC)
132612771Sqtt2@cornell.eduDECLARE_CSR(dscratch, CSR_DSCRATCH)
132712771Sqtt2@cornell.eduDECLARE_CSR(mcycle, CSR_MCYCLE)
132812771Sqtt2@cornell.eduDECLARE_CSR(minstret, CSR_MINSTRET)
132912771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter3, CSR_MHPMCOUNTER3)
133012771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter4, CSR_MHPMCOUNTER4)
133112771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter5, CSR_MHPMCOUNTER5)
133212771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter6, CSR_MHPMCOUNTER6)
133312771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter7, CSR_MHPMCOUNTER7)
133412771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter8, CSR_MHPMCOUNTER8)
133512771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter9, CSR_MHPMCOUNTER9)
133612771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter10, CSR_MHPMCOUNTER10)
133712771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter11, CSR_MHPMCOUNTER11)
133812771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter12, CSR_MHPMCOUNTER12)
133912771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter13, CSR_MHPMCOUNTER13)
134012771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter14, CSR_MHPMCOUNTER14)
134112771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter15, CSR_MHPMCOUNTER15)
134212771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter16, CSR_MHPMCOUNTER16)
134312771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter17, CSR_MHPMCOUNTER17)
134412771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter18, CSR_MHPMCOUNTER18)
134512771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter19, CSR_MHPMCOUNTER19)
134612771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter20, CSR_MHPMCOUNTER20)
134712771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter21, CSR_MHPMCOUNTER21)
134812771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter22, CSR_MHPMCOUNTER22)
134912771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter23, CSR_MHPMCOUNTER23)
135012771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter24, CSR_MHPMCOUNTER24)
135112771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter25, CSR_MHPMCOUNTER25)
135212771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter26, CSR_MHPMCOUNTER26)
135312771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter27, CSR_MHPMCOUNTER27)
135412771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter28, CSR_MHPMCOUNTER28)
135512771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter29, CSR_MHPMCOUNTER29)
135612771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter30, CSR_MHPMCOUNTER30)
135712771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter31, CSR_MHPMCOUNTER31)
135812771Sqtt2@cornell.eduDECLARE_CSR(mhpmevent3, CSR_MHPMEVENT3)
135912771Sqtt2@cornell.eduDECLARE_CSR(mhpmevent4, CSR_MHPMEVENT4)
136012771Sqtt2@cornell.eduDECLARE_CSR(mhpmevent5, CSR_MHPMEVENT5)
136112771Sqtt2@cornell.eduDECLARE_CSR(mhpmevent6, CSR_MHPMEVENT6)
136212771Sqtt2@cornell.eduDECLARE_CSR(mhpmevent7, CSR_MHPMEVENT7)
136312771Sqtt2@cornell.eduDECLARE_CSR(mhpmevent8, CSR_MHPMEVENT8)
136412771Sqtt2@cornell.eduDECLARE_CSR(mhpmevent9, CSR_MHPMEVENT9)
136512771Sqtt2@cornell.eduDECLARE_CSR(mhpmevent10, CSR_MHPMEVENT10)
136612771Sqtt2@cornell.eduDECLARE_CSR(mhpmevent11, CSR_MHPMEVENT11)
136712771Sqtt2@cornell.eduDECLARE_CSR(mhpmevent12, CSR_MHPMEVENT12)
136812771Sqtt2@cornell.eduDECLARE_CSR(mhpmevent13, CSR_MHPMEVENT13)
136912771Sqtt2@cornell.eduDECLARE_CSR(mhpmevent14, CSR_MHPMEVENT14)
137012771Sqtt2@cornell.eduDECLARE_CSR(mhpmevent15, CSR_MHPMEVENT15)
137112771Sqtt2@cornell.eduDECLARE_CSR(mhpmevent16, CSR_MHPMEVENT16)
137212771Sqtt2@cornell.eduDECLARE_CSR(mhpmevent17, CSR_MHPMEVENT17)
137312771Sqtt2@cornell.eduDECLARE_CSR(mhpmevent18, CSR_MHPMEVENT18)
137412771Sqtt2@cornell.eduDECLARE_CSR(mhpmevent19, CSR_MHPMEVENT19)
137512771Sqtt2@cornell.eduDECLARE_CSR(mhpmevent20, CSR_MHPMEVENT20)
137612771Sqtt2@cornell.eduDECLARE_CSR(mhpmevent21, CSR_MHPMEVENT21)
137712771Sqtt2@cornell.eduDECLARE_CSR(mhpmevent22, CSR_MHPMEVENT22)
137812771Sqtt2@cornell.eduDECLARE_CSR(mhpmevent23, CSR_MHPMEVENT23)
137912771Sqtt2@cornell.eduDECLARE_CSR(mhpmevent24, CSR_MHPMEVENT24)
138012771Sqtt2@cornell.eduDECLARE_CSR(mhpmevent25, CSR_MHPMEVENT25)
138112771Sqtt2@cornell.eduDECLARE_CSR(mhpmevent26, CSR_MHPMEVENT26)
138212771Sqtt2@cornell.eduDECLARE_CSR(mhpmevent27, CSR_MHPMEVENT27)
138312771Sqtt2@cornell.eduDECLARE_CSR(mhpmevent28, CSR_MHPMEVENT28)
138412771Sqtt2@cornell.eduDECLARE_CSR(mhpmevent29, CSR_MHPMEVENT29)
138512771Sqtt2@cornell.eduDECLARE_CSR(mhpmevent30, CSR_MHPMEVENT30)
138612771Sqtt2@cornell.eduDECLARE_CSR(mhpmevent31, CSR_MHPMEVENT31)
138712771Sqtt2@cornell.eduDECLARE_CSR(mvendorid, CSR_MVENDORID)
138812771Sqtt2@cornell.eduDECLARE_CSR(marchid, CSR_MARCHID)
138912771Sqtt2@cornell.eduDECLARE_CSR(mimpid, CSR_MIMPID)
139012771Sqtt2@cornell.eduDECLARE_CSR(mhartid, CSR_MHARTID)
139112771Sqtt2@cornell.eduDECLARE_CSR(cycleh, CSR_CYCLEH)
139212771Sqtt2@cornell.eduDECLARE_CSR(timeh, CSR_TIMEH)
139312771Sqtt2@cornell.eduDECLARE_CSR(instreth, CSR_INSTRETH)
139412771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter3h, CSR_HPMCOUNTER3H)
139512771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter4h, CSR_HPMCOUNTER4H)
139612771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter5h, CSR_HPMCOUNTER5H)
139712771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter6h, CSR_HPMCOUNTER6H)
139812771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter7h, CSR_HPMCOUNTER7H)
139912771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter8h, CSR_HPMCOUNTER8H)
140012771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter9h, CSR_HPMCOUNTER9H)
140112771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter10h, CSR_HPMCOUNTER10H)
140212771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter11h, CSR_HPMCOUNTER11H)
140312771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter12h, CSR_HPMCOUNTER12H)
140412771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter13h, CSR_HPMCOUNTER13H)
140512771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter14h, CSR_HPMCOUNTER14H)
140612771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter15h, CSR_HPMCOUNTER15H)
140712771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter16h, CSR_HPMCOUNTER16H)
140812771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter17h, CSR_HPMCOUNTER17H)
140912771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter18h, CSR_HPMCOUNTER18H)
141012771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter19h, CSR_HPMCOUNTER19H)
141112771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter20h, CSR_HPMCOUNTER20H)
141212771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter21h, CSR_HPMCOUNTER21H)
141312771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter22h, CSR_HPMCOUNTER22H)
141412771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter23h, CSR_HPMCOUNTER23H)
141512771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter24h, CSR_HPMCOUNTER24H)
141612771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter25h, CSR_HPMCOUNTER25H)
141712771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter26h, CSR_HPMCOUNTER26H)
141812771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter27h, CSR_HPMCOUNTER27H)
141912771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter28h, CSR_HPMCOUNTER28H)
142012771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter29h, CSR_HPMCOUNTER29H)
142112771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter30h, CSR_HPMCOUNTER30H)
142212771Sqtt2@cornell.eduDECLARE_CSR(hpmcounter31h, CSR_HPMCOUNTER31H)
142312771Sqtt2@cornell.eduDECLARE_CSR(mcycleh, CSR_MCYCLEH)
142412771Sqtt2@cornell.eduDECLARE_CSR(minstreth, CSR_MINSTRETH)
142512771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter3h, CSR_MHPMCOUNTER3H)
142612771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter4h, CSR_MHPMCOUNTER4H)
142712771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter5h, CSR_MHPMCOUNTER5H)
142812771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter6h, CSR_MHPMCOUNTER6H)
142912771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter7h, CSR_MHPMCOUNTER7H)
143012771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter8h, CSR_MHPMCOUNTER8H)
143112771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter9h, CSR_MHPMCOUNTER9H)
143212771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter10h, CSR_MHPMCOUNTER10H)
143312771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter11h, CSR_MHPMCOUNTER11H)
143412771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter12h, CSR_MHPMCOUNTER12H)
143512771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter13h, CSR_MHPMCOUNTER13H)
143612771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter14h, CSR_MHPMCOUNTER14H)
143712771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter15h, CSR_MHPMCOUNTER15H)
143812771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter16h, CSR_MHPMCOUNTER16H)
143912771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter17h, CSR_MHPMCOUNTER17H)
144012771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter18h, CSR_MHPMCOUNTER18H)
144112771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter19h, CSR_MHPMCOUNTER19H)
144212771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter20h, CSR_MHPMCOUNTER20H)
144312771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter21h, CSR_MHPMCOUNTER21H)
144412771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter22h, CSR_MHPMCOUNTER22H)
144512771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter23h, CSR_MHPMCOUNTER23H)
144612771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter24h, CSR_MHPMCOUNTER24H)
144712771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter25h, CSR_MHPMCOUNTER25H)
144812771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter26h, CSR_MHPMCOUNTER26H)
144912771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter27h, CSR_MHPMCOUNTER27H)
145012771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter28h, CSR_MHPMCOUNTER28H)
145112771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter29h, CSR_MHPMCOUNTER29H)
145212771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter30h, CSR_MHPMCOUNTER30H)
145312771Sqtt2@cornell.eduDECLARE_CSR(mhpmcounter31h, CSR_MHPMCOUNTER31H)
145412771Sqtt2@cornell.edu#endif
145512771Sqtt2@cornell.edu#ifdef DECLARE_CAUSE
145612771Sqtt2@cornell.eduDECLARE_CAUSE("misaligned fetch", CAUSE_MISALIGNED_FETCH)
145712771Sqtt2@cornell.eduDECLARE_CAUSE("fetch access", CAUSE_FETCH_ACCESS)
145812771Sqtt2@cornell.eduDECLARE_CAUSE("illegal instruction", CAUSE_ILLEGAL_INSTRUCTION)
145912771Sqtt2@cornell.eduDECLARE_CAUSE("breakpoint", CAUSE_BREAKPOINT)
146012771Sqtt2@cornell.eduDECLARE_CAUSE("misaligned load", CAUSE_MISALIGNED_LOAD)
146112771Sqtt2@cornell.eduDECLARE_CAUSE("load access", CAUSE_LOAD_ACCESS)
146212771Sqtt2@cornell.eduDECLARE_CAUSE("misaligned store", CAUSE_MISALIGNED_STORE)
146312771Sqtt2@cornell.eduDECLARE_CAUSE("store access", CAUSE_STORE_ACCESS)
146412771Sqtt2@cornell.eduDECLARE_CAUSE("user_ecall", CAUSE_USER_ECALL)
146512771Sqtt2@cornell.eduDECLARE_CAUSE("supervisor_ecall", CAUSE_SUPERVISOR_ECALL)
146612771Sqtt2@cornell.eduDECLARE_CAUSE("hypervisor_ecall", CAUSE_HYPERVISOR_ECALL)
146712771Sqtt2@cornell.eduDECLARE_CAUSE("machine_ecall", CAUSE_MACHINE_ECALL)
146812771Sqtt2@cornell.eduDECLARE_CAUSE("fetch page fault", CAUSE_FETCH_PAGE_FAULT)
146912771Sqtt2@cornell.eduDECLARE_CAUSE("load page fault", CAUSE_LOAD_PAGE_FAULT)
147012771Sqtt2@cornell.eduDECLARE_CAUSE("store page fault", CAUSE_STORE_PAGE_FAULT)
147112771Sqtt2@cornell.edu#endif
1472