|
|
|
@ -35,12 +35,10 @@ |
|
|
|
#define MASK_RDTIMEH 0xfffff07f |
|
|
|
#define MATCH_RDINSTRETH 0xc8202073 |
|
|
|
#define MASK_RDINSTRETH 0xfffff07f |
|
|
|
#define MATCH_ECALL 0x73 |
|
|
|
#define MASK_ECALL 0xffffffff |
|
|
|
#define MATCH_EBREAK 0x100073 |
|
|
|
#define MASK_EBREAK 0xffffffff |
|
|
|
#define MATCH_ERET 0x10000073 |
|
|
|
#define MASK_ERET 0xffffffff |
|
|
|
#define MATCH_SCALL 0x73 |
|
|
|
#define MASK_SCALL 0xffffffff |
|
|
|
#define MATCH_SBREAK 0x100073 |
|
|
|
#define MASK_SBREAK 0xffffffff |
|
|
|
#define MATCH_BEQ 0x63 |
|
|
|
#define MASK_BEQ 0x707f |
|
|
|
#define MATCH_BNE 0x1063 |
|
|
|
@ -213,12 +211,18 @@ |
|
|
|
#define MASK_LR_D 0xf9f0707f |
|
|
|
#define MATCH_SC_D 0x1800302f |
|
|
|
#define MASK_SC_D 0xf800707f |
|
|
|
#define MATCH_SCALL 0x73 |
|
|
|
#define MASK_SCALL 0xffffffff |
|
|
|
#define MATCH_SBREAK 0x100073 |
|
|
|
#define MASK_SBREAK 0xffffffff |
|
|
|
#define MATCH_ECALL 0x73 |
|
|
|
#define MASK_ECALL 0xffffffff |
|
|
|
#define MATCH_EBREAK 0x100073 |
|
|
|
#define MASK_EBREAK 0xffffffff |
|
|
|
#define MATCH_URET 0x200073 |
|
|
|
#define MASK_URET 0xffffffff |
|
|
|
#define MATCH_SRET 0x10200073 |
|
|
|
#define MASK_SRET 0xffffffff |
|
|
|
#define MATCH_HRET 0x20200073 |
|
|
|
#define MASK_HRET 0xffffffff |
|
|
|
#define MATCH_MRET 0x30200073 |
|
|
|
#define MASK_MRET 0xffffffff |
|
|
|
#define MATCH_SFENCE_VM 0x10400073 |
|
|
|
#define MASK_SFENCE_VM 0xfff07fff |
|
|
|
#define MATCH_WFI 0x10500073 |
|
|
|
@ -497,23 +501,6 @@ |
|
|
|
#define CSR_CYCLE 0xc00 |
|
|
|
#define CSR_TIME 0xc01 |
|
|
|
#define CSR_INSTRET 0xc02 |
|
|
|
#define CSR_STATS 0xc0 |
|
|
|
#define CSR_UARCH0 0xcc0 |
|
|
|
#define CSR_UARCH1 0xcc1 |
|
|
|
#define CSR_UARCH2 0xcc2 |
|
|
|
#define CSR_UARCH3 0xcc3 |
|
|
|
#define CSR_UARCH4 0xcc4 |
|
|
|
#define CSR_UARCH5 0xcc5 |
|
|
|
#define CSR_UARCH6 0xcc6 |
|
|
|
#define CSR_UARCH7 0xcc7 |
|
|
|
#define CSR_UARCH8 0xcc8 |
|
|
|
#define CSR_UARCH9 0xcc9 |
|
|
|
#define CSR_UARCH10 0xcca |
|
|
|
#define CSR_UARCH11 0xccb |
|
|
|
#define CSR_UARCH12 0xccc |
|
|
|
#define CSR_UARCH13 0xccd |
|
|
|
#define CSR_UARCH14 0xcce |
|
|
|
#define CSR_UARCH15 0xccf |
|
|
|
#define CSR_SSTATUS 0x100 |
|
|
|
#define CSR_SIE 0x104 |
|
|
|
#define CSR_STVEC 0x105 |
|
|
|
@ -532,7 +519,6 @@ |
|
|
|
#define CSR_MIDELEG 0x303 |
|
|
|
#define CSR_MIE 0x304 |
|
|
|
#define CSR_MTVEC 0x305 |
|
|
|
#define CSR_MTIMECMP 0x321 |
|
|
|
#define CSR_MSCRATCH 0x340 |
|
|
|
#define CSR_MEPC 0x341 |
|
|
|
#define CSR_MCAUSE 0x342 |
|
|
|
@ -554,15 +540,13 @@ |
|
|
|
#define CSR_MVENDORID 0xf11 |
|
|
|
#define CSR_MARCHID 0xf12 |
|
|
|
#define CSR_MIMPID 0xf13 |
|
|
|
#define CSR_MCFGADDR 0xf14 |
|
|
|
#define CSR_MHARTID 0xf15 |
|
|
|
#define CSR_MHARTID 0xf14 |
|
|
|
#define CSR_MTOHOST 0x7c0 |
|
|
|
#define CSR_MFROMHOST 0x7c1 |
|
|
|
#define CSR_MRESET 0x7c2 |
|
|
|
#define CSR_CYCLEH 0xc80 |
|
|
|
#define CSR_TIMEH 0xc81 |
|
|
|
#define CSR_INSTRETH 0xc82 |
|
|
|
#define CSR_MTIMECMPH 0x361 |
|
|
|
#define CSR_MUCYCLE_DELTAH 0x780 |
|
|
|
#define CSR_MUTIME_DELTAH 0x781 |
|
|
|
#define CSR_MUINSTRET_DELTAH 0x782 |
|
|
|
@ -603,9 +587,8 @@ DECLARE_INSN(rdinstret, MATCH_RDINSTRET, MASK_RDINSTRET) |
|
|
|
DECLARE_INSN(rdcycleh, MATCH_RDCYCLEH, MASK_RDCYCLEH) |
|
|
|
DECLARE_INSN(rdtimeh, MATCH_RDTIMEH, MASK_RDTIMEH) |
|
|
|
DECLARE_INSN(rdinstreth, MATCH_RDINSTRETH, MASK_RDINSTRETH) |
|
|
|
DECLARE_INSN(ecall, MATCH_ECALL, MASK_ECALL) |
|
|
|
DECLARE_INSN(ebreak, MATCH_EBREAK, MASK_EBREAK) |
|
|
|
DECLARE_INSN(eret, MATCH_ERET, MASK_ERET) |
|
|
|
DECLARE_INSN(scall, MATCH_SCALL, MASK_SCALL) |
|
|
|
DECLARE_INSN(sbreak, MATCH_SBREAK, MASK_SBREAK) |
|
|
|
DECLARE_INSN(beq, MATCH_BEQ, MASK_BEQ) |
|
|
|
DECLARE_INSN(bne, MATCH_BNE, MASK_BNE) |
|
|
|
DECLARE_INSN(blt, MATCH_BLT, MASK_BLT) |
|
|
|
@ -692,9 +675,12 @@ DECLARE_INSN(amomaxu_d, MATCH_AMOMAXU_D, MASK_AMOMAXU_D) |
|
|
|
DECLARE_INSN(amoswap_d, MATCH_AMOSWAP_D, MASK_AMOSWAP_D) |
|
|
|
DECLARE_INSN(lr_d, MATCH_LR_D, MASK_LR_D) |
|
|
|
DECLARE_INSN(sc_d, MATCH_SC_D, MASK_SC_D) |
|
|
|
DECLARE_INSN(scall, MATCH_SCALL, MASK_SCALL) |
|
|
|
DECLARE_INSN(sbreak, MATCH_SBREAK, MASK_SBREAK) |
|
|
|
DECLARE_INSN(ecall, MATCH_ECALL, MASK_ECALL) |
|
|
|
DECLARE_INSN(ebreak, MATCH_EBREAK, MASK_EBREAK) |
|
|
|
DECLARE_INSN(uret, MATCH_URET, MASK_URET) |
|
|
|
DECLARE_INSN(sret, MATCH_SRET, MASK_SRET) |
|
|
|
DECLARE_INSN(hret, MATCH_HRET, MASK_HRET) |
|
|
|
DECLARE_INSN(mret, MATCH_MRET, MASK_MRET) |
|
|
|
DECLARE_INSN(sfence_vm, MATCH_SFENCE_VM, MASK_SFENCE_VM) |
|
|
|
DECLARE_INSN(wfi, MATCH_WFI, MASK_WFI) |
|
|
|
DECLARE_INSN(csrrw, MATCH_CSRRW, MASK_CSRRW) |
|
|
|
@ -839,23 +825,6 @@ DECLARE_CSR(fcsr, CSR_FCSR) |
|
|
|
DECLARE_CSR(cycle, CSR_CYCLE) |
|
|
|
DECLARE_CSR(time, CSR_TIME) |
|
|
|
DECLARE_CSR(instret, CSR_INSTRET) |
|
|
|
DECLARE_CSR(stats, CSR_STATS) |
|
|
|
DECLARE_CSR(uarch0, CSR_UARCH0) |
|
|
|
DECLARE_CSR(uarch1, CSR_UARCH1) |
|
|
|
DECLARE_CSR(uarch2, CSR_UARCH2) |
|
|
|
DECLARE_CSR(uarch3, CSR_UARCH3) |
|
|
|
DECLARE_CSR(uarch4, CSR_UARCH4) |
|
|
|
DECLARE_CSR(uarch5, CSR_UARCH5) |
|
|
|
DECLARE_CSR(uarch6, CSR_UARCH6) |
|
|
|
DECLARE_CSR(uarch7, CSR_UARCH7) |
|
|
|
DECLARE_CSR(uarch8, CSR_UARCH8) |
|
|
|
DECLARE_CSR(uarch9, CSR_UARCH9) |
|
|
|
DECLARE_CSR(uarch10, CSR_UARCH10) |
|
|
|
DECLARE_CSR(uarch11, CSR_UARCH11) |
|
|
|
DECLARE_CSR(uarch12, CSR_UARCH12) |
|
|
|
DECLARE_CSR(uarch13, CSR_UARCH13) |
|
|
|
DECLARE_CSR(uarch14, CSR_UARCH14) |
|
|
|
DECLARE_CSR(uarch15, CSR_UARCH15) |
|
|
|
DECLARE_CSR(sstatus, CSR_SSTATUS) |
|
|
|
DECLARE_CSR(sie, CSR_SIE) |
|
|
|
DECLARE_CSR(stvec, CSR_STVEC) |
|
|
|
@ -874,7 +843,6 @@ DECLARE_CSR(medeleg, CSR_MEDELEG) |
|
|
|
DECLARE_CSR(mideleg, CSR_MIDELEG) |
|
|
|
DECLARE_CSR(mie, CSR_MIE) |
|
|
|
DECLARE_CSR(mtvec, CSR_MTVEC) |
|
|
|
DECLARE_CSR(mtimecmp, CSR_MTIMECMP) |
|
|
|
DECLARE_CSR(mscratch, CSR_MSCRATCH) |
|
|
|
DECLARE_CSR(mepc, CSR_MEPC) |
|
|
|
DECLARE_CSR(mcause, CSR_MCAUSE) |
|
|
|
@ -896,7 +864,6 @@ DECLARE_CSR(misa, CSR_MISA) |
|
|
|
DECLARE_CSR(mvendorid, CSR_MVENDORID) |
|
|
|
DECLARE_CSR(marchid, CSR_MARCHID) |
|
|
|
DECLARE_CSR(mimpid, CSR_MIMPID) |
|
|
|
DECLARE_CSR(mcfgaddr, CSR_MCFGADDR) |
|
|
|
DECLARE_CSR(mhartid, CSR_MHARTID) |
|
|
|
DECLARE_CSR(mtohost, CSR_MTOHOST) |
|
|
|
DECLARE_CSR(mfromhost, CSR_MFROMHOST) |
|
|
|
@ -904,7 +871,6 @@ DECLARE_CSR(mreset, CSR_MRESET) |
|
|
|
DECLARE_CSR(cycleh, CSR_CYCLEH) |
|
|
|
DECLARE_CSR(timeh, CSR_TIMEH) |
|
|
|
DECLARE_CSR(instreth, CSR_INSTRETH) |
|
|
|
DECLARE_CSR(mtimecmph, CSR_MTIMECMPH) |
|
|
|
DECLARE_CSR(mucycle_deltah, CSR_MUCYCLE_DELTAH) |
|
|
|
DECLARE_CSR(mutime_deltah, CSR_MUTIME_DELTAH) |
|
|
|
DECLARE_CSR(muinstret_deltah, CSR_MUINSTRET_DELTAH) |
|
|
|
|