mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2026-05-22 06:52:41 +08:00
GP-5975 Refactored RISCV custom instruction, sinc file layout,
simplified context, and moved csr register definitions to be in a special csreg ram space. Deprecated all most RISCV variants other than default. Added andestar V5 RISCV variant.
This commit is contained in:
@@ -879,10 +879,13 @@ public class SymbolicPropogator {
|
||||
try {
|
||||
switch (ptype) {
|
||||
case PcodeOp.COPY:
|
||||
if (in[0].isAddress() &&
|
||||
!in[0].getAddress().getAddressSpace().hasMappedRegisters()) {
|
||||
makeReference(vContext, instruction, Reference.MNEMONIC, in[0],
|
||||
null, RefType.READ, ptype, true, monitor);
|
||||
if (in[0].isAddress()) {
|
||||
AddressSpace addressSpace = in[0].getAddress().getAddressSpace();
|
||||
// if not address mapped, or no register defined there
|
||||
if (!addressSpace.hasMappedRegisters() || program.getRegister(in[0]) == null) {
|
||||
makeReference(vContext, instruction, Reference.MNEMONIC, in[0],
|
||||
null, RefType.READ, ptype, true, monitor);
|
||||
}
|
||||
}
|
||||
vContext.copy(out, in[0], mustClearAll, evaluator);
|
||||
break;
|
||||
|
||||
@@ -1,15 +1,11 @@
|
||||
##VERSION: 2.0
|
||||
Module.manifest||GHIDRA||||END|
|
||||
README.md||GHIDRA||||END|
|
||||
data/languages/RV32G.pspec||GHIDRA||||END|
|
||||
data/languages/RV32GC.pspec||GHIDRA||||END|
|
||||
data/languages/RV32I.pspec||GHIDRA||||END|
|
||||
data/languages/RV32IC.pspec||GHIDRA||||END|
|
||||
data/languages/RV32IMC.pspec||GHIDRA||||END|
|
||||
data/languages/RV64G.pspec||GHIDRA||||END|
|
||||
data/languages/RV64GC.pspec||GHIDRA||||END|
|
||||
data/languages/RV64I.pspec||GHIDRA||||END|
|
||||
data/languages/RV64IC.pspec||GHIDRA||||END|
|
||||
data/languages/RV32.pspec||GHIDRA||||END|
|
||||
data/languages/RV64.pspec||GHIDRA||||END|
|
||||
data/languages/andestar_v5.instr.sinc||GHIDRA||||END|
|
||||
data/languages/andestar_v5.ldefs||GHIDRA||||END|
|
||||
data/languages/andestar_v5.slaspec||GHIDRA||||END|
|
||||
data/languages/riscv.csr.sinc||GHIDRA||||END|
|
||||
data/languages/riscv.custom.sinc||GHIDRA||||END|
|
||||
data/languages/riscv.ilp32d.slaspec||GHIDRA||||END|
|
||||
|
||||
@@ -0,0 +1,425 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<processor_spec>
|
||||
<programcounter register="pc"/>
|
||||
<context_data>
|
||||
<context_set space="ram">
|
||||
<set name="MXL" val="1"/>
|
||||
</context_set>
|
||||
</context_data>
|
||||
|
||||
<default_memory_blocks>
|
||||
<memory_block name="csr" start_address="csreg:0x0" length="0x4000" initialized="false"/>
|
||||
</default_memory_blocks>
|
||||
|
||||
<!-- TODO: add include directive and move to shared include -->
|
||||
<default_symbols>
|
||||
<symbol name="ustatus" address="csreg:0x000" size="4" description="" />
|
||||
<symbol name="fflags" address="csreg:0x001" size="4" description="" />
|
||||
<symbol name="frm" address="csreg:0x002" size="4" description="" />
|
||||
<symbol name="fcsr" address="csreg:0x003" size="4" description="" />
|
||||
<symbol name="uie" address="csreg:0x004" size="4" description="" />
|
||||
<symbol name="utvec" address="csreg:0x005" size="4" description="" />
|
||||
|
||||
<symbol name="vstart" address="csreg:0x008" size="4" description="" />
|
||||
<symbol name="vxsat" address="csreg:0x009" size="4" description="" />
|
||||
<symbol name="vxrm" address="csreg:0x00a" size="4" description="" />
|
||||
<symbol name="vcsr" address="csreg:0x00f" size="4" description="" />
|
||||
|
||||
|
||||
<symbol name="uscratch" address="csreg:0x040" size="4" description="" />
|
||||
<symbol name="uepc" address="next" size="4" description="" />
|
||||
<symbol name="ucause" address="next" size="4" description="" />
|
||||
<symbol name="utval" address="next" size="4" description="" />
|
||||
<symbol name="uip" address="next" size="4" description="" />
|
||||
|
||||
|
||||
<symbol name="sstatus" address="csreg:0x100" size="4" description="" />
|
||||
<symbol name="sedeleg" address="next" size="4" description="" />
|
||||
<symbol name="sideleg" address="next" size="4" description="" />
|
||||
<symbol name="sie" address="next" size="4" description="" />
|
||||
<symbol name="stvec" address="next" size="4" description="" />
|
||||
<symbol name="scounteren" address="next" size="4" description="" />
|
||||
|
||||
|
||||
<symbol name="sscratch" address="csreg:0x140" size="4" description="" />
|
||||
<symbol name="sepc" address="next" size="4" description="" />
|
||||
<symbol name="scause" address="next" size="4" description="" />
|
||||
<symbol name="stval" address="next" size="4" description="" />
|
||||
<symbol name="sip" address="next" size="4" description="" />
|
||||
|
||||
|
||||
<symbol name="satp" address="csreg:0x180" size="4" description="" />
|
||||
|
||||
|
||||
<symbol name="vsstatus" address="csreg:0x200" size="4" description="" />
|
||||
<symbol name="vsie" address="csreg:0x204" size="4" description="" />
|
||||
<symbol name="vstvec" address="next" size="4" description="" />
|
||||
|
||||
|
||||
<symbol name="vsscratch" address="csreg:0x240" size="4" description="" />
|
||||
<symbol name="vsepc" address="next" size="4" description="" />
|
||||
<symbol name="vscause" address="next" size="4" description="" />
|
||||
<symbol name="vstval" address="next" size="4" description="" />
|
||||
<symbol name="vsip" address="next" size="4" description="" />
|
||||
|
||||
|
||||
<symbol name="vsatp" address="csreg:0x280" size="4" description="" />
|
||||
|
||||
|
||||
<symbol name="mstatus" address="csreg:0x300" size="4" description="" />
|
||||
<symbol name="misa" address="next" size="4" description="" />
|
||||
<symbol name="medeleg" address="next" size="4" description="" />
|
||||
<symbol name="mideleg" address="next" size="4" description="" />
|
||||
<symbol name="mie" address="next" size="4" description="" />
|
||||
<symbol name="mtvec" address="next" size="4" description="" />
|
||||
<symbol name="mcounteren" address="next" size="4" description="" />
|
||||
|
||||
|
||||
<symbol name="mstatush" address="csreg:0x310" size="4" description="" />
|
||||
|
||||
|
||||
<symbol name="mcountinhibit" address="csreg:0x320" size="4" description="" />
|
||||
<symbol name="mhpmevent3" address="csreg:0x323" size="4" description="" />
|
||||
<symbol name="mhpmevent4" address="csreg:0x324" size="4" description="" />
|
||||
<symbol name="mhpmevent5" address="csreg:0x325" size="4" description="" />
|
||||
<symbol name="mhpmevent6" address="csreg:0x326" size="4" description="" />
|
||||
<symbol name="mhpmevent7" address="csreg:0x327" size="4" description="" />
|
||||
|
||||
<symbol name="mhpmevent8" address="csreg:0x328" size="4" description="" />
|
||||
<symbol name="mhpmevent9" address="csreg:0x329" size="4" description="" />
|
||||
<symbol name="mhpmevent10" address="csreg:0x32a" size="4" description="" />
|
||||
<symbol name="mhpmevent11" address="csreg:0x32b" size="4" description="" />
|
||||
<symbol name="mhpmevent12" address="csreg:0x32c" size="4" description="" />
|
||||
<symbol name="mhpmevent13" address="csreg:0x32d" size="4" description="" />
|
||||
<symbol name="mhpmevent14" address="csreg:0x32e" size="4" description="" />
|
||||
<symbol name="mhpmevent15" address="csreg:0x32f" size="4" description="" />
|
||||
|
||||
<symbol name="mhpmevent16" address="csreg:0x330" size="4" description="" />
|
||||
<symbol name="mhpmevent17" address="next" size="4" description="" />
|
||||
<symbol name="mhpmevent18" address="next" size="4" description="" />
|
||||
<symbol name="mhpmevent19" address="next" size="4" description="" />
|
||||
<symbol name="mhpmevent20" address="next" size="4" description="" />
|
||||
<symbol name="mhpmevent21" address="next" size="4" description="" />
|
||||
<symbol name="mhpmevent22" address="next" size="4" description="" />
|
||||
<symbol name="mhpmevent23" address="next" size="4" description="" />
|
||||
|
||||
<symbol name="mhpmevent24" address="csreg:0x338" size="4" description="" />
|
||||
<symbol name="mhpmevent25" address="next" size="4" description="" />
|
||||
<symbol name="mhpmevent26" address="next" size="4" description="" />
|
||||
<symbol name="mhpmevent27" address="next" size="4" description="" />
|
||||
<symbol name="mhpmevent28" address="next" size="4" description="" />
|
||||
<symbol name="mhpmevent29" address="next" size="4" description="" />
|
||||
<symbol name="mhpmevent30" address="next" size="4" description="" />
|
||||
<symbol name="mhpmevent31" address="next" size="4" description="" />
|
||||
|
||||
<symbol name="mscratch" address="csreg:0x340" size="4" description="" />
|
||||
<symbol name="mepc" address="csreg:0x341" size="4" description="" />
|
||||
<symbol name="mcause" address="csreg:0x342" size="4" description="" />
|
||||
<symbol name="mtval" address="csreg:0x343" size="4" description="" />
|
||||
<symbol name="mip" address="csreg:0x344" size="4" description="" />
|
||||
|
||||
<symbol name="mtinst" address="csreg:0x34a" size="4" description="" />
|
||||
<symbol name="mtval2" address="csreg:0x34b" size="4" description="" />
|
||||
|
||||
|
||||
<symbol name="mbase" address="csreg:0x380" size="4" description="" />
|
||||
<symbol name="mbound" address="csreg:0x381" size="4" description="" />
|
||||
<symbol name="mibase" address="csreg:0x382" size="4" description="" />
|
||||
<symbol name="mibound" address="csreg:0x383" size="4" description="" />
|
||||
<symbol name="mdbase" address="csreg:0x384" size="4" description="" />
|
||||
<symbol name="mdbound" address="csreg:0x385" size="4" description="" />
|
||||
|
||||
|
||||
<symbol name="pmpcfg0" address="csreg:0x3a0" size="4" description="" />
|
||||
<symbol name="pmpcfg1" address="next" size="4" description="" />
|
||||
<symbol name="pmpcfg2" address="next" size="4" description="" />
|
||||
<symbol name="pmpcfg3" address="next" size="4" description="" />
|
||||
<symbol name="pmpcfg4" address="next" size="4" description="" />
|
||||
<symbol name="pmpcfg5" address="next" size="4" description="" />
|
||||
<symbol name="pmpcfg6" address="next" size="4" description="" />
|
||||
<symbol name="pmpcfg7" address="next" size="4" description="" />
|
||||
|
||||
<symbol name="pmpcfg8" address="csreg:0x3a8" size="4" description="" />
|
||||
<symbol name="pmpcfg9" address="next" size="4" description="" />
|
||||
<symbol name="pmpcfg10" address="next" size="4" description="" />
|
||||
<symbol name="pmpcfg11" address="next" size="4" description="" />
|
||||
<symbol name="pmpcfg12" address="next" size="4" description="" />
|
||||
<symbol name="pmpcfg13" address="next" size="4" description="" />
|
||||
<symbol name="pmpcfg14" address="next" size="4" description="" />
|
||||
<symbol name="pmpcfg15" address="next" size="4" description="" />
|
||||
|
||||
<symbol name="pmpaddr0" address="csreg:0x3b0" size="4" description="" />
|
||||
<symbol name="pmpaddr1" address="next" size="4" description="" />
|
||||
<symbol name="pmpaddr2" address="next" size="4" description="" />
|
||||
<symbol name="pmpaddr3" address="next" size="4" description="" />
|
||||
<symbol name="pmpaddr4" address="next" size="4" description="" />
|
||||
<symbol name="pmpaddr5" address="next" size="4" description="" />
|
||||
<symbol name="pmpaddr6" address="next" size="4" description="" />
|
||||
<symbol name="pmpaddr7" address="next" size="4" description="" />
|
||||
|
||||
<symbol name="pmpaddr8" address="csreg:0x3b8" size="4" description="" />
|
||||
<symbol name="pmpaddr9" address="next" size="4" description="" />
|
||||
<symbol name="pmpaddr10" address="next" size="4" description="" />
|
||||
<symbol name="pmpaddr11" address="next" size="4" description="" />
|
||||
<symbol name="pmpaddr12" address="next" size="4" description="" />
|
||||
<symbol name="pmpaddr13" address="next" size="4" description="" />
|
||||
<symbol name="pmpaddr14" address="next" size="4" description="" />
|
||||
<symbol name="pmpaddr15" address="next" size="4" description="" />
|
||||
|
||||
<symbol name="pmpaddr16" address="csreg:0x3c0" size="4" description="" />
|
||||
<symbol name="pmpaddr17" address="next" size="4" description="" />
|
||||
<symbol name="pmpaddr18" address="next" size="4" description="" />
|
||||
<symbol name="pmpaddr19" address="next" size="4" description="" />
|
||||
<symbol name="pmpaddr20" address="next" size="4" description="" />
|
||||
<symbol name="pmpaddr21" address="next" size="4" description="" />
|
||||
<symbol name="pmpaddr22" address="next" size="4" description="" />
|
||||
<symbol name="pmpaddr23" address="next" size="4" description="" />
|
||||
|
||||
<symbol name="pmpaddr24" address="csreg:0x3c8" size="4" description="" />
|
||||
<symbol name="pmpaddr25" address="next" size="4" description="" />
|
||||
<symbol name="pmpaddr26" address="next" size="4" description="" />
|
||||
<symbol name="pmpaddr27" address="next" size="4" description="" />
|
||||
<symbol name="pmpaddr28" address="next" size="4" description="" />
|
||||
<symbol name="pmpaddr29" address="next" size="4" description="" />
|
||||
<symbol name="pmpaddr30" address="next" size="4" description="" />
|
||||
<symbol name="pmpaddr31" address="next" size="4" description="" />
|
||||
|
||||
<symbol name="pmpaddr32" address="csreg:0x3d0" size="4" description="" />
|
||||
<symbol name="pmpaddr33" address="next" size="4" description="" />
|
||||
<symbol name="pmpaddr34" address="next" size="4" description="" />
|
||||
<symbol name="pmpaddr35" address="next" size="4" description="" />
|
||||
<symbol name="pmpaddr36" address="next" size="4" description="" />
|
||||
<symbol name="pmpaddr37" address="next" size="4" description="" />
|
||||
<symbol name="pmpaddr38" address="next" size="4" description="" />
|
||||
<symbol name="pmpaddr39" address="next" size="4" description="" />
|
||||
|
||||
<symbol name="pmpaddr40" address="csreg:0x3d8" size="4" description="" />
|
||||
<symbol name="pmpaddr41" address="next" size="4" description="" />
|
||||
<symbol name="pmpaddr42" address="next" size="4" description="" />
|
||||
<symbol name="pmpaddr43" address="next" size="4" description="" />
|
||||
<symbol name="pmpaddr44" address="next" size="4" description="" />
|
||||
<symbol name="pmpaddr45" address="next" size="4" description="" />
|
||||
<symbol name="pmpaddr46" address="next" size="4" description="" />
|
||||
<symbol name="pmpaddr47" address="next" size="4" description="" />
|
||||
|
||||
<symbol name="pmpaddr48" address="csreg:0x3e0" size="4" description="" />
|
||||
<symbol name="pmpaddr49" address="next" size="4" description="" />
|
||||
<symbol name="pmpaddr50" address="next" size="4" description="" />
|
||||
<symbol name="pmpaddr51" address="next" size="4" description="" />
|
||||
<symbol name="pmpaddr52" address="next" size="4" description="" />
|
||||
<symbol name="pmpaddr53" address="next" size="4" description="" />
|
||||
<symbol name="pmpaddr54" address="next" size="4" description="" />
|
||||
<symbol name="pmpaddr55" address="next" size="4" description="" />
|
||||
|
||||
<symbol name="pmpaddr56" address="csreg:0x3e8" size="4" description="" />
|
||||
<symbol name="pmpaddr57" address="next" size="4" description="" />
|
||||
<symbol name="pmpaddr58" address="next" size="4" description="" />
|
||||
<symbol name="pmpaddr59" address="next" size="4" description="" />
|
||||
<symbol name="pmpaddr60" address="next" size="4" description="" />
|
||||
<symbol name="pmpaddr61" address="next" size="4" description="" />
|
||||
<symbol name="pmpaddr62" address="next" size="4" description="" />
|
||||
<symbol name="pmpaddr63" address="next" size="4" description="" />
|
||||
|
||||
|
||||
<symbol name="scontext" address="csreg:0x5a8" size="4" description="" />
|
||||
|
||||
|
||||
<symbol name="hstatus" address="csreg:0x600" size="4" description="" />
|
||||
<symbol name="hedeleg" address="csreg:0x602" size="4" description="" />
|
||||
<symbol name="hideleg" address="csreg:0x603" size="4" description="" />
|
||||
<symbol name="hie" address="csreg:0x604" size="4" description="" />
|
||||
<symbol name="htimedelta" address="csreg:0x605" size="4" description="" />
|
||||
<symbol name="hcounteren" address="csreg:0x606" size="4" description="" />
|
||||
<symbol name="hgeie" address="csreg:0x607" size="4" description="" />
|
||||
|
||||
|
||||
<symbol name="htimedeltah" address="csreg:0x615" size="4" description="" />
|
||||
|
||||
|
||||
<symbol name="htval" address="csreg:0x643" size="4" description="" />
|
||||
<symbol name="hip" address="csreg:0x644" size="4" description="" />
|
||||
<symbol name="hvip" address="csreg:0x645" size="4" description="" />
|
||||
|
||||
<symbol name="htinst" address="csreg:0x64a" size="4" description="" />
|
||||
|
||||
|
||||
<symbol name="hgatp" address="csreg:0x680" size="4" description="" />
|
||||
|
||||
|
||||
<symbol name="hcontext" address="csreg:0x6a8" size="4" description="" />
|
||||
|
||||
|
||||
<symbol name="tselect" address="csreg:0x7a0" size="4" description="" />
|
||||
<symbol name="tdata1" address="csreg:0x7a1" size="4" description="" />
|
||||
<symbol name="tdata2" address="csreg:0x7a2" size="4" description="" />
|
||||
<symbol name="tdata3" address="csreg:0x7a3" size="4" description="" />
|
||||
|
||||
<symbol name="mcontext" address="csreg:0x7a8" size="4" description="" />
|
||||
|
||||
<symbol name="dcsr" address="csreg:0x7b0" size="4" description="" />
|
||||
<symbol name="dpc" address="csreg:0x7b1" size="4" description="" />
|
||||
<symbol name="dscratch0" address="csreg:0x7b2" size="4" description="" />
|
||||
<symbol name="dscratch1" address="csreg:0x7b3" size="4" description="" />
|
||||
|
||||
|
||||
<symbol name="mcycle" address="csreg:0xa00" size="4" description="" />
|
||||
<symbol name="minstret" address="csreg:0xa02" size="4" description="" />
|
||||
<symbol name="mhpmcounter3" address="csreg:0xa03" size="4" description="" />
|
||||
<symbol name="mhpmcounter4" address="next" size="4" description="" />
|
||||
<symbol name="mhpmcounter5" address="next" size="4" description="" />
|
||||
<symbol name="mhpmcounter6" address="next" size="4" description="" />
|
||||
<symbol name="mhpmcounter7" address="next" size="4" description="" />
|
||||
|
||||
<symbol name="mhpmcounter8" address="csreg:0xa08" size="4" description="" />
|
||||
<symbol name="mhpmcounter9" address="next" size="4" description="" />
|
||||
<symbol name="mhpmcounter10" address="next" size="4" description="" />
|
||||
<symbol name="mhpmcounter11" address="next" size="4" description="" />
|
||||
<symbol name="mhpmcounter12" address="next" size="4" description="" />
|
||||
<symbol name="mhpmcounter13" address="next" size="4" description="" />
|
||||
<symbol name="mhpmcounter14" address="next" size="4" description="" />
|
||||
<symbol name="mhpmcounter15" address="next" size="4" description="" />
|
||||
|
||||
<symbol name="mhpmcounter16" address="csreg:0xa10" size="4" description="" />
|
||||
<symbol name="mhpmcounter17" address="next" size="4" description="" />
|
||||
<symbol name="mhpmcounter18" address="next" size="4" description="" />
|
||||
<symbol name="mhpmcounter19" address="next" size="4" description="" />
|
||||
<symbol name="mhpmcounter20" address="next" size="4" description="" />
|
||||
<symbol name="mhpmcounter21" address="next" size="4" description="" />
|
||||
<symbol name="mhpmcounter22" address="next" size="4" description="" />
|
||||
<symbol name="mhpmcounter23" address="next" size="4" description="" />
|
||||
|
||||
<symbol name="mhpmcounter24" address="csreg:0xa18" size="4" description="" />
|
||||
<symbol name="mhpmcounter25" address="next" size="4" description="" />
|
||||
<symbol name="mhpmcounter26" address="next" size="4" description="" />
|
||||
<symbol name="mhpmcounter27" address="next" size="4" description="" />
|
||||
<symbol name="mhpmcounter28" address="next" size="4" description="" />
|
||||
<symbol name="mhpmcounter29" address="next" size="4" description="" />
|
||||
<symbol name="mhpmcounter30" address="next" size="4" description="" />
|
||||
<symbol name="mhpmcounter31" address="next" size="4" description="" />
|
||||
|
||||
|
||||
<symbol name="mcycleh" address="csreg:0xb80" size="4" description="" />
|
||||
<symbol name="minstreth" address="next" size="4" description="" />
|
||||
<symbol name="mhpmcounter3h" address="next" size="4" description="" />
|
||||
<symbol name="mhpmcounter4h" address="next" size="4" description="" />
|
||||
<symbol name="mhpmcounter5h" address="next" size="4" description="" />
|
||||
<symbol name="mhpmcounter6h" address="next" size="4" description="" />
|
||||
<symbol name="mhpmcounter7h" address="next" size="4" description="" />
|
||||
|
||||
<symbol name="mhpmcounter8h" address="csreg:0xb88" size="4" description="" />
|
||||
<symbol name="mhpmcounter9h" address="next" size="4" description="" />
|
||||
<symbol name="mhpmcounter10h" address="next" size="4" description="" />
|
||||
<symbol name="mhpmcounter11h" address="next" size="4" description="" />
|
||||
<symbol name="mhpmcounter12h" address="next" size="4" description="" />
|
||||
<symbol name="mhpmcounter13h" address="next" size="4" description="" />
|
||||
<symbol name="mhpmcounter14h" address="next" size="4" description="" />
|
||||
<symbol name="mhpmcounter15h" address="next" size="4" description="" />
|
||||
|
||||
<symbol name="mhpmcounter16h" address="csreg:0xb90" size="4" description="" />
|
||||
<symbol name="mhpmcounter17h" address="next" size="4" description="" />
|
||||
<symbol name="mhpmcounter18h" address="next" size="4" description="" />
|
||||
<symbol name="mhpmcounter19h" address="next" size="4" description="" />
|
||||
<symbol name="mhpmcounter20h" address="next" size="4" description="" />
|
||||
<symbol name="mhpmcounter21h" address="next" size="4" description="" />
|
||||
<symbol name="mhpmcounter22h" address="next" size="4" description="" />
|
||||
<symbol name="mhpmcounter23h" address="next" size="4" description="" />
|
||||
|
||||
<symbol name="mhpmcounter24h" address="csreg:0xb98" size="4" description="" />
|
||||
<symbol name="mhpmcounter25h" address="next" size="4" description="" />
|
||||
<symbol name="mhpmcounter26h" address="next" size="4" description="" />
|
||||
<symbol name="mhpmcounter27h" address="next" size="4" description="" />
|
||||
<symbol name="mhpmcounter28h" address="next" size="4" description="" />
|
||||
<symbol name="mhpmcounter29h" address="next" size="4" description="" />
|
||||
<symbol name="mhpmcounter30h" address="next" size="4" description="" />
|
||||
<symbol name="mhpmcounter31h" address="next" size="4" description="" />
|
||||
|
||||
|
||||
<symbol name="cycle" address="csreg:0xc00" size="4" description="" />
|
||||
<symbol name="time" address="next" size="4" description="" />
|
||||
<symbol name="instret" address="next" size="4" description="" />
|
||||
<symbol name="hpmcounter3" address="next" size="4" description="" />
|
||||
<symbol name="hpmcounter4" address="next" size="4" description="" />
|
||||
<symbol name="hpmcounter5" address="next" size="4" description="" />
|
||||
<symbol name="hpmcounter6" address="next" size="4" description="" />
|
||||
<symbol name="hpmcounter7" address="next" size="4" description="" />
|
||||
|
||||
<symbol name="hpmcounter8" address="csreg:0xc08" size="4" description="" />
|
||||
<symbol name="hpmcounter9" address="next" size="4" description="" />
|
||||
<symbol name="hpmcounter10" address="next" size="4" description="" />
|
||||
<symbol name="hpmcounter11" address="next" size="4" description="" />
|
||||
<symbol name="hpmcounter12" address="next" size="4" description="" />
|
||||
<symbol name="hpmcounter13" address="next" size="4" description="" />
|
||||
<symbol name="hpmcounter14" address="next" size="4" description="" />
|
||||
<symbol name="hpmcounter15" address="next" size="4" description="" />
|
||||
|
||||
<symbol name="hpmcounter16" address="csreg:0xc10" size="4" description="" />
|
||||
<symbol name="hpmcounter17" address="next" size="4" description="" />
|
||||
<symbol name="hpmcounter18" address="next" size="4" description="" />
|
||||
<symbol name="hpmcounter19" address="next" size="4" description="" />
|
||||
<symbol name="hpmcounter20" address="next" size="4" description="" />
|
||||
<symbol name="hpmcounter21" address="next" size="4" description="" />
|
||||
<symbol name="hpmcounter22" address="next" size="4" description="" />
|
||||
<symbol name="hpmcounter23" address="next" size="4" description="" />
|
||||
|
||||
<symbol name="hpmcounter24" address="csreg:0xc18" size="4" description="" />
|
||||
<symbol name="hpmcounter25" address="next" size="4" description="" />
|
||||
<symbol name="hpmcounter26" address="next" size="4" description="" />
|
||||
<symbol name="hpmcounter27" address="next" size="4" description="" />
|
||||
<symbol name="hpmcounter28" address="next" size="4" description="" />
|
||||
<symbol name="hpmcounter29" address="next" size="4" description="" />
|
||||
<symbol name="hpmcounter30" address="next" size="4" description="" />
|
||||
<symbol name="hpmcounter31" address="next" size="4" description="" />
|
||||
|
||||
<symbol name="vl" address="csreg:0xc20" size="4" description="" />
|
||||
<symbol name="vtype" address="next" size="4" description="" />
|
||||
<symbol name="vlenb" address="next" size="4" description="" />
|
||||
|
||||
|
||||
<symbol name="cycleh" address="csreg:0xc80" size="4" description="" />
|
||||
<symbol name="timeh" address="next" size="4" description="" />
|
||||
<symbol name="instreth" address="next" size="4" description="" />
|
||||
<symbol name="hpmcounter3h" address="next" size="4" description="" />
|
||||
<symbol name="hpmcounter4h" address="next" size="4" description="" />
|
||||
<symbol name="hpmcounter5h" address="next" size="4" description="" />
|
||||
<symbol name="hpmcounter6h" address="next" size="4" description="" />
|
||||
<symbol name="hpmcounter7h" address="next" size="4" description="" />
|
||||
|
||||
<symbol name="hpmcounter8h" address="csreg:0xc88" size="4" description="" />
|
||||
<symbol name="hpmcounter9h" address="next" size="4" description="" />
|
||||
<symbol name="hpmcounter10h" address="next" size="4" description="" />
|
||||
<symbol name="hpmcounter11h" address="next" size="4" description="" />
|
||||
<symbol name="hpmcounter12h" address="next" size="4" description="" />
|
||||
<symbol name="hpmcounter13h" address="next" size="4" description="" />
|
||||
<symbol name="hpmcounter14h" address="next" size="4" description="" />
|
||||
<symbol name="hpmcounter15h" address="next" size="4" description="" />
|
||||
|
||||
<symbol name="hpmcounter16h" address="csreg:0xc90" size="4" description="" />
|
||||
<symbol name="hpmcounter17h" address="next" size="4" description="" />
|
||||
<symbol name="hpmcounter18h" address="next" size="4" description="" />
|
||||
<symbol name="hpmcounter19h" address="next" size="4" description="" />
|
||||
<symbol name="hpmcounter20h" address="next" size="4" description="" />
|
||||
<symbol name="hpmcounter21h" address="next" size="4" description="" />
|
||||
<symbol name="hpmcounter22h" address="next" size="4" description="" />
|
||||
<symbol name="hpmcounter23h" address="next" size="4" description="" />
|
||||
|
||||
<symbol name="hpmcounter24h" address="csreg:0xc98" size="4" description="" />
|
||||
<symbol name="hpmcounter25h" address="next" size="4" description="" />
|
||||
<symbol name="hpmcounter26h" address="next" size="4" description="" />
|
||||
<symbol name="hpmcounter27h" address="next" size="4" description="" />
|
||||
<symbol name="hpmcounter28h" address="next" size="4" description="" />
|
||||
<symbol name="hpmcounter29h" address="next" size="4" description="" />
|
||||
<symbol name="hpmcounter30h" address="next" size="4" description="" />
|
||||
<symbol name="hpmcounter31h" address="next" size="4" description="" />
|
||||
|
||||
|
||||
<symbol name="hgeip" address="csreg:0xe12" size="4" description="" />
|
||||
|
||||
|
||||
<symbol name="mvendorid" address="csreg:0xf11" size="4" description="" />
|
||||
<symbol name="marchid" address="csreg:0xf12" size="4" description="" />
|
||||
<symbol name="mimpid" address="csreg:0xf13" size="4" description="" />
|
||||
<symbol name="mhartid" address="csreg:0xf14" size="4" description="" />
|
||||
|
||||
</default_symbols>
|
||||
</processor_spec>
|
||||
@@ -1,19 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<processor_spec>
|
||||
<programcounter register="pc"/>
|
||||
<context_data>
|
||||
<context_set space="ram">
|
||||
<set name="MXL" val="1"/>
|
||||
<set name="RVA" val="1"/>
|
||||
<set name="RVD" val="1"/>
|
||||
<set name="RVF" val="1"/>
|
||||
<set name="RVH" val="1"/>
|
||||
<set name="RVI" val="1"/>
|
||||
<set name="RVM" val="1"/>
|
||||
<set name="RVQ" val="1"/>
|
||||
<set name="RVS" val="1"/>
|
||||
<set name="RVU" val="1"/>
|
||||
</context_set>
|
||||
</context_data>
|
||||
</processor_spec>
|
||||
@@ -1,20 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<processor_spec>
|
||||
<programcounter register="pc"/>
|
||||
<context_data>
|
||||
<context_set space="ram">
|
||||
<set name="MXL" val="1"/>
|
||||
<set name="RVA" val="1"/>
|
||||
<set name="RVC" val="1"/>
|
||||
<set name="RVD" val="1"/>
|
||||
<set name="RVF" val="1"/>
|
||||
<set name="RVH" val="1"/>
|
||||
<set name="RVI" val="1"/>
|
||||
<set name="RVM" val="1"/>
|
||||
<set name="RVQ" val="1"/>
|
||||
<set name="RVS" val="1"/>
|
||||
<set name="RVU" val="1"/>
|
||||
</context_set>
|
||||
</context_data>
|
||||
</processor_spec>
|
||||
@@ -1,14 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<processor_spec>
|
||||
<programcounter register="pc"/>
|
||||
<context_data>
|
||||
<context_set space="ram">
|
||||
<set name="MXL" val="1"/>
|
||||
<set name="RVH" val="1"/>
|
||||
<set name="RVI" val="1"/>
|
||||
<set name="RVS" val="1"/>
|
||||
<set name="RVU" val="1"/>
|
||||
</context_set>
|
||||
</context_data>
|
||||
</processor_spec>
|
||||
@@ -1,15 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<processor_spec>
|
||||
<programcounter register="pc"/>
|
||||
<context_data>
|
||||
<context_set space="ram">
|
||||
<set name="MXL" val="1"/>
|
||||
<set name="RVC" val="1"/>
|
||||
<set name="RVH" val="1"/>
|
||||
<set name="RVI" val="1"/>
|
||||
<set name="RVS" val="1"/>
|
||||
<set name="RVU" val="1"/>
|
||||
</context_set>
|
||||
</context_data>
|
||||
</processor_spec>
|
||||
@@ -1,16 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<processor_spec>
|
||||
<programcounter register="pc"/>
|
||||
<context_data>
|
||||
<context_set space="ram">
|
||||
<set name="MXL" val="1"/>
|
||||
<set name="RVC" val="1"/>
|
||||
<set name="RVH" val="1"/>
|
||||
<set name="RVI" val="1"/>
|
||||
<set name="RVM" val="1"/>
|
||||
<set name="RVS" val="1"/>
|
||||
<set name="RVU" val="1"/>
|
||||
</context_set>
|
||||
</context_data>
|
||||
</processor_spec>
|
||||
@@ -0,0 +1,425 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<processor_spec>
|
||||
<programcounter register="pc"/>
|
||||
<context_data>
|
||||
<context_set space="ram">
|
||||
<set name="MXL" val="2"/>
|
||||
</context_set>
|
||||
</context_data>
|
||||
|
||||
<default_memory_blocks>
|
||||
<memory_block name="csr" start_address="csreg:0x0" length="0x8000" initialized="false"/>
|
||||
</default_memory_blocks>
|
||||
|
||||
<!-- TODO: add include directive and move to shared include -->
|
||||
<default_symbols>
|
||||
<symbol name="ustatus" address="csreg:0x000" size="8" description="" />
|
||||
<symbol name="fflags" address="csreg:0x001" size="8" description="" />
|
||||
<symbol name="frm" address="csreg:0x002" size="8" description="" />
|
||||
<symbol name="fcsr" address="csreg:0x003" size="8" description="" />
|
||||
<symbol name="uie" address="csreg:0x004" size="8" description="" />
|
||||
<symbol name="utvec" address="csreg:0x005" size="8" description="" />
|
||||
|
||||
<symbol name="vstart" address="csreg:0x008" size="8" description="" />
|
||||
<symbol name="vxsat" address="csreg:0x009" size="8" description="" />
|
||||
<symbol name="vxrm" address="csreg:0x00a" size="8" description="" />
|
||||
<symbol name="vcsr" address="csreg:0x00f" size="8" description="" />
|
||||
|
||||
|
||||
<symbol name="uscratch" address="csreg:0x040" size="8" description="" />
|
||||
<symbol name="uepc" address="next" size="8" description="" />
|
||||
<symbol name="ucause" address="next" size="8" description="" />
|
||||
<symbol name="utval" address="next" size="8" description="" />
|
||||
<symbol name="uip" address="next" size="8" description="" />
|
||||
|
||||
|
||||
<symbol name="sstatus" address="csreg:0x100" size="8" description="" />
|
||||
<symbol name="sedeleg" address="next" size="8" description="" />
|
||||
<symbol name="sideleg" address="next" size="8" description="" />
|
||||
<symbol name="sie" address="next" size="8" description="" />
|
||||
<symbol name="stvec" address="next" size="8" description="" />
|
||||
<symbol name="scounteren" address="next" size="8" description="" />
|
||||
|
||||
|
||||
<symbol name="sscratch" address="csreg:0x140" size="8" description="" />
|
||||
<symbol name="sepc" address="next" size="8" description="" />
|
||||
<symbol name="scause" address="next" size="8" description="" />
|
||||
<symbol name="stval" address="next" size="8" description="" />
|
||||
<symbol name="sip" address="next" size="8" description="" />
|
||||
|
||||
|
||||
<symbol name="satp" address="csreg:0x180" size="8" description="" />
|
||||
|
||||
|
||||
<symbol name="vsstatus" address="csreg:0x200" size="8" description="" />
|
||||
<symbol name="vsie" address="csreg:0x204" size="8" description="" />
|
||||
<symbol name="vstvec" address="next" size="8" description="" />
|
||||
|
||||
|
||||
<symbol name="vsscratch" address="csreg:0x240" size="8" description="" />
|
||||
<symbol name="vsepc" address="next" size="8" description="" />
|
||||
<symbol name="vscause" address="next" size="8" description="" />
|
||||
<symbol name="vstval" address="next" size="8" description="" />
|
||||
<symbol name="vsip" address="next" size="8" description="" />
|
||||
|
||||
|
||||
<symbol name="vsatp" address="csreg:0x280" size="8" description="" />
|
||||
|
||||
|
||||
<symbol name="mstatus" address="csreg:0x300" size="8" description="" />
|
||||
<symbol name="misa" address="next" size="8" description="" />
|
||||
<symbol name="medeleg" address="next" size="8" description="" />
|
||||
<symbol name="mideleg" address="next" size="8" description="" />
|
||||
<symbol name="mie" address="next" size="8" description="" />
|
||||
<symbol name="mtvec" address="next" size="8" description="" />
|
||||
<symbol name="mcounteren" address="next" size="8" description="" />
|
||||
|
||||
|
||||
<symbol name="mstatush" address="csreg:0x310" size="8" description="" />
|
||||
|
||||
|
||||
<symbol name="mcountinhibit" address="csreg:0x320" size="8" description="" />
|
||||
<symbol name="mhpmevent3" address="csreg:0x323" size="8" description="" />
|
||||
<symbol name="mhpmevent4" address="csreg:0x324" size="8" description="" />
|
||||
<symbol name="mhpmevent5" address="csreg:0x325" size="8" description="" />
|
||||
<symbol name="mhpmevent6" address="csreg:0x326" size="8" description="" />
|
||||
<symbol name="mhpmevent7" address="csreg:0x327" size="8" description="" />
|
||||
|
||||
<symbol name="mhpmevent8" address="csreg:0x328" size="8" description="" />
|
||||
<symbol name="mhpmevent9" address="csreg:0x329" size="8" description="" />
|
||||
<symbol name="mhpmevent10" address="csreg:0x32a" size="8" description="" />
|
||||
<symbol name="mhpmevent11" address="csreg:0x32b" size="8" description="" />
|
||||
<symbol name="mhpmevent12" address="csreg:0x32c" size="8" description="" />
|
||||
<symbol name="mhpmevent13" address="csreg:0x32d" size="8" description="" />
|
||||
<symbol name="mhpmevent14" address="csreg:0x32e" size="8" description="" />
|
||||
<symbol name="mhpmevent15" address="csreg:0x32f" size="8" description="" />
|
||||
|
||||
<symbol name="mhpmevent16" address="csreg:0x330" size="8" description="" />
|
||||
<symbol name="mhpmevent17" address="next" size="8" description="" />
|
||||
<symbol name="mhpmevent18" address="next" size="8" description="" />
|
||||
<symbol name="mhpmevent19" address="next" size="8" description="" />
|
||||
<symbol name="mhpmevent20" address="next" size="8" description="" />
|
||||
<symbol name="mhpmevent21" address="next" size="8" description="" />
|
||||
<symbol name="mhpmevent22" address="next" size="8" description="" />
|
||||
<symbol name="mhpmevent23" address="next" size="8" description="" />
|
||||
|
||||
<symbol name="mhpmevent24" address="csreg:0x338" size="8" description="" />
|
||||
<symbol name="mhpmevent25" address="next" size="8" description="" />
|
||||
<symbol name="mhpmevent26" address="next" size="8" description="" />
|
||||
<symbol name="mhpmevent27" address="next" size="8" description="" />
|
||||
<symbol name="mhpmevent28" address="next" size="8" description="" />
|
||||
<symbol name="mhpmevent29" address="next" size="8" description="" />
|
||||
<symbol name="mhpmevent30" address="next" size="8" description="" />
|
||||
<symbol name="mhpmevent31" address="next" size="8" description="" />
|
||||
|
||||
<symbol name="mscratch" address="csreg:0x340" size="8" description="" />
|
||||
<symbol name="mepc" address="csreg:0x341" size="8" description="" />
|
||||
<symbol name="mcause" address="csreg:0x342" size="8" description="" />
|
||||
<symbol name="mtval" address="csreg:0x343" size="8" description="" />
|
||||
<symbol name="mip" address="csreg:0x344" size="8" description="" />
|
||||
|
||||
<symbol name="mtinst" address="csreg:0x34a" size="8" description="" />
|
||||
<symbol name="mtval2" address="csreg:0x34b" size="8" description="" />
|
||||
|
||||
|
||||
<symbol name="mbase" address="csreg:0x380" size="8" description="" />
|
||||
<symbol name="mbound" address="csreg:0x381" size="8" description="" />
|
||||
<symbol name="mibase" address="csreg:0x382" size="8" description="" />
|
||||
<symbol name="mibound" address="csreg:0x383" size="8" description="" />
|
||||
<symbol name="mdbase" address="csreg:0x384" size="8" description="" />
|
||||
<symbol name="mdbound" address="csreg:0x385" size="8" description="" />
|
||||
|
||||
|
||||
<symbol name="pmpcfg0" address="csreg:0x3a0" size="8" description="" />
|
||||
<symbol name="pmpcfg1" address="next" size="8" description="" />
|
||||
<symbol name="pmpcfg2" address="next" size="8" description="" />
|
||||
<symbol name="pmpcfg3" address="next" size="8" description="" />
|
||||
<symbol name="pmpcfg4" address="next" size="8" description="" />
|
||||
<symbol name="pmpcfg5" address="next" size="8" description="" />
|
||||
<symbol name="pmpcfg6" address="next" size="8" description="" />
|
||||
<symbol name="pmpcfg7" address="next" size="8" description="" />
|
||||
|
||||
<symbol name="pmpcfg8" address="csreg:0x3a8" size="8" description="" />
|
||||
<symbol name="pmpcfg9" address="next" size="8" description="" />
|
||||
<symbol name="pmpcfg10" address="next" size="8" description="" />
|
||||
<symbol name="pmpcfg11" address="next" size="8" description="" />
|
||||
<symbol name="pmpcfg12" address="next" size="8" description="" />
|
||||
<symbol name="pmpcfg13" address="next" size="8" description="" />
|
||||
<symbol name="pmpcfg14" address="next" size="8" description="" />
|
||||
<symbol name="pmpcfg15" address="next" size="8" description="" />
|
||||
|
||||
<symbol name="pmpaddr0" address="csreg:0x3b0" size="8" description="" />
|
||||
<symbol name="pmpaddr1" address="next" size="8" description="" />
|
||||
<symbol name="pmpaddr2" address="next" size="8" description="" />
|
||||
<symbol name="pmpaddr3" address="next" size="8" description="" />
|
||||
<symbol name="pmpaddr4" address="next" size="8" description="" />
|
||||
<symbol name="pmpaddr5" address="next" size="8" description="" />
|
||||
<symbol name="pmpaddr6" address="next" size="8" description="" />
|
||||
<symbol name="pmpaddr7" address="next" size="8" description="" />
|
||||
|
||||
<symbol name="pmpaddr8" address="csreg:0x3b8" size="8" description="" />
|
||||
<symbol name="pmpaddr9" address="next" size="8" description="" />
|
||||
<symbol name="pmpaddr10" address="next" size="8" description="" />
|
||||
<symbol name="pmpaddr11" address="next" size="8" description="" />
|
||||
<symbol name="pmpaddr12" address="next" size="8" description="" />
|
||||
<symbol name="pmpaddr13" address="next" size="8" description="" />
|
||||
<symbol name="pmpaddr14" address="next" size="8" description="" />
|
||||
<symbol name="pmpaddr15" address="next" size="8" description="" />
|
||||
|
||||
<symbol name="pmpaddr16" address="csreg:0x3c0" size="8" description="" />
|
||||
<symbol name="pmpaddr17" address="next" size="8" description="" />
|
||||
<symbol name="pmpaddr18" address="next" size="8" description="" />
|
||||
<symbol name="pmpaddr19" address="next" size="8" description="" />
|
||||
<symbol name="pmpaddr20" address="next" size="8" description="" />
|
||||
<symbol name="pmpaddr21" address="next" size="8" description="" />
|
||||
<symbol name="pmpaddr22" address="next" size="8" description="" />
|
||||
<symbol name="pmpaddr23" address="next" size="8" description="" />
|
||||
|
||||
<symbol name="pmpaddr24" address="csreg:0x3c8" size="8" description="" />
|
||||
<symbol name="pmpaddr25" address="next" size="8" description="" />
|
||||
<symbol name="pmpaddr26" address="next" size="8" description="" />
|
||||
<symbol name="pmpaddr27" address="next" size="8" description="" />
|
||||
<symbol name="pmpaddr28" address="next" size="8" description="" />
|
||||
<symbol name="pmpaddr29" address="next" size="8" description="" />
|
||||
<symbol name="pmpaddr30" address="next" size="8" description="" />
|
||||
<symbol name="pmpaddr31" address="next" size="8" description="" />
|
||||
|
||||
<symbol name="pmpaddr32" address="csreg:0x3d0" size="8" description="" />
|
||||
<symbol name="pmpaddr33" address="next" size="8" description="" />
|
||||
<symbol name="pmpaddr34" address="next" size="8" description="" />
|
||||
<symbol name="pmpaddr35" address="next" size="8" description="" />
|
||||
<symbol name="pmpaddr36" address="next" size="8" description="" />
|
||||
<symbol name="pmpaddr37" address="next" size="8" description="" />
|
||||
<symbol name="pmpaddr38" address="next" size="8" description="" />
|
||||
<symbol name="pmpaddr39" address="next" size="8" description="" />
|
||||
|
||||
<symbol name="pmpaddr40" address="csreg:0x3d8" size="8" description="" />
|
||||
<symbol name="pmpaddr41" address="next" size="8" description="" />
|
||||
<symbol name="pmpaddr42" address="next" size="8" description="" />
|
||||
<symbol name="pmpaddr43" address="next" size="8" description="" />
|
||||
<symbol name="pmpaddr44" address="next" size="8" description="" />
|
||||
<symbol name="pmpaddr45" address="next" size="8" description="" />
|
||||
<symbol name="pmpaddr46" address="next" size="8" description="" />
|
||||
<symbol name="pmpaddr47" address="next" size="8" description="" />
|
||||
|
||||
<symbol name="pmpaddr48" address="csreg:0x3e0" size="8" description="" />
|
||||
<symbol name="pmpaddr49" address="next" size="8" description="" />
|
||||
<symbol name="pmpaddr50" address="next" size="8" description="" />
|
||||
<symbol name="pmpaddr51" address="next" size="8" description="" />
|
||||
<symbol name="pmpaddr52" address="next" size="8" description="" />
|
||||
<symbol name="pmpaddr53" address="next" size="8" description="" />
|
||||
<symbol name="pmpaddr54" address="next" size="8" description="" />
|
||||
<symbol name="pmpaddr55" address="next" size="8" description="" />
|
||||
|
||||
<symbol name="pmpaddr56" address="csreg:0x3e8" size="8" description="" />
|
||||
<symbol name="pmpaddr57" address="next" size="8" description="" />
|
||||
<symbol name="pmpaddr58" address="next" size="8" description="" />
|
||||
<symbol name="pmpaddr59" address="next" size="8" description="" />
|
||||
<symbol name="pmpaddr60" address="next" size="8" description="" />
|
||||
<symbol name="pmpaddr61" address="next" size="8" description="" />
|
||||
<symbol name="pmpaddr62" address="next" size="8" description="" />
|
||||
<symbol name="pmpaddr63" address="next" size="8" description="" />
|
||||
|
||||
|
||||
<symbol name="scontext" address="csreg:0x5a8" size="8" description="" />
|
||||
|
||||
|
||||
<symbol name="hstatus" address="csreg:0x600" size="8" description="" />
|
||||
<symbol name="hedeleg" address="csreg:0x602" size="8" description="" />
|
||||
<symbol name="hideleg" address="csreg:0x603" size="8" description="" />
|
||||
<symbol name="hie" address="csreg:0x604" size="8" description="" />
|
||||
<symbol name="htimedelta" address="csreg:0x605" size="8" description="" />
|
||||
<symbol name="hcounteren" address="csreg:0x606" size="8" description="" />
|
||||
<symbol name="hgeie" address="csreg:0x607" size="8" description="" />
|
||||
|
||||
|
||||
<symbol name="htimedeltah" address="csreg:0x615" size="8" description="" />
|
||||
|
||||
|
||||
<symbol name="htval" address="csreg:0x643" size="8" description="" />
|
||||
<symbol name="hip" address="csreg:0x644" size="8" description="" />
|
||||
<symbol name="hvip" address="csreg:0x645" size="8" description="" />
|
||||
|
||||
<symbol name="htinst" address="csreg:0x64a" size="8" description="" />
|
||||
|
||||
|
||||
<symbol name="hgatp" address="csreg:0x680" size="8" description="" />
|
||||
|
||||
|
||||
<symbol name="hcontext" address="csreg:0x6a8" size="8" description="" />
|
||||
|
||||
|
||||
<symbol name="tselect" address="csreg:0x7a0" size="8" description="" />
|
||||
<symbol name="tdata1" address="csreg:0x7a1" size="8" description="" />
|
||||
<symbol name="tdata2" address="csreg:0x7a2" size="8" description="" />
|
||||
<symbol name="tdata3" address="csreg:0x7a3" size="8" description="" />
|
||||
|
||||
<symbol name="mcontext" address="csreg:0x7a8" size="8" description="" />
|
||||
|
||||
<symbol name="dcsr" address="csreg:0x7b0" size="8" description="" />
|
||||
<symbol name="dpc" address="csreg:0x7b1" size="8" description="" />
|
||||
<symbol name="dscratch0" address="csreg:0x7b2" size="8" description="" />
|
||||
<symbol name="dscratch1" address="csreg:0x7b3" size="8" description="" />
|
||||
|
||||
|
||||
<symbol name="mcycle" address="csreg:0xa00" size="8" description="" />
|
||||
<symbol name="minstret" address="csreg:0xa02" size="8" description="" />
|
||||
<symbol name="mhpmcounter3" address="csreg:0xa03" size="8" description="" />
|
||||
<symbol name="mhpmcounter4" address="next" size="8" description="" />
|
||||
<symbol name="mhpmcounter5" address="next" size="8" description="" />
|
||||
<symbol name="mhpmcounter6" address="next" size="8" description="" />
|
||||
<symbol name="mhpmcounter7" address="next" size="8" description="" />
|
||||
|
||||
<symbol name="mhpmcounter8" address="csreg:0xa08" size="8" description="" />
|
||||
<symbol name="mhpmcounter9" address="next" size="8" description="" />
|
||||
<symbol name="mhpmcounter10" address="next" size="8" description="" />
|
||||
<symbol name="mhpmcounter11" address="next" size="8" description="" />
|
||||
<symbol name="mhpmcounter12" address="next" size="8" description="" />
|
||||
<symbol name="mhpmcounter13" address="next" size="8" description="" />
|
||||
<symbol name="mhpmcounter14" address="next" size="8" description="" />
|
||||
<symbol name="mhpmcounter15" address="next" size="8" description="" />
|
||||
|
||||
<symbol name="mhpmcounter16" address="csreg:0xa10" size="8" description="" />
|
||||
<symbol name="mhpmcounter17" address="next" size="8" description="" />
|
||||
<symbol name="mhpmcounter18" address="next" size="8" description="" />
|
||||
<symbol name="mhpmcounter19" address="next" size="8" description="" />
|
||||
<symbol name="mhpmcounter20" address="next" size="8" description="" />
|
||||
<symbol name="mhpmcounter21" address="next" size="8" description="" />
|
||||
<symbol name="mhpmcounter22" address="next" size="8" description="" />
|
||||
<symbol name="mhpmcounter23" address="next" size="8" description="" />
|
||||
|
||||
<symbol name="mhpmcounter24" address="csreg:0xa18" size="8" description="" />
|
||||
<symbol name="mhpmcounter25" address="next" size="8" description="" />
|
||||
<symbol name="mhpmcounter26" address="next" size="8" description="" />
|
||||
<symbol name="mhpmcounter27" address="next" size="8" description="" />
|
||||
<symbol name="mhpmcounter28" address="next" size="8" description="" />
|
||||
<symbol name="mhpmcounter29" address="next" size="8" description="" />
|
||||
<symbol name="mhpmcounter30" address="next" size="8" description="" />
|
||||
<symbol name="mhpmcounter31" address="next" size="8" description="" />
|
||||
|
||||
|
||||
<symbol name="mcycleh" address="csreg:0xb80" size="8" description="" />
|
||||
<symbol name="minstreth" address="next" size="8" description="" />
|
||||
<symbol name="mhpmcounter3h" address="next" size="8" description="" />
|
||||
<symbol name="mhpmcounter4h" address="next" size="8" description="" />
|
||||
<symbol name="mhpmcounter5h" address="next" size="8" description="" />
|
||||
<symbol name="mhpmcounter6h" address="next" size="8" description="" />
|
||||
<symbol name="mhpmcounter7h" address="next" size="8" description="" />
|
||||
|
||||
<symbol name="mhpmcounter8h" address="csreg:0xb88" size="8" description="" />
|
||||
<symbol name="mhpmcounter9h" address="next" size="8" description="" />
|
||||
<symbol name="mhpmcounter10h" address="next" size="8" description="" />
|
||||
<symbol name="mhpmcounter11h" address="next" size="8" description="" />
|
||||
<symbol name="mhpmcounter12h" address="next" size="8" description="" />
|
||||
<symbol name="mhpmcounter13h" address="next" size="8" description="" />
|
||||
<symbol name="mhpmcounter14h" address="next" size="8" description="" />
|
||||
<symbol name="mhpmcounter15h" address="next" size="8" description="" />
|
||||
|
||||
<symbol name="mhpmcounter16h" address="csreg:0xb90" size="8" description="" />
|
||||
<symbol name="mhpmcounter17h" address="next" size="8" description="" />
|
||||
<symbol name="mhpmcounter18h" address="next" size="8" description="" />
|
||||
<symbol name="mhpmcounter19h" address="next" size="8" description="" />
|
||||
<symbol name="mhpmcounter20h" address="next" size="8" description="" />
|
||||
<symbol name="mhpmcounter21h" address="next" size="8" description="" />
|
||||
<symbol name="mhpmcounter22h" address="next" size="8" description="" />
|
||||
<symbol name="mhpmcounter23h" address="next" size="8" description="" />
|
||||
|
||||
<symbol name="mhpmcounter24h" address="csreg:0xb98" size="8" description="" />
|
||||
<symbol name="mhpmcounter25h" address="next" size="8" description="" />
|
||||
<symbol name="mhpmcounter26h" address="next" size="8" description="" />
|
||||
<symbol name="mhpmcounter27h" address="next" size="8" description="" />
|
||||
<symbol name="mhpmcounter28h" address="next" size="8" description="" />
|
||||
<symbol name="mhpmcounter29h" address="next" size="8" description="" />
|
||||
<symbol name="mhpmcounter30h" address="next" size="8" description="" />
|
||||
<symbol name="mhpmcounter31h" address="next" size="8" description="" />
|
||||
|
||||
|
||||
<symbol name="cycle" address="csreg:0xc00" size="8" description="" />
|
||||
<symbol name="time" address="next" size="8" description="" />
|
||||
<symbol name="instret" address="next" size="8" description="" />
|
||||
<symbol name="hpmcounter3" address="next" size="8" description="" />
|
||||
<symbol name="hpmcounter4" address="next" size="8" description="" />
|
||||
<symbol name="hpmcounter5" address="next" size="8" description="" />
|
||||
<symbol name="hpmcounter6" address="next" size="8" description="" />
|
||||
<symbol name="hpmcounter7" address="next" size="8" description="" />
|
||||
|
||||
<symbol name="hpmcounter8" address="csreg:0xc08" size="8" description="" />
|
||||
<symbol name="hpmcounter9" address="next" size="8" description="" />
|
||||
<symbol name="hpmcounter10" address="next" size="8" description="" />
|
||||
<symbol name="hpmcounter11" address="next" size="8" description="" />
|
||||
<symbol name="hpmcounter12" address="next" size="8" description="" />
|
||||
<symbol name="hpmcounter13" address="next" size="8" description="" />
|
||||
<symbol name="hpmcounter14" address="next" size="8" description="" />
|
||||
<symbol name="hpmcounter15" address="next" size="8" description="" />
|
||||
|
||||
<symbol name="hpmcounter16" address="csreg:0xc10" size="8" description="" />
|
||||
<symbol name="hpmcounter17" address="next" size="8" description="" />
|
||||
<symbol name="hpmcounter18" address="next" size="8" description="" />
|
||||
<symbol name="hpmcounter19" address="next" size="8" description="" />
|
||||
<symbol name="hpmcounter20" address="next" size="8" description="" />
|
||||
<symbol name="hpmcounter21" address="next" size="8" description="" />
|
||||
<symbol name="hpmcounter22" address="next" size="8" description="" />
|
||||
<symbol name="hpmcounter23" address="next" size="8" description="" />
|
||||
|
||||
<symbol name="hpmcounter24" address="csreg:0xc18" size="8" description="" />
|
||||
<symbol name="hpmcounter25" address="next" size="8" description="" />
|
||||
<symbol name="hpmcounter26" address="next" size="8" description="" />
|
||||
<symbol name="hpmcounter27" address="next" size="8" description="" />
|
||||
<symbol name="hpmcounter28" address="next" size="8" description="" />
|
||||
<symbol name="hpmcounter29" address="next" size="8" description="" />
|
||||
<symbol name="hpmcounter30" address="next" size="8" description="" />
|
||||
<symbol name="hpmcounter31" address="next" size="8" description="" />
|
||||
|
||||
<symbol name="vl" address="csreg:0xc20" size="8" description="" />
|
||||
<symbol name="vtype" address="next" size="8" description="" />
|
||||
<symbol name="vlenb" address="next" size="8" description="" />
|
||||
|
||||
|
||||
<symbol name="cycleh" address="csreg:0xc80" size="8" description="" />
|
||||
<symbol name="timeh" address="next" size="8" description="" />
|
||||
<symbol name="instreth" address="next" size="8" description="" />
|
||||
<symbol name="hpmcounter3h" address="next" size="8" description="" />
|
||||
<symbol name="hpmcounter4h" address="next" size="8" description="" />
|
||||
<symbol name="hpmcounter5h" address="next" size="8" description="" />
|
||||
<symbol name="hpmcounter6h" address="next" size="8" description="" />
|
||||
<symbol name="hpmcounter7h" address="next" size="8" description="" />
|
||||
|
||||
<symbol name="hpmcounter8h" address="csreg:0xc88" size="8" description="" />
|
||||
<symbol name="hpmcounter9h" address="next" size="8" description="" />
|
||||
<symbol name="hpmcounter10h" address="next" size="8" description="" />
|
||||
<symbol name="hpmcounter11h" address="next" size="8" description="" />
|
||||
<symbol name="hpmcounter12h" address="next" size="8" description="" />
|
||||
<symbol name="hpmcounter13h" address="next" size="8" description="" />
|
||||
<symbol name="hpmcounter14h" address="next" size="8" description="" />
|
||||
<symbol name="hpmcounter15h" address="next" size="8" description="" />
|
||||
|
||||
<symbol name="hpmcounter16h" address="csreg:0xc90" size="8" description="" />
|
||||
<symbol name="hpmcounter17h" address="next" size="8" description="" />
|
||||
<symbol name="hpmcounter18h" address="next" size="8" description="" />
|
||||
<symbol name="hpmcounter19h" address="next" size="8" description="" />
|
||||
<symbol name="hpmcounter20h" address="next" size="8" description="" />
|
||||
<symbol name="hpmcounter21h" address="next" size="8" description="" />
|
||||
<symbol name="hpmcounter22h" address="next" size="8" description="" />
|
||||
<symbol name="hpmcounter23h" address="next" size="8" description="" />
|
||||
|
||||
<symbol name="hpmcounter24h" address="csreg:0xc98" size="8" description="" />
|
||||
<symbol name="hpmcounter25h" address="next" size="8" description="" />
|
||||
<symbol name="hpmcounter26h" address="next" size="8" description="" />
|
||||
<symbol name="hpmcounter27h" address="next" size="8" description="" />
|
||||
<symbol name="hpmcounter28h" address="next" size="8" description="" />
|
||||
<symbol name="hpmcounter29h" address="next" size="8" description="" />
|
||||
<symbol name="hpmcounter30h" address="next" size="8" description="" />
|
||||
<symbol name="hpmcounter31h" address="next" size="8" description="" />
|
||||
|
||||
|
||||
<symbol name="hgeip" address="csreg:0xe12" size="8" description="" />
|
||||
|
||||
|
||||
<symbol name="mvendorid" address="csreg:0xf11" size="8" description="" />
|
||||
<symbol name="marchid" address="csreg:0xf12" size="8" description="" />
|
||||
<symbol name="mimpid" address="csreg:0xf13" size="8" description="" />
|
||||
<symbol name="mhartid" address="csreg:0xf14" size="8" description="" />
|
||||
|
||||
</default_symbols>
|
||||
</processor_spec>
|
||||
@@ -1,19 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<processor_spec>
|
||||
<programcounter register="pc"/>
|
||||
<context_data>
|
||||
<context_set space="ram">
|
||||
<set name="MXL" val="2"/>
|
||||
<set name="RVA" val="1"/>
|
||||
<set name="RVD" val="1"/>
|
||||
<set name="RVF" val="1"/>
|
||||
<set name="RVH" val="1"/>
|
||||
<set name="RVI" val="1"/>
|
||||
<set name="RVM" val="1"/>
|
||||
<set name="RVQ" val="1"/>
|
||||
<set name="RVS" val="1"/>
|
||||
<set name="RVU" val="1"/>
|
||||
</context_set>
|
||||
</context_data>
|
||||
</processor_spec>
|
||||
@@ -1,20 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<processor_spec>
|
||||
<programcounter register="pc"/>
|
||||
<context_data>
|
||||
<context_set space="ram">
|
||||
<set name="MXL" val="2"/>
|
||||
<set name="RVA" val="1"/>
|
||||
<set name="RVC" val="1"/>
|
||||
<set name="RVD" val="1"/>
|
||||
<set name="RVF" val="1"/>
|
||||
<set name="RVH" val="1"/>
|
||||
<set name="RVI" val="1"/>
|
||||
<set name="RVM" val="1"/>
|
||||
<set name="RVQ" val="1"/>
|
||||
<set name="RVS" val="1"/>
|
||||
<set name="RVU" val="1"/>
|
||||
</context_set>
|
||||
</context_data>
|
||||
</processor_spec>
|
||||
@@ -1,14 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<processor_spec>
|
||||
<programcounter register="pc"/>
|
||||
<context_data>
|
||||
<context_set space="ram">
|
||||
<set name="MXL" val="2"/>
|
||||
<set name="RVH" val="1"/>
|
||||
<set name="RVI" val="1"/>
|
||||
<set name="RVS" val="1"/>
|
||||
<set name="RVU" val="1"/>
|
||||
</context_set>
|
||||
</context_data>
|
||||
</processor_spec>
|
||||
@@ -1,15 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<processor_spec>
|
||||
<programcounter register="pc"/>
|
||||
<context_data>
|
||||
<context_set space="ram">
|
||||
<set name="MXL" val="2"/>
|
||||
<set name="RVC" val="1"/>
|
||||
<set name="RVH" val="1"/>
|
||||
<set name="RVI" val="1"/>
|
||||
<set name="RVS" val="1"/>
|
||||
<set name="RVU" val="1"/>
|
||||
</context_set>
|
||||
</context_data>
|
||||
</processor_spec>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<language_definitions>
|
||||
|
||||
<language processor="RISCV"
|
||||
endian="little"
|
||||
size="32"
|
||||
variant="AndeStar_v5"
|
||||
version="1.4"
|
||||
slafile="andestar_v5.sla"
|
||||
processorspec="RV32.pspec"
|
||||
id="RISCV:LE:32:AndeStar_v5">
|
||||
<description>AndeStar v5 RISC-V based 32 little default</description>
|
||||
<compiler name="gcc" spec="riscv32-fp.cspec" id="gcc"/>
|
||||
<external_name tool="gnu" name="riscv:rv32"/>
|
||||
<external_name tool="DWARF.register.mapping.file" name="riscv32.dwarf"/>
|
||||
<external_name tool="qemu" name="qemu-riscv32"/>
|
||||
</language>
|
||||
|
||||
</language_definitions>
|
||||
@@ -0,0 +1,36 @@
|
||||
define endian=little;
|
||||
|
||||
@define XLEN 4
|
||||
@define XLEN2 8
|
||||
@define FLEN 8
|
||||
@define CONTEXTLEN 8
|
||||
|
||||
@define ADDRSIZE "32"
|
||||
@define FPSIZE "64"
|
||||
|
||||
@include "riscv.reg.sinc"
|
||||
|
||||
define context CONTEXT
|
||||
isExecInstr=(32,32)
|
||||
phase=(33,33)
|
||||
ecdv=(34,34)
|
||||
;
|
||||
|
||||
@include "riscv.table.sinc"
|
||||
|
||||
|
||||
# artificial return register
|
||||
|
||||
define register offset=0x6000 size=4 [ ExecRetAddr ];
|
||||
|
||||
Dest: is epsilon { export *[ram]:1 ExecRetAddr; }
|
||||
|
||||
:^instruction is phase=0 & isExecInstr=1 & instruction [ phase=1; ] { build instruction; local dest:$(XLEN) = ExecRetAddr; goto [dest]; }
|
||||
:^instruction is phase=0 & isExecInstr=0 & instruction [ phase=1; ] { build instruction; }
|
||||
|
||||
with : phase=1 {
|
||||
@include "riscv.instr.sinc"
|
||||
|
||||
@include "andestar_v5.instr.sinc"
|
||||
|
||||
}
|
||||
@@ -2,71 +2,109 @@
|
||||
|
||||
|
||||
# csrrc d,E,s 00003073 0000707f SIMPLE (0, 0)
|
||||
:csrrc rdDst,csr,rs1 is rs1 & csr & rdDst & op0001=0x3 & op0204=0x4 & op0506=0x3 & funct3=0x3 & op1519
|
||||
:csrc csr,rs1 is rs1 & csr & op0001=0x3 & op0204=0x4 & op0506=0x3 & funct3=0x3 & op0711=0
|
||||
{
|
||||
local tmprs1:$(XLEN) = rs1;
|
||||
local oldcsr:$(XLEN) = csr:$(XLEN);
|
||||
rdDst = oldcsr;
|
||||
local tmp:$(XLEN) = op1519;
|
||||
if (tmp == 0) goto inst_next;
|
||||
local newcsr:$(XLEN) = oldcsr & ~tmprs1;
|
||||
csr = newcsr;
|
||||
}
|
||||
|
||||
# csrrc d,E,s 00003073 0000707f SIMPLE (0, 0)
|
||||
:csrrc rdDst,csr,rs1 is rs1 & csr & rdDst & op0001=0x3 & op0204=0x4 & op0506=0x3 & funct3=0x3 & op0711
|
||||
{
|
||||
local tmprs1:$(XLEN) = rs1;
|
||||
local oldcsr:$(XLEN) = csr:$(XLEN);
|
||||
local newcsr:$(XLEN) = oldcsr & ~tmprs1;
|
||||
csr = newcsr;
|
||||
rdDst = oldcsr;
|
||||
}
|
||||
|
||||
# csrrci d,E,Z 00007073 0000707f SIMPLE (0, 0)
|
||||
:csrci csr,op1519 is op1519 & op0711=0 & csr & op0001=0x3 & op0204=0x4 & op0506=0x3 & funct3=0x7
|
||||
{
|
||||
local oldcsr:$(XLEN) = csr:$(XLEN);
|
||||
local tmp:$(XLEN) = op1519;
|
||||
csr = oldcsr & ~tmp;
|
||||
}
|
||||
|
||||
|
||||
# csrrci d,E,Z 00007073 0000707f SIMPLE (0, 0)
|
||||
:csrrci rdDst,csr,op1519 is op1519 & csr & rdDst & op0001=0x3 & op0204=0x4 & op0506=0x3 & funct3=0x7
|
||||
{
|
||||
local oldcsr:$(XLEN) = csr:$(XLEN);
|
||||
rdDst = oldcsr;
|
||||
local tmp:$(XLEN) = op1519;
|
||||
if (tmp == 0) goto inst_next;
|
||||
csr = csr & ~tmp;
|
||||
csr = oldcsr & ~tmp;
|
||||
rdDst = oldcsr;
|
||||
}
|
||||
|
||||
|
||||
# csrrs d,E,s 00002073 0000707f SIMPLE (0, 0)
|
||||
:csrrs rdDst,csr,rs1 is rs1 & csr & rdDst & op0001=0x3 & op0204=0x4 & op0506=0x3 & funct3=0x2 & op1519
|
||||
:csrr rdDst,csr is csr & rdDst & op0001=0x3 & op0204=0x4 & op0506=0x3 & funct3=0x2 & op1519=0 & op0711
|
||||
{
|
||||
local tmprs1 = rs1;
|
||||
local oldcsr:$(XLEN) = csr:$(XLEN);
|
||||
rdDst = oldcsr;
|
||||
local tmp:$(XLEN) = op1519;
|
||||
if (tmp == 0) goto inst_next;
|
||||
csr = csr | tmprs1;
|
||||
rdDst = csr:$(XLEN);
|
||||
}
|
||||
|
||||
# csrrs d,E,s 00002073 0000707f SIMPLE (0, 0)
|
||||
:csrs csr,rs1 is rs1 & csr & op0001=0x3 & op0204=0x4 & op0506=0x3 & funct3=0x2 & op1519 & op0711=0
|
||||
{
|
||||
local oldcsr:$(XLEN) = csr:$(XLEN);
|
||||
csr = oldcsr | rs1;
|
||||
}
|
||||
|
||||
# csrrs d,E,s 00002073 0000707f SIMPLE (0, 0)
|
||||
:csrrs rdDst,csr,rs1 is rs1 & csr & rdDst & op0001=0x3 & op0204=0x4 & op0506=0x3 & funct3=0x2 & op1519 & op0711
|
||||
{
|
||||
local oldcsr:$(XLEN) = csr:$(XLEN);
|
||||
csr = oldcsr | rs1;
|
||||
rdDst = oldcsr;
|
||||
}
|
||||
|
||||
# csrrsi d,E,Z 00006073 0000707f SIMPLE (0, 0)
|
||||
:csrrsi rdDst,csr,op1519 is op1519 & csr & rdDst & op0001=0x3 & op0204=0x4 & op0506=0x3 & funct3=0x6
|
||||
:csrsi csr,op1519 is op1519 & csr & op0711=0 & op0001=0x3 & op0204=0x4 & op0506=0x3 & funct3=0x6
|
||||
{
|
||||
local oldcsr:$(XLEN) = csr:$(XLEN);
|
||||
rdDst = oldcsr;
|
||||
local tmp:$(XLEN) = op1519;
|
||||
if (tmp == 0) goto inst_next;
|
||||
csr = csr | tmp;
|
||||
csr = oldcsr | tmp;
|
||||
}
|
||||
|
||||
# csrrsi d,E,Z 00006073 0000707f SIMPLE (0, 0)
|
||||
:csrrsi rdDst,csr,op1519 is op1519 & csr & rdDst & op0001=0x3 & op0204=0x4 & op0506=0x3 & funct3=0x6 & op0711
|
||||
{
|
||||
local oldcsr:$(XLEN) = csr:$(XLEN);
|
||||
local tmp:$(XLEN) = op1519;
|
||||
csr = oldcsr | tmp;
|
||||
rdDst = oldcsr;
|
||||
}
|
||||
|
||||
# csrw d,E,s 00001073 0000707f SIMPLE (0, 0)
|
||||
:csrw csr,rs1 is rs1 & csr & op0001=0x3 & op0204=0x4 & op0506=0x3 & funct3=0x1 & r0711=0
|
||||
{
|
||||
csr = rs1;
|
||||
}
|
||||
|
||||
# csrrw d,E,s 00001073 0000707f SIMPLE (0, 0)
|
||||
:csrrw rdDst,csr,rs1 is rs1 & csr & rdDst & op0001=0x3 & op0204=0x4 & op0506=0x3 & funct3=0x1 & op1519
|
||||
:csrrw rdDst,csr,rs1 is rs1 & csr & rdDst & r0711 & op0001=0x3 & op0204=0x4 & op0506=0x3 & funct3=0x1
|
||||
{
|
||||
local tmprs1:$(XLEN) = rs1;
|
||||
local oldcsr:$(XLEN) = csr:$(XLEN);
|
||||
local tmp:$(XLEN) = op1519;
|
||||
csr = tmprs1;
|
||||
if (tmp == 0) goto inst_next;
|
||||
rdDst = oldcsr;
|
||||
}
|
||||
|
||||
# csrrwi d,E,Z 00005073 0000707f SIMPLE (0, 0)
|
||||
:csrwi csr,op1519 is op1519 & csr & op0001=0x3 & op0204=0x4 & op0506=0x3 & funct3=0x5 & r0711=0
|
||||
{
|
||||
local val:$(XLEN) = op1519;
|
||||
csr = val;
|
||||
}
|
||||
|
||||
# csrrwi d,E,Z 00005073 0000707f SIMPLE (0, 0)
|
||||
:csrrwi rdDst,csr,op1519 is op1519 & csr & rdDst & op0001=0x3 & op0204=0x4 & op0506=0x3 & funct3=0x5
|
||||
:csrrwi rdDst,csr,op1519 is op1519 & csr & rdDst & op0001=0x3 & op0204=0x4 & op0506=0x3 & funct3=0x5 & r0711
|
||||
{
|
||||
local oldcsr:$(XLEN) = csr:$(XLEN);
|
||||
local tmp:$(XLEN) = op1519;
|
||||
csr = tmp;
|
||||
if (tmp == 0) goto inst_next;
|
||||
local val:$(XLEN) = op1519;
|
||||
csr = val;
|
||||
rdDst = oldcsr;
|
||||
}
|
||||
|
||||
|
||||
@@ -4,8 +4,7 @@ define endian=little;
|
||||
@define XLEN2 8
|
||||
@define FLEN 8
|
||||
|
||||
@define MXLEN_1 31
|
||||
@define MXLEN_2 30
|
||||
@define CONTEXTLEN 4
|
||||
|
||||
@define ADDRSIZE "32"
|
||||
@define FPSIZE "64"
|
||||
@@ -13,3 +12,6 @@ define endian=little;
|
||||
@include "riscv.reg.sinc"
|
||||
@include "riscv.table.sinc"
|
||||
@include "riscv.instr.sinc"
|
||||
|
||||
# include placeholder decode for *some* custom instructions
|
||||
@include "riscv.custom.sinc"
|
||||
|
||||
@@ -27,7 +27,6 @@
|
||||
@include "riscv.rv64m.sinc"
|
||||
@include "riscv.rv64b.sinc"
|
||||
@include "riscv.rv64p.sinc"
|
||||
@include "riscv.rv64k.sinc"
|
||||
|
||||
@if FPSIZE == "32" || FPSIZE == "64" || FPSIZE == "128"
|
||||
@include "riscv.rv64f.sinc"
|
||||
@@ -48,8 +47,6 @@
|
||||
@include "riscv.rvv.sinc"
|
||||
@include "riscv.zi.sinc"
|
||||
|
||||
@include "riscv.custom.sinc"
|
||||
|
||||
# todos that may be possible, mostly just artifacts from my
|
||||
# script to generate the initial SELIGH
|
||||
|
||||
|
||||
@@ -1,14 +1,47 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<language_definitions>
|
||||
|
||||
|
||||
<language processor="RISCV"
|
||||
endian="little"
|
||||
size="32"
|
||||
variant="default"
|
||||
version="1.4"
|
||||
slafile="riscv.ilp32d.sla"
|
||||
processorspec="RV32.pspec"
|
||||
id="RISCV:LE:32:default">
|
||||
<description>RISC-V 32 little default</description>
|
||||
<compiler name="gcc" spec="riscv32-fp.cspec" id="gcc"/>
|
||||
<external_name tool="gnu" name="riscv:rv32"/>
|
||||
<external_name tool="DWARF.register.mapping.file" name="riscv32.dwarf"/>
|
||||
<external_name tool="qemu" name="qemu-riscv32"/>
|
||||
<external_name tool="qemu_system" name="qemu-system-riscv32"/>
|
||||
</language>
|
||||
|
||||
<language processor="RISCV"
|
||||
endian="little"
|
||||
size="64"
|
||||
variant="RV64I"
|
||||
version="1.3"
|
||||
variant="default"
|
||||
version="1.4"
|
||||
slafile="riscv.lp64d.sla"
|
||||
processorspec="RV64I.pspec"
|
||||
processorspec="RV64.pspec"
|
||||
id="RISCV:LE:64:default">
|
||||
<description>RISC-V 64 little default</description>
|
||||
<compiler name="gcc" spec="riscv64-fp.cspec" id="gcc"/>
|
||||
<external_name tool="DWARF.register.mapping.file" name="riscv64.dwarf"/>
|
||||
<external_name tool="gnu" name="riscv:rv64"/>
|
||||
<external_name tool="qemu" name="qemu-riscv64"/>
|
||||
<external_name tool="qemu_system" name="qemu-system-riscv64"/>
|
||||
</language>
|
||||
|
||||
<language processor="RISCV"
|
||||
deprecated="true"
|
||||
endian="little"
|
||||
size="64"
|
||||
variant="RV64I"
|
||||
version="1.4"
|
||||
slafile="riscv.lp64d.sla"
|
||||
processorspec="RV64.pspec"
|
||||
id="RISCV:LE:64:RV64I">
|
||||
<description>RISC-V 64 little base</description>
|
||||
<compiler name="gcc" spec="riscv64.cspec" id="gcc"/>
|
||||
@@ -18,12 +51,13 @@
|
||||
<external_name tool="qemu_system" name="qemu-system-riscv64"/>
|
||||
</language>
|
||||
<language processor="RISCV"
|
||||
deprecated="true"
|
||||
endian="little"
|
||||
size="64"
|
||||
variant="RV64IC"
|
||||
version="1.3"
|
||||
version="1.4"
|
||||
slafile="riscv.lp64d.sla"
|
||||
processorspec="RV64IC.pspec"
|
||||
processorspec="RV64.pspec"
|
||||
id="RISCV:LE:64:RV64IC">
|
||||
<description>RISC-V 64 little base compressed</description>
|
||||
<compiler name="gcc" spec="riscv64.cspec" id="gcc"/>
|
||||
@@ -33,12 +67,13 @@
|
||||
<external_name tool="qemu_system" name="qemu-system-riscv64"/>
|
||||
</language>
|
||||
<language processor="RISCV"
|
||||
deprecated="true"
|
||||
endian="little"
|
||||
size="64"
|
||||
variant="RV64G"
|
||||
version="1.3"
|
||||
version="1.4"
|
||||
slafile="riscv.lp64d.sla"
|
||||
processorspec="RV64G.pspec"
|
||||
processorspec="RV64.pspec"
|
||||
id="RISCV:LE:64:RV64G">
|
||||
<description>RISC-V 64 little general purpose</description>
|
||||
<compiler name="gcc" spec="riscv64-fp.cspec" id="gcc"/>
|
||||
@@ -48,12 +83,13 @@
|
||||
<external_name tool="qemu_system" name="qemu-system-riscv64"/>
|
||||
</language>
|
||||
<language processor="RISCV"
|
||||
deprecated="true"
|
||||
endian="little"
|
||||
size="64"
|
||||
variant="RV64GC"
|
||||
version="1.3"
|
||||
version="1.4"
|
||||
slafile="riscv.lp64d.sla"
|
||||
processorspec="RV64GC.pspec"
|
||||
processorspec="RV64.pspec"
|
||||
id="RISCV:LE:64:RV64GC">
|
||||
<description>RISC-V 64 little general purpose compressed</description>
|
||||
<compiler name="gcc" spec="riscv64-fp.cspec" id="gcc"/>
|
||||
@@ -63,27 +99,13 @@
|
||||
<external_name tool="qemu_system" name="qemu-system-riscv64"/>
|
||||
</language>
|
||||
<language processor="RISCV"
|
||||
endian="little"
|
||||
size="64"
|
||||
variant="default"
|
||||
version="1.3"
|
||||
slafile="riscv.lp64d.sla"
|
||||
processorspec="RV64GC.pspec"
|
||||
id="RISCV:LE:64:default">
|
||||
<description>RISC-V 32 little default</description>
|
||||
<compiler name="gcc" spec="riscv64-fp.cspec" id="gcc"/>
|
||||
<external_name tool="DWARF.register.mapping.file" name="riscv64.dwarf"/>
|
||||
<external_name tool="gnu" name="riscv:rv64"/>
|
||||
<external_name tool="qemu" name="qemu-riscv64"/>
|
||||
<external_name tool="qemu_system" name="qemu-system-riscv64"/>
|
||||
</language>
|
||||
<language processor="RISCV"
|
||||
deprecated="true"
|
||||
endian="little"
|
||||
size="32"
|
||||
variant="RV32I"
|
||||
version="1.3"
|
||||
version="1.4"
|
||||
slafile="riscv.ilp32d.sla"
|
||||
processorspec="RV32I.pspec"
|
||||
processorspec="RV32.pspec"
|
||||
id="RISCV:LE:32:RV32I">
|
||||
<description>RISC-V 32 little base</description>
|
||||
<compiler name="gcc" spec="riscv32.cspec" id="gcc"/>
|
||||
@@ -93,12 +115,13 @@
|
||||
<external_name tool="qemu_system" name="qemu-system-riscv32"/>
|
||||
</language>
|
||||
<language processor="RISCV"
|
||||
deprecated="true"
|
||||
endian="little"
|
||||
size="32"
|
||||
variant="RV32IC"
|
||||
version="1.3"
|
||||
version="1.4"
|
||||
slafile="riscv.ilp32d.sla"
|
||||
processorspec="RV32IC.pspec"
|
||||
processorspec="RV32.pspec"
|
||||
id="RISCV:LE:32:RV32IC">
|
||||
<description>RISC-V 32 little base compressed</description>
|
||||
<compiler name="gcc" spec="riscv32.cspec" id="gcc"/>
|
||||
@@ -108,12 +131,13 @@
|
||||
<external_name tool="qemu_system" name="qemu-system-riscv32"/>
|
||||
</language>
|
||||
<language processor="RISCV"
|
||||
deprecated="true"
|
||||
endian="little"
|
||||
size="32"
|
||||
variant="RV32IMC"
|
||||
version="1.3"
|
||||
version="1.4"
|
||||
slafile="riscv.ilp32d.sla"
|
||||
processorspec="RV32IMC.pspec"
|
||||
processorspec="RV32.pspec"
|
||||
id="RISCV:LE:32:RV32IMC">
|
||||
<description>RISC-V 32 little base compressed</description>
|
||||
<compiler name="gcc" spec="riscv32.cspec" id="gcc"/>
|
||||
@@ -123,12 +147,13 @@
|
||||
<external_name tool="qemu_system" name="qemu-system-riscv32"/>
|
||||
</language>
|
||||
<language processor="RISCV"
|
||||
deprecated="true"
|
||||
endian="little"
|
||||
size="32"
|
||||
variant="RV32G"
|
||||
version="1.3"
|
||||
version="1.4"
|
||||
slafile="riscv.ilp32d.sla"
|
||||
processorspec="RV32G.pspec"
|
||||
processorspec="RV32.pspec"
|
||||
id="RISCV:LE:32:RV32G">
|
||||
<description>RISC-V 32 little general purpose</description>
|
||||
<compiler name="gcc" spec="riscv32-fp.cspec" id="gcc"/>
|
||||
@@ -138,12 +163,13 @@
|
||||
<external_name tool="qemu_system" name="qemu-system-riscv32"/>
|
||||
</language>
|
||||
<language processor="RISCV"
|
||||
deprecated="true"
|
||||
endian="little"
|
||||
size="32"
|
||||
variant="RV32GC"
|
||||
version="1.3"
|
||||
version="1.4"
|
||||
slafile="riscv.ilp32d.sla"
|
||||
processorspec="RV32GC.pspec"
|
||||
processorspec="RV32.pspec"
|
||||
id="RISCV:LE:32:RV32GC">
|
||||
<description>RISC-V 32 little general purpose compressed</description>
|
||||
<compiler name="gcc" spec="riscv32-fp.cspec" id="gcc"/>
|
||||
@@ -151,21 +177,5 @@
|
||||
<external_name tool="DWARF.register.mapping.file" name="riscv32.dwarf"/>
|
||||
<external_name tool="qemu" name="qemu-riscv32"/>
|
||||
<external_name tool="qemu_system" name="qemu-system-riscv32"/>
|
||||
</language>
|
||||
<language processor="RISCV"
|
||||
endian="little"
|
||||
size="32"
|
||||
variant="default"
|
||||
version="1.3"
|
||||
slafile="riscv.ilp32d.sla"
|
||||
processorspec="RV32GC.pspec"
|
||||
id="RISCV:LE:32:default">
|
||||
<description>RISC-V 32 little default</description>
|
||||
<compiler name="gcc" spec="riscv32-fp.cspec" id="gcc"/>
|
||||
<external_name tool="gnu" name="riscv:rv32"/>
|
||||
<external_name tool="DWARF.register.mapping.file" name="riscv32.dwarf"/>
|
||||
<external_name tool="qemu" name="qemu-riscv32"/>
|
||||
<external_name tool="qemu_system" name="qemu-system-riscv32"/>
|
||||
</language>
|
||||
|
||||
</language>
|
||||
</language_definitions>
|
||||
|
||||
@@ -4,8 +4,7 @@ define endian=little;
|
||||
@define XLEN2 16
|
||||
@define FLEN 8
|
||||
|
||||
@define MXLEN_1 63
|
||||
@define MXLEN_2 62
|
||||
@define CONTEXTLEN 4
|
||||
|
||||
@define ADDRSIZE "64"
|
||||
@define FPSIZE "64"
|
||||
@@ -13,3 +12,6 @@ define endian=little;
|
||||
@include "riscv.reg.sinc"
|
||||
@include "riscv.table.sinc"
|
||||
@include "riscv.instr.sinc"
|
||||
|
||||
@include "riscv.rv64k.sinc" # current encoding is in custom space
|
||||
@include "riscv.custom.sinc"
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -226,9 +226,9 @@
|
||||
}
|
||||
|
||||
# c.lui d,Cu 00006001 0000e003 SIMPLE (0, 0)
|
||||
:c.lui crd,cbigimm is crd & cbigimm & cop0001=0x1 & cop1315=0x3
|
||||
:c.lui cd0711NoSp,cbigimm is cd0711NoSp & cbigimm & cop0001=0x1 & cop1315=0x3
|
||||
{
|
||||
crd = cbigimm;
|
||||
cd0711NoSp = cbigimm;
|
||||
}
|
||||
|
||||
# c.lw Ct,Ck(Cs) 00004000 0000e003 DWORD|DREF (0, 4)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -22,6 +22,7 @@
|
||||
</data_organization>
|
||||
<global>
|
||||
<range space="ram"/>
|
||||
<range space="csreg"/>
|
||||
<register name="gp"/>
|
||||
<register name="tp"/>
|
||||
</global>
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
</data_organization>
|
||||
<global>
|
||||
<range space="ram"/>
|
||||
<range space="csreg"/>
|
||||
<register name="gp"/>
|
||||
<register name="tp"/>
|
||||
</global>
|
||||
|
||||
@@ -18,11 +18,14 @@
|
||||
<entry size="8" alignment="8" />
|
||||
</size_alignment_map>
|
||||
</data_organization>
|
||||
|
||||
<global>
|
||||
<range space="ram"/>
|
||||
<range space="csreg"/>
|
||||
<register name="gp"/>
|
||||
<register name="tp"/>
|
||||
</global>
|
||||
|
||||
<returnaddress>
|
||||
<register name="ra"/>
|
||||
</returnaddress>
|
||||
|
||||
Reference in New Issue
Block a user