diff --git a/.gitignore b/.gitignore index c4dcdfe..239d9b7 100644 --- a/.gitignore +++ b/.gitignore @@ -35,6 +35,7 @@ bin/ *.cf *.json *.vcd +*.fst* !tester/src/test/resources/*.vhd obj_dir *.logTrace diff --git a/src/main/scala/vexriscv/Riscv.scala b/src/main/scala/vexriscv/Riscv.scala index 99683a8..9fbbf5b 100644 --- a/src/main/scala/vexriscv/Riscv.scala +++ b/src/main/scala/vexriscv/Riscv.scala @@ -120,6 +120,7 @@ object Riscv{ def FENCE_I = M"-----------------001-----0001111" def SFENCE_VMA = M"0001001----------000000001110011" + def FMV_W_X = M"111100000000-----000-----1010011" def FADD_S = M"0000000------------------1010011" def FSUB_S = M"0000100------------------1010011" def FMUL_S = M"0001000------------------1010011" @@ -130,6 +131,23 @@ object Riscv{ def FMIN_S = M"0010100----------000-----1010011" def FMAX_S = M"0010100----------001-----1010011" def FSQRT_S = M"010110000000-------------1010011" + def FCVT_S_W = M"110100000000-------------1010011" + def FCVT_S_WU = M"110100000001-------------1010011" + def FCVT_S_L = M"110100000010-------------1010011" + def FCVT_S_LU = M"110100000011-------------1010011" + def FCVT_W_S = M"110000000000-------------1010011" + def FCVT_WU_S = M"110000000001-------------1010011" + def FCVT_L_S = M"110000000010-------------1010011" + def FCVT_LU_S = M"110000000011-------------1010011" + def FCLASS_S = M"111000000000-----001-----1010011" + def FMADD_S = M"-----00------------------1000011" + def FMSUB_S = M"-----00------------------1000111" + def FNMSUB_S = M"-----00------------------1001011" + def FNMADD_S = M"-----00------------------1001111" + + def FLE_S = M"1010000----------000-----1010011" + def FLT_S = M"1010000----------001-----1010011" + def FEQ_S = M"1010000----------010-----1010011" def FADD_D = M"0000001------------------1010011" def FSUB_D = M"0000101------------------1010011" def FMUL_D = M"0001001------------------1010011" @@ -139,50 +157,37 @@ object Riscv{ def FSGNJX_D = M"0010001----------010-----1010011" def FMIN_D = M"0010101----------000-----1010011" def FMAX_D = M"0010101----------001-----1010011" - def FCVT_S_D = M"010000000001-------------1010011" - def FCVT_D_S = M"010000100000-------------1010011" def FSQRT_D = M"010110100000-------------1010011" - def FCVT_W_S = M"110000000000-------------1010011" - def FCVT_WU_S = M"110000000001-------------1010011" - def FCVT_L_S = M"110000000010-------------1010011" - def FCVT_LU_S = M"110000000011-------------1010011" def FMV_X_W = M"111000000000-----000-----1010011" - def FCLASS_S = M"111000000000-----001-----1010011" def FCVT_W_D = M"110000100000-------------1010011" def FCVT_WU_D = M"110000100001-------------1010011" def FCVT_L_D = M"110000100010-------------1010011" def FCVT_LU_D = M"110000100011-------------1010011" def FMV_X_D = M"111000100000-----000-----1010011" def FCLASS_D = M"111000100000-----001-----1010011" - def FCVT_S_W = M"110100000000-------------1010011" - def FCVT_S_WU = M"110100000001-------------1010011" - def FCVT_S_L = M"110100000010-------------1010011" - def FCVT_S_LU = M"110100000011-------------1010011" - def FMV_W_X = M"111100000000-----000-----1010011" def FCVT_D_W = M"110100100000-------------1010011" def FCVT_D_WU = M"110100100001-------------1010011" def FCVT_D_L = M"110100100010-------------1010011" def FCVT_D_LU = M"110100100011-------------1010011" def FMV_D_X = M"111100100000-----000-----1010011" - def FLW = M"-----------------010-----0000111" - def FLD = M"-----------------011-----0000111" - def FSW = M"-----------------010-----0100111" - def FSD = M"-----------------011-----0100111" - def FMADD_S = M"-----00------------------1000011" - def FMSUB_S = M"-----00------------------1000111" - def FNMSUB_S = M"-----00------------------1001011" - def FNMADD_S = M"-----00------------------1001111" def FMADD_D = M"-----01------------------1000011" def FMSUB_D = M"-----01------------------1000111" def FNMSUB_D = M"-----01------------------1001011" def FNMADD_D = M"-----01------------------1001111" - def FLE_S = M"1010000----------000-----1010011" - def FLT_S = M"1010000----------001-----1010011" - def FEQ_S = M"1010000----------010-----1010011" def FLE_D = M"1010001----------000-----1010011" def FLT_D = M"1010001----------001-----1010011" def FEQ_D = M"1010001----------010-----1010011" + def FCVT_S_D = M"010000000001-------------1010011" + def FCVT_D_S = M"010000100000-------------1010011" + + def FLW = M"-----------------010-----0000111" + def FLD = M"-----------------011-----0000111" + def FSW = M"-----------------010-----0100111" + def FSD = M"-----------------011-----0100111" + + + object CSR{ def MVENDORID = 0xF11 // MRO Vendor ID. def MARCHID = 0xF12 // MRO Architecture ID. diff --git a/src/main/scala/vexriscv/TestsWorkspace.scala b/src/main/scala/vexriscv/TestsWorkspace.scala index 0154036..ac07cb8 100644 --- a/src/main/scala/vexriscv/TestsWorkspace.scala +++ b/src/main/scala/vexriscv/TestsWorkspace.scala @@ -61,7 +61,6 @@ object TestsWorkspace { bytePerLine = 32, wayCount = 1, addressWidth = 32, - rfDataWidth = 32, cpuDataWidth = 64, memDataWidth = 64, catchAccessError = true, @@ -112,7 +111,7 @@ object TestsWorkspace { config.plugins += new FpuPlugin( externalFpu = false, p = FpuParameter( - withDouble = false + withDouble = true ) ) val toplevel = new VexRiscv(config) diff --git a/src/main/scala/vexriscv/demo/smp/VexRiscvSmpCluster.scala b/src/main/scala/vexriscv/demo/smp/VexRiscvSmpCluster.scala index e01bd87..d3da4b3 100644 --- a/src/main/scala/vexriscv/demo/smp/VexRiscvSmpCluster.scala +++ b/src/main/scala/vexriscv/demo/smp/VexRiscvSmpCluster.scala @@ -153,6 +153,7 @@ object VexRiscvSmpClusterGen { resetVector : Long = 0x80000000l, iBusWidth : Int = 128, dBusWidth : Int = 64, + loadStoreWidth : Int = 32, coherency : Boolean = true, iCacheSize : Int = 8192, dCacheSize : Int = 8192, @@ -213,7 +214,7 @@ object VexRiscvSmpClusterGen { bytePerLine = 64, wayCount = dCacheWays, addressWidth = 32, - cpuDataWidth = 32, + cpuDataWidth = loadStoreWidth, memDataWidth = dBusWidth, catchAccessError = true, catchIllegal = true, @@ -222,8 +223,7 @@ object VexRiscvSmpClusterGen { withAmo = true, withExclusive = coherency, withInvalidate = coherency, - aggregationWidth = if(dBusWidth == 32) 0 else log2Up(dBusWidth/8) - // ) + withWriteAggregation = dBusWidth > 32 ), memoryTranslatorPortConfig = MmuPortConfig( portTlbSize = 4, diff --git a/src/main/scala/vexriscv/ip/DataCache.scala b/src/main/scala/vexriscv/ip/DataCache.scala index 1f76652..4fbcdeb 100644 --- a/src/main/scala/vexriscv/ip/DataCache.scala +++ b/src/main/scala/vexriscv/ip/DataCache.scala @@ -322,12 +322,10 @@ case class DataCacheMemBus(p : DataCacheConfig) extends Bundle with IMasterSlave rsp.data := mm.readData rsp.error := mm.response =/= AvalonMM.Response.OKAY - assert(p.cpuDataWidth == p.rfDataWidth) mm } def toWishbone(): Wishbone = { - assert(p.cpuDataWidth == p.rfDataWidth) val wishboneConfig = p.getWishboneConfig() val bus = Wishbone(wishboneConfig) val counter = Reg(UInt(log2Up(p.burstSize) bits)) init(0) @@ -373,7 +371,6 @@ case class DataCacheMemBus(p : DataCacheConfig) extends Bundle with IMasterSlave def toPipelinedMemoryBus(): PipelinedMemoryBus = { val bus = PipelinedMemoryBus(32,32) - assert(p.cpuDataWidth == p.rfDataWidth) val counter = Reg(UInt(log2Up(p.burstSize) bits)) init(0) when(bus.cmd.fire){ counter := counter + 1 } diff --git a/src/main/scala/vexriscv/ip/fpu/FpuCore.scala b/src/main/scala/vexriscv/ip/fpu/FpuCore.scala index df953f3..1448d89 100644 --- a/src/main/scala/vexriscv/ip/fpu/FpuCore.scala +++ b/src/main/scala/vexriscv/ip/fpu/FpuCore.scala @@ -1393,6 +1393,12 @@ object FpuSynthesisBench extends App{ }) } +//Fpu_32 -> +//Artix 7 -> 46 Mhz 1786 LUT 628 FF +//Artix 7 -> 47 Mhz 1901 LUT 628 FF +//Fpu_64 -> +//Artix 7 -> 37 Mhz 3407 LUT 1006 FF +//Artix 7 -> 36 Mhz 3564 LUT 1006 FF val rtls = ArrayBuffer[Rtl]() rtls += new Fpu( diff --git a/src/main/scala/vexriscv/plugin/DBusCachedPlugin.scala b/src/main/scala/vexriscv/plugin/DBusCachedPlugin.scala index 2014571..df50137 100644 --- a/src/main/scala/vexriscv/plugin/DBusCachedPlugin.scala +++ b/src/main/scala/vexriscv/plugin/DBusCachedPlugin.scala @@ -96,7 +96,8 @@ class DBusCachedPlugin(val config : DataCacheConfig, val bypassStoreList = ArrayBuffer[(Bool, Bits)]() override def bypassStore(data: Bits): Unit = { - bypassStoreList += ConditionalContext.isTrue() -> data + val prefix = s"DBusBypass${bypassStoreList.size}" + bypassStoreList += ConditionalContext.isTrue().setName(prefix + "_cond") -> CombInit(data).setName(prefix + "_value") } @@ -105,14 +106,13 @@ class DBusCachedPlugin(val config : DataCacheConfig, object MEMORY_ENABLE extends Stageable(Bool) object MEMORY_MANAGMENT extends Stageable(Bool) object MEMORY_WR extends Stageable(Bool) - object MEMORY_ADDRESS_LOW extends Stageable(UInt(2 bits)) object MEMORY_LRSC extends Stageable(Bool) object MEMORY_AMO extends Stageable(Bool) object MEMORY_FENCE extends Stageable(Bool) object MEMORY_FORCE_CONSTISTENCY extends Stageable(Bool) object IS_DBUS_SHARING extends Stageable(Bool()) object MEMORY_VIRTUAL_ADDRESS extends Stageable(UInt(32 bits)) - object MEMORY_STORE_DATA_RF extends Stageable(Bits(config.rfDataWidth bits)) + object MEMORY_STORE_DATA_RF extends Stageable(Bits(32 bits)) // object MEMORY_STORE_DATA_CPU extends Stageable(Bits(config.cpuDataWidth bits)) object MEMORY_LOAD_DATA extends Stageable(Bits(config.cpuDataWidth bits)) @@ -239,7 +239,8 @@ class DBusCachedPlugin(val config : DataCacheConfig, val cache = new DataCache( this.config.copy( - mergeExecuteMemory = writeBack == null + mergeExecuteMemory = writeBack == null, + rfDataWidth = 32 ), mmuParameter = mmuBus.p ) @@ -335,7 +336,6 @@ class DBusCachedPlugin(val config : DataCacheConfig, cache.io.cpu.execute.amoCtrl.swap := input(INSTRUCTION)(27) } - insert(MEMORY_ADDRESS_LOW) := cache.io.cpu.execute.address(1 downto 0) when(cache.io.cpu.execute.refilling && arbitration.isValid){ arbitration.haltByOther := True @@ -375,9 +375,9 @@ class DBusCachedPlugin(val config : DataCacheConfig, cache.io.cpu.writeBack.isUser := (if(privilegeService != null) privilegeService.isUser() else False) cache.io.cpu.writeBack.address := U(input(REGFILE_WRITE_DATA)) cache.io.cpu.writeBack.storeData.subdivideIn(32 bits).foreach(_ := input(MEMORY_STORE_DATA_RF)) - for((cond, value) <- bypassStoreList) when(cond){ - cache.io.cpu.writeBack.storeData := value - } + afterElaboration(for((cond, value) <- bypassStoreList) when(cond){ + cache.io.cpu.writeBack.storeData.subdivideIn(widthOf(value) bits).foreach(_ := value) //Not optimal, but ok + }) val fence = if(withInvalidate) new Area { cache.io.cpu.writeBack.fence := input(INSTRUCTION)(31 downto 20).as(FenceFlags()) @@ -438,28 +438,35 @@ class DBusCachedPlugin(val config : DataCacheConfig, arbitration.haltItself.setWhen(cache.io.cpu.writeBack.isValid && cache.io.cpu.writeBack.haltIt) - val rspRf = cache.io.cpu.writeBack.data.subdivideIn(32 bits).read(cache.io.cpu.writeBack.address(cache.cpuWordToRfWordRange)) - val rspShifted = CombInit(rspRf) - switch(input(MEMORY_ADDRESS_LOW)){ - is(1){rspShifted(7 downto 0) := rspRf(15 downto 8)} - is(2){rspShifted(15 downto 0) := rspRf(31 downto 16)} - is(3){rspShifted(7 downto 0) := rspRf(31 downto 24)} + val rspSplits = cache.io.cpu.writeBack.data.subdivideIn(8 bits) + val rspShifted = Bits(cpuDataWidth bits) + //Generate minimal mux to move from a wide aligned memory read to the register file shifter representation + for(i <- 0 until cpuDataWidth/8){ + val srcSize = 1 << (log2Up(cpuDataBytes) - log2Up(i+1)) + val srcZipped = rspSplits.zipWithIndex.filter{case (v, b) => b % (cpuDataBytes/srcSize) == i} + val src = srcZipped.map(_._1) + val range = cache.cpuWordToRfWordRange.high downto cache.cpuWordToRfWordRange.high+1-log2Up(srcSize) + val sel = cache.io.cpu.writeBack.address(range) +// println(s"$i $srcSize $range ${srcZipped.map(_._2).mkString(",")}") + rspShifted(i*8, 8 bits) := src.read(sel) } + + val rspRf = CombInit(rspShifted(31 downto 0)) if(withLrSc) when(input(MEMORY_LRSC) && input(MEMORY_WR)){ - rspShifted := B(!cache.io.cpu.writeBack.exclusiveOk).resized + rspRf := B(!cache.io.cpu.writeBack.exclusiveOk).resized } val rspFormated = input(INSTRUCTION)(13 downto 12).mux( - 0 -> B((31 downto 8) -> (rspShifted(7) && !input(INSTRUCTION)(14)),(7 downto 0) -> rspShifted(7 downto 0)), - 1 -> B((31 downto 16) -> (rspShifted(15) && ! input(INSTRUCTION)(14)),(15 downto 0) -> rspShifted(15 downto 0)), - default -> rspShifted //W + 0 -> B((31 downto 8) -> (rspRf(7) && !input(INSTRUCTION)(14)),(7 downto 0) -> rspRf(7 downto 0)), + 1 -> B((31 downto 16) -> (rspRf(15) && ! input(INSTRUCTION)(14)),(15 downto 0) -> rspRf(15 downto 0)), + default -> rspRf //W ) when(arbitration.isValid && input(MEMORY_ENABLE)) { output(REGFILE_WRITE_DATA) := rspFormated } - insert(MEMORY_LOAD_DATA) := cache.io.cpu.writeBack.data + insert(MEMORY_LOAD_DATA) := rspShifted } //Share access to the dBus (used by self refilled MMU) diff --git a/src/main/scala/vexriscv/plugin/FpuPlugin.scala b/src/main/scala/vexriscv/plugin/FpuPlugin.scala index a7454ea..88f3481 100644 --- a/src/main/scala/vexriscv/plugin/FpuPlugin.scala +++ b/src/main/scala/vexriscv/plugin/FpuPlugin.scala @@ -119,10 +119,10 @@ class FpuPlugin(externalFpu : Boolean = false, FMUL_D -> (mul :+ f64 :+ arg(0)), FDIV_D -> (div :+ f64 ), FSQRT_D -> (sqrt :+ f64 ), - FLW -> (fl :+ f64 ), - FSW -> (fs :+ f64 ), - FCVT_S_WU -> (fcvtI2f :+ f64 :+ arg(0)), - FCVT_S_W -> (fcvtI2f :+ f64 :+ arg(1)), + FLD -> (fl :+ f64 ), + FSD -> (fs :+ f64 ), + FCVT_D_WU -> (fcvtI2f :+ f64 :+ arg(0)), + FCVT_D_W -> (fcvtI2f :+ f64 :+ arg(1)), FCVT_WU_D -> (fcvtF2i :+ f64 :+ arg(0)), FCVT_W_D -> (fcvtF2i :+ f64 :+ arg(1)), FCLASS_D -> (fclass :+ f64 ), @@ -233,12 +233,15 @@ class FpuPlugin(externalFpu : Boolean = false, val dBusEncoding = pipeline.service(classOf[DBusEncodingService]) val isRsp = input(FPU_FORKED) && input(FPU_RSP) val isCommit = input(FPU_FORKED) && input(FPU_COMMIT) - + val storeFormated = CombInit(port.rsp.value) + if(p.withDouble) when(!input(INSTRUCTION)(12)){ + storeFormated(32, 32 bits) := port.rsp.value(0, 32 bits) + } //Manage $store and port.rsp port.rsp.ready := False when(isRsp){ when(arbitration.isValid) { - dBusEncoding.bypassStore(port.rsp.value) + dBusEncoding.bypassStore(storeFormated) output(REGFILE_WRITE_DATA) := port.rsp.value(31 downto 0) } when(!port.rsp.valid){ diff --git a/src/test/cpp/fpu/math/.gitignore b/src/test/cpp/fpu/math/.gitignore new file mode 100644 index 0000000..56d9c77 --- /dev/null +++ b/src/test/cpp/fpu/math/.gitignore @@ -0,0 +1,2 @@ +*.so +*.a diff --git a/src/test/cpp/regression/main.cpp b/src/test/cpp/regression/main.cpp index 6f1dcff..4d50019 100644 --- a/src/test/cpp/regression/main.cpp +++ b/src/test/cpp/regression/main.cpp @@ -3611,6 +3611,20 @@ string riscvTestFloat[] = { }; +string riscvTestDouble[] = { + "rv32ud-p-fadd", + "rv32ud-p-fcvt", + "rv32ud-p-fmadd", + "rv32ud-p-recoding", + "rv32ud-p-fclass", + "rv32ud-p-fcvt_w", + "rv32ud-p-fmin", + "rv32ud-p-fcmp", + "rv32ud-p-fdiv", + "rv32ud-p-ldst" +}; + + string riscvTestMul[] = { @@ -3857,6 +3871,11 @@ int main(int argc, char **argv, char **env) { redo(REDO,RiscvTest(name).bootAt(0x80000188u)->writeWord(0x80000184u, 0x00305073)->run();) } #endif + #ifdef RVD + for(const string &name : riscvTestDouble){ + redo(REDO,RiscvTest(name).bootAt(0x80000188u)->writeWord(0x80000184u, 0x00305073)->run();) + } + #endif //return 0; //#ifdef LITEX diff --git a/src/test/cpp/regression/makefile b/src/test/cpp/regression/makefile index 74f85f5..19bee06 100644 --- a/src/test/cpp/regression/makefile +++ b/src/test/cpp/regression/makefile @@ -14,6 +14,8 @@ TRACE_SPORADIC?=no ISA_TEST?=yes MUL?=yes DIV?=yes +RVF?=no +RVD?=no CSR?=yes CSR_SKIP_TEST?=no EBREAK?=no @@ -270,6 +272,10 @@ ifeq ($(RVF),yes) ADDCFLAGS += -CFLAGS -DRVF endif +ifeq ($(RVD),yes) + ADDCFLAGS += -CFLAGS -DRVD +endif + ifeq ($(DIV),yes) ADDCFLAGS += -CFLAGS -DDIV endif diff --git a/src/test/resources/asm/rv32ud-p-fadd.dump b/src/test/resources/asm/rv32ud-p-fadd.dump new file mode 100644 index 0000000..0155a03 --- /dev/null +++ b/src/test/resources/asm/rv32ud-p-fadd.dump @@ -0,0 +1,506 @@ + +rv32ud-p-fadd: file format elf32-littleriscv + + +Disassembly of section .text.init: + +80000000 <_start>: +80000000: 04c0006f j 8000004c + +80000004 : +80000004: 34202f73 csrr t5,mcause +80000008: 00800f93 li t6,8 +8000000c: 03ff0a63 beq t5,t6,80000040 +80000010: 00900f93 li t6,9 +80000014: 03ff0663 beq t5,t6,80000040 +80000018: 00b00f93 li t6,11 +8000001c: 03ff0263 beq t5,t6,80000040 +80000020: 80000f17 auipc t5,0x80000 +80000024: fe0f0f13 addi t5,t5,-32 # 0 <_start-0x80000000> +80000028: 000f0463 beqz t5,80000030 +8000002c: 000f0067 jr t5 +80000030: 34202f73 csrr t5,mcause +80000034: 000f5463 bgez t5,8000003c +80000038: 0040006f j 8000003c + +8000003c : +8000003c: 5391e193 ori gp,gp,1337 + +80000040 : +80000040: 00001f17 auipc t5,0x1 +80000044: fc3f2023 sw gp,-64(t5) # 80001000 +80000048: ff9ff06f j 80000040 + +8000004c : +8000004c: 00000093 li ra,0 +80000050: 00000113 li sp,0 +80000054: 00000193 li gp,0 +80000058: 00000213 li tp,0 +8000005c: 00000293 li t0,0 +80000060: 00000313 li t1,0 +80000064: 00000393 li t2,0 +80000068: 00000413 li s0,0 +8000006c: 00000493 li s1,0 +80000070: 00000513 li a0,0 +80000074: 00000593 li a1,0 +80000078: 00000613 li a2,0 +8000007c: 00000693 li a3,0 +80000080: 00000713 li a4,0 +80000084: 00000793 li a5,0 +80000088: 00000813 li a6,0 +8000008c: 00000893 li a7,0 +80000090: 00000913 li s2,0 +80000094: 00000993 li s3,0 +80000098: 00000a13 li s4,0 +8000009c: 00000a93 li s5,0 +800000a0: 00000b13 li s6,0 +800000a4: 00000b93 li s7,0 +800000a8: 00000c13 li s8,0 +800000ac: 00000c93 li s9,0 +800000b0: 00000d13 li s10,0 +800000b4: 00000d93 li s11,0 +800000b8: 00000e13 li t3,0 +800000bc: 00000e93 li t4,0 +800000c0: 00000f13 li t5,0 +800000c4: 00000f93 li t6,0 +800000c8: f1402573 csrr a0,mhartid +800000cc: 00051063 bnez a0,800000cc +800000d0: 00000297 auipc t0,0x0 +800000d4: 01028293 addi t0,t0,16 # 800000e0 +800000d8: 30529073 csrw mtvec,t0 +800000dc: 18005073 csrwi satp,0 +800000e0: 00000297 auipc t0,0x0 +800000e4: 02028293 addi t0,t0,32 # 80000100 +800000e8: 30529073 csrw mtvec,t0 +800000ec: 800002b7 lui t0,0x80000 +800000f0: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdebf> +800000f4: 3b029073 csrw pmpaddr0,t0 +800000f8: 01f00293 li t0,31 +800000fc: 3a029073 csrw pmpcfg0,t0 +80000100: 30405073 csrwi mie,0 +80000104: 00000297 auipc t0,0x0 +80000108: 01428293 addi t0,t0,20 # 80000118 +8000010c: 30529073 csrw mtvec,t0 +80000110: 30205073 csrwi medeleg,0 +80000114: 30305073 csrwi mideleg,0 +80000118: 00000193 li gp,0 +8000011c: 00000297 auipc t0,0x0 +80000120: ee828293 addi t0,t0,-280 # 80000004 +80000124: 30529073 csrw mtvec,t0 +80000128: 00100513 li a0,1 +8000012c: 01f51513 slli a0,a0,0x1f +80000130: 00054c63 bltz a0,80000148 +80000134: 0ff0000f fence +80000138: 00100193 li gp,1 +8000013c: 05d00893 li a7,93 +80000140: 00000513 li a0,0 +80000144: 00000073 ecall +80000148: 80000297 auipc t0,0x80000 +8000014c: eb828293 addi t0,t0,-328 # 0 <_start-0x80000000> +80000150: 00028a63 beqz t0,80000164 +80000154: 10529073 csrw stvec,t0 +80000158: 0000b2b7 lui t0,0xb +8000015c: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7> +80000160: 30229073 csrw medeleg,t0 +80000164: 30005073 csrwi mstatus,0 +80000168: 00002537 lui a0,0x2 +8000016c: 30052073 csrs mstatus,a0 +80000170: 00305073 csrwi fcsr,0 +80000174: 00000297 auipc t0,0x0 +80000178: 01428293 addi t0,t0,20 # 80000188 +8000017c: 34129073 csrw mepc,t0 +80000180: f1402573 csrr a0,mhartid +80000184: 30200073 mret + +80000188 : +80000188: 00200193 li gp,2 +8000018c: 00002517 auipc a0,0x2 +80000190: e7450513 addi a0,a0,-396 # 80002000 +80000194: 00053007 fld ft0,0(a0) +80000198: 00853087 fld ft1,8(a0) +8000019c: 01053107 fld ft2,16(a0) +800001a0: 01852683 lw a3,24(a0) +800001a4: 01c52303 lw t1,28(a0) +800001a8: 021071d3 fadd.d ft3,ft0,ft1 +800001ac: 00353027 fsd ft3,0(a0) +800001b0: 00452383 lw t2,4(a0) +800001b4: 00052503 lw a0,0(a0) +800001b8: 001015f3 fsflags a1,zero +800001bc: 00000613 li a2,0 +800001c0: 26d51a63 bne a0,a3,80000434 +800001c4: 26731863 bne t1,t2,80000434 +800001c8: 26c59663 bne a1,a2,80000434 + +800001cc : +800001cc: 00300193 li gp,3 +800001d0: 00002517 auipc a0,0x2 +800001d4: e5050513 addi a0,a0,-432 # 80002020 +800001d8: 00053007 fld ft0,0(a0) +800001dc: 00853087 fld ft1,8(a0) +800001e0: 01053107 fld ft2,16(a0) +800001e4: 01852683 lw a3,24(a0) +800001e8: 01c52303 lw t1,28(a0) +800001ec: 021071d3 fadd.d ft3,ft0,ft1 +800001f0: 00353027 fsd ft3,0(a0) +800001f4: 00452383 lw t2,4(a0) +800001f8: 00052503 lw a0,0(a0) +800001fc: 001015f3 fsflags a1,zero +80000200: 00100613 li a2,1 +80000204: 22d51863 bne a0,a3,80000434 +80000208: 22731663 bne t1,t2,80000434 +8000020c: 22c59463 bne a1,a2,80000434 + +80000210 : +80000210: 00400193 li gp,4 +80000214: 00002517 auipc a0,0x2 +80000218: e2c50513 addi a0,a0,-468 # 80002040 +8000021c: 00053007 fld ft0,0(a0) +80000220: 00853087 fld ft1,8(a0) +80000224: 01053107 fld ft2,16(a0) +80000228: 01852683 lw a3,24(a0) +8000022c: 01c52303 lw t1,28(a0) +80000230: 021071d3 fadd.d ft3,ft0,ft1 +80000234: 00353027 fsd ft3,0(a0) +80000238: 00452383 lw t2,4(a0) +8000023c: 00052503 lw a0,0(a0) +80000240: 001015f3 fsflags a1,zero +80000244: 00100613 li a2,1 +80000248: 1ed51663 bne a0,a3,80000434 +8000024c: 1e731463 bne t1,t2,80000434 +80000250: 1ec59263 bne a1,a2,80000434 + +80000254 : +80000254: 00500193 li gp,5 +80000258: 00002517 auipc a0,0x2 +8000025c: e0850513 addi a0,a0,-504 # 80002060 +80000260: 00053007 fld ft0,0(a0) +80000264: 00853087 fld ft1,8(a0) +80000268: 01053107 fld ft2,16(a0) +8000026c: 01852683 lw a3,24(a0) +80000270: 01c52303 lw t1,28(a0) +80000274: 0a1071d3 fsub.d ft3,ft0,ft1 +80000278: 00353027 fsd ft3,0(a0) +8000027c: 00452383 lw t2,4(a0) +80000280: 00052503 lw a0,0(a0) +80000284: 001015f3 fsflags a1,zero +80000288: 00000613 li a2,0 +8000028c: 1ad51463 bne a0,a3,80000434 +80000290: 1a731263 bne t1,t2,80000434 +80000294: 1ac59063 bne a1,a2,80000434 + +80000298 : +80000298: 00600193 li gp,6 +8000029c: 00002517 auipc a0,0x2 +800002a0: de450513 addi a0,a0,-540 # 80002080 +800002a4: 00053007 fld ft0,0(a0) +800002a8: 00853087 fld ft1,8(a0) +800002ac: 01053107 fld ft2,16(a0) +800002b0: 01852683 lw a3,24(a0) +800002b4: 01c52303 lw t1,28(a0) +800002b8: 0a1071d3 fsub.d ft3,ft0,ft1 +800002bc: 00353027 fsd ft3,0(a0) +800002c0: 00452383 lw t2,4(a0) +800002c4: 00052503 lw a0,0(a0) +800002c8: 001015f3 fsflags a1,zero +800002cc: 00100613 li a2,1 +800002d0: 16d51263 bne a0,a3,80000434 +800002d4: 16731063 bne t1,t2,80000434 +800002d8: 14c59e63 bne a1,a2,80000434 + +800002dc : +800002dc: 00700193 li gp,7 +800002e0: 00002517 auipc a0,0x2 +800002e4: dc050513 addi a0,a0,-576 # 800020a0 +800002e8: 00053007 fld ft0,0(a0) +800002ec: 00853087 fld ft1,8(a0) +800002f0: 01053107 fld ft2,16(a0) +800002f4: 01852683 lw a3,24(a0) +800002f8: 01c52303 lw t1,28(a0) +800002fc: 0a1071d3 fsub.d ft3,ft0,ft1 +80000300: 00353027 fsd ft3,0(a0) +80000304: 00452383 lw t2,4(a0) +80000308: 00052503 lw a0,0(a0) +8000030c: 001015f3 fsflags a1,zero +80000310: 00100613 li a2,1 +80000314: 12d51063 bne a0,a3,80000434 +80000318: 10731e63 bne t1,t2,80000434 +8000031c: 10c59c63 bne a1,a2,80000434 + +80000320 : +80000320: 00800193 li gp,8 +80000324: 00002517 auipc a0,0x2 +80000328: d9c50513 addi a0,a0,-612 # 800020c0 +8000032c: 00053007 fld ft0,0(a0) +80000330: 00853087 fld ft1,8(a0) +80000334: 01053107 fld ft2,16(a0) +80000338: 01852683 lw a3,24(a0) +8000033c: 01c52303 lw t1,28(a0) +80000340: 121071d3 fmul.d ft3,ft0,ft1 +80000344: 00353027 fsd ft3,0(a0) +80000348: 00452383 lw t2,4(a0) +8000034c: 00052503 lw a0,0(a0) +80000350: 001015f3 fsflags a1,zero +80000354: 00000613 li a2,0 +80000358: 0cd51e63 bne a0,a3,80000434 +8000035c: 0c731c63 bne t1,t2,80000434 +80000360: 0cc59a63 bne a1,a2,80000434 + +80000364 : +80000364: 00900193 li gp,9 +80000368: 00002517 auipc a0,0x2 +8000036c: d7850513 addi a0,a0,-648 # 800020e0 +80000370: 00053007 fld ft0,0(a0) +80000374: 00853087 fld ft1,8(a0) +80000378: 01053107 fld ft2,16(a0) +8000037c: 01852683 lw a3,24(a0) +80000380: 01c52303 lw t1,28(a0) +80000384: 121071d3 fmul.d ft3,ft0,ft1 +80000388: 00353027 fsd ft3,0(a0) +8000038c: 00452383 lw t2,4(a0) +80000390: 00052503 lw a0,0(a0) +80000394: 001015f3 fsflags a1,zero +80000398: 00100613 li a2,1 +8000039c: 08d51c63 bne a0,a3,80000434 +800003a0: 08731a63 bne t1,t2,80000434 +800003a4: 08c59863 bne a1,a2,80000434 + +800003a8 : +800003a8: 00a00193 li gp,10 +800003ac: 00002517 auipc a0,0x2 +800003b0: d5450513 addi a0,a0,-684 # 80002100 +800003b4: 00053007 fld ft0,0(a0) +800003b8: 00853087 fld ft1,8(a0) +800003bc: 01053107 fld ft2,16(a0) +800003c0: 01852683 lw a3,24(a0) +800003c4: 01c52303 lw t1,28(a0) +800003c8: 121071d3 fmul.d ft3,ft0,ft1 +800003cc: 00353027 fsd ft3,0(a0) +800003d0: 00452383 lw t2,4(a0) +800003d4: 00052503 lw a0,0(a0) +800003d8: 001015f3 fsflags a1,zero +800003dc: 00100613 li a2,1 +800003e0: 04d51a63 bne a0,a3,80000434 +800003e4: 04731863 bne t1,t2,80000434 +800003e8: 04c59663 bne a1,a2,80000434 + +800003ec : +800003ec: 00b00193 li gp,11 +800003f0: 00002517 auipc a0,0x2 +800003f4: d3050513 addi a0,a0,-720 # 80002120 +800003f8: 00053007 fld ft0,0(a0) +800003fc: 00853087 fld ft1,8(a0) +80000400: 01053107 fld ft2,16(a0) +80000404: 01852683 lw a3,24(a0) +80000408: 01c52303 lw t1,28(a0) +8000040c: 0a1071d3 fsub.d ft3,ft0,ft1 +80000410: 00353027 fsd ft3,0(a0) +80000414: 00452383 lw t2,4(a0) +80000418: 00052503 lw a0,0(a0) +8000041c: 001015f3 fsflags a1,zero +80000420: 01000613 li a2,16 +80000424: 00d51863 bne a0,a3,80000434 +80000428: 00731663 bne t1,t2,80000434 +8000042c: 00c59463 bne a1,a2,80000434 +80000430: 02301063 bne zero,gp,80000450 + +80000434 : +80000434: 0ff0000f fence +80000438: 00018063 beqz gp,80000438 +8000043c: 00119193 slli gp,gp,0x1 +80000440: 0011e193 ori gp,gp,1 +80000444: 05d00893 li a7,93 +80000448: 00018513 mv a0,gp +8000044c: 00000073 ecall + +80000450 : +80000450: 0ff0000f fence +80000454: 00100193 li gp,1 +80000458: 05d00893 li a7,93 +8000045c: 00000513 li a0,0 +80000460: 00000073 ecall +80000464: c0001073 unimp +80000468: 0000 unimp +8000046a: 0000 unimp +8000046c: 0000 unimp +8000046e: 0000 unimp +80000470: 0000 unimp +80000472: 0000 unimp +80000474: 0000 unimp +80000476: 0000 unimp +80000478: 0000 unimp +8000047a: 0000 unimp +8000047c: 0000 unimp +8000047e: 0000 unimp +80000480: 0000 unimp +80000482: 0000 unimp + +Disassembly of section .data: + +80002000 : +80002000: 0000 unimp +80002002: 0000 unimp +80002004: 0000 unimp +80002006: 4004 lw s1,0(s0) +80002008: 0000 unimp +8000200a: 0000 unimp +8000200c: 0000 unimp +8000200e: 3ff0 fld fa2,248(a5) +80002010: 0000 unimp +80002012: 0000 unimp +80002014: 0000 unimp +80002016: 0000 unimp +80002018: 0000 unimp +8000201a: 0000 unimp +8000201c: 0000 unimp +8000201e: 400c lw a1,0(s0) + +80002020 : +80002020: 6666 flw fa2,88(sp) +80002022: 6666 flw fa2,88(sp) +80002024: 4c66 lw s8,88(sp) +80002026: 999ac093 xori ra,s5,-1639 +8000202a: 9999 andi a1,a1,-26 +8000202c: 9999 andi a1,a1,-26 +8000202e: 3ff1 jal 8000200a +80002030: 0000 unimp +80002032: 0000 unimp +80002034: 0000 unimp +80002036: 0000 unimp +80002038: 0000 unimp +8000203a: 0000 unimp +8000203c: 4800 lw s0,16(s0) +8000203e: xori ra,gp,-689 + +80002040 : +80002040: d4f1 beqz s1,8000200c +80002042: 53c8 lw a0,36(a5) +80002044: 400921fb 0x400921fb +80002048: 8c3a mv s8,a4 +8000204a: e230 fsw fa2,64(a2) +8000204c: 798e flw fs3,224(sp) +8000204e: 3e45 jal 80001bfe +80002050: 0000 unimp +80002052: 0000 unimp +80002054: 0000 unimp +80002056: 0000 unimp +80002058: 6ddf 5520 21fb 0x21fb55206ddf +8000205e: 4009 c.li zero,2 + +80002060 : +80002060: 0000 unimp +80002062: 0000 unimp +80002064: 0000 unimp +80002066: 4004 lw s1,0(s0) +80002068: 0000 unimp +8000206a: 0000 unimp +8000206c: 0000 unimp +8000206e: 3ff0 fld fa2,248(a5) +80002070: 0000 unimp +80002072: 0000 unimp +80002074: 0000 unimp +80002076: 0000 unimp +80002078: 0000 unimp +8000207a: 0000 unimp +8000207c: 0000 unimp +8000207e: 3ff8 fld fa4,248(a5) + +80002080 : +80002080: 6666 flw fa2,88(sp) +80002082: 6666 flw fa2,88(sp) +80002084: 4c66 lw s8,88(sp) +80002086: 999ac093 xori ra,s5,-1639 +8000208a: 9999 andi a1,a1,-26 +8000208c: 9999 andi a1,a1,-26 +8000208e: bff1 j 8000206a +80002090: 0000 unimp +80002092: 0000 unimp +80002094: 0000 unimp +80002096: 0000 unimp +80002098: 0000 unimp +8000209a: 0000 unimp +8000209c: 4800 lw s0,16(s0) +8000209e: xori ra,gp,-689 + +800020a0 : +800020a0: d4f1 beqz s1,8000206c +800020a2: 53c8 lw a0,36(a5) +800020a4: 400921fb 0x400921fb +800020a8: 8c3a mv s8,a4 +800020aa: e230 fsw fa2,64(a2) +800020ac: 798e flw fs3,224(sp) +800020ae: 3e45 jal 80001c5e +800020b0: 0000 unimp +800020b2: 0000 unimp +800020b4: 0000 unimp +800020b6: 0000 unimp +800020b8: 52713c03 0x52713c03 +800020bc: 400921fb 0x400921fb + +800020c0 : +800020c0: 0000 unimp +800020c2: 0000 unimp +800020c4: 0000 unimp +800020c6: 4004 lw s1,0(s0) +800020c8: 0000 unimp +800020ca: 0000 unimp +800020cc: 0000 unimp +800020ce: 3ff0 fld fa2,248(a5) +800020d0: 0000 unimp +800020d2: 0000 unimp +800020d4: 0000 unimp +800020d6: 0000 unimp +800020d8: 0000 unimp +800020da: 0000 unimp +800020dc: 0000 unimp +800020de: 4004 lw s1,0(s0) + +800020e0 : +800020e0: 6666 flw fa2,88(sp) +800020e2: 6666 flw fa2,88(sp) +800020e4: 4c66 lw s8,88(sp) +800020e6: 999ac093 xori ra,s5,-1639 +800020ea: 9999 andi a1,a1,-26 +800020ec: 9999 andi a1,a1,-26 +800020ee: bff1 j 800020ca +800020f0: 0000 unimp +800020f2: 0000 unimp +800020f4: 0000 unimp +800020f6: 0000 unimp +800020f8: 0a3d addi s4,s4,15 +800020fa: 3a70a3d7 0x3a70a3d7 +800020fe: 4095 li ra,5 + +80002100 : +80002100: d4f1 beqz s1,800020cc +80002102: 53c8 lw a0,36(a5) +80002104: 400921fb 0x400921fb +80002108: 8c3a mv s8,a4 +8000210a: e230 fsw fa2,64(a2) +8000210c: 798e flw fs3,224(sp) +8000210e: 3e45 jal 80001cbe +80002110: 0000 unimp +80002112: 0000 unimp +80002114: 0000 unimp +80002116: 0000 unimp +80002118: ff09 bnez a4,80002032 +8000211a: a5c1 j 800027da <_end+0x69a> +8000211c: ddc5 beqz a1,800020d4 +8000211e: 3e60 fld fs0,248(a2) + +80002120 : +80002120: 0000 unimp +80002122: 0000 unimp +80002124: 0000 unimp +80002126: 7ff0 flw fa2,124(a5) +80002128: 0000 unimp +8000212a: 0000 unimp +8000212c: 0000 unimp +8000212e: 7ff0 flw fa2,124(a5) +80002130: 0000 unimp +80002132: 0000 unimp +80002134: 0000 unimp +80002136: 0000 unimp +80002138: 0000 unimp +8000213a: 0000 unimp +8000213c: 0000 unimp +8000213e: 7ff8 flw fa4,124(a5) diff --git a/src/test/resources/asm/rv32ud-p-fclass.dump b/src/test/resources/asm/rv32ud-p-fclass.dump new file mode 100644 index 0000000..2b11d2a --- /dev/null +++ b/src/test/resources/asm/rv32ud-p-fclass.dump @@ -0,0 +1,305 @@ + +rv32ud-p-fclass: file format elf32-littleriscv + + +Disassembly of section .text.init: + +80000000 <_start>: +80000000: 04c0006f j 8000004c + +80000004 : +80000004: 34202f73 csrr t5,mcause +80000008: 00800f93 li t6,8 +8000000c: 03ff0a63 beq t5,t6,80000040 +80000010: 00900f93 li t6,9 +80000014: 03ff0663 beq t5,t6,80000040 +80000018: 00b00f93 li t6,11 +8000001c: 03ff0263 beq t5,t6,80000040 +80000020: 80000f17 auipc t5,0x80000 +80000024: fe0f0f13 addi t5,t5,-32 # 0 <_start-0x80000000> +80000028: 000f0463 beqz t5,80000030 +8000002c: 000f0067 jr t5 +80000030: 34202f73 csrr t5,mcause +80000034: 000f5463 bgez t5,8000003c +80000038: 0040006f j 8000003c + +8000003c : +8000003c: 5391e193 ori gp,gp,1337 + +80000040 : +80000040: 00001f17 auipc t5,0x1 +80000044: fc3f2023 sw gp,-64(t5) # 80001000 +80000048: ff9ff06f j 80000040 + +8000004c : +8000004c: 00000093 li ra,0 +80000050: 00000113 li sp,0 +80000054: 00000193 li gp,0 +80000058: 00000213 li tp,0 +8000005c: 00000293 li t0,0 +80000060: 00000313 li t1,0 +80000064: 00000393 li t2,0 +80000068: 00000413 li s0,0 +8000006c: 00000493 li s1,0 +80000070: 00000513 li a0,0 +80000074: 00000593 li a1,0 +80000078: 00000613 li a2,0 +8000007c: 00000693 li a3,0 +80000080: 00000713 li a4,0 +80000084: 00000793 li a5,0 +80000088: 00000813 li a6,0 +8000008c: 00000893 li a7,0 +80000090: 00000913 li s2,0 +80000094: 00000993 li s3,0 +80000098: 00000a13 li s4,0 +8000009c: 00000a93 li s5,0 +800000a0: 00000b13 li s6,0 +800000a4: 00000b93 li s7,0 +800000a8: 00000c13 li s8,0 +800000ac: 00000c93 li s9,0 +800000b0: 00000d13 li s10,0 +800000b4: 00000d93 li s11,0 +800000b8: 00000e13 li t3,0 +800000bc: 00000e93 li t4,0 +800000c0: 00000f13 li t5,0 +800000c4: 00000f93 li t6,0 +800000c8: f1402573 csrr a0,mhartid +800000cc: 00051063 bnez a0,800000cc +800000d0: 00000297 auipc t0,0x0 +800000d4: 01028293 addi t0,t0,16 # 800000e0 +800000d8: 30529073 csrw mtvec,t0 +800000dc: 18005073 csrwi satp,0 +800000e0: 00000297 auipc t0,0x0 +800000e4: 02028293 addi t0,t0,32 # 80000100 +800000e8: 30529073 csrw mtvec,t0 +800000ec: 800002b7 lui t0,0x80000 +800000f0: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdfaf> +800000f4: 3b029073 csrw pmpaddr0,t0 +800000f8: 01f00293 li t0,31 +800000fc: 3a029073 csrw pmpcfg0,t0 +80000100: 30405073 csrwi mie,0 +80000104: 00000297 auipc t0,0x0 +80000108: 01428293 addi t0,t0,20 # 80000118 +8000010c: 30529073 csrw mtvec,t0 +80000110: 30205073 csrwi medeleg,0 +80000114: 30305073 csrwi mideleg,0 +80000118: 00000193 li gp,0 +8000011c: 00000297 auipc t0,0x0 +80000120: ee828293 addi t0,t0,-280 # 80000004 +80000124: 30529073 csrw mtvec,t0 +80000128: 00100513 li a0,1 +8000012c: 01f51513 slli a0,a0,0x1f +80000130: 00054c63 bltz a0,80000148 +80000134: 0ff0000f fence +80000138: 00100193 li gp,1 +8000013c: 05d00893 li a7,93 +80000140: 00000513 li a0,0 +80000144: 00000073 ecall +80000148: 80000297 auipc t0,0x80000 +8000014c: eb828293 addi t0,t0,-328 # 0 <_start-0x80000000> +80000150: 00028a63 beqz t0,80000164 +80000154: 10529073 csrw stvec,t0 +80000158: 0000b2b7 lui t0,0xb +8000015c: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7> +80000160: 30229073 csrw medeleg,t0 +80000164: 30005073 csrwi mstatus,0 +80000168: 00002537 lui a0,0x2 +8000016c: 30052073 csrs mstatus,a0 +80000170: 00305073 csrwi fcsr,0 +80000174: 00000297 auipc t0,0x0 +80000178: 01428293 addi t0,t0,20 # 80000188 +8000017c: 34129073 csrw mepc,t0 +80000180: f1402573 csrr a0,mhartid +80000184: 30200073 mret + +80000188 : +80000188: 00002517 auipc a0,0x2 +8000018c: e7850513 addi a0,a0,-392 # 80002000 +80000190: 00053507 fld fa0,0(a0) +80000194: e2051553 fclass.d a0,fa0 +80000198: 00100393 li t2,1 +8000019c: 00200193 li gp,2 +800001a0: 10751263 bne a0,t2,800002a4 + +800001a4 : +800001a4: 00002517 auipc a0,0x2 +800001a8: e6450513 addi a0,a0,-412 # 80002008 +800001ac: 00053507 fld fa0,0(a0) +800001b0: e2051553 fclass.d a0,fa0 +800001b4: 00200393 li t2,2 +800001b8: 00300193 li gp,3 +800001bc: 0e751463 bne a0,t2,800002a4 + +800001c0 : +800001c0: 00002517 auipc a0,0x2 +800001c4: e5050513 addi a0,a0,-432 # 80002010 +800001c8: 00053507 fld fa0,0(a0) +800001cc: e2051553 fclass.d a0,fa0 +800001d0: 00400393 li t2,4 +800001d4: 00400193 li gp,4 +800001d8: 0c751663 bne a0,t2,800002a4 + +800001dc : +800001dc: 00002517 auipc a0,0x2 +800001e0: e3c50513 addi a0,a0,-452 # 80002018 +800001e4: 00053507 fld fa0,0(a0) +800001e8: e2051553 fclass.d a0,fa0 +800001ec: 00800393 li t2,8 +800001f0: 00500193 li gp,5 +800001f4: 0a751863 bne a0,t2,800002a4 + +800001f8 : +800001f8: 00002517 auipc a0,0x2 +800001fc: e2850513 addi a0,a0,-472 # 80002020 +80000200: 00053507 fld fa0,0(a0) +80000204: e2051553 fclass.d a0,fa0 +80000208: 01000393 li t2,16 +8000020c: 00600193 li gp,6 +80000210: 08751a63 bne a0,t2,800002a4 + +80000214 : +80000214: 00002517 auipc a0,0x2 +80000218: e1450513 addi a0,a0,-492 # 80002028 +8000021c: 00053507 fld fa0,0(a0) +80000220: e2051553 fclass.d a0,fa0 +80000224: 02000393 li t2,32 +80000228: 00700193 li gp,7 +8000022c: 06751c63 bne a0,t2,800002a4 + +80000230 : +80000230: 00002517 auipc a0,0x2 +80000234: e0050513 addi a0,a0,-512 # 80002030 +80000238: 00053507 fld fa0,0(a0) +8000023c: e2051553 fclass.d a0,fa0 +80000240: 04000393 li t2,64 +80000244: 00800193 li gp,8 +80000248: 04751e63 bne a0,t2,800002a4 + +8000024c : +8000024c: 00002517 auipc a0,0x2 +80000250: dec50513 addi a0,a0,-532 # 80002038 +80000254: 00053507 fld fa0,0(a0) +80000258: e2051553 fclass.d a0,fa0 +8000025c: 08000393 li t2,128 +80000260: 00900193 li gp,9 +80000264: 04751063 bne a0,t2,800002a4 + +80000268 : +80000268: 00002517 auipc a0,0x2 +8000026c: dd850513 addi a0,a0,-552 # 80002040 +80000270: 00053507 fld fa0,0(a0) +80000274: e2051553 fclass.d a0,fa0 +80000278: 10000393 li t2,256 +8000027c: 00a00193 li gp,10 +80000280: 02751263 bne a0,t2,800002a4 + +80000284 : +80000284: 00002517 auipc a0,0x2 +80000288: dc450513 addi a0,a0,-572 # 80002048 +8000028c: 00053507 fld fa0,0(a0) +80000290: e2051553 fclass.d a0,fa0 +80000294: 20000393 li t2,512 +80000298: 00b00193 li gp,11 +8000029c: 00751463 bne a0,t2,800002a4 +800002a0: 02301063 bne zero,gp,800002c0 + +800002a4 : +800002a4: 0ff0000f fence +800002a8: 00018063 beqz gp,800002a8 +800002ac: 00119193 slli gp,gp,0x1 +800002b0: 0011e193 ori gp,gp,1 +800002b4: 05d00893 li a7,93 +800002b8: 00018513 mv a0,gp +800002bc: 00000073 ecall + +800002c0 : +800002c0: 0ff0000f fence +800002c4: 00100193 li gp,1 +800002c8: 05d00893 li a7,93 +800002cc: 00000513 li a0,0 +800002d0: 00000073 ecall +800002d4: c0001073 unimp +800002d8: 0000 unimp +800002da: 0000 unimp +800002dc: 0000 unimp +800002de: 0000 unimp +800002e0: 0000 unimp +800002e2: 0000 unimp +800002e4: 0000 unimp +800002e6: 0000 unimp +800002e8: 0000 unimp +800002ea: 0000 unimp +800002ec: 0000 unimp +800002ee: 0000 unimp +800002f0: 0000 unimp +800002f2: 0000 unimp +800002f4: 0000 unimp +800002f6: 0000 unimp +800002f8: 0000 unimp +800002fa: 0000 unimp +800002fc: 0000 unimp +800002fe: 0000 unimp +80000300: 0000 unimp +80000302: 0000 unimp + +Disassembly of section .data: + +80002000 : +80002000: 0000 unimp +80002002: 0000 unimp +80002004: 0000 unimp +80002006: fff0 fsw fa2,124(a5) + +80002008 : +80002008: 0000 unimp +8000200a: 0000 unimp +8000200c: 0000 unimp +8000200e: bff0 fsd fa2,248(a5) + +80002010 : +80002010: ffff 0xffff +80002012: ffff 0xffff +80002014: ffff 0xffff +80002016: 0x800f + +80002018 : +80002018: 0000 unimp +8000201a: 0000 unimp +8000201c: 0000 unimp +8000201e: 8000 0x8000 + +80002020 : +80002020: 0000 unimp +80002022: 0000 unimp +80002024: 0000 unimp +80002026: 0000 unimp + +80002028 : +80002028: ffff 0xffff +8000202a: ffff 0xffff +8000202c: ffff 0xffff +8000202e: fence unknown,unknown + +80002030 : +80002030: 0000 unimp +80002032: 0000 unimp +80002034: 0000 unimp +80002036: 3ff0 fld fa2,248(a5) + +80002038 : +80002038: 0000 unimp +8000203a: 0000 unimp +8000203c: 0000 unimp +8000203e: 7ff0 flw fa2,124(a5) + +80002040 : +80002040: 0001 nop +80002042: 0000 unimp +80002044: 0000 unimp +80002046: 7ff0 flw fa2,124(a5) + +80002048 : +80002048: 0000 unimp +8000204a: 0000 unimp +8000204c: 0000 unimp +8000204e: 7ff8 flw fa4,124(a5) diff --git a/src/test/resources/asm/rv32ud-p-fcmp.dump b/src/test/resources/asm/rv32ud-p-fcmp.dump new file mode 100644 index 0000000..1fc9013 --- /dev/null +++ b/src/test/resources/asm/rv32ud-p-fcmp.dump @@ -0,0 +1,640 @@ + +rv32ud-p-fcmp: file format elf32-littleriscv + + +Disassembly of section .text.init: + +80000000 <_start>: +80000000: 04c0006f j 8000004c + +80000004 : +80000004: 34202f73 csrr t5,mcause +80000008: 00800f93 li t6,8 +8000000c: 03ff0a63 beq t5,t6,80000040 +80000010: 00900f93 li t6,9 +80000014: 03ff0663 beq t5,t6,80000040 +80000018: 00b00f93 li t6,11 +8000001c: 03ff0263 beq t5,t6,80000040 +80000020: 80000f17 auipc t5,0x80000 +80000024: fe0f0f13 addi t5,t5,-32 # 0 <_start-0x80000000> +80000028: 000f0463 beqz t5,80000030 +8000002c: 000f0067 jr t5 +80000030: 34202f73 csrr t5,mcause +80000034: 000f5463 bgez t5,8000003c +80000038: 0040006f j 8000003c + +8000003c : +8000003c: 5391e193 ori gp,gp,1337 + +80000040 : +80000040: 00001f17 auipc t5,0x1 +80000044: fc3f2023 sw gp,-64(t5) # 80001000 +80000048: ff9ff06f j 80000040 + +8000004c : +8000004c: 00000093 li ra,0 +80000050: 00000113 li sp,0 +80000054: 00000193 li gp,0 +80000058: 00000213 li tp,0 +8000005c: 00000293 li t0,0 +80000060: 00000313 li t1,0 +80000064: 00000393 li t2,0 +80000068: 00000413 li s0,0 +8000006c: 00000493 li s1,0 +80000070: 00000513 li a0,0 +80000074: 00000593 li a1,0 +80000078: 00000613 li a2,0 +8000007c: 00000693 li a3,0 +80000080: 00000713 li a4,0 +80000084: 00000793 li a5,0 +80000088: 00000813 li a6,0 +8000008c: 00000893 li a7,0 +80000090: 00000913 li s2,0 +80000094: 00000993 li s3,0 +80000098: 00000a13 li s4,0 +8000009c: 00000a93 li s5,0 +800000a0: 00000b13 li s6,0 +800000a4: 00000b93 li s7,0 +800000a8: 00000c13 li s8,0 +800000ac: 00000c93 li s9,0 +800000b0: 00000d13 li s10,0 +800000b4: 00000d93 li s11,0 +800000b8: 00000e13 li t3,0 +800000bc: 00000e93 li t4,0 +800000c0: 00000f13 li t5,0 +800000c4: 00000f93 li t6,0 +800000c8: f1402573 csrr a0,mhartid +800000cc: 00051063 bnez a0,800000cc +800000d0: 00000297 auipc t0,0x0 +800000d4: 01028293 addi t0,t0,16 # 800000e0 +800000d8: 30529073 csrw mtvec,t0 +800000dc: 18005073 csrwi satp,0 +800000e0: 00000297 auipc t0,0x0 +800000e4: 02028293 addi t0,t0,32 # 80000100 +800000e8: 30529073 csrw mtvec,t0 +800000ec: 800002b7 lui t0,0x80000 +800000f0: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffde1f> +800000f4: 3b029073 csrw pmpaddr0,t0 +800000f8: 01f00293 li t0,31 +800000fc: 3a029073 csrw pmpcfg0,t0 +80000100: 30405073 csrwi mie,0 +80000104: 00000297 auipc t0,0x0 +80000108: 01428293 addi t0,t0,20 # 80000118 +8000010c: 30529073 csrw mtvec,t0 +80000110: 30205073 csrwi medeleg,0 +80000114: 30305073 csrwi mideleg,0 +80000118: 00000193 li gp,0 +8000011c: 00000297 auipc t0,0x0 +80000120: ee828293 addi t0,t0,-280 # 80000004 +80000124: 30529073 csrw mtvec,t0 +80000128: 00100513 li a0,1 +8000012c: 01f51513 slli a0,a0,0x1f +80000130: 00054c63 bltz a0,80000148 +80000134: 0ff0000f fence +80000138: 00100193 li gp,1 +8000013c: 05d00893 li a7,93 +80000140: 00000513 li a0,0 +80000144: 00000073 ecall +80000148: 80000297 auipc t0,0x80000 +8000014c: eb828293 addi t0,t0,-328 # 0 <_start-0x80000000> +80000150: 00028a63 beqz t0,80000164 +80000154: 10529073 csrw stvec,t0 +80000158: 0000b2b7 lui t0,0xb +8000015c: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7> +80000160: 30229073 csrw medeleg,t0 +80000164: 30005073 csrwi mstatus,0 +80000168: 00002537 lui a0,0x2 +8000016c: 30052073 csrs mstatus,a0 +80000170: 00305073 csrwi fcsr,0 +80000174: 00000297 auipc t0,0x0 +80000178: 01428293 addi t0,t0,20 # 80000188 +8000017c: 34129073 csrw mepc,t0 +80000180: f1402573 csrr a0,mhartid +80000184: 30200073 mret + +80000188 : +80000188: 00200193 li gp,2 +8000018c: 00002517 auipc a0,0x2 +80000190: e7450513 addi a0,a0,-396 # 80002000 +80000194: 00053007 fld ft0,0(a0) +80000198: 00853087 fld ft1,8(a0) +8000019c: 01053107 fld ft2,16(a0) +800001a0: 01852683 lw a3,24(a0) +800001a4: 01c52303 lw t1,28(a0) +800001a8: a2102553 feq.d a0,ft0,ft1 +800001ac: 00000393 li t2,0 +800001b0: 001015f3 fsflags a1,zero +800001b4: 00000613 li a2,0 +800001b8: 34d51c63 bne a0,a3,80000510 +800001bc: 34731a63 bne t1,t2,80000510 +800001c0: 34c59863 bne a1,a2,80000510 + +800001c4 : +800001c4: 00300193 li gp,3 +800001c8: 00002517 auipc a0,0x2 +800001cc: e5850513 addi a0,a0,-424 # 80002020 +800001d0: 00053007 fld ft0,0(a0) +800001d4: 00853087 fld ft1,8(a0) +800001d8: 01053107 fld ft2,16(a0) +800001dc: 01852683 lw a3,24(a0) +800001e0: 01c52303 lw t1,28(a0) +800001e4: a2100553 fle.d a0,ft0,ft1 +800001e8: 00000393 li t2,0 +800001ec: 001015f3 fsflags a1,zero +800001f0: 00000613 li a2,0 +800001f4: 30d51e63 bne a0,a3,80000510 +800001f8: 30731c63 bne t1,t2,80000510 +800001fc: 30c59a63 bne a1,a2,80000510 + +80000200 : +80000200: 00400193 li gp,4 +80000204: 00002517 auipc a0,0x2 +80000208: e3c50513 addi a0,a0,-452 # 80002040 +8000020c: 00053007 fld ft0,0(a0) +80000210: 00853087 fld ft1,8(a0) +80000214: 01053107 fld ft2,16(a0) +80000218: 01852683 lw a3,24(a0) +8000021c: 01c52303 lw t1,28(a0) +80000220: a2101553 flt.d a0,ft0,ft1 +80000224: 00000393 li t2,0 +80000228: 001015f3 fsflags a1,zero +8000022c: 00000613 li a2,0 +80000230: 2ed51063 bne a0,a3,80000510 +80000234: 2c731e63 bne t1,t2,80000510 +80000238: 2cc59c63 bne a1,a2,80000510 + +8000023c : +8000023c: 00500193 li gp,5 +80000240: 00002517 auipc a0,0x2 +80000244: e2050513 addi a0,a0,-480 # 80002060 +80000248: 00053007 fld ft0,0(a0) +8000024c: 00853087 fld ft1,8(a0) +80000250: 01053107 fld ft2,16(a0) +80000254: 01852683 lw a3,24(a0) +80000258: 01c52303 lw t1,28(a0) +8000025c: a2102553 feq.d a0,ft0,ft1 +80000260: 00000393 li t2,0 +80000264: 001015f3 fsflags a1,zero +80000268: 00000613 li a2,0 +8000026c: 2ad51263 bne a0,a3,80000510 +80000270: 2a731063 bne t1,t2,80000510 +80000274: 28c59e63 bne a1,a2,80000510 + +80000278 : +80000278: 00600193 li gp,6 +8000027c: 00002517 auipc a0,0x2 +80000280: e0450513 addi a0,a0,-508 # 80002080 +80000284: 00053007 fld ft0,0(a0) +80000288: 00853087 fld ft1,8(a0) +8000028c: 01053107 fld ft2,16(a0) +80000290: 01852683 lw a3,24(a0) +80000294: 01c52303 lw t1,28(a0) +80000298: a2100553 fle.d a0,ft0,ft1 +8000029c: 00000393 li t2,0 +800002a0: 001015f3 fsflags a1,zero +800002a4: 00000613 li a2,0 +800002a8: 26d51463 bne a0,a3,80000510 +800002ac: 26731263 bne t1,t2,80000510 +800002b0: 26c59063 bne a1,a2,80000510 + +800002b4 : +800002b4: 00700193 li gp,7 +800002b8: 00002517 auipc a0,0x2 +800002bc: de850513 addi a0,a0,-536 # 800020a0 +800002c0: 00053007 fld ft0,0(a0) +800002c4: 00853087 fld ft1,8(a0) +800002c8: 01053107 fld ft2,16(a0) +800002cc: 01852683 lw a3,24(a0) +800002d0: 01c52303 lw t1,28(a0) +800002d4: a2101553 flt.d a0,ft0,ft1 +800002d8: 00000393 li t2,0 +800002dc: 001015f3 fsflags a1,zero +800002e0: 00000613 li a2,0 +800002e4: 22d51663 bne a0,a3,80000510 +800002e8: 22731463 bne t1,t2,80000510 +800002ec: 22c59263 bne a1,a2,80000510 + +800002f0 : +800002f0: 00800193 li gp,8 +800002f4: 00002517 auipc a0,0x2 +800002f8: dcc50513 addi a0,a0,-564 # 800020c0 +800002fc: 00053007 fld ft0,0(a0) +80000300: 00853087 fld ft1,8(a0) +80000304: 01053107 fld ft2,16(a0) +80000308: 01852683 lw a3,24(a0) +8000030c: 01c52303 lw t1,28(a0) +80000310: a2102553 feq.d a0,ft0,ft1 +80000314: 00000393 li t2,0 +80000318: 001015f3 fsflags a1,zero +8000031c: 00000613 li a2,0 +80000320: 1ed51863 bne a0,a3,80000510 +80000324: 1e731663 bne t1,t2,80000510 +80000328: 1ec59463 bne a1,a2,80000510 + +8000032c : +8000032c: 00900193 li gp,9 +80000330: 00002517 auipc a0,0x2 +80000334: db050513 addi a0,a0,-592 # 800020e0 +80000338: 00053007 fld ft0,0(a0) +8000033c: 00853087 fld ft1,8(a0) +80000340: 01053107 fld ft2,16(a0) +80000344: 01852683 lw a3,24(a0) +80000348: 01c52303 lw t1,28(a0) +8000034c: a2102553 feq.d a0,ft0,ft1 +80000350: 00000393 li t2,0 +80000354: 001015f3 fsflags a1,zero +80000358: 00000613 li a2,0 +8000035c: 1ad51a63 bne a0,a3,80000510 +80000360: 1a731863 bne t1,t2,80000510 +80000364: 1ac59663 bne a1,a2,80000510 + +80000368 : +80000368: 00a00193 li gp,10 +8000036c: 00002517 auipc a0,0x2 +80000370: d9450513 addi a0,a0,-620 # 80002100 +80000374: 00053007 fld ft0,0(a0) +80000378: 00853087 fld ft1,8(a0) +8000037c: 01053107 fld ft2,16(a0) +80000380: 01852683 lw a3,24(a0) +80000384: 01c52303 lw t1,28(a0) +80000388: a2102553 feq.d a0,ft0,ft1 +8000038c: 00000393 li t2,0 +80000390: 001015f3 fsflags a1,zero +80000394: 01000613 li a2,16 +80000398: 16d51c63 bne a0,a3,80000510 +8000039c: 16731a63 bne t1,t2,80000510 +800003a0: 16c59863 bne a1,a2,80000510 + +800003a4 : +800003a4: 00b00193 li gp,11 +800003a8: 00002517 auipc a0,0x2 +800003ac: d7850513 addi a0,a0,-648 # 80002120 +800003b0: 00053007 fld ft0,0(a0) +800003b4: 00853087 fld ft1,8(a0) +800003b8: 01053107 fld ft2,16(a0) +800003bc: 01852683 lw a3,24(a0) +800003c0: 01c52303 lw t1,28(a0) +800003c4: a2101553 flt.d a0,ft0,ft1 +800003c8: 00000393 li t2,0 +800003cc: 001015f3 fsflags a1,zero +800003d0: 01000613 li a2,16 +800003d4: 12d51e63 bne a0,a3,80000510 +800003d8: 12731c63 bne t1,t2,80000510 +800003dc: 12c59a63 bne a1,a2,80000510 + +800003e0 : +800003e0: 00c00193 li gp,12 +800003e4: 00002517 auipc a0,0x2 +800003e8: d5c50513 addi a0,a0,-676 # 80002140 +800003ec: 00053007 fld ft0,0(a0) +800003f0: 00853087 fld ft1,8(a0) +800003f4: 01053107 fld ft2,16(a0) +800003f8: 01852683 lw a3,24(a0) +800003fc: 01c52303 lw t1,28(a0) +80000400: a2101553 flt.d a0,ft0,ft1 +80000404: 00000393 li t2,0 +80000408: 001015f3 fsflags a1,zero +8000040c: 01000613 li a2,16 +80000410: 10d51063 bne a0,a3,80000510 +80000414: 0e731e63 bne t1,t2,80000510 +80000418: 0ec59c63 bne a1,a2,80000510 + +8000041c : +8000041c: 00d00193 li gp,13 +80000420: 00002517 auipc a0,0x2 +80000424: d4050513 addi a0,a0,-704 # 80002160 +80000428: 00053007 fld ft0,0(a0) +8000042c: 00853087 fld ft1,8(a0) +80000430: 01053107 fld ft2,16(a0) +80000434: 01852683 lw a3,24(a0) +80000438: 01c52303 lw t1,28(a0) +8000043c: a2101553 flt.d a0,ft0,ft1 +80000440: 00000393 li t2,0 +80000444: 001015f3 fsflags a1,zero +80000448: 01000613 li a2,16 +8000044c: 0cd51263 bne a0,a3,80000510 +80000450: 0c731063 bne t1,t2,80000510 +80000454: 0ac59e63 bne a1,a2,80000510 + +80000458 : +80000458: 00e00193 li gp,14 +8000045c: 00002517 auipc a0,0x2 +80000460: d2450513 addi a0,a0,-732 # 80002180 +80000464: 00053007 fld ft0,0(a0) +80000468: 00853087 fld ft1,8(a0) +8000046c: 01053107 fld ft2,16(a0) +80000470: 01852683 lw a3,24(a0) +80000474: 01c52303 lw t1,28(a0) +80000478: a2100553 fle.d a0,ft0,ft1 +8000047c: 00000393 li t2,0 +80000480: 001015f3 fsflags a1,zero +80000484: 01000613 li a2,16 +80000488: 08d51463 bne a0,a3,80000510 +8000048c: 08731263 bne t1,t2,80000510 +80000490: 08c59063 bne a1,a2,80000510 + +80000494 : +80000494: 00f00193 li gp,15 +80000498: 00002517 auipc a0,0x2 +8000049c: d0850513 addi a0,a0,-760 # 800021a0 +800004a0: 00053007 fld ft0,0(a0) +800004a4: 00853087 fld ft1,8(a0) +800004a8: 01053107 fld ft2,16(a0) +800004ac: 01852683 lw a3,24(a0) +800004b0: 01c52303 lw t1,28(a0) +800004b4: a2100553 fle.d a0,ft0,ft1 +800004b8: 00000393 li t2,0 +800004bc: 001015f3 fsflags a1,zero +800004c0: 01000613 li a2,16 +800004c4: 04d51663 bne a0,a3,80000510 +800004c8: 04731463 bne t1,t2,80000510 +800004cc: 04c59263 bne a1,a2,80000510 + +800004d0 : +800004d0: 01000193 li gp,16 +800004d4: 00002517 auipc a0,0x2 +800004d8: cec50513 addi a0,a0,-788 # 800021c0 +800004dc: 00053007 fld ft0,0(a0) +800004e0: 00853087 fld ft1,8(a0) +800004e4: 01053107 fld ft2,16(a0) +800004e8: 01852683 lw a3,24(a0) +800004ec: 01c52303 lw t1,28(a0) +800004f0: a2100553 fle.d a0,ft0,ft1 +800004f4: 00000393 li t2,0 +800004f8: 001015f3 fsflags a1,zero +800004fc: 01000613 li a2,16 +80000500: 00d51863 bne a0,a3,80000510 +80000504: 00731663 bne t1,t2,80000510 +80000508: 00c59463 bne a1,a2,80000510 +8000050c: 02301063 bne zero,gp,8000052c + +80000510 : +80000510: 0ff0000f fence +80000514: 00018063 beqz gp,80000514 +80000518: 00119193 slli gp,gp,0x1 +8000051c: 0011e193 ori gp,gp,1 +80000520: 05d00893 li a7,93 +80000524: 00018513 mv a0,gp +80000528: 00000073 ecall + +8000052c : +8000052c: 0ff0000f fence +80000530: 00100193 li gp,1 +80000534: 05d00893 li a7,93 +80000538: 00000513 li a0,0 +8000053c: 00000073 ecall +80000540: c0001073 unimp + +Disassembly of section .data: + +80002000 : +80002000: 5c28f5c3 0x5c28f5c3 +80002004: bff5c28f 0xbff5c28f +80002008: 5c28f5c3 0x5c28f5c3 +8000200c: bff5c28f 0xbff5c28f +80002010: 0000 unimp +80002012: 0000 unimp +80002014: 0000 unimp +80002016: 0000 unimp +80002018: 0001 nop +8000201a: 0000 unimp +8000201c: 0000 unimp +8000201e: 0000 unimp + +80002020 : +80002020: 5c28f5c3 0x5c28f5c3 +80002024: bff5c28f 0xbff5c28f +80002028: 5c28f5c3 0x5c28f5c3 +8000202c: bff5c28f 0xbff5c28f +80002030: 0000 unimp +80002032: 0000 unimp +80002034: 0000 unimp +80002036: 0000 unimp +80002038: 0001 nop +8000203a: 0000 unimp +8000203c: 0000 unimp +8000203e: 0000 unimp + +80002040 : +80002040: 5c28f5c3 0x5c28f5c3 +80002044: bff5c28f 0xbff5c28f +80002048: 5c28f5c3 0x5c28f5c3 +8000204c: bff5c28f 0xbff5c28f +80002050: 0000 unimp +80002052: 0000 unimp +80002054: 0000 unimp +80002056: 0000 unimp +80002058: 0000 unimp +8000205a: 0000 unimp +8000205c: 0000 unimp +8000205e: 0000 unimp + +80002060 : +80002060: 51ec lw a1,100(a1) +80002062: 1eb8 addi a4,sp,888 +80002064: eb85 bnez a5,80002094 +80002066: bff5 j 80002062 +80002068: 5c28f5c3 0x5c28f5c3 +8000206c: bff5c28f 0xbff5c28f +80002070: 0000 unimp +80002072: 0000 unimp +80002074: 0000 unimp +80002076: 0000 unimp +80002078: 0000 unimp +8000207a: 0000 unimp +8000207c: 0000 unimp +8000207e: 0000 unimp + +80002080 : +80002080: 51ec lw a1,100(a1) +80002082: 1eb8 addi a4,sp,888 +80002084: eb85 bnez a5,800020b4 +80002086: bff5 j 80002082 +80002088: 5c28f5c3 0x5c28f5c3 +8000208c: bff5c28f 0xbff5c28f +80002090: 0000 unimp +80002092: 0000 unimp +80002094: 0000 unimp +80002096: 0000 unimp +80002098: 0001 nop +8000209a: 0000 unimp +8000209c: 0000 unimp +8000209e: 0000 unimp + +800020a0 : +800020a0: 51ec lw a1,100(a1) +800020a2: 1eb8 addi a4,sp,888 +800020a4: eb85 bnez a5,800020d4 +800020a6: bff5 j 800020a2 +800020a8: 5c28f5c3 0x5c28f5c3 +800020ac: bff5c28f 0xbff5c28f +800020b0: 0000 unimp +800020b2: 0000 unimp +800020b4: 0000 unimp +800020b6: 0000 unimp +800020b8: 0001 nop +800020ba: 0000 unimp +800020bc: 0000 unimp +800020be: 0000 unimp + +800020c0 : +800020c0: ffff 0xffff +800020c2: ffff 0xffff +800020c4: ffff 0xffff +800020c6: 7fff 0x7fff +800020c8: 0000 unimp +800020ca: 0000 unimp +800020cc: 0000 unimp +800020ce: 0000 unimp +800020d0: 0000 unimp +800020d2: 0000 unimp +800020d4: 0000 unimp +800020d6: 0000 unimp +800020d8: 0000 unimp +800020da: 0000 unimp +800020dc: 0000 unimp +800020de: 0000 unimp + +800020e0 : +800020e0: ffff 0xffff +800020e2: ffff 0xffff +800020e4: ffff 0xffff +800020e6: 7fff 0x7fff +800020e8: ffff 0xffff +800020ea: ffff 0xffff +800020ec: ffff 0xffff +800020ee: 7fff 0x7fff +800020f0: 0000 unimp +800020f2: 0000 unimp +800020f4: 0000 unimp +800020f6: 0000 unimp +800020f8: 0000 unimp +800020fa: 0000 unimp +800020fc: 0000 unimp +800020fe: 0000 unimp + +80002100 : +80002100: 0001 nop +80002102: 0000 unimp +80002104: 0000 unimp +80002106: 7ff0 flw fa2,124(a5) +80002108: 0000 unimp +8000210a: 0000 unimp +8000210c: 0000 unimp +8000210e: 0000 unimp +80002110: 0000 unimp +80002112: 0000 unimp +80002114: 0000 unimp +80002116: 0000 unimp +80002118: 0000 unimp +8000211a: 0000 unimp +8000211c: 0000 unimp +8000211e: 0000 unimp + +80002120 : +80002120: ffff 0xffff +80002122: ffff 0xffff +80002124: ffff 0xffff +80002126: 7fff 0x7fff +80002128: 0000 unimp +8000212a: 0000 unimp +8000212c: 0000 unimp +8000212e: 0000 unimp +80002130: 0000 unimp +80002132: 0000 unimp +80002134: 0000 unimp +80002136: 0000 unimp +80002138: 0000 unimp +8000213a: 0000 unimp +8000213c: 0000 unimp +8000213e: 0000 unimp + +80002140 : +80002140: ffff 0xffff +80002142: ffff 0xffff +80002144: ffff 0xffff +80002146: 7fff 0x7fff +80002148: ffff 0xffff +8000214a: ffff 0xffff +8000214c: ffff 0xffff +8000214e: 7fff 0x7fff +80002150: 0000 unimp +80002152: 0000 unimp +80002154: 0000 unimp +80002156: 0000 unimp +80002158: 0000 unimp +8000215a: 0000 unimp +8000215c: 0000 unimp +8000215e: 0000 unimp + +80002160 : +80002160: 0001 nop +80002162: 0000 unimp +80002164: 0000 unimp +80002166: 7ff0 flw fa2,124(a5) +80002168: 0000 unimp +8000216a: 0000 unimp +8000216c: 0000 unimp +8000216e: 0000 unimp +80002170: 0000 unimp +80002172: 0000 unimp +80002174: 0000 unimp +80002176: 0000 unimp +80002178: 0000 unimp +8000217a: 0000 unimp +8000217c: 0000 unimp +8000217e: 0000 unimp + +80002180 : +80002180: ffff 0xffff +80002182: ffff 0xffff +80002184: ffff 0xffff +80002186: 7fff 0x7fff +80002188: 0000 unimp +8000218a: 0000 unimp +8000218c: 0000 unimp +8000218e: 0000 unimp +80002190: 0000 unimp +80002192: 0000 unimp +80002194: 0000 unimp +80002196: 0000 unimp +80002198: 0000 unimp +8000219a: 0000 unimp +8000219c: 0000 unimp +8000219e: 0000 unimp + +800021a0 : +800021a0: ffff 0xffff +800021a2: ffff 0xffff +800021a4: ffff 0xffff +800021a6: 7fff 0x7fff +800021a8: ffff 0xffff +800021aa: ffff 0xffff +800021ac: ffff 0xffff +800021ae: 7fff 0x7fff +800021b0: 0000 unimp +800021b2: 0000 unimp +800021b4: 0000 unimp +800021b6: 0000 unimp +800021b8: 0000 unimp +800021ba: 0000 unimp +800021bc: 0000 unimp +800021be: 0000 unimp + +800021c0 : +800021c0: 0001 nop +800021c2: 0000 unimp +800021c4: 0000 unimp +800021c6: 7ff0 flw fa2,124(a5) +800021c8: 0000 unimp +800021ca: 0000 unimp +800021cc: 0000 unimp +800021ce: 0000 unimp +800021d0: 0000 unimp +800021d2: 0000 unimp +800021d4: 0000 unimp +800021d6: 0000 unimp +800021d8: 0000 unimp +800021da: 0000 unimp +800021dc: 0000 unimp +800021de: 0000 unimp diff --git a/src/test/resources/asm/rv32ud-p-fcvt.dump b/src/test/resources/asm/rv32ud-p-fcvt.dump new file mode 100644 index 0000000..f489b6c --- /dev/null +++ b/src/test/resources/asm/rv32ud-p-fcvt.dump @@ -0,0 +1,346 @@ + +rv32ud-p-fcvt: file format elf32-littleriscv + + +Disassembly of section .text.init: + +80000000 <_start>: +80000000: 04c0006f j 8000004c + +80000004 : +80000004: 34202f73 csrr t5,mcause +80000008: 00800f93 li t6,8 +8000000c: 03ff0a63 beq t5,t6,80000040 +80000010: 00900f93 li t6,9 +80000014: 03ff0663 beq t5,t6,80000040 +80000018: 00b00f93 li t6,11 +8000001c: 03ff0263 beq t5,t6,80000040 +80000020: 80000f17 auipc t5,0x80000 +80000024: fe0f0f13 addi t5,t5,-32 # 0 <_start-0x80000000> +80000028: 000f0463 beqz t5,80000030 +8000002c: 000f0067 jr t5 +80000030: 34202f73 csrr t5,mcause +80000034: 000f5463 bgez t5,8000003c +80000038: 0040006f j 8000003c + +8000003c : +8000003c: 5391e193 ori gp,gp,1337 + +80000040 : +80000040: 00001f17 auipc t5,0x1 +80000044: fc3f2023 sw gp,-64(t5) # 80001000 +80000048: ff9ff06f j 80000040 + +8000004c : +8000004c: 00000093 li ra,0 +80000050: 00000113 li sp,0 +80000054: 00000193 li gp,0 +80000058: 00000213 li tp,0 +8000005c: 00000293 li t0,0 +80000060: 00000313 li t1,0 +80000064: 00000393 li t2,0 +80000068: 00000413 li s0,0 +8000006c: 00000493 li s1,0 +80000070: 00000513 li a0,0 +80000074: 00000593 li a1,0 +80000078: 00000613 li a2,0 +8000007c: 00000693 li a3,0 +80000080: 00000713 li a4,0 +80000084: 00000793 li a5,0 +80000088: 00000813 li a6,0 +8000008c: 00000893 li a7,0 +80000090: 00000913 li s2,0 +80000094: 00000993 li s3,0 +80000098: 00000a13 li s4,0 +8000009c: 00000a93 li s5,0 +800000a0: 00000b13 li s6,0 +800000a4: 00000b93 li s7,0 +800000a8: 00000c13 li s8,0 +800000ac: 00000c93 li s9,0 +800000b0: 00000d13 li s10,0 +800000b4: 00000d93 li s11,0 +800000b8: 00000e13 li t3,0 +800000bc: 00000e93 li t4,0 +800000c0: 00000f13 li t5,0 +800000c4: 00000f93 li t6,0 +800000c8: f1402573 csrr a0,mhartid +800000cc: 00051063 bnez a0,800000cc +800000d0: 00000297 auipc t0,0x0 +800000d4: 01028293 addi t0,t0,16 # 800000e0 +800000d8: 30529073 csrw mtvec,t0 +800000dc: 18005073 csrwi satp,0 +800000e0: 00000297 auipc t0,0x0 +800000e4: 02028293 addi t0,t0,32 # 80000100 +800000e8: 30529073 csrw mtvec,t0 +800000ec: 800002b7 lui t0,0x80000 +800000f0: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdf8f> +800000f4: 3b029073 csrw pmpaddr0,t0 +800000f8: 01f00293 li t0,31 +800000fc: 3a029073 csrw pmpcfg0,t0 +80000100: 30405073 csrwi mie,0 +80000104: 00000297 auipc t0,0x0 +80000108: 01428293 addi t0,t0,20 # 80000118 +8000010c: 30529073 csrw mtvec,t0 +80000110: 30205073 csrwi medeleg,0 +80000114: 30305073 csrwi mideleg,0 +80000118: 00000193 li gp,0 +8000011c: 00000297 auipc t0,0x0 +80000120: ee828293 addi t0,t0,-280 # 80000004 +80000124: 30529073 csrw mtvec,t0 +80000128: 00100513 li a0,1 +8000012c: 01f51513 slli a0,a0,0x1f +80000130: 00054c63 bltz a0,80000148 +80000134: 0ff0000f fence +80000138: 00100193 li gp,1 +8000013c: 05d00893 li a7,93 +80000140: 00000513 li a0,0 +80000144: 00000073 ecall +80000148: 80000297 auipc t0,0x80000 +8000014c: eb828293 addi t0,t0,-328 # 0 <_start-0x80000000> +80000150: 00028a63 beqz t0,80000164 +80000154: 10529073 csrw stvec,t0 +80000158: 0000b2b7 lui t0,0xb +8000015c: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7> +80000160: 30229073 csrw medeleg,t0 +80000164: 30005073 csrwi mstatus,0 +80000168: 00002537 lui a0,0x2 +8000016c: 30052073 csrs mstatus,a0 +80000170: 00305073 csrwi fcsr,0 +80000174: 00000297 auipc t0,0x0 +80000178: 01428293 addi t0,t0,20 # 80000188 +8000017c: 34129073 csrw mepc,t0 +80000180: f1402573 csrr a0,mhartid +80000184: 30200073 mret + +80000188 : +80000188: 00200193 li gp,2 +8000018c: 00002517 auipc a0,0x2 +80000190: e7450513 addi a0,a0,-396 # 80002000 +80000194: 00052683 lw a3,0(a0) +80000198: 00452703 lw a4,4(a0) +8000019c: 00200593 li a1,2 +800001a0: d2058053 fcvt.d.w ft0,a1 +800001a4: 00053027 fsd ft0,0(a0) +800001a8: 00452583 lw a1,4(a0) +800001ac: 00052503 lw a0,0(a0) +800001b0: 00101073 fsflags zero +800001b4: 16d51263 bne a0,a3,80000318 +800001b8: 16e59063 bne a1,a4,80000318 + +800001bc : +800001bc: 00300193 li gp,3 +800001c0: 00002517 auipc a0,0x2 +800001c4: e4850513 addi a0,a0,-440 # 80002008 +800001c8: 00052683 lw a3,0(a0) +800001cc: 00452703 lw a4,4(a0) +800001d0: ffe00593 li a1,-2 +800001d4: d2058053 fcvt.d.w ft0,a1 +800001d8: 00053027 fsd ft0,0(a0) +800001dc: 00452583 lw a1,4(a0) +800001e0: 00052503 lw a0,0(a0) +800001e4: 00101073 fsflags zero +800001e8: 12d51863 bne a0,a3,80000318 +800001ec: 12e59663 bne a1,a4,80000318 + +800001f0 : +800001f0: 00400193 li gp,4 +800001f4: 00002517 auipc a0,0x2 +800001f8: e1c50513 addi a0,a0,-484 # 80002010 +800001fc: 00052683 lw a3,0(a0) +80000200: 00452703 lw a4,4(a0) +80000204: 00200593 li a1,2 +80000208: d2158053 fcvt.d.wu ft0,a1 +8000020c: 00053027 fsd ft0,0(a0) +80000210: 00452583 lw a1,4(a0) +80000214: 00052503 lw a0,0(a0) +80000218: 00101073 fsflags zero +8000021c: 0ed51e63 bne a0,a3,80000318 +80000220: 0ee59c63 bne a1,a4,80000318 + +80000224 : +80000224: 00500193 li gp,5 +80000228: 00002517 auipc a0,0x2 +8000022c: df050513 addi a0,a0,-528 # 80002018 +80000230: 00052683 lw a3,0(a0) +80000234: 00452703 lw a4,4(a0) +80000238: ffe00593 li a1,-2 +8000023c: d2158053 fcvt.d.wu ft0,a1 +80000240: 00053027 fsd ft0,0(a0) +80000244: 00452583 lw a1,4(a0) +80000248: 00052503 lw a0,0(a0) +8000024c: 00101073 fsflags zero +80000250: 0cd51463 bne a0,a3,80000318 +80000254: 0ce59263 bne a1,a4,80000318 + +80000258 : +80000258: 00a00193 li gp,10 +8000025c: 00002517 auipc a0,0x2 +80000260: dc450513 addi a0,a0,-572 # 80002020 +80000264: 00053007 fld ft0,0(a0) +80000268: 00853087 fld ft1,8(a0) +8000026c: 01053107 fld ft2,16(a0) +80000270: 01852683 lw a3,24(a0) +80000274: 01c52303 lw t1,28(a0) +80000278: 401071d3 fcvt.s.d ft3,ft0 +8000027c: 420181d3 fcvt.d.s ft3,ft3 +80000280: 00353027 fsd ft3,0(a0) +80000284: 00452383 lw t2,4(a0) +80000288: 00052503 lw a0,0(a0) +8000028c: 001015f3 fsflags a1,zero +80000290: 00000613 li a2,0 +80000294: 08d51263 bne a0,a3,80000318 +80000298: 08731063 bne t1,t2,80000318 +8000029c: 06c59e63 bne a1,a2,80000318 + +800002a0 : +800002a0: 00b00193 li gp,11 +800002a4: 00002517 auipc a0,0x2 +800002a8: d9c50513 addi a0,a0,-612 # 80002040 +800002ac: 00052007 flw ft0,0(a0) +800002b0: 00452087 flw ft1,4(a0) +800002b4: 00852107 flw ft2,8(a0) +800002b8: 00c52683 lw a3,12(a0) +800002bc: 420001d3 fcvt.d.s ft3,ft0 +800002c0: 4011f1d3 fcvt.s.d ft3,ft3 +800002c4: e0018553 fmv.x.w a0,ft3 +800002c8: 001015f3 fsflags a1,zero +800002cc: 00000613 li a2,0 +800002d0: 04d51463 bne a0,a3,80000318 +800002d4: 04c59263 bne a1,a2,80000318 + +800002d8 : +800002d8: 00002597 auipc a1,0x2 +800002dc: d8858593 addi a1,a1,-632 # 80002060 +800002e0: 0005b107 fld ft2,0(a1) +800002e4: 40117153 fcvt.s.d ft2,ft2 +800002e8: 42010153 fcvt.d.s ft2,ft2 +800002ec: 0025b027 fsd ft2,0(a1) +800002f0: 0005a503 lw a0,0(a1) +800002f4: 0045a583 lw a1,4(a1) +800002f8: 00002797 auipc a5,0x2 +800002fc: d5878793 addi a5,a5,-680 # 80002050 +80000300: 0007a383 lw t2,0(a5) +80000304: 0047a783 lw a5,4(a5) +80000308: 00c00193 li gp,12 +8000030c: 00751663 bne a0,t2,80000318 +80000310: 00f59463 bne a1,a5,80000318 +80000314: 02301063 bne zero,gp,80000334 + +80000318 : +80000318: 0ff0000f fence +8000031c: 00018063 beqz gp,8000031c +80000320: 00119193 slli gp,gp,0x1 +80000324: 0011e193 ori gp,gp,1 +80000328: 05d00893 li a7,93 +8000032c: 00018513 mv a0,gp +80000330: 00000073 ecall + +80000334 : +80000334: 0ff0000f fence +80000338: 00100193 li gp,1 +8000033c: 05d00893 li a7,93 +80000340: 00000513 li a0,0 +80000344: 00000073 ecall +80000348: c0001073 unimp +8000034c: 0000 unimp +8000034e: 0000 unimp +80000350: 0000 unimp +80000352: 0000 unimp +80000354: 0000 unimp +80000356: 0000 unimp +80000358: 0000 unimp +8000035a: 0000 unimp +8000035c: 0000 unimp +8000035e: 0000 unimp +80000360: 0000 unimp +80000362: 0000 unimp +80000364: 0000 unimp +80000366: 0000 unimp +80000368: 0000 unimp +8000036a: 0000 unimp +8000036c: 0000 unimp +8000036e: 0000 unimp +80000370: 0000 unimp +80000372: 0000 unimp +80000374: 0000 unimp +80000376: 0000 unimp +80000378: 0000 unimp +8000037a: 0000 unimp +8000037c: 0000 unimp +8000037e: 0000 unimp +80000380: 0000 unimp +80000382: 0000 unimp + +Disassembly of section .data: + +80002000 : +80002000: 0000 unimp +80002002: 0000 unimp +80002004: 0000 unimp +80002006: 4000 lw s0,0(s0) + +80002008 : +80002008: 0000 unimp +8000200a: 0000 unimp +8000200c: 0000 unimp +8000200e: c000 sw s0,0(s0) + +80002010 : +80002010: 0000 unimp +80002012: 0000 unimp +80002014: 0000 unimp +80002016: 4000 lw s0,0(s0) + +80002018 : +80002018: 0000 unimp +8000201a: ffc0 fsw fs0,60(a5) +8000201c: ffff 0xffff +8000201e: jal gp,8000601e <_end+0x3fae> + +80002020 : +80002020: 0000 unimp +80002022: 0000 unimp +80002024: 0000 unimp +80002026: bff8 fsd fa4,248(a5) +80002028: 0000 unimp +8000202a: 0000 unimp +8000202c: 0000 unimp +8000202e: 0000 unimp +80002030: 0000 unimp +80002032: 0000 unimp +80002034: 0000 unimp +80002036: 0000 unimp +80002038: 0000 unimp +8000203a: 0000 unimp +8000203c: 0000 unimp +8000203e: bff8 fsd fa4,248(a5) + +80002040 : +80002040: 0000 unimp +80002042: bfc0 fsd fs0,184(a5) +80002044: 0000 unimp +80002046: 0000 unimp +80002048: 0000 unimp +8000204a: 0000 unimp +8000204c: 0000 unimp +8000204e: bfc0 fsd fs0,184(a5) + +80002050 : +80002050: 0000 unimp +80002052: 0000 unimp +80002054: 0000 unimp +80002056: 7ff8 flw fa4,124(a5) +80002058: 0000 unimp +8000205a: 0000 unimp +8000205c: 0000 unimp +8000205e: 0000 unimp + +80002060 : +80002060: 8004 0x8004 +80002062: ffff 0xffff +80002064: ffff 0xffff +80002066: 7ffc flw fa5,124(a5) +80002068: 0000 unimp +8000206a: 0000 unimp +8000206c: 0000 unimp +8000206e: 0000 unimp diff --git a/src/test/resources/asm/rv32ud-p-fcvt_w.dump b/src/test/resources/asm/rv32ud-p-fcvt_w.dump new file mode 100644 index 0000000..4d0e4e4 --- /dev/null +++ b/src/test/resources/asm/rv32ud-p-fcvt_w.dump @@ -0,0 +1,632 @@ + +rv32ud-p-fcvt_w: file format elf32-littleriscv + + +Disassembly of section .text.init: + +80000000 <_start>: +80000000: 04c0006f j 8000004c + +80000004 : +80000004: 34202f73 csrr t5,mcause +80000008: 00800f93 li t6,8 +8000000c: 03ff0a63 beq t5,t6,80000040 +80000010: 00900f93 li t6,9 +80000014: 03ff0663 beq t5,t6,80000040 +80000018: 00b00f93 li t6,11 +8000001c: 03ff0263 beq t5,t6,80000040 +80000020: 80000f17 auipc t5,0x80000 +80000024: fe0f0f13 addi t5,t5,-32 # 0 <_start-0x80000000> +80000028: 000f0463 beqz t5,80000030 +8000002c: 000f0067 jr t5 +80000030: 34202f73 csrr t5,mcause +80000034: 000f5463 bgez t5,8000003c +80000038: 0040006f j 8000003c + +8000003c : +8000003c: 5391e193 ori gp,gp,1337 + +80000040 : +80000040: 00001f17 auipc t5,0x1 +80000044: fc3f2023 sw gp,-64(t5) # 80001000 +80000048: ff9ff06f j 80000040 + +8000004c : +8000004c: 00000093 li ra,0 +80000050: 00000113 li sp,0 +80000054: 00000193 li gp,0 +80000058: 00000213 li tp,0 +8000005c: 00000293 li t0,0 +80000060: 00000313 li t1,0 +80000064: 00000393 li t2,0 +80000068: 00000413 li s0,0 +8000006c: 00000493 li s1,0 +80000070: 00000513 li a0,0 +80000074: 00000593 li a1,0 +80000078: 00000613 li a2,0 +8000007c: 00000693 li a3,0 +80000080: 00000713 li a4,0 +80000084: 00000793 li a5,0 +80000088: 00000813 li a6,0 +8000008c: 00000893 li a7,0 +80000090: 00000913 li s2,0 +80000094: 00000993 li s3,0 +80000098: 00000a13 li s4,0 +8000009c: 00000a93 li s5,0 +800000a0: 00000b13 li s6,0 +800000a4: 00000b93 li s7,0 +800000a8: 00000c13 li s8,0 +800000ac: 00000c93 li s9,0 +800000b0: 00000d13 li s10,0 +800000b4: 00000d93 li s11,0 +800000b8: 00000e13 li t3,0 +800000bc: 00000e93 li t4,0 +800000c0: 00000f13 li t5,0 +800000c4: 00000f93 li t6,0 +800000c8: f1402573 csrr a0,mhartid +800000cc: 00051063 bnez a0,800000cc +800000d0: 00000297 auipc t0,0x0 +800000d4: 01028293 addi t0,t0,16 # 800000e0 +800000d8: 30529073 csrw mtvec,t0 +800000dc: 18005073 csrwi satp,0 +800000e0: 00000297 auipc t0,0x0 +800000e4: 02028293 addi t0,t0,32 # 80000100 +800000e8: 30529073 csrw mtvec,t0 +800000ec: 800002b7 lui t0,0x80000 +800000f0: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdecf> +800000f4: 3b029073 csrw pmpaddr0,t0 +800000f8: 01f00293 li t0,31 +800000fc: 3a029073 csrw pmpcfg0,t0 +80000100: 30405073 csrwi mie,0 +80000104: 00000297 auipc t0,0x0 +80000108: 01428293 addi t0,t0,20 # 80000118 +8000010c: 30529073 csrw mtvec,t0 +80000110: 30205073 csrwi medeleg,0 +80000114: 30305073 csrwi mideleg,0 +80000118: 00000193 li gp,0 +8000011c: 00000297 auipc t0,0x0 +80000120: ee828293 addi t0,t0,-280 # 80000004 +80000124: 30529073 csrw mtvec,t0 +80000128: 00100513 li a0,1 +8000012c: 01f51513 slli a0,a0,0x1f +80000130: 00054c63 bltz a0,80000148 +80000134: 0ff0000f fence +80000138: 00100193 li gp,1 +8000013c: 05d00893 li a7,93 +80000140: 00000513 li a0,0 +80000144: 00000073 ecall +80000148: 80000297 auipc t0,0x80000 +8000014c: eb828293 addi t0,t0,-328 # 0 <_start-0x80000000> +80000150: 00028a63 beqz t0,80000164 +80000154: 10529073 csrw stvec,t0 +80000158: 0000b2b7 lui t0,0xb +8000015c: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7> +80000160: 30229073 csrw medeleg,t0 +80000164: 30005073 csrwi mstatus,0 +80000168: 00002537 lui a0,0x2 +8000016c: 30052073 csrs mstatus,a0 +80000170: 00305073 csrwi fcsr,0 +80000174: 00000297 auipc t0,0x0 +80000178: 01428293 addi t0,t0,20 # 80000188 +8000017c: 34129073 csrw mepc,t0 +80000180: f1402573 csrr a0,mhartid +80000184: 30200073 mret + +80000188 : +80000188: 00200193 li gp,2 +8000018c: 00002517 auipc a0,0x2 +80000190: e7450513 addi a0,a0,-396 # 80002000 +80000194: 00052007 flw ft0,0(a0) +80000198: 00452087 flw ft1,4(a0) +8000019c: 00852107 flw ft2,8(a0) +800001a0: 00c52683 lw a3,12(a0) +800001a4: c0001553 fcvt.w.s a0,ft0,rtz +800001a8: 001015f3 fsflags a1,zero +800001ac: 00100613 li a2,1 +800001b0: 3cd51463 bne a0,a3,80000578 +800001b4: 3cc59263 bne a1,a2,80000578 + +800001b8 : +800001b8: 00300193 li gp,3 +800001bc: 00002517 auipc a0,0x2 +800001c0: e5450513 addi a0,a0,-428 # 80002010 +800001c4: 00052007 flw ft0,0(a0) +800001c8: 00452087 flw ft1,4(a0) +800001cc: 00852107 flw ft2,8(a0) +800001d0: 00c52683 lw a3,12(a0) +800001d4: c0001553 fcvt.w.s a0,ft0,rtz +800001d8: 001015f3 fsflags a1,zero +800001dc: 00000613 li a2,0 +800001e0: 38d51c63 bne a0,a3,80000578 +800001e4: 38c59a63 bne a1,a2,80000578 + +800001e8 : +800001e8: 00400193 li gp,4 +800001ec: 00002517 auipc a0,0x2 +800001f0: e3450513 addi a0,a0,-460 # 80002020 +800001f4: 00052007 flw ft0,0(a0) +800001f8: 00452087 flw ft1,4(a0) +800001fc: 00852107 flw ft2,8(a0) +80000200: 00c52683 lw a3,12(a0) +80000204: c0001553 fcvt.w.s a0,ft0,rtz +80000208: 001015f3 fsflags a1,zero +8000020c: 00100613 li a2,1 +80000210: 36d51463 bne a0,a3,80000578 +80000214: 36c59263 bne a1,a2,80000578 + +80000218 : +80000218: 00500193 li gp,5 +8000021c: 00002517 auipc a0,0x2 +80000220: e1450513 addi a0,a0,-492 # 80002030 +80000224: 00052007 flw ft0,0(a0) +80000228: 00452087 flw ft1,4(a0) +8000022c: 00852107 flw ft2,8(a0) +80000230: 00c52683 lw a3,12(a0) +80000234: c0001553 fcvt.w.s a0,ft0,rtz +80000238: 001015f3 fsflags a1,zero +8000023c: 00100613 li a2,1 +80000240: 32d51c63 bne a0,a3,80000578 +80000244: 32c59a63 bne a1,a2,80000578 + +80000248 : +80000248: 00600193 li gp,6 +8000024c: 00002517 auipc a0,0x2 +80000250: df450513 addi a0,a0,-524 # 80002040 +80000254: 00052007 flw ft0,0(a0) +80000258: 00452087 flw ft1,4(a0) +8000025c: 00852107 flw ft2,8(a0) +80000260: 00c52683 lw a3,12(a0) +80000264: c0001553 fcvt.w.s a0,ft0,rtz +80000268: 001015f3 fsflags a1,zero +8000026c: 00000613 li a2,0 +80000270: 30d51463 bne a0,a3,80000578 +80000274: 30c59263 bne a1,a2,80000578 + +80000278 : +80000278: 00700193 li gp,7 +8000027c: 00002517 auipc a0,0x2 +80000280: dd450513 addi a0,a0,-556 # 80002050 +80000284: 00052007 flw ft0,0(a0) +80000288: 00452087 flw ft1,4(a0) +8000028c: 00852107 flw ft2,8(a0) +80000290: 00c52683 lw a3,12(a0) +80000294: c0001553 fcvt.w.s a0,ft0,rtz +80000298: 001015f3 fsflags a1,zero +8000029c: 00100613 li a2,1 +800002a0: 2cd51c63 bne a0,a3,80000578 +800002a4: 2cc59a63 bne a1,a2,80000578 + +800002a8 : +800002a8: 00800193 li gp,8 +800002ac: 00002517 auipc a0,0x2 +800002b0: db450513 addi a0,a0,-588 # 80002060 +800002b4: 00052007 flw ft0,0(a0) +800002b8: 00452087 flw ft1,4(a0) +800002bc: 00852107 flw ft2,8(a0) +800002c0: 00c52683 lw a3,12(a0) +800002c4: c0001553 fcvt.w.s a0,ft0,rtz +800002c8: 001015f3 fsflags a1,zero +800002cc: 01000613 li a2,16 +800002d0: 2ad51463 bne a0,a3,80000578 +800002d4: 2ac59263 bne a1,a2,80000578 + +800002d8 : +800002d8: 00900193 li gp,9 +800002dc: 00002517 auipc a0,0x2 +800002e0: d9450513 addi a0,a0,-620 # 80002070 +800002e4: 00052007 flw ft0,0(a0) +800002e8: 00452087 flw ft1,4(a0) +800002ec: 00852107 flw ft2,8(a0) +800002f0: 00c52683 lw a3,12(a0) +800002f4: c0001553 fcvt.w.s a0,ft0,rtz +800002f8: 001015f3 fsflags a1,zero +800002fc: 01000613 li a2,16 +80000300: 26d51c63 bne a0,a3,80000578 +80000304: 26c59a63 bne a1,a2,80000578 + +80000308 : +80000308: 00c00193 li gp,12 +8000030c: 00002517 auipc a0,0x2 +80000310: d7450513 addi a0,a0,-652 # 80002080 +80000314: 00052007 flw ft0,0(a0) +80000318: 00452087 flw ft1,4(a0) +8000031c: 00852107 flw ft2,8(a0) +80000320: 00c52683 lw a3,12(a0) +80000324: c0101553 fcvt.wu.s a0,ft0,rtz +80000328: 001015f3 fsflags a1,zero +8000032c: 01000613 li a2,16 +80000330: 24d51463 bne a0,a3,80000578 +80000334: 24c59263 bne a1,a2,80000578 + +80000338 : +80000338: 00d00193 li gp,13 +8000033c: 00002517 auipc a0,0x2 +80000340: d5450513 addi a0,a0,-684 # 80002090 +80000344: 00052007 flw ft0,0(a0) +80000348: 00452087 flw ft1,4(a0) +8000034c: 00852107 flw ft2,8(a0) +80000350: 00c52683 lw a3,12(a0) +80000354: c0101553 fcvt.wu.s a0,ft0,rtz +80000358: 001015f3 fsflags a1,zero +8000035c: 01000613 li a2,16 +80000360: 20d51c63 bne a0,a3,80000578 +80000364: 20c59a63 bne a1,a2,80000578 + +80000368 : +80000368: 00e00193 li gp,14 +8000036c: 00002517 auipc a0,0x2 +80000370: d3450513 addi a0,a0,-716 # 800020a0 +80000374: 00052007 flw ft0,0(a0) +80000378: 00452087 flw ft1,4(a0) +8000037c: 00852107 flw ft2,8(a0) +80000380: 00c52683 lw a3,12(a0) +80000384: c0101553 fcvt.wu.s a0,ft0,rtz +80000388: 001015f3 fsflags a1,zero +8000038c: 00100613 li a2,1 +80000390: 1ed51463 bne a0,a3,80000578 +80000394: 1ec59263 bne a1,a2,80000578 + +80000398 : +80000398: 00f00193 li gp,15 +8000039c: 00002517 auipc a0,0x2 +800003a0: d1450513 addi a0,a0,-748 # 800020b0 +800003a4: 00052007 flw ft0,0(a0) +800003a8: 00452087 flw ft1,4(a0) +800003ac: 00852107 flw ft2,8(a0) +800003b0: 00c52683 lw a3,12(a0) +800003b4: c0101553 fcvt.wu.s a0,ft0,rtz +800003b8: 001015f3 fsflags a1,zero +800003bc: 00100613 li a2,1 +800003c0: 1ad51c63 bne a0,a3,80000578 +800003c4: 1ac59a63 bne a1,a2,80000578 + +800003c8 : +800003c8: 01000193 li gp,16 +800003cc: 00002517 auipc a0,0x2 +800003d0: cf450513 addi a0,a0,-780 # 800020c0 +800003d4: 00052007 flw ft0,0(a0) +800003d8: 00452087 flw ft1,4(a0) +800003dc: 00852107 flw ft2,8(a0) +800003e0: 00c52683 lw a3,12(a0) +800003e4: c0101553 fcvt.wu.s a0,ft0,rtz +800003e8: 001015f3 fsflags a1,zero +800003ec: 00000613 li a2,0 +800003f0: 18d51463 bne a0,a3,80000578 +800003f4: 18c59263 bne a1,a2,80000578 + +800003f8 : +800003f8: 01100193 li gp,17 +800003fc: 00002517 auipc a0,0x2 +80000400: cd450513 addi a0,a0,-812 # 800020d0 +80000404: 00052007 flw ft0,0(a0) +80000408: 00452087 flw ft1,4(a0) +8000040c: 00852107 flw ft2,8(a0) +80000410: 00c52683 lw a3,12(a0) +80000414: c0101553 fcvt.wu.s a0,ft0,rtz +80000418: 001015f3 fsflags a1,zero +8000041c: 00100613 li a2,1 +80000420: 14d51c63 bne a0,a3,80000578 +80000424: 14c59a63 bne a1,a2,80000578 + +80000428 : +80000428: 01200193 li gp,18 +8000042c: 00002517 auipc a0,0x2 +80000430: cb450513 addi a0,a0,-844 # 800020e0 +80000434: 00052007 flw ft0,0(a0) +80000438: 00452087 flw ft1,4(a0) +8000043c: 00852107 flw ft2,8(a0) +80000440: 00c52683 lw a3,12(a0) +80000444: c0101553 fcvt.wu.s a0,ft0,rtz +80000448: 001015f3 fsflags a1,zero +8000044c: 01000613 li a2,16 +80000450: 12d51463 bne a0,a3,80000578 +80000454: 12c59263 bne a1,a2,80000578 + +80000458 : +80000458: 01300193 li gp,19 +8000045c: 00002517 auipc a0,0x2 +80000460: c9450513 addi a0,a0,-876 # 800020f0 +80000464: 00052007 flw ft0,0(a0) +80000468: 00452087 flw ft1,4(a0) +8000046c: 00852107 flw ft2,8(a0) +80000470: 00c52683 lw a3,12(a0) +80000474: c0101553 fcvt.wu.s a0,ft0,rtz +80000478: 001015f3 fsflags a1,zero +8000047c: 00000613 li a2,0 +80000480: 0ed51c63 bne a0,a3,80000578 +80000484: 0ec59a63 bne a1,a2,80000578 + +80000488 : +80000488: 00002097 auipc ra,0x2 +8000048c: c7808093 addi ra,ra,-904 # 80002100 +80000490: 0000a087 flw ft1,0(ra) +80000494: c000f0d3 fcvt.w.s ra,ft1 +80000498: 800003b7 lui t2,0x80000 +8000049c: fff38393 addi t2,t2,-1 # 7fffffff <_end+0xffffdecf> +800004a0: 02a00193 li gp,42 +800004a4: 0c709a63 bne ra,t2,80000578 + +800004a8 : +800004a8: 00002097 auipc ra,0x2 +800004ac: c5808093 addi ra,ra,-936 # 80002100 +800004b0: 0080a087 flw ft1,8(ra) +800004b4: c000f0d3 fcvt.w.s ra,ft1 +800004b8: 800003b7 lui t2,0x80000 +800004bc: 02c00193 li gp,44 +800004c0: 0a709c63 bne ra,t2,80000578 + +800004c4 : +800004c4: 00002097 auipc ra,0x2 +800004c8: c3c08093 addi ra,ra,-964 # 80002100 +800004cc: 0040a087 flw ft1,4(ra) +800004d0: c000f0d3 fcvt.w.s ra,ft1 +800004d4: 800003b7 lui t2,0x80000 +800004d8: fff38393 addi t2,t2,-1 # 7fffffff <_end+0xffffdecf> +800004dc: 03400193 li gp,52 +800004e0: 08709c63 bne ra,t2,80000578 + +800004e4 : +800004e4: 00002097 auipc ra,0x2 +800004e8: c1c08093 addi ra,ra,-996 # 80002100 +800004ec: 00c0a087 flw ft1,12(ra) +800004f0: c000f0d3 fcvt.w.s ra,ft1 +800004f4: 800003b7 lui t2,0x80000 +800004f8: fff38393 addi t2,t2,-1 # 7fffffff <_end+0xffffdecf> +800004fc: 03600193 li gp,54 +80000500: 06709c63 bne ra,t2,80000578 + +80000504 : +80000504: 00002097 auipc ra,0x2 +80000508: bfc08093 addi ra,ra,-1028 # 80002100 +8000050c: 0000a087 flw ft1,0(ra) +80000510: c010f0d3 fcvt.wu.s ra,ft1 +80000514: fff00393 li t2,-1 +80000518: 03e00193 li gp,62 +8000051c: 04709e63 bne ra,t2,80000578 + +80000520 : +80000520: 00002097 auipc ra,0x2 +80000524: be008093 addi ra,ra,-1056 # 80002100 +80000528: 0040a087 flw ft1,4(ra) +8000052c: c010f0d3 fcvt.wu.s ra,ft1 +80000530: fff00393 li t2,-1 +80000534: 03f00193 li gp,63 +80000538: 04709063 bne ra,t2,80000578 + +8000053c : +8000053c: 00002097 auipc ra,0x2 +80000540: bc408093 addi ra,ra,-1084 # 80002100 +80000544: 0080a087 flw ft1,8(ra) +80000548: c010f0d3 fcvt.wu.s ra,ft1 +8000054c: 00000393 li t2,0 +80000550: 04000193 li gp,64 +80000554: 02709263 bne ra,t2,80000578 + +80000558 : +80000558: 00002097 auipc ra,0x2 +8000055c: ba808093 addi ra,ra,-1112 # 80002100 +80000560: 00c0a087 flw ft1,12(ra) +80000564: c010f0d3 fcvt.wu.s ra,ft1 +80000568: fff00393 li t2,-1 +8000056c: 04100193 li gp,65 +80000570: 00709463 bne ra,t2,80000578 +80000574: 02301063 bne zero,gp,80000594 + +80000578 : +80000578: 0ff0000f fence +8000057c: 00018063 beqz gp,8000057c +80000580: 00119193 slli gp,gp,0x1 +80000584: 0011e193 ori gp,gp,1 +80000588: 05d00893 li a7,93 +8000058c: 00018513 mv a0,gp +80000590: 00000073 ecall + +80000594 : +80000594: 0ff0000f fence +80000598: 00100193 li gp,1 +8000059c: 05d00893 li a7,93 +800005a0: 00000513 li a0,0 +800005a4: 00000073 ecall +800005a8: c0001073 unimp +800005ac: 0000 unimp +800005ae: 0000 unimp +800005b0: 0000 unimp +800005b2: 0000 unimp +800005b4: 0000 unimp +800005b6: 0000 unimp +800005b8: 0000 unimp +800005ba: 0000 unimp +800005bc: 0000 unimp +800005be: 0000 unimp +800005c0: 0000 unimp +800005c2: 0000 unimp + +Disassembly of section .data: + +80002000 : +80002000: cccd beqz s1,800020ba +80002002: bf8c fsd fa1,56(a5) +80002004: 0000 unimp +80002006: 0000 unimp +80002008: 0000 unimp +8000200a: 0000 unimp +8000200c: ffff 0xffff +8000200e: ffff 0xffff + +80002010 : +80002010: 0000 unimp +80002012: bf80 fsd fs0,56(a5) +80002014: 0000 unimp +80002016: 0000 unimp +80002018: 0000 unimp +8000201a: 0000 unimp +8000201c: ffff 0xffff +8000201e: ffff 0xffff + +80002020 : +80002020: 6666 flw fa2,88(sp) +80002022: bf66 fsd fs9,440(sp) +80002024: 0000 unimp +80002026: 0000 unimp +80002028: 0000 unimp +8000202a: 0000 unimp +8000202c: 0000 unimp +8000202e: 0000 unimp + +80002030 : +80002030: 6666 flw fa2,88(sp) +80002032: 3f66 fld ft10,120(sp) +80002034: 0000 unimp +80002036: 0000 unimp +80002038: 0000 unimp +8000203a: 0000 unimp +8000203c: 0000 unimp +8000203e: 0000 unimp + +80002040 : +80002040: 0000 unimp +80002042: 3f80 fld fs0,56(a5) +80002044: 0000 unimp +80002046: 0000 unimp +80002048: 0000 unimp +8000204a: 0000 unimp +8000204c: 0001 nop +8000204e: 0000 unimp + +80002050 : +80002050: cccd beqz s1,8000210a +80002052: 3f8c fld fa1,56(a5) +80002054: 0000 unimp +80002056: 0000 unimp +80002058: 0000 unimp +8000205a: 0000 unimp +8000205c: 0001 nop +8000205e: 0000 unimp + +80002060 : +80002060: d05e sw s7,32(sp) +80002062: cf32 sw a2,156(sp) +80002064: 0000 unimp +80002066: 0000 unimp +80002068: 0000 unimp +8000206a: 0000 unimp +8000206c: 0000 unimp +8000206e: 8000 0x8000 + +80002070 : +80002070: d05e sw s7,32(sp) +80002072: 4f32 lw t5,12(sp) +80002074: 0000 unimp +80002076: 0000 unimp +80002078: 0000 unimp +8000207a: 0000 unimp +8000207c: ffff 0xffff +8000207e: 7fff 0x7fff + +80002080 : +80002080: 0000 unimp +80002082: c040 sw s0,4(s0) +80002084: 0000 unimp +80002086: 0000 unimp +80002088: 0000 unimp +8000208a: 0000 unimp +8000208c: 0000 unimp +8000208e: 0000 unimp + +80002090 : +80002090: 0000 unimp +80002092: bf80 fsd fs0,56(a5) +80002094: 0000 unimp +80002096: 0000 unimp +80002098: 0000 unimp +8000209a: 0000 unimp +8000209c: 0000 unimp +8000209e: 0000 unimp + +800020a0 : +800020a0: 6666 flw fa2,88(sp) +800020a2: bf66 fsd fs9,440(sp) +800020a4: 0000 unimp +800020a6: 0000 unimp +800020a8: 0000 unimp +800020aa: 0000 unimp +800020ac: 0000 unimp +800020ae: 0000 unimp + +800020b0 : +800020b0: 6666 flw fa2,88(sp) +800020b2: 3f66 fld ft10,120(sp) +800020b4: 0000 unimp +800020b6: 0000 unimp +800020b8: 0000 unimp +800020ba: 0000 unimp +800020bc: 0000 unimp +800020be: 0000 unimp + +800020c0 : +800020c0: 0000 unimp +800020c2: 3f80 fld fs0,56(a5) +800020c4: 0000 unimp +800020c6: 0000 unimp +800020c8: 0000 unimp +800020ca: 0000 unimp +800020cc: 0001 nop +800020ce: 0000 unimp + +800020d0 : +800020d0: cccd beqz s1,8000218a <_end+0x5a> +800020d2: 3f8c fld fa1,56(a5) +800020d4: 0000 unimp +800020d6: 0000 unimp +800020d8: 0000 unimp +800020da: 0000 unimp +800020dc: 0001 nop +800020de: 0000 unimp + +800020e0 : +800020e0: d05e sw s7,32(sp) +800020e2: cf32 sw a2,156(sp) +800020e4: 0000 unimp +800020e6: 0000 unimp +800020e8: 0000 unimp +800020ea: 0000 unimp +800020ec: 0000 unimp +800020ee: 0000 unimp + +800020f0 : +800020f0: d05e sw s7,32(sp) +800020f2: 4f32 lw t5,12(sp) +800020f4: 0000 unimp +800020f6: 0000 unimp +800020f8: 0000 unimp +800020fa: 0000 unimp +800020fc: 5e00 lw s0,56(a2) +800020fe: b2d0 fsd fa2,160(a3) + +80002100 : +80002100: ffff 0xffff +80002102: ffff 0xffff +80002104: ffff 0xffff +80002106: 7fff 0x7fff +80002108: 0000 unimp +8000210a: ff80 fsw fs0,56(a5) +8000210c: 0000 unimp +8000210e: 7f80 flw fs0,56(a5) + +80002110 : +80002110: ffff 0xffff +80002112: ffff 0xffff +80002114: ffff 0xffff +80002116: ffff 0xffff +80002118: ffff 0xffff +8000211a: ffff 0xffff +8000211c: ffff 0xffff +8000211e: 7fff 0x7fff +80002120: 0000 unimp +80002122: 0000 unimp +80002124: 0000 unimp +80002126: fff0 fsw fa2,124(a5) +80002128: 0000 unimp +8000212a: 0000 unimp +8000212c: 0000 unimp +8000212e: 7ff0 flw fa2,124(a5) diff --git a/src/test/resources/asm/rv32ud-p-fdiv.dump b/src/test/resources/asm/rv32ud-p-fdiv.dump new file mode 100644 index 0000000..71c3cf4 --- /dev/null +++ b/src/test/resources/asm/rv32ud-p-fdiv.dump @@ -0,0 +1,435 @@ + +rv32ud-p-fdiv: file format elf32-littleriscv + + +Disassembly of section .text.init: + +80000000 <_start>: +80000000: 04c0006f j 8000004c + +80000004 : +80000004: 34202f73 csrr t5,mcause +80000008: 00800f93 li t6,8 +8000000c: 03ff0a63 beq t5,t6,80000040 +80000010: 00900f93 li t6,9 +80000014: 03ff0663 beq t5,t6,80000040 +80000018: 00b00f93 li t6,11 +8000001c: 03ff0263 beq t5,t6,80000040 +80000020: 80000f17 auipc t5,0x80000 +80000024: fe0f0f13 addi t5,t5,-32 # 0 <_start-0x80000000> +80000028: 000f0463 beqz t5,80000030 +8000002c: 000f0067 jr t5 +80000030: 34202f73 csrr t5,mcause +80000034: 000f5463 bgez t5,8000003c +80000038: 0040006f j 8000003c + +8000003c : +8000003c: 5391e193 ori gp,gp,1337 + +80000040 : +80000040: 00001f17 auipc t5,0x1 +80000044: fc3f2023 sw gp,-64(t5) # 80001000 +80000048: ff9ff06f j 80000040 + +8000004c : +8000004c: 00000093 li ra,0 +80000050: 00000113 li sp,0 +80000054: 00000193 li gp,0 +80000058: 00000213 li tp,0 +8000005c: 00000293 li t0,0 +80000060: 00000313 li t1,0 +80000064: 00000393 li t2,0 +80000068: 00000413 li s0,0 +8000006c: 00000493 li s1,0 +80000070: 00000513 li a0,0 +80000074: 00000593 li a1,0 +80000078: 00000613 li a2,0 +8000007c: 00000693 li a3,0 +80000080: 00000713 li a4,0 +80000084: 00000793 li a5,0 +80000088: 00000813 li a6,0 +8000008c: 00000893 li a7,0 +80000090: 00000913 li s2,0 +80000094: 00000993 li s3,0 +80000098: 00000a13 li s4,0 +8000009c: 00000a93 li s5,0 +800000a0: 00000b13 li s6,0 +800000a4: 00000b93 li s7,0 +800000a8: 00000c13 li s8,0 +800000ac: 00000c93 li s9,0 +800000b0: 00000d13 li s10,0 +800000b4: 00000d93 li s11,0 +800000b8: 00000e13 li t3,0 +800000bc: 00000e93 li t4,0 +800000c0: 00000f13 li t5,0 +800000c4: 00000f93 li t6,0 +800000c8: f1402573 csrr a0,mhartid +800000cc: 00051063 bnez a0,800000cc +800000d0: 00000297 auipc t0,0x0 +800000d4: 01028293 addi t0,t0,16 # 800000e0 +800000d8: 30529073 csrw mtvec,t0 +800000dc: 18005073 csrwi satp,0 +800000e0: 00000297 auipc t0,0x0 +800000e4: 02028293 addi t0,t0,32 # 80000100 +800000e8: 30529073 csrw mtvec,t0 +800000ec: 800002b7 lui t0,0x80000 +800000f0: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdeff> +800000f4: 3b029073 csrw pmpaddr0,t0 +800000f8: 01f00293 li t0,31 +800000fc: 3a029073 csrw pmpcfg0,t0 +80000100: 30405073 csrwi mie,0 +80000104: 00000297 auipc t0,0x0 +80000108: 01428293 addi t0,t0,20 # 80000118 +8000010c: 30529073 csrw mtvec,t0 +80000110: 30205073 csrwi medeleg,0 +80000114: 30305073 csrwi mideleg,0 +80000118: 00000193 li gp,0 +8000011c: 00000297 auipc t0,0x0 +80000120: ee828293 addi t0,t0,-280 # 80000004 +80000124: 30529073 csrw mtvec,t0 +80000128: 00100513 li a0,1 +8000012c: 01f51513 slli a0,a0,0x1f +80000130: 00054c63 bltz a0,80000148 +80000134: 0ff0000f fence +80000138: 00100193 li gp,1 +8000013c: 05d00893 li a7,93 +80000140: 00000513 li a0,0 +80000144: 00000073 ecall +80000148: 80000297 auipc t0,0x80000 +8000014c: eb828293 addi t0,t0,-328 # 0 <_start-0x80000000> +80000150: 00028a63 beqz t0,80000164 +80000154: 10529073 csrw stvec,t0 +80000158: 0000b2b7 lui t0,0xb +8000015c: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7> +80000160: 30229073 csrw medeleg,t0 +80000164: 30005073 csrwi mstatus,0 +80000168: 00002537 lui a0,0x2 +8000016c: 30052073 csrs mstatus,a0 +80000170: 00305073 csrwi fcsr,0 +80000174: 00000297 auipc t0,0x0 +80000178: 01428293 addi t0,t0,20 # 80000188 +8000017c: 34129073 csrw mepc,t0 +80000180: f1402573 csrr a0,mhartid +80000184: 30200073 mret + +80000188 : +80000188: 00200193 li gp,2 +8000018c: 00002517 auipc a0,0x2 +80000190: e7450513 addi a0,a0,-396 # 80002000 +80000194: 00053007 fld ft0,0(a0) +80000198: 00853087 fld ft1,8(a0) +8000019c: 01053107 fld ft2,16(a0) +800001a0: 01852683 lw a3,24(a0) +800001a4: 01c52303 lw t1,28(a0) +800001a8: 1a1071d3 fdiv.d ft3,ft0,ft1 +800001ac: 00353027 fsd ft3,0(a0) +800001b0: 00452383 lw t2,4(a0) +800001b4: 00052503 lw a0,0(a0) +800001b8: 001015f3 fsflags a1,zero +800001bc: 00100613 li a2,1 +800001c0: 1ed51663 bne a0,a3,800003ac +800001c4: 1e731463 bne t1,t2,800003ac +800001c8: 1ec59263 bne a1,a2,800003ac + +800001cc : +800001cc: 00300193 li gp,3 +800001d0: 00002517 auipc a0,0x2 +800001d4: e5050513 addi a0,a0,-432 # 80002020 +800001d8: 00053007 fld ft0,0(a0) +800001dc: 00853087 fld ft1,8(a0) +800001e0: 01053107 fld ft2,16(a0) +800001e4: 01852683 lw a3,24(a0) +800001e8: 01c52303 lw t1,28(a0) +800001ec: 1a1071d3 fdiv.d ft3,ft0,ft1 +800001f0: 00353027 fsd ft3,0(a0) +800001f4: 00452383 lw t2,4(a0) +800001f8: 00052503 lw a0,0(a0) +800001fc: 001015f3 fsflags a1,zero +80000200: 00100613 li a2,1 +80000204: 1ad51463 bne a0,a3,800003ac +80000208: 1a731263 bne t1,t2,800003ac +8000020c: 1ac59063 bne a1,a2,800003ac + +80000210 : +80000210: 00400193 li gp,4 +80000214: 00002517 auipc a0,0x2 +80000218: e2c50513 addi a0,a0,-468 # 80002040 +8000021c: 00053007 fld ft0,0(a0) +80000220: 00853087 fld ft1,8(a0) +80000224: 01053107 fld ft2,16(a0) +80000228: 01852683 lw a3,24(a0) +8000022c: 01c52303 lw t1,28(a0) +80000230: 1a1071d3 fdiv.d ft3,ft0,ft1 +80000234: 00353027 fsd ft3,0(a0) +80000238: 00452383 lw t2,4(a0) +8000023c: 00052503 lw a0,0(a0) +80000240: 001015f3 fsflags a1,zero +80000244: 00000613 li a2,0 +80000248: 16d51263 bne a0,a3,800003ac +8000024c: 16731063 bne t1,t2,800003ac +80000250: 14c59e63 bne a1,a2,800003ac + +80000254 : +80000254: 00500193 li gp,5 +80000258: 00002517 auipc a0,0x2 +8000025c: e0850513 addi a0,a0,-504 # 80002060 +80000260: 00053007 fld ft0,0(a0) +80000264: 00853087 fld ft1,8(a0) +80000268: 01053107 fld ft2,16(a0) +8000026c: 01852683 lw a3,24(a0) +80000270: 01c52303 lw t1,28(a0) +80000274: 5a0071d3 fsqrt.d ft3,ft0 +80000278: 00353027 fsd ft3,0(a0) +8000027c: 00452383 lw t2,4(a0) +80000280: 00052503 lw a0,0(a0) +80000284: 001015f3 fsflags a1,zero +80000288: 00100613 li a2,1 +8000028c: 12d51063 bne a0,a3,800003ac +80000290: 10731e63 bne t1,t2,800003ac +80000294: 10c59c63 bne a1,a2,800003ac + +80000298 : +80000298: 00600193 li gp,6 +8000029c: 00002517 auipc a0,0x2 +800002a0: de450513 addi a0,a0,-540 # 80002080 +800002a4: 00053007 fld ft0,0(a0) +800002a8: 00853087 fld ft1,8(a0) +800002ac: 01053107 fld ft2,16(a0) +800002b0: 01852683 lw a3,24(a0) +800002b4: 01c52303 lw t1,28(a0) +800002b8: 5a0071d3 fsqrt.d ft3,ft0 +800002bc: 00353027 fsd ft3,0(a0) +800002c0: 00452383 lw t2,4(a0) +800002c4: 00052503 lw a0,0(a0) +800002c8: 001015f3 fsflags a1,zero +800002cc: 00000613 li a2,0 +800002d0: 0cd51e63 bne a0,a3,800003ac +800002d4: 0c731c63 bne t1,t2,800003ac +800002d8: 0cc59a63 bne a1,a2,800003ac + +800002dc : +800002dc: 01000193 li gp,16 +800002e0: 00002517 auipc a0,0x2 +800002e4: dc050513 addi a0,a0,-576 # 800020a0 +800002e8: 00053007 fld ft0,0(a0) +800002ec: 00853087 fld ft1,8(a0) +800002f0: 01053107 fld ft2,16(a0) +800002f4: 01852683 lw a3,24(a0) +800002f8: 01c52303 lw t1,28(a0) +800002fc: 5a0071d3 fsqrt.d ft3,ft0 +80000300: 00353027 fsd ft3,0(a0) +80000304: 00452383 lw t2,4(a0) +80000308: 00052503 lw a0,0(a0) +8000030c: 001015f3 fsflags a1,zero +80000310: 01000613 li a2,16 +80000314: 08d51c63 bne a0,a3,800003ac +80000318: 08731a63 bne t1,t2,800003ac +8000031c: 08c59863 bne a1,a2,800003ac + +80000320 : +80000320: 00700193 li gp,7 +80000324: 00002517 auipc a0,0x2 +80000328: d9c50513 addi a0,a0,-612 # 800020c0 +8000032c: 00053007 fld ft0,0(a0) +80000330: 00853087 fld ft1,8(a0) +80000334: 01053107 fld ft2,16(a0) +80000338: 01852683 lw a3,24(a0) +8000033c: 01c52303 lw t1,28(a0) +80000340: 5a0071d3 fsqrt.d ft3,ft0 +80000344: 00353027 fsd ft3,0(a0) +80000348: 00452383 lw t2,4(a0) +8000034c: 00052503 lw a0,0(a0) +80000350: 001015f3 fsflags a1,zero +80000354: 00100613 li a2,1 +80000358: 04d51a63 bne a0,a3,800003ac +8000035c: 04731863 bne t1,t2,800003ac +80000360: 04c59663 bne a1,a2,800003ac + +80000364 : +80000364: 00800193 li gp,8 +80000368: 00002517 auipc a0,0x2 +8000036c: d7850513 addi a0,a0,-648 # 800020e0 +80000370: 00053007 fld ft0,0(a0) +80000374: 00853087 fld ft1,8(a0) +80000378: 01053107 fld ft2,16(a0) +8000037c: 01852683 lw a3,24(a0) +80000380: 01c52303 lw t1,28(a0) +80000384: 5a0071d3 fsqrt.d ft3,ft0 +80000388: 00353027 fsd ft3,0(a0) +8000038c: 00452383 lw t2,4(a0) +80000390: 00052503 lw a0,0(a0) +80000394: 001015f3 fsflags a1,zero +80000398: 00100613 li a2,1 +8000039c: 00d51863 bne a0,a3,800003ac +800003a0: 00731663 bne t1,t2,800003ac +800003a4: 00c59463 bne a1,a2,800003ac +800003a8: 02301063 bne zero,gp,800003c8 + +800003ac : +800003ac: 0ff0000f fence +800003b0: 00018063 beqz gp,800003b0 +800003b4: 00119193 slli gp,gp,0x1 +800003b8: 0011e193 ori gp,gp,1 +800003bc: 05d00893 li a7,93 +800003c0: 00018513 mv a0,gp +800003c4: 00000073 ecall + +800003c8 : +800003c8: 0ff0000f fence +800003cc: 00100193 li gp,1 +800003d0: 05d00893 li a7,93 +800003d4: 00000513 li a0,0 +800003d8: 00000073 ecall +800003dc: c0001073 unimp +800003e0: 0000 unimp +800003e2: 0000 unimp +800003e4: 0000 unimp +800003e6: 0000 unimp +800003e8: 0000 unimp +800003ea: 0000 unimp +800003ec: 0000 unimp +800003ee: 0000 unimp +800003f0: 0000 unimp +800003f2: 0000 unimp +800003f4: 0000 unimp +800003f6: 0000 unimp +800003f8: 0000 unimp +800003fa: 0000 unimp +800003fc: 0000 unimp +800003fe: 0000 unimp +80000400: 0000 unimp +80000402: 0000 unimp + +Disassembly of section .data: + +80002000 : +80002000: d4f1 beqz s1,80001fcc +80002002: 53c8 lw a0,36(a5) +80002004: 400921fb 0x400921fb +80002008: b0dd j 800018ee +8000200a: 89f1 andi a1,a1,28 +8000200c: bf0a fsd ft2,440(sp) +8000200e: 4005 c.li zero,1 +80002010: 0000 unimp +80002012: 0000 unimp +80002014: 0000 unimp +80002016: 0000 unimp +80002018: 83ec 0x83ec +8000201a: 7ddbf6c3 0x7ddbf6c3 +8000201e: 3ff2 fld ft11,312(sp) + +80002020 : +80002020: 0000 unimp +80002022: 0000 unimp +80002024: 4800 lw s0,16(s0) +80002026: 6666c093 xori ra,a3,1638 +8000202a: 6666 flw fa2,88(sp) +8000202c: 4c66 lw s8,88(sp) +8000202e: 00004093 xori ra,zero,0 +80002032: 0000 unimp +80002034: 0000 unimp +80002036: 0000 unimp +80002038: 29a5 jal 800024b0 <_end+0x3b0> +8000203a: 3e19 jal 80001b50 +8000203c: f8b4 fsw fa3,112(s1) +8000203e: jal t6,7ff1dd8c <_start-0xe2274> + +80002040 : +80002040: d4f1 beqz s1,8000200c +80002042: 53c8 lw a0,36(a5) +80002044: 400921fb 0x400921fb +80002048: 0000 unimp +8000204a: 0000 unimp +8000204c: 0000 unimp +8000204e: 3ff0 fld fa2,248(a5) +80002050: 0000 unimp +80002052: 0000 unimp +80002054: 0000 unimp +80002056: 0000 unimp +80002058: d4f1 beqz s1,80002024 +8000205a: 53c8 lw a0,36(a5) +8000205c: 400921fb 0x400921fb + +80002060 : +80002060: d4f1 beqz s1,8000202c +80002062: 53c8 lw a0,36(a5) +80002064: 400921fb 0x400921fb +80002068: 0000 unimp +8000206a: 0000 unimp +8000206c: 0000 unimp +8000206e: 0000 unimp +80002070: 0000 unimp +80002072: 0000 unimp +80002074: 0000 unimp +80002076: 0000 unimp +80002078: 916f587b 0x916f587b +8000207c: 5bf8 lw a4,116(a5) +8000207e: 3ffc fld fa5,248(a5) + +80002080 : +80002080: 0000 unimp +80002082: 0000 unimp +80002084: 8800 0x8800 +80002086: 000040c3 fmadd.s ft1,ft0,ft0,ft0,rmm +8000208a: 0000 unimp +8000208c: 0000 unimp +8000208e: 0000 unimp +80002090: 0000 unimp +80002092: 0000 unimp +80002094: 0000 unimp +80002096: 0000 unimp +80002098: 0000 unimp +8000209a: 0000 unimp +8000209c: 0000 unimp +8000209e: 4059 c.li zero,22 + +800020a0 : +800020a0: 0000 unimp +800020a2: 0000 unimp +800020a4: 0000 unimp +800020a6: bff0 fsd fa2,248(a5) +800020a8: 0000 unimp +800020aa: 0000 unimp +800020ac: 0000 unimp +800020ae: 0000 unimp +800020b0: 0000 unimp +800020b2: 0000 unimp +800020b4: 0000 unimp +800020b6: 0000 unimp +800020b8: 0000 unimp +800020ba: 0000 unimp +800020bc: 0000 unimp +800020be: 7ff8 flw fa4,124(a5) + +800020c0 : +800020c0: 0000 unimp +800020c2: 0000 unimp +800020c4: 6000 flw fs0,0(s0) +800020c6: 4065 c.li zero,25 +800020c8: 0000 unimp +800020ca: 0000 unimp +800020cc: 0000 unimp +800020ce: 0000 unimp +800020d0: 0000 unimp +800020d2: 0000 unimp +800020d4: 0000 unimp +800020d6: 0000 unimp +800020d8: 74f5 lui s1,0xffffd +800020da: ce96 sw t0,92(sp) +800020dc: 2744 fld fs1,136(a4) +800020de: 402a 0x402a + +800020e0 : +800020e0: a105 j 80002500 <_end+0x400> +800020e2: c70a sw sp,140(sp) +800020e4: 94df 3e85 0000 0x3e8594df +800020ea: 0000 unimp +800020ec: 0000 unimp +800020ee: 0000 unimp +800020f0: 0000 unimp +800020f2: 0000 unimp +800020f4: 0000 unimp +800020f6: 0000 unimp +800020f8: 7f99 lui t6,0xfffe6 +800020fa: 4789c0e3 blt s3,s8,80002d5a <_end+0xc5a> +800020fe: 3f3a fld ft10,424(sp) diff --git a/src/test/resources/asm/rv32ud-p-fmadd.dump b/src/test/resources/asm/rv32ud-p-fmadd.dump new file mode 100644 index 0000000..7bf600a --- /dev/null +++ b/src/test/resources/asm/rv32ud-p-fmadd.dump @@ -0,0 +1,583 @@ + +rv32ud-p-fmadd: file format elf32-littleriscv + + +Disassembly of section .text.init: + +80000000 <_start>: +80000000: 04c0006f j 8000004c + +80000004 : +80000004: 34202f73 csrr t5,mcause +80000008: 00800f93 li t6,8 +8000000c: 03ff0a63 beq t5,t6,80000040 +80000010: 00900f93 li t6,9 +80000014: 03ff0663 beq t5,t6,80000040 +80000018: 00b00f93 li t6,11 +8000001c: 03ff0263 beq t5,t6,80000040 +80000020: 80000f17 auipc t5,0x80000 +80000024: fe0f0f13 addi t5,t5,-32 # 0 <_start-0x80000000> +80000028: 000f0463 beqz t5,80000030 +8000002c: 000f0067 jr t5 +80000030: 34202f73 csrr t5,mcause +80000034: 000f5463 bgez t5,8000003c +80000038: 0040006f j 8000003c + +8000003c : +8000003c: 5391e193 ori gp,gp,1337 + +80000040 : +80000040: 00001f17 auipc t5,0x1 +80000044: fc3f2023 sw gp,-64(t5) # 80001000 +80000048: ff9ff06f j 80000040 + +8000004c : +8000004c: 00000093 li ra,0 +80000050: 00000113 li sp,0 +80000054: 00000193 li gp,0 +80000058: 00000213 li tp,0 +8000005c: 00000293 li t0,0 +80000060: 00000313 li t1,0 +80000064: 00000393 li t2,0 +80000068: 00000413 li s0,0 +8000006c: 00000493 li s1,0 +80000070: 00000513 li a0,0 +80000074: 00000593 li a1,0 +80000078: 00000613 li a2,0 +8000007c: 00000693 li a3,0 +80000080: 00000713 li a4,0 +80000084: 00000793 li a5,0 +80000088: 00000813 li a6,0 +8000008c: 00000893 li a7,0 +80000090: 00000913 li s2,0 +80000094: 00000993 li s3,0 +80000098: 00000a13 li s4,0 +8000009c: 00000a93 li s5,0 +800000a0: 00000b13 li s6,0 +800000a4: 00000b93 li s7,0 +800000a8: 00000c13 li s8,0 +800000ac: 00000c93 li s9,0 +800000b0: 00000d13 li s10,0 +800000b4: 00000d93 li s11,0 +800000b8: 00000e13 li t3,0 +800000bc: 00000e93 li t4,0 +800000c0: 00000f13 li t5,0 +800000c4: 00000f93 li t6,0 +800000c8: f1402573 csrr a0,mhartid +800000cc: 00051063 bnez a0,800000cc +800000d0: 00000297 auipc t0,0x0 +800000d4: 01028293 addi t0,t0,16 # 800000e0 +800000d8: 30529073 csrw mtvec,t0 +800000dc: 18005073 csrwi satp,0 +800000e0: 00000297 auipc t0,0x0 +800000e4: 02028293 addi t0,t0,32 # 80000100 +800000e8: 30529073 csrw mtvec,t0 +800000ec: 800002b7 lui t0,0x80000 +800000f0: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffde7f> +800000f4: 3b029073 csrw pmpaddr0,t0 +800000f8: 01f00293 li t0,31 +800000fc: 3a029073 csrw pmpcfg0,t0 +80000100: 30405073 csrwi mie,0 +80000104: 00000297 auipc t0,0x0 +80000108: 01428293 addi t0,t0,20 # 80000118 +8000010c: 30529073 csrw mtvec,t0 +80000110: 30205073 csrwi medeleg,0 +80000114: 30305073 csrwi mideleg,0 +80000118: 00000193 li gp,0 +8000011c: 00000297 auipc t0,0x0 +80000120: ee828293 addi t0,t0,-280 # 80000004 +80000124: 30529073 csrw mtvec,t0 +80000128: 00100513 li a0,1 +8000012c: 01f51513 slli a0,a0,0x1f +80000130: 00054c63 bltz a0,80000148 +80000134: 0ff0000f fence +80000138: 00100193 li gp,1 +8000013c: 05d00893 li a7,93 +80000140: 00000513 li a0,0 +80000144: 00000073 ecall +80000148: 80000297 auipc t0,0x80000 +8000014c: eb828293 addi t0,t0,-328 # 0 <_start-0x80000000> +80000150: 00028a63 beqz t0,80000164 +80000154: 10529073 csrw stvec,t0 +80000158: 0000b2b7 lui t0,0xb +8000015c: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7> +80000160: 30229073 csrw medeleg,t0 +80000164: 30005073 csrwi mstatus,0 +80000168: 00002537 lui a0,0x2 +8000016c: 30052073 csrs mstatus,a0 +80000170: 00305073 csrwi fcsr,0 +80000174: 00000297 auipc t0,0x0 +80000178: 01428293 addi t0,t0,20 # 80000188 +8000017c: 34129073 csrw mepc,t0 +80000180: f1402573 csrr a0,mhartid +80000184: 30200073 mret + +80000188 : +80000188: 00200193 li gp,2 +8000018c: 00002517 auipc a0,0x2 +80000190: e7450513 addi a0,a0,-396 # 80002000 +80000194: 00053007 fld ft0,0(a0) +80000198: 00853087 fld ft1,8(a0) +8000019c: 01053107 fld ft2,16(a0) +800001a0: 01852683 lw a3,24(a0) +800001a4: 01c52303 lw t1,28(a0) +800001a8: 121071c3 fmadd.d ft3,ft0,ft1,ft2 +800001ac: 00353027 fsd ft3,0(a0) +800001b0: 00452383 lw t2,4(a0) +800001b4: 00052503 lw a0,0(a0) +800001b8: 001015f3 fsflags a1,zero +800001bc: 00000613 li a2,0 +800001c0: 2ed51e63 bne a0,a3,800004bc +800001c4: 2e731c63 bne t1,t2,800004bc +800001c8: 2ec59a63 bne a1,a2,800004bc + +800001cc : +800001cc: 00300193 li gp,3 +800001d0: 00002517 auipc a0,0x2 +800001d4: e5050513 addi a0,a0,-432 # 80002020 +800001d8: 00053007 fld ft0,0(a0) +800001dc: 00853087 fld ft1,8(a0) +800001e0: 01053107 fld ft2,16(a0) +800001e4: 01852683 lw a3,24(a0) +800001e8: 01c52303 lw t1,28(a0) +800001ec: 121071c3 fmadd.d ft3,ft0,ft1,ft2 +800001f0: 00353027 fsd ft3,0(a0) +800001f4: 00452383 lw t2,4(a0) +800001f8: 00052503 lw a0,0(a0) +800001fc: 001015f3 fsflags a1,zero +80000200: 00100613 li a2,1 +80000204: 2ad51c63 bne a0,a3,800004bc +80000208: 2a731a63 bne t1,t2,800004bc +8000020c: 2ac59863 bne a1,a2,800004bc + +80000210 : +80000210: 00400193 li gp,4 +80000214: 00002517 auipc a0,0x2 +80000218: e2c50513 addi a0,a0,-468 # 80002040 +8000021c: 00053007 fld ft0,0(a0) +80000220: 00853087 fld ft1,8(a0) +80000224: 01053107 fld ft2,16(a0) +80000228: 01852683 lw a3,24(a0) +8000022c: 01c52303 lw t1,28(a0) +80000230: 121071c3 fmadd.d ft3,ft0,ft1,ft2 +80000234: 00353027 fsd ft3,0(a0) +80000238: 00452383 lw t2,4(a0) +8000023c: 00052503 lw a0,0(a0) +80000240: 001015f3 fsflags a1,zero +80000244: 00000613 li a2,0 +80000248: 26d51a63 bne a0,a3,800004bc +8000024c: 26731863 bne t1,t2,800004bc +80000250: 26c59663 bne a1,a2,800004bc + +80000254 : +80000254: 00500193 li gp,5 +80000258: 00002517 auipc a0,0x2 +8000025c: e0850513 addi a0,a0,-504 # 80002060 +80000260: 00053007 fld ft0,0(a0) +80000264: 00853087 fld ft1,8(a0) +80000268: 01053107 fld ft2,16(a0) +8000026c: 01852683 lw a3,24(a0) +80000270: 01c52303 lw t1,28(a0) +80000274: 121071cf fnmadd.d ft3,ft0,ft1,ft2 +80000278: 00353027 fsd ft3,0(a0) +8000027c: 00452383 lw t2,4(a0) +80000280: 00052503 lw a0,0(a0) +80000284: 001015f3 fsflags a1,zero +80000288: 00000613 li a2,0 +8000028c: 22d51863 bne a0,a3,800004bc +80000290: 22731663 bne t1,t2,800004bc +80000294: 22c59463 bne a1,a2,800004bc + +80000298 : +80000298: 00600193 li gp,6 +8000029c: 00002517 auipc a0,0x2 +800002a0: de450513 addi a0,a0,-540 # 80002080 +800002a4: 00053007 fld ft0,0(a0) +800002a8: 00853087 fld ft1,8(a0) +800002ac: 01053107 fld ft2,16(a0) +800002b0: 01852683 lw a3,24(a0) +800002b4: 01c52303 lw t1,28(a0) +800002b8: 121071cf fnmadd.d ft3,ft0,ft1,ft2 +800002bc: 00353027 fsd ft3,0(a0) +800002c0: 00452383 lw t2,4(a0) +800002c4: 00052503 lw a0,0(a0) +800002c8: 001015f3 fsflags a1,zero +800002cc: 00100613 li a2,1 +800002d0: 1ed51663 bne a0,a3,800004bc +800002d4: 1e731463 bne t1,t2,800004bc +800002d8: 1ec59263 bne a1,a2,800004bc + +800002dc : +800002dc: 00700193 li gp,7 +800002e0: 00002517 auipc a0,0x2 +800002e4: dc050513 addi a0,a0,-576 # 800020a0 +800002e8: 00053007 fld ft0,0(a0) +800002ec: 00853087 fld ft1,8(a0) +800002f0: 01053107 fld ft2,16(a0) +800002f4: 01852683 lw a3,24(a0) +800002f8: 01c52303 lw t1,28(a0) +800002fc: 121071cf fnmadd.d ft3,ft0,ft1,ft2 +80000300: 00353027 fsd ft3,0(a0) +80000304: 00452383 lw t2,4(a0) +80000308: 00052503 lw a0,0(a0) +8000030c: 001015f3 fsflags a1,zero +80000310: 00000613 li a2,0 +80000314: 1ad51463 bne a0,a3,800004bc +80000318: 1a731263 bne t1,t2,800004bc +8000031c: 1ac59063 bne a1,a2,800004bc + +80000320 : +80000320: 00800193 li gp,8 +80000324: 00002517 auipc a0,0x2 +80000328: d9c50513 addi a0,a0,-612 # 800020c0 +8000032c: 00053007 fld ft0,0(a0) +80000330: 00853087 fld ft1,8(a0) +80000334: 01053107 fld ft2,16(a0) +80000338: 01852683 lw a3,24(a0) +8000033c: 01c52303 lw t1,28(a0) +80000340: 121071c7 fmsub.d ft3,ft0,ft1,ft2 +80000344: 00353027 fsd ft3,0(a0) +80000348: 00452383 lw t2,4(a0) +8000034c: 00052503 lw a0,0(a0) +80000350: 001015f3 fsflags a1,zero +80000354: 00000613 li a2,0 +80000358: 16d51263 bne a0,a3,800004bc +8000035c: 16731063 bne t1,t2,800004bc +80000360: 14c59e63 bne a1,a2,800004bc + +80000364 : +80000364: 00900193 li gp,9 +80000368: 00002517 auipc a0,0x2 +8000036c: d7850513 addi a0,a0,-648 # 800020e0 +80000370: 00053007 fld ft0,0(a0) +80000374: 00853087 fld ft1,8(a0) +80000378: 01053107 fld ft2,16(a0) +8000037c: 01852683 lw a3,24(a0) +80000380: 01c52303 lw t1,28(a0) +80000384: 121071c7 fmsub.d ft3,ft0,ft1,ft2 +80000388: 00353027 fsd ft3,0(a0) +8000038c: 00452383 lw t2,4(a0) +80000390: 00052503 lw a0,0(a0) +80000394: 001015f3 fsflags a1,zero +80000398: 00100613 li a2,1 +8000039c: 12d51063 bne a0,a3,800004bc +800003a0: 10731e63 bne t1,t2,800004bc +800003a4: 10c59c63 bne a1,a2,800004bc + +800003a8 : +800003a8: 00a00193 li gp,10 +800003ac: 00002517 auipc a0,0x2 +800003b0: d5450513 addi a0,a0,-684 # 80002100 +800003b4: 00053007 fld ft0,0(a0) +800003b8: 00853087 fld ft1,8(a0) +800003bc: 01053107 fld ft2,16(a0) +800003c0: 01852683 lw a3,24(a0) +800003c4: 01c52303 lw t1,28(a0) +800003c8: 121071c7 fmsub.d ft3,ft0,ft1,ft2 +800003cc: 00353027 fsd ft3,0(a0) +800003d0: 00452383 lw t2,4(a0) +800003d4: 00052503 lw a0,0(a0) +800003d8: 001015f3 fsflags a1,zero +800003dc: 00000613 li a2,0 +800003e0: 0cd51e63 bne a0,a3,800004bc +800003e4: 0c731c63 bne t1,t2,800004bc +800003e8: 0cc59a63 bne a1,a2,800004bc + +800003ec : +800003ec: 00b00193 li gp,11 +800003f0: 00002517 auipc a0,0x2 +800003f4: d3050513 addi a0,a0,-720 # 80002120 +800003f8: 00053007 fld ft0,0(a0) +800003fc: 00853087 fld ft1,8(a0) +80000400: 01053107 fld ft2,16(a0) +80000404: 01852683 lw a3,24(a0) +80000408: 01c52303 lw t1,28(a0) +8000040c: 121071cb fnmsub.d ft3,ft0,ft1,ft2 +80000410: 00353027 fsd ft3,0(a0) +80000414: 00452383 lw t2,4(a0) +80000418: 00052503 lw a0,0(a0) +8000041c: 001015f3 fsflags a1,zero +80000420: 00000613 li a2,0 +80000424: 08d51c63 bne a0,a3,800004bc +80000428: 08731a63 bne t1,t2,800004bc +8000042c: 08c59863 bne a1,a2,800004bc + +80000430 : +80000430: 00c00193 li gp,12 +80000434: 00002517 auipc a0,0x2 +80000438: d0c50513 addi a0,a0,-756 # 80002140 +8000043c: 00053007 fld ft0,0(a0) +80000440: 00853087 fld ft1,8(a0) +80000444: 01053107 fld ft2,16(a0) +80000448: 01852683 lw a3,24(a0) +8000044c: 01c52303 lw t1,28(a0) +80000450: 121071cb fnmsub.d ft3,ft0,ft1,ft2 +80000454: 00353027 fsd ft3,0(a0) +80000458: 00452383 lw t2,4(a0) +8000045c: 00052503 lw a0,0(a0) +80000460: 001015f3 fsflags a1,zero +80000464: 00100613 li a2,1 +80000468: 04d51a63 bne a0,a3,800004bc +8000046c: 04731863 bne t1,t2,800004bc +80000470: 04c59663 bne a1,a2,800004bc + +80000474 : +80000474: 00d00193 li gp,13 +80000478: 00002517 auipc a0,0x2 +8000047c: ce850513 addi a0,a0,-792 # 80002160 +80000480: 00053007 fld ft0,0(a0) +80000484: 00853087 fld ft1,8(a0) +80000488: 01053107 fld ft2,16(a0) +8000048c: 01852683 lw a3,24(a0) +80000490: 01c52303 lw t1,28(a0) +80000494: 121071cb fnmsub.d ft3,ft0,ft1,ft2 +80000498: 00353027 fsd ft3,0(a0) +8000049c: 00452383 lw t2,4(a0) +800004a0: 00052503 lw a0,0(a0) +800004a4: 001015f3 fsflags a1,zero +800004a8: 00000613 li a2,0 +800004ac: 00d51863 bne a0,a3,800004bc +800004b0: 00731663 bne t1,t2,800004bc +800004b4: 00c59463 bne a1,a2,800004bc +800004b8: 02301063 bne zero,gp,800004d8 + +800004bc : +800004bc: 0ff0000f fence +800004c0: 00018063 beqz gp,800004c0 +800004c4: 00119193 slli gp,gp,0x1 +800004c8: 0011e193 ori gp,gp,1 +800004cc: 05d00893 li a7,93 +800004d0: 00018513 mv a0,gp +800004d4: 00000073 ecall + +800004d8 : +800004d8: 0ff0000f fence +800004dc: 00100193 li gp,1 +800004e0: 05d00893 li a7,93 +800004e4: 00000513 li a0,0 +800004e8: 00000073 ecall +800004ec: c0001073 unimp +800004f0: 0000 unimp +800004f2: 0000 unimp +800004f4: 0000 unimp +800004f6: 0000 unimp +800004f8: 0000 unimp +800004fa: 0000 unimp +800004fc: 0000 unimp +800004fe: 0000 unimp +80000500: 0000 unimp +80000502: 0000 unimp + +Disassembly of section .data: + +80002000 : +80002000: 0000 unimp +80002002: 0000 unimp +80002004: 0000 unimp +80002006: 3ff0 fld fa2,248(a5) +80002008: 0000 unimp +8000200a: 0000 unimp +8000200c: 0000 unimp +8000200e: 4004 lw s1,0(s0) +80002010: 0000 unimp +80002012: 0000 unimp +80002014: 0000 unimp +80002016: 3ff0 fld fa2,248(a5) +80002018: 0000 unimp +8000201a: 0000 unimp +8000201c: 0000 unimp +8000201e: 400c lw a1,0(s0) + +80002020 : +80002020: 0000 unimp +80002022: 0000 unimp +80002024: 0000 unimp +80002026: bff0 fsd fa2,248(a5) +80002028: 6666 flw fa2,88(sp) +8000202a: 6666 flw fa2,88(sp) +8000202c: 4c66 lw s8,88(sp) +8000202e: 999ac093 xori ra,s5,-1639 +80002032: 9999 andi a1,a1,-26 +80002034: 9999 andi a1,a1,-26 +80002036: 3ff1 jal 80002012 +80002038: cccc sw a1,28(s1) +8000203a: cccc sw a1,28(s1) +8000203c: 50cc lw a1,36(s1) +8000203e: xori ra,zero,0 + +80002040 : +80002040: 0000 unimp +80002042: 0000 unimp +80002044: 0000 unimp +80002046: 4000 lw s0,0(s0) +80002048: 0000 unimp +8000204a: 0000 unimp +8000204c: 0000 unimp +8000204e: c014 sw a3,0(s0) +80002050: 0000 unimp +80002052: 0000 unimp +80002054: 0000 unimp +80002056: c000 sw s0,0(s0) +80002058: 0000 unimp +8000205a: 0000 unimp +8000205c: 0000 unimp +8000205e: c028 sw a0,64(s0) + +80002060 : +80002060: 0000 unimp +80002062: 0000 unimp +80002064: 0000 unimp +80002066: 3ff0 fld fa2,248(a5) +80002068: 0000 unimp +8000206a: 0000 unimp +8000206c: 0000 unimp +8000206e: 4004 lw s1,0(s0) +80002070: 0000 unimp +80002072: 0000 unimp +80002074: 0000 unimp +80002076: 3ff0 fld fa2,248(a5) +80002078: 0000 unimp +8000207a: 0000 unimp +8000207c: 0000 unimp +8000207e: c00c sw a1,0(s0) + +80002080 : +80002080: 0000 unimp +80002082: 0000 unimp +80002084: 0000 unimp +80002086: bff0 fsd fa2,248(a5) +80002088: 6666 flw fa2,88(sp) +8000208a: 6666 flw fa2,88(sp) +8000208c: 4c66 lw s8,88(sp) +8000208e: 999ac093 xori ra,s5,-1639 +80002092: 9999 andi a1,a1,-26 +80002094: 9999 andi a1,a1,-26 +80002096: 3ff1 jal 80002072 +80002098: cccc sw a1,28(s1) +8000209a: cccc sw a1,28(s1) +8000209c: 50cc lw a1,36(s1) +8000209e: xori ra,ra,0 + +800020a0 : +800020a0: 0000 unimp +800020a2: 0000 unimp +800020a4: 0000 unimp +800020a6: 4000 lw s0,0(s0) +800020a8: 0000 unimp +800020aa: 0000 unimp +800020ac: 0000 unimp +800020ae: c014 sw a3,0(s0) +800020b0: 0000 unimp +800020b2: 0000 unimp +800020b4: 0000 unimp +800020b6: c000 sw s0,0(s0) +800020b8: 0000 unimp +800020ba: 0000 unimp +800020bc: 0000 unimp +800020be: 4028 lw a0,64(s0) + +800020c0 : +800020c0: 0000 unimp +800020c2: 0000 unimp +800020c4: 0000 unimp +800020c6: 3ff0 fld fa2,248(a5) +800020c8: 0000 unimp +800020ca: 0000 unimp +800020cc: 0000 unimp +800020ce: 4004 lw s1,0(s0) +800020d0: 0000 unimp +800020d2: 0000 unimp +800020d4: 0000 unimp +800020d6: 3ff0 fld fa2,248(a5) +800020d8: 0000 unimp +800020da: 0000 unimp +800020dc: 0000 unimp +800020de: 3ff8 fld fa4,248(a5) + +800020e0 : +800020e0: 0000 unimp +800020e2: 0000 unimp +800020e4: 0000 unimp +800020e6: bff0 fsd fa2,248(a5) +800020e8: 6666 flw fa2,88(sp) +800020ea: 6666 flw fa2,88(sp) +800020ec: 4c66 lw s8,88(sp) +800020ee: 999ac093 xori ra,s5,-1639 +800020f2: 9999 andi a1,a1,-26 +800020f4: 9999 andi a1,a1,-26 +800020f6: 3ff1 jal 800020d2 +800020f8: 0000 unimp +800020fa: 0000 unimp +800020fc: 4800 lw s0,16(s0) +800020fe: xori ra,zero,0 + +80002100 : +80002100: 0000 unimp +80002102: 0000 unimp +80002104: 0000 unimp +80002106: 4000 lw s0,0(s0) +80002108: 0000 unimp +8000210a: 0000 unimp +8000210c: 0000 unimp +8000210e: c014 sw a3,0(s0) +80002110: 0000 unimp +80002112: 0000 unimp +80002114: 0000 unimp +80002116: c000 sw s0,0(s0) +80002118: 0000 unimp +8000211a: 0000 unimp +8000211c: 0000 unimp +8000211e: c020 sw s0,64(s0) + +80002120 : +80002120: 0000 unimp +80002122: 0000 unimp +80002124: 0000 unimp +80002126: 3ff0 fld fa2,248(a5) +80002128: 0000 unimp +8000212a: 0000 unimp +8000212c: 0000 unimp +8000212e: 4004 lw s1,0(s0) +80002130: 0000 unimp +80002132: 0000 unimp +80002134: 0000 unimp +80002136: 3ff0 fld fa2,248(a5) +80002138: 0000 unimp +8000213a: 0000 unimp +8000213c: 0000 unimp +8000213e: bff8 fsd fa4,248(a5) + +80002140 : +80002140: 0000 unimp +80002142: 0000 unimp +80002144: 0000 unimp +80002146: bff0 fsd fa2,248(a5) +80002148: 6666 flw fa2,88(sp) +8000214a: 6666 flw fa2,88(sp) +8000214c: 4c66 lw s8,88(sp) +8000214e: 999ac093 xori ra,s5,-1639 +80002152: 9999 andi a1,a1,-26 +80002154: 9999 andi a1,a1,-26 +80002156: 3ff1 jal 80002132 +80002158: 0000 unimp +8000215a: 0000 unimp +8000215c: 4800 lw s0,16(s0) +8000215e: xori ra,ra,0 + +80002160 : +80002160: 0000 unimp +80002162: 0000 unimp +80002164: 0000 unimp +80002166: 4000 lw s0,0(s0) +80002168: 0000 unimp +8000216a: 0000 unimp +8000216c: 0000 unimp +8000216e: c014 sw a3,0(s0) +80002170: 0000 unimp +80002172: 0000 unimp +80002174: 0000 unimp +80002176: c000 sw s0,0(s0) +80002178: 0000 unimp +8000217a: 0000 unimp +8000217c: 0000 unimp +8000217e: 4020 lw s0,64(s0) diff --git a/src/test/resources/asm/rv32ud-p-fmin.dump b/src/test/resources/asm/rv32ud-p-fmin.dump new file mode 100644 index 0000000..e1234a2 --- /dev/null +++ b/src/test/resources/asm/rv32ud-p-fmin.dump @@ -0,0 +1,820 @@ + +rv32ud-p-fmin: file format elf32-littleriscv + + +Disassembly of section .text.init: + +80000000 <_start>: +80000000: 04c0006f j 8000004c + +80000004 : +80000004: 34202f73 csrr t5,mcause +80000008: 00800f93 li t6,8 +8000000c: 03ff0a63 beq t5,t6,80000040 +80000010: 00900f93 li t6,9 +80000014: 03ff0663 beq t5,t6,80000040 +80000018: 00b00f93 li t6,11 +8000001c: 03ff0263 beq t5,t6,80000040 +80000020: 80000f17 auipc t5,0x80000 +80000024: fe0f0f13 addi t5,t5,-32 # 0 <_start-0x80000000> +80000028: 000f0463 beqz t5,80000030 +8000002c: 000f0067 jr t5 +80000030: 34202f73 csrr t5,mcause +80000034: 000f5463 bgez t5,8000003c +80000038: 0040006f j 8000003c + +8000003c : +8000003c: 5391e193 ori gp,gp,1337 + +80000040 : +80000040: 00001f17 auipc t5,0x1 +80000044: fc3f2023 sw gp,-64(t5) # 80001000 +80000048: ff9ff06f j 80000040 + +8000004c : +8000004c: 00000093 li ra,0 +80000050: 00000113 li sp,0 +80000054: 00000193 li gp,0 +80000058: 00000213 li tp,0 +8000005c: 00000293 li t0,0 +80000060: 00000313 li t1,0 +80000064: 00000393 li t2,0 +80000068: 00000413 li s0,0 +8000006c: 00000493 li s1,0 +80000070: 00000513 li a0,0 +80000074: 00000593 li a1,0 +80000078: 00000613 li a2,0 +8000007c: 00000693 li a3,0 +80000080: 00000713 li a4,0 +80000084: 00000793 li a5,0 +80000088: 00000813 li a6,0 +8000008c: 00000893 li a7,0 +80000090: 00000913 li s2,0 +80000094: 00000993 li s3,0 +80000098: 00000a13 li s4,0 +8000009c: 00000a93 li s5,0 +800000a0: 00000b13 li s6,0 +800000a4: 00000b93 li s7,0 +800000a8: 00000c13 li s8,0 +800000ac: 00000c93 li s9,0 +800000b0: 00000d13 li s10,0 +800000b4: 00000d93 li s11,0 +800000b8: 00000e13 li t3,0 +800000bc: 00000e93 li t4,0 +800000c0: 00000f13 li t5,0 +800000c4: 00000f93 li t6,0 +800000c8: f1402573 csrr a0,mhartid +800000cc: 00051063 bnez a0,800000cc +800000d0: 00000297 auipc t0,0x0 +800000d4: 01028293 addi t0,t0,16 # 800000e0 +800000d8: 30529073 csrw mtvec,t0 +800000dc: 18005073 csrwi satp,0 +800000e0: 00000297 auipc t0,0x0 +800000e4: 02028293 addi t0,t0,32 # 80000100 +800000e8: 30529073 csrw mtvec,t0 +800000ec: 800002b7 lui t0,0x80000 +800000f0: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffddbf> +800000f4: 3b029073 csrw pmpaddr0,t0 +800000f8: 01f00293 li t0,31 +800000fc: 3a029073 csrw pmpcfg0,t0 +80000100: 30405073 csrwi mie,0 +80000104: 00000297 auipc t0,0x0 +80000108: 01428293 addi t0,t0,20 # 80000118 +8000010c: 30529073 csrw mtvec,t0 +80000110: 30205073 csrwi medeleg,0 +80000114: 30305073 csrwi mideleg,0 +80000118: 00000193 li gp,0 +8000011c: 00000297 auipc t0,0x0 +80000120: ee828293 addi t0,t0,-280 # 80000004 +80000124: 30529073 csrw mtvec,t0 +80000128: 00100513 li a0,1 +8000012c: 01f51513 slli a0,a0,0x1f +80000130: 00054c63 bltz a0,80000148 +80000134: 0ff0000f fence +80000138: 00100193 li gp,1 +8000013c: 05d00893 li a7,93 +80000140: 00000513 li a0,0 +80000144: 00000073 ecall +80000148: 80000297 auipc t0,0x80000 +8000014c: eb828293 addi t0,t0,-328 # 0 <_start-0x80000000> +80000150: 00028a63 beqz t0,80000164 +80000154: 10529073 csrw stvec,t0 +80000158: 0000b2b7 lui t0,0xb +8000015c: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7> +80000160: 30229073 csrw medeleg,t0 +80000164: 30005073 csrwi mstatus,0 +80000168: 00002537 lui a0,0x2 +8000016c: 30052073 csrs mstatus,a0 +80000170: 00305073 csrwi fcsr,0 +80000174: 00000297 auipc t0,0x0 +80000178: 01428293 addi t0,t0,20 # 80000188 +8000017c: 34129073 csrw mepc,t0 +80000180: f1402573 csrr a0,mhartid +80000184: 30200073 mret + +80000188 : +80000188: 00200193 li gp,2 +8000018c: 00002517 auipc a0,0x2 +80000190: e7450513 addi a0,a0,-396 # 80002000 +80000194: 00053007 fld ft0,0(a0) +80000198: 00853087 fld ft1,8(a0) +8000019c: 01053107 fld ft2,16(a0) +800001a0: 01852683 lw a3,24(a0) +800001a4: 01c52303 lw t1,28(a0) +800001a8: 2a1001d3 fmin.d ft3,ft0,ft1 +800001ac: 00353027 fsd ft3,0(a0) +800001b0: 00452383 lw t2,4(a0) +800001b4: 00052503 lw a0,0(a0) +800001b8: 001015f3 fsflags a1,zero +800001bc: 00000613 li a2,0 +800001c0: 48d51a63 bne a0,a3,80000654 +800001c4: 48731863 bne t1,t2,80000654 +800001c8: 48c59663 bne a1,a2,80000654 + +800001cc : +800001cc: 00300193 li gp,3 +800001d0: 00002517 auipc a0,0x2 +800001d4: e5050513 addi a0,a0,-432 # 80002020 +800001d8: 00053007 fld ft0,0(a0) +800001dc: 00853087 fld ft1,8(a0) +800001e0: 01053107 fld ft2,16(a0) +800001e4: 01852683 lw a3,24(a0) +800001e8: 01c52303 lw t1,28(a0) +800001ec: 2a1001d3 fmin.d ft3,ft0,ft1 +800001f0: 00353027 fsd ft3,0(a0) +800001f4: 00452383 lw t2,4(a0) +800001f8: 00052503 lw a0,0(a0) +800001fc: 001015f3 fsflags a1,zero +80000200: 00000613 li a2,0 +80000204: 44d51863 bne a0,a3,80000654 +80000208: 44731663 bne t1,t2,80000654 +8000020c: 44c59463 bne a1,a2,80000654 + +80000210 : +80000210: 00400193 li gp,4 +80000214: 00002517 auipc a0,0x2 +80000218: e2c50513 addi a0,a0,-468 # 80002040 +8000021c: 00053007 fld ft0,0(a0) +80000220: 00853087 fld ft1,8(a0) +80000224: 01053107 fld ft2,16(a0) +80000228: 01852683 lw a3,24(a0) +8000022c: 01c52303 lw t1,28(a0) +80000230: 2a1001d3 fmin.d ft3,ft0,ft1 +80000234: 00353027 fsd ft3,0(a0) +80000238: 00452383 lw t2,4(a0) +8000023c: 00052503 lw a0,0(a0) +80000240: 001015f3 fsflags a1,zero +80000244: 00000613 li a2,0 +80000248: 40d51663 bne a0,a3,80000654 +8000024c: 40731463 bne t1,t2,80000654 +80000250: 40c59263 bne a1,a2,80000654 + +80000254 : +80000254: 00500193 li gp,5 +80000258: 00002517 auipc a0,0x2 +8000025c: e0850513 addi a0,a0,-504 # 80002060 +80000260: 00053007 fld ft0,0(a0) +80000264: 00853087 fld ft1,8(a0) +80000268: 01053107 fld ft2,16(a0) +8000026c: 01852683 lw a3,24(a0) +80000270: 01c52303 lw t1,28(a0) +80000274: 2a1001d3 fmin.d ft3,ft0,ft1 +80000278: 00353027 fsd ft3,0(a0) +8000027c: 00452383 lw t2,4(a0) +80000280: 00052503 lw a0,0(a0) +80000284: 001015f3 fsflags a1,zero +80000288: 00000613 li a2,0 +8000028c: 3cd51463 bne a0,a3,80000654 +80000290: 3c731263 bne t1,t2,80000654 +80000294: 3cc59063 bne a1,a2,80000654 + +80000298 : +80000298: 00600193 li gp,6 +8000029c: 00002517 auipc a0,0x2 +800002a0: de450513 addi a0,a0,-540 # 80002080 +800002a4: 00053007 fld ft0,0(a0) +800002a8: 00853087 fld ft1,8(a0) +800002ac: 01053107 fld ft2,16(a0) +800002b0: 01852683 lw a3,24(a0) +800002b4: 01c52303 lw t1,28(a0) +800002b8: 2a1001d3 fmin.d ft3,ft0,ft1 +800002bc: 00353027 fsd ft3,0(a0) +800002c0: 00452383 lw t2,4(a0) +800002c4: 00052503 lw a0,0(a0) +800002c8: 001015f3 fsflags a1,zero +800002cc: 00000613 li a2,0 +800002d0: 38d51263 bne a0,a3,80000654 +800002d4: 38731063 bne t1,t2,80000654 +800002d8: 36c59e63 bne a1,a2,80000654 + +800002dc : +800002dc: 00700193 li gp,7 +800002e0: 00002517 auipc a0,0x2 +800002e4: dc050513 addi a0,a0,-576 # 800020a0 +800002e8: 00053007 fld ft0,0(a0) +800002ec: 00853087 fld ft1,8(a0) +800002f0: 01053107 fld ft2,16(a0) +800002f4: 01852683 lw a3,24(a0) +800002f8: 01c52303 lw t1,28(a0) +800002fc: 2a1001d3 fmin.d ft3,ft0,ft1 +80000300: 00353027 fsd ft3,0(a0) +80000304: 00452383 lw t2,4(a0) +80000308: 00052503 lw a0,0(a0) +8000030c: 001015f3 fsflags a1,zero +80000310: 00000613 li a2,0 +80000314: 34d51063 bne a0,a3,80000654 +80000318: 32731e63 bne t1,t2,80000654 +8000031c: 32c59c63 bne a1,a2,80000654 + +80000320 : +80000320: 00c00193 li gp,12 +80000324: 00002517 auipc a0,0x2 +80000328: d9c50513 addi a0,a0,-612 # 800020c0 +8000032c: 00053007 fld ft0,0(a0) +80000330: 00853087 fld ft1,8(a0) +80000334: 01053107 fld ft2,16(a0) +80000338: 01852683 lw a3,24(a0) +8000033c: 01c52303 lw t1,28(a0) +80000340: 2a1011d3 fmax.d ft3,ft0,ft1 +80000344: 00353027 fsd ft3,0(a0) +80000348: 00452383 lw t2,4(a0) +8000034c: 00052503 lw a0,0(a0) +80000350: 001015f3 fsflags a1,zero +80000354: 00000613 li a2,0 +80000358: 2ed51e63 bne a0,a3,80000654 +8000035c: 2e731c63 bne t1,t2,80000654 +80000360: 2ec59a63 bne a1,a2,80000654 + +80000364 : +80000364: 00d00193 li gp,13 +80000368: 00002517 auipc a0,0x2 +8000036c: d7850513 addi a0,a0,-648 # 800020e0 +80000370: 00053007 fld ft0,0(a0) +80000374: 00853087 fld ft1,8(a0) +80000378: 01053107 fld ft2,16(a0) +8000037c: 01852683 lw a3,24(a0) +80000380: 01c52303 lw t1,28(a0) +80000384: 2a1011d3 fmax.d ft3,ft0,ft1 +80000388: 00353027 fsd ft3,0(a0) +8000038c: 00452383 lw t2,4(a0) +80000390: 00052503 lw a0,0(a0) +80000394: 001015f3 fsflags a1,zero +80000398: 00000613 li a2,0 +8000039c: 2ad51c63 bne a0,a3,80000654 +800003a0: 2a731a63 bne t1,t2,80000654 +800003a4: 2ac59863 bne a1,a2,80000654 + +800003a8 : +800003a8: 00e00193 li gp,14 +800003ac: 00002517 auipc a0,0x2 +800003b0: d5450513 addi a0,a0,-684 # 80002100 +800003b4: 00053007 fld ft0,0(a0) +800003b8: 00853087 fld ft1,8(a0) +800003bc: 01053107 fld ft2,16(a0) +800003c0: 01852683 lw a3,24(a0) +800003c4: 01c52303 lw t1,28(a0) +800003c8: 2a1011d3 fmax.d ft3,ft0,ft1 +800003cc: 00353027 fsd ft3,0(a0) +800003d0: 00452383 lw t2,4(a0) +800003d4: 00052503 lw a0,0(a0) +800003d8: 001015f3 fsflags a1,zero +800003dc: 00000613 li a2,0 +800003e0: 26d51a63 bne a0,a3,80000654 +800003e4: 26731863 bne t1,t2,80000654 +800003e8: 26c59663 bne a1,a2,80000654 + +800003ec : +800003ec: 00f00193 li gp,15 +800003f0: 00002517 auipc a0,0x2 +800003f4: d3050513 addi a0,a0,-720 # 80002120 +800003f8: 00053007 fld ft0,0(a0) +800003fc: 00853087 fld ft1,8(a0) +80000400: 01053107 fld ft2,16(a0) +80000404: 01852683 lw a3,24(a0) +80000408: 01c52303 lw t1,28(a0) +8000040c: 2a1011d3 fmax.d ft3,ft0,ft1 +80000410: 00353027 fsd ft3,0(a0) +80000414: 00452383 lw t2,4(a0) +80000418: 00052503 lw a0,0(a0) +8000041c: 001015f3 fsflags a1,zero +80000420: 00000613 li a2,0 +80000424: 22d51863 bne a0,a3,80000654 +80000428: 22731663 bne t1,t2,80000654 +8000042c: 22c59463 bne a1,a2,80000654 + +80000430 : +80000430: 01000193 li gp,16 +80000434: 00002517 auipc a0,0x2 +80000438: d0c50513 addi a0,a0,-756 # 80002140 +8000043c: 00053007 fld ft0,0(a0) +80000440: 00853087 fld ft1,8(a0) +80000444: 01053107 fld ft2,16(a0) +80000448: 01852683 lw a3,24(a0) +8000044c: 01c52303 lw t1,28(a0) +80000450: 2a1011d3 fmax.d ft3,ft0,ft1 +80000454: 00353027 fsd ft3,0(a0) +80000458: 00452383 lw t2,4(a0) +8000045c: 00052503 lw a0,0(a0) +80000460: 001015f3 fsflags a1,zero +80000464: 00000613 li a2,0 +80000468: 1ed51663 bne a0,a3,80000654 +8000046c: 1e731463 bne t1,t2,80000654 +80000470: 1ec59263 bne a1,a2,80000654 + +80000474 : +80000474: 01100193 li gp,17 +80000478: 00002517 auipc a0,0x2 +8000047c: ce850513 addi a0,a0,-792 # 80002160 +80000480: 00053007 fld ft0,0(a0) +80000484: 00853087 fld ft1,8(a0) +80000488: 01053107 fld ft2,16(a0) +8000048c: 01852683 lw a3,24(a0) +80000490: 01c52303 lw t1,28(a0) +80000494: 2a1011d3 fmax.d ft3,ft0,ft1 +80000498: 00353027 fsd ft3,0(a0) +8000049c: 00452383 lw t2,4(a0) +800004a0: 00052503 lw a0,0(a0) +800004a4: 001015f3 fsflags a1,zero +800004a8: 00000613 li a2,0 +800004ac: 1ad51463 bne a0,a3,80000654 +800004b0: 1a731263 bne t1,t2,80000654 +800004b4: 1ac59063 bne a1,a2,80000654 + +800004b8 : +800004b8: 01400193 li gp,20 +800004bc: 00002517 auipc a0,0x2 +800004c0: cc450513 addi a0,a0,-828 # 80002180 +800004c4: 00053007 fld ft0,0(a0) +800004c8: 00853087 fld ft1,8(a0) +800004cc: 01053107 fld ft2,16(a0) +800004d0: 01852683 lw a3,24(a0) +800004d4: 01c52303 lw t1,28(a0) +800004d8: 2a1011d3 fmax.d ft3,ft0,ft1 +800004dc: 00353027 fsd ft3,0(a0) +800004e0: 00452383 lw t2,4(a0) +800004e4: 00052503 lw a0,0(a0) +800004e8: 001015f3 fsflags a1,zero +800004ec: 01000613 li a2,16 +800004f0: 16d51263 bne a0,a3,80000654 +800004f4: 16731063 bne t1,t2,80000654 +800004f8: 14c59e63 bne a1,a2,80000654 + +800004fc : +800004fc: 01500193 li gp,21 +80000500: 00002517 auipc a0,0x2 +80000504: ca050513 addi a0,a0,-864 # 800021a0 +80000508: 00053007 fld ft0,0(a0) +8000050c: 00853087 fld ft1,8(a0) +80000510: 01053107 fld ft2,16(a0) +80000514: 01852683 lw a3,24(a0) +80000518: 01c52303 lw t1,28(a0) +8000051c: 2a1011d3 fmax.d ft3,ft0,ft1 +80000520: 00353027 fsd ft3,0(a0) +80000524: 00452383 lw t2,4(a0) +80000528: 00052503 lw a0,0(a0) +8000052c: 001015f3 fsflags a1,zero +80000530: 00000613 li a2,0 +80000534: 12d51063 bne a0,a3,80000654 +80000538: 10731e63 bne t1,t2,80000654 +8000053c: 10c59c63 bne a1,a2,80000654 + +80000540 : +80000540: 01e00193 li gp,30 +80000544: 00002517 auipc a0,0x2 +80000548: c7c50513 addi a0,a0,-900 # 800021c0 +8000054c: 00053007 fld ft0,0(a0) +80000550: 00853087 fld ft1,8(a0) +80000554: 01053107 fld ft2,16(a0) +80000558: 01852683 lw a3,24(a0) +8000055c: 01c52303 lw t1,28(a0) +80000560: 2a1001d3 fmin.d ft3,ft0,ft1 +80000564: 00353027 fsd ft3,0(a0) +80000568: 00452383 lw t2,4(a0) +8000056c: 00052503 lw a0,0(a0) +80000570: 001015f3 fsflags a1,zero +80000574: 00000613 li a2,0 +80000578: 0cd51e63 bne a0,a3,80000654 +8000057c: 0c731c63 bne t1,t2,80000654 +80000580: 0cc59a63 bne a1,a2,80000654 + +80000584 : +80000584: 01f00193 li gp,31 +80000588: 00002517 auipc a0,0x2 +8000058c: c5850513 addi a0,a0,-936 # 800021e0 +80000590: 00053007 fld ft0,0(a0) +80000594: 00853087 fld ft1,8(a0) +80000598: 01053107 fld ft2,16(a0) +8000059c: 01852683 lw a3,24(a0) +800005a0: 01c52303 lw t1,28(a0) +800005a4: 2a1001d3 fmin.d ft3,ft0,ft1 +800005a8: 00353027 fsd ft3,0(a0) +800005ac: 00452383 lw t2,4(a0) +800005b0: 00052503 lw a0,0(a0) +800005b4: 001015f3 fsflags a1,zero +800005b8: 00000613 li a2,0 +800005bc: 08d51c63 bne a0,a3,80000654 +800005c0: 08731a63 bne t1,t2,80000654 +800005c4: 08c59863 bne a1,a2,80000654 + +800005c8 : +800005c8: 02000193 li gp,32 +800005cc: 00002517 auipc a0,0x2 +800005d0: c3450513 addi a0,a0,-972 # 80002200 +800005d4: 00053007 fld ft0,0(a0) +800005d8: 00853087 fld ft1,8(a0) +800005dc: 01053107 fld ft2,16(a0) +800005e0: 01852683 lw a3,24(a0) +800005e4: 01c52303 lw t1,28(a0) +800005e8: 2a1011d3 fmax.d ft3,ft0,ft1 +800005ec: 00353027 fsd ft3,0(a0) +800005f0: 00452383 lw t2,4(a0) +800005f4: 00052503 lw a0,0(a0) +800005f8: 001015f3 fsflags a1,zero +800005fc: 00000613 li a2,0 +80000600: 04d51a63 bne a0,a3,80000654 +80000604: 04731863 bne t1,t2,80000654 +80000608: 04c59663 bne a1,a2,80000654 + +8000060c : +8000060c: 02100193 li gp,33 +80000610: 00002517 auipc a0,0x2 +80000614: c1050513 addi a0,a0,-1008 # 80002220 +80000618: 00053007 fld ft0,0(a0) +8000061c: 00853087 fld ft1,8(a0) +80000620: 01053107 fld ft2,16(a0) +80000624: 01852683 lw a3,24(a0) +80000628: 01c52303 lw t1,28(a0) +8000062c: 2a1011d3 fmax.d ft3,ft0,ft1 +80000630: 00353027 fsd ft3,0(a0) +80000634: 00452383 lw t2,4(a0) +80000638: 00052503 lw a0,0(a0) +8000063c: 001015f3 fsflags a1,zero +80000640: 00000613 li a2,0 +80000644: 00d51863 bne a0,a3,80000654 +80000648: 00731663 bne t1,t2,80000654 +8000064c: 00c59463 bne a1,a2,80000654 +80000650: 02301063 bne zero,gp,80000670 + +80000654 : +80000654: 0ff0000f fence +80000658: 00018063 beqz gp,80000658 +8000065c: 00119193 slli gp,gp,0x1 +80000660: 0011e193 ori gp,gp,1 +80000664: 05d00893 li a7,93 +80000668: 00018513 mv a0,gp +8000066c: 00000073 ecall + +80000670 : +80000670: 0ff0000f fence +80000674: 00100193 li gp,1 +80000678: 05d00893 li a7,93 +8000067c: 00000513 li a0,0 +80000680: 00000073 ecall +80000684: c0001073 unimp +80000688: 0000 unimp +8000068a: 0000 unimp +8000068c: 0000 unimp +8000068e: 0000 unimp +80000690: 0000 unimp +80000692: 0000 unimp +80000694: 0000 unimp +80000696: 0000 unimp +80000698: 0000 unimp +8000069a: 0000 unimp +8000069c: 0000 unimp +8000069e: 0000 unimp +800006a0: 0000 unimp +800006a2: 0000 unimp +800006a4: 0000 unimp +800006a6: 0000 unimp +800006a8: 0000 unimp +800006aa: 0000 unimp +800006ac: 0000 unimp +800006ae: 0000 unimp +800006b0: 0000 unimp +800006b2: 0000 unimp +800006b4: 0000 unimp +800006b6: 0000 unimp +800006b8: 0000 unimp +800006ba: 0000 unimp +800006bc: 0000 unimp +800006be: 0000 unimp +800006c0: 0000 unimp +800006c2: 0000 unimp + +Disassembly of section .data: + +80002000 : +80002000: 0000 unimp +80002002: 0000 unimp +80002004: 0000 unimp +80002006: 4004 lw s1,0(s0) +80002008: 0000 unimp +8000200a: 0000 unimp +8000200c: 0000 unimp +8000200e: 3ff0 fld fa2,248(a5) +80002010: 0000 unimp +80002012: 0000 unimp +80002014: 0000 unimp +80002016: 0000 unimp +80002018: 0000 unimp +8000201a: 0000 unimp +8000201c: 0000 unimp +8000201e: 3ff0 fld fa2,248(a5) + +80002020 : +80002020: 6666 flw fa2,88(sp) +80002022: 6666 flw fa2,88(sp) +80002024: 4c66 lw s8,88(sp) +80002026: 999ac093 xori ra,s5,-1639 +8000202a: 9999 andi a1,a1,-26 +8000202c: 9999 andi a1,a1,-26 +8000202e: 3ff1 jal 8000200a +80002030: 0000 unimp +80002032: 0000 unimp +80002034: 0000 unimp +80002036: 0000 unimp +80002038: 6666 flw fa2,88(sp) +8000203a: 6666 flw fa2,88(sp) +8000203c: 4c66 lw s8,88(sp) +8000203e: xori ra,s5,-1639 + +80002040 : +80002040: 999a add s3,s3,t1 +80002042: 9999 andi a1,a1,-26 +80002044: 9999 andi a1,a1,-26 +80002046: 3ff1 jal 80002022 +80002048: 6666 flw fa2,88(sp) +8000204a: 6666 flw fa2,88(sp) +8000204c: 4c66 lw s8,88(sp) +8000204e: 0000c093 xori ra,ra,0 +80002052: 0000 unimp +80002054: 0000 unimp +80002056: 0000 unimp +80002058: 6666 flw fa2,88(sp) +8000205a: 6666 flw fa2,88(sp) +8000205c: 4c66 lw s8,88(sp) +8000205e: not ra,t6 + +80002060 : +80002060: ffff 0xffff +80002062: ffff 0xffff +80002064: ffff 0xffff +80002066: 7fff 0x7fff +80002068: 6666 flw fa2,88(sp) +8000206a: 6666 flw fa2,88(sp) +8000206c: 4c66 lw s8,88(sp) +8000206e: 0000c093 xori ra,ra,0 +80002072: 0000 unimp +80002074: 0000 unimp +80002076: 0000 unimp +80002078: 6666 flw fa2,88(sp) +8000207a: 6666 flw fa2,88(sp) +8000207c: 4c66 lw s8,88(sp) +8000207e: xori ra,gp,-689 + +80002080 : +80002080: d4f1 beqz s1,8000204c +80002082: 53c8 lw a0,36(a5) +80002084: 400921fb 0x400921fb +80002088: 8c3a mv s8,a4 +8000208a: e230 fsw fa2,64(a2) +8000208c: 798e flw fs3,224(sp) +8000208e: 3e45 jal 80001c3e +80002090: 0000 unimp +80002092: 0000 unimp +80002094: 0000 unimp +80002096: 0000 unimp +80002098: 8c3a mv s8,a4 +8000209a: e230 fsw fa2,64(a2) +8000209c: 798e flw fs3,224(sp) +8000209e: 3e45 jal 80001c4e + +800020a0 : +800020a0: 0000 unimp +800020a2: 0000 unimp +800020a4: 0000 unimp +800020a6: bff0 fsd fa2,248(a5) +800020a8: 0000 unimp +800020aa: 0000 unimp +800020ac: 0000 unimp +800020ae: c000 sw s0,0(s0) +800020b0: 0000 unimp +800020b2: 0000 unimp +800020b4: 0000 unimp +800020b6: 0000 unimp +800020b8: 0000 unimp +800020ba: 0000 unimp +800020bc: 0000 unimp +800020be: c000 sw s0,0(s0) + +800020c0 : +800020c0: 0000 unimp +800020c2: 0000 unimp +800020c4: 0000 unimp +800020c6: 4004 lw s1,0(s0) +800020c8: 0000 unimp +800020ca: 0000 unimp +800020cc: 0000 unimp +800020ce: 3ff0 fld fa2,248(a5) +800020d0: 0000 unimp +800020d2: 0000 unimp +800020d4: 0000 unimp +800020d6: 0000 unimp +800020d8: 0000 unimp +800020da: 0000 unimp +800020dc: 0000 unimp +800020de: 4004 lw s1,0(s0) + +800020e0 : +800020e0: 6666 flw fa2,88(sp) +800020e2: 6666 flw fa2,88(sp) +800020e4: 4c66 lw s8,88(sp) +800020e6: 999ac093 xori ra,s5,-1639 +800020ea: 9999 andi a1,a1,-26 +800020ec: 9999 andi a1,a1,-26 +800020ee: 3ff1 jal 800020ca +800020f0: 0000 unimp +800020f2: 0000 unimp +800020f4: 0000 unimp +800020f6: 0000 unimp +800020f8: 999a add s3,s3,t1 +800020fa: 9999 andi a1,a1,-26 +800020fc: 9999 andi a1,a1,-26 +800020fe: 3ff1 jal 800020da + +80002100 : +80002100: 999a add s3,s3,t1 +80002102: 9999 andi a1,a1,-26 +80002104: 9999 andi a1,a1,-26 +80002106: 3ff1 jal 800020e2 +80002108: 6666 flw fa2,88(sp) +8000210a: 6666 flw fa2,88(sp) +8000210c: 4c66 lw s8,88(sp) +8000210e: 0000c093 xori ra,ra,0 +80002112: 0000 unimp +80002114: 0000 unimp +80002116: 0000 unimp +80002118: 999a add s3,s3,t1 +8000211a: 9999 andi a1,a1,-26 +8000211c: 9999 andi a1,a1,-26 +8000211e: 3ff1 jal 800020fa + +80002120 : +80002120: ffff 0xffff +80002122: ffff 0xffff +80002124: ffff 0xffff +80002126: 7fff 0x7fff +80002128: 6666 flw fa2,88(sp) +8000212a: 6666 flw fa2,88(sp) +8000212c: 4c66 lw s8,88(sp) +8000212e: 0000c093 xori ra,ra,0 +80002132: 0000 unimp +80002134: 0000 unimp +80002136: 0000 unimp +80002138: 6666 flw fa2,88(sp) +8000213a: 6666 flw fa2,88(sp) +8000213c: 4c66 lw s8,88(sp) +8000213e: xori ra,gp,-689 + +80002140 : +80002140: d4f1 beqz s1,8000210c +80002142: 53c8 lw a0,36(a5) +80002144: 400921fb 0x400921fb +80002148: 8c3a mv s8,a4 +8000214a: e230 fsw fa2,64(a2) +8000214c: 798e flw fs3,224(sp) +8000214e: 3e45 jal 80001cfe +80002150: 0000 unimp +80002152: 0000 unimp +80002154: 0000 unimp +80002156: 0000 unimp +80002158: d4f1 beqz s1,80002124 +8000215a: 53c8 lw a0,36(a5) +8000215c: 400921fb 0x400921fb + +80002160 : +80002160: 0000 unimp +80002162: 0000 unimp +80002164: 0000 unimp +80002166: bff0 fsd fa2,248(a5) +80002168: 0000 unimp +8000216a: 0000 unimp +8000216c: 0000 unimp +8000216e: c000 sw s0,0(s0) +80002170: 0000 unimp +80002172: 0000 unimp +80002174: 0000 unimp +80002176: 0000 unimp +80002178: 0000 unimp +8000217a: 0000 unimp +8000217c: 0000 unimp +8000217e: bff0 fsd fa2,248(a5) + +80002180 : +80002180: 0001 nop +80002182: 0000 unimp +80002184: 0000 unimp +80002186: 7ff0 flw fa2,124(a5) +80002188: 0000 unimp +8000218a: 0000 unimp +8000218c: 0000 unimp +8000218e: 3ff0 fld fa2,248(a5) +80002190: 0000 unimp +80002192: 0000 unimp +80002194: 0000 unimp +80002196: 0000 unimp +80002198: 0000 unimp +8000219a: 0000 unimp +8000219c: 0000 unimp +8000219e: 3ff0 fld fa2,248(a5) + +800021a0 : +800021a0: ffff 0xffff +800021a2: ffff 0xffff +800021a4: ffff 0xffff +800021a6: 7fff 0x7fff +800021a8: ffff 0xffff +800021aa: ffff 0xffff +800021ac: ffff 0xffff +800021ae: 7fff 0x7fff +800021b0: 0000 unimp +800021b2: 0000 unimp +800021b4: 0000 unimp +800021b6: 0000 unimp +800021b8: 0000 unimp +800021ba: 0000 unimp +800021bc: 0000 unimp +800021be: 7ff8 flw fa4,124(a5) + +800021c0 : +800021c0: 0000 unimp +800021c2: 0000 unimp +800021c4: 0000 unimp +800021c6: 8000 0x8000 +800021c8: 0000 unimp +800021ca: 0000 unimp +800021cc: 0000 unimp +800021ce: 0000 unimp +800021d0: 0000 unimp +800021d2: 0000 unimp +800021d4: 0000 unimp +800021d6: 0000 unimp +800021d8: 0000 unimp +800021da: 0000 unimp +800021dc: 0000 unimp +800021de: 8000 0x8000 + +800021e0 : +800021e0: 0000 unimp +800021e2: 0000 unimp +800021e4: 0000 unimp +800021e6: 0000 unimp +800021e8: 0000 unimp +800021ea: 0000 unimp +800021ec: 0000 unimp +800021ee: 8000 0x8000 +800021f0: 0000 unimp +800021f2: 0000 unimp +800021f4: 0000 unimp +800021f6: 0000 unimp +800021f8: 0000 unimp +800021fa: 0000 unimp +800021fc: 0000 unimp +800021fe: 8000 0x8000 + +80002200 : +80002200: 0000 unimp +80002202: 0000 unimp +80002204: 0000 unimp +80002206: 8000 0x8000 +80002208: 0000 unimp +8000220a: 0000 unimp +8000220c: 0000 unimp +8000220e: 0000 unimp +80002210: 0000 unimp +80002212: 0000 unimp +80002214: 0000 unimp +80002216: 0000 unimp +80002218: 0000 unimp +8000221a: 0000 unimp +8000221c: 0000 unimp +8000221e: 0000 unimp + +80002220 : +80002220: 0000 unimp +80002222: 0000 unimp +80002224: 0000 unimp +80002226: 0000 unimp +80002228: 0000 unimp +8000222a: 0000 unimp +8000222c: 0000 unimp +8000222e: 8000 0x8000 +80002230: 0000 unimp +80002232: 0000 unimp +80002234: 0000 unimp +80002236: 0000 unimp +80002238: 0000 unimp +8000223a: 0000 unimp +8000223c: 0000 unimp +8000223e: 0000 unimp diff --git a/src/test/resources/asm/rv32ud-p-ldst.dump b/src/test/resources/asm/rv32ud-p-ldst.dump new file mode 100644 index 0000000..d17d1b6 --- /dev/null +++ b/src/test/resources/asm/rv32ud-p-ldst.dump @@ -0,0 +1,267 @@ + +rv32ud-p-ldst: file format elf32-littleriscv + + +Disassembly of section .text.init: + +80000000 <_start>: +80000000: 04c0006f j 8000004c + +80000004 : +80000004: 34202f73 csrr t5,mcause +80000008: 00800f93 li t6,8 +8000000c: 03ff0a63 beq t5,t6,80000040 +80000010: 00900f93 li t6,9 +80000014: 03ff0663 beq t5,t6,80000040 +80000018: 00b00f93 li t6,11 +8000001c: 03ff0263 beq t5,t6,80000040 +80000020: 80000f17 auipc t5,0x80000 +80000024: fe0f0f13 addi t5,t5,-32 # 0 <_start-0x80000000> +80000028: 000f0463 beqz t5,80000030 +8000002c: 000f0067 jr t5 +80000030: 34202f73 csrr t5,mcause +80000034: 000f5463 bgez t5,8000003c +80000038: 0040006f j 8000003c + +8000003c : +8000003c: 5391e193 ori gp,gp,1337 + +80000040 : +80000040: 00001f17 auipc t5,0x1 +80000044: fc3f2023 sw gp,-64(t5) # 80001000 +80000048: ff9ff06f j 80000040 + +8000004c : +8000004c: 00000093 li ra,0 +80000050: 00000113 li sp,0 +80000054: 00000193 li gp,0 +80000058: 00000213 li tp,0 +8000005c: 00000293 li t0,0 +80000060: 00000313 li t1,0 +80000064: 00000393 li t2,0 +80000068: 00000413 li s0,0 +8000006c: 00000493 li s1,0 +80000070: 00000513 li a0,0 +80000074: 00000593 li a1,0 +80000078: 00000613 li a2,0 +8000007c: 00000693 li a3,0 +80000080: 00000713 li a4,0 +80000084: 00000793 li a5,0 +80000088: 00000813 li a6,0 +8000008c: 00000893 li a7,0 +80000090: 00000913 li s2,0 +80000094: 00000993 li s3,0 +80000098: 00000a13 li s4,0 +8000009c: 00000a93 li s5,0 +800000a0: 00000b13 li s6,0 +800000a4: 00000b93 li s7,0 +800000a8: 00000c13 li s8,0 +800000ac: 00000c93 li s9,0 +800000b0: 00000d13 li s10,0 +800000b4: 00000d93 li s11,0 +800000b8: 00000e13 li t3,0 +800000bc: 00000e93 li t4,0 +800000c0: 00000f13 li t5,0 +800000c4: 00000f93 li t6,0 +800000c8: f1402573 csrr a0,mhartid +800000cc: 00051063 bnez a0,800000cc +800000d0: 00000297 auipc t0,0x0 +800000d4: 01028293 addi t0,t0,16 # 800000e0 +800000d8: 30529073 csrw mtvec,t0 +800000dc: 18005073 csrwi satp,0 +800000e0: 00000297 auipc t0,0x0 +800000e4: 02028293 addi t0,t0,32 # 80000100 +800000e8: 30529073 csrw mtvec,t0 +800000ec: 800002b7 lui t0,0x80000 +800000f0: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdfaf> +800000f4: 3b029073 csrw pmpaddr0,t0 +800000f8: 01f00293 li t0,31 +800000fc: 3a029073 csrw pmpcfg0,t0 +80000100: 30405073 csrwi mie,0 +80000104: 00000297 auipc t0,0x0 +80000108: 01428293 addi t0,t0,20 # 80000118 +8000010c: 30529073 csrw mtvec,t0 +80000110: 30205073 csrwi medeleg,0 +80000114: 30305073 csrwi mideleg,0 +80000118: 00000193 li gp,0 +8000011c: 00000297 auipc t0,0x0 +80000120: ee828293 addi t0,t0,-280 # 80000004 +80000124: 30529073 csrw mtvec,t0 +80000128: 00100513 li a0,1 +8000012c: 01f51513 slli a0,a0,0x1f +80000130: 00054c63 bltz a0,80000148 +80000134: 0ff0000f fence +80000138: 00100193 li gp,1 +8000013c: 05d00893 li a7,93 +80000140: 00000513 li a0,0 +80000144: 00000073 ecall +80000148: 80000297 auipc t0,0x80000 +8000014c: eb828293 addi t0,t0,-328 # 0 <_start-0x80000000> +80000150: 00028a63 beqz t0,80000164 +80000154: 10529073 csrw stvec,t0 +80000158: 0000b2b7 lui t0,0xb +8000015c: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7> +80000160: 30229073 csrw medeleg,t0 +80000164: 30005073 csrwi mstatus,0 +80000168: 00002537 lui a0,0x2 +8000016c: 30052073 csrs mstatus,a0 +80000170: 00305073 csrwi fcsr,0 +80000174: 00000297 auipc t0,0x0 +80000178: 01428293 addi t0,t0,20 # 80000188 +8000017c: 34129073 csrw mepc,t0 +80000180: f1402573 csrr a0,mhartid +80000184: 30200073 mret +80000188: 00002417 auipc s0,0x2 +8000018c: ea840413 addi s0,s0,-344 # 80002030 + +80000190 : +80000190: 00043107 fld ft2,0(s0) +80000194: 00243827 fsd ft2,16(s0) +80000198: 01042503 lw a0,16(s0) +8000019c: 01442583 lw a1,20(s0) +800001a0: 00002797 auipc a5,0x2 +800001a4: e6078793 addi a5,a5,-416 # 80002000 +800001a8: 0007a383 lw t2,0(a5) +800001ac: 0047a783 lw a5,4(a5) +800001b0: 00200193 li gp,2 +800001b4: 0a751e63 bne a0,t2,80000270 +800001b8: 0af59c63 bne a1,a5,80000270 + +800001bc : +800001bc: 00043107 fld ft2,0(s0) +800001c0: 00242827 fsw ft2,16(s0) +800001c4: 01042503 lw a0,16(s0) +800001c8: 01442583 lw a1,20(s0) +800001cc: 00002797 auipc a5,0x2 +800001d0: e3c78793 addi a5,a5,-452 # 80002008 +800001d4: 0007a383 lw t2,0(a5) +800001d8: 0047a783 lw a5,4(a5) +800001dc: 00300193 li gp,3 +800001e0: 08751863 bne a0,t2,80000270 +800001e4: 08f59663 bne a1,a5,80000270 + +800001e8 : +800001e8: 00042107 flw ft2,0(s0) +800001ec: 00242827 fsw ft2,16(s0) +800001f0: 01042503 lw a0,16(s0) +800001f4: 01442583 lw a1,20(s0) +800001f8: 00002797 auipc a5,0x2 +800001fc: e1878793 addi a5,a5,-488 # 80002010 +80000200: 0007a383 lw t2,0(a5) +80000204: 0047a783 lw a5,4(a5) +80000208: 00400193 li gp,4 +8000020c: 06751263 bne a0,t2,80000270 +80000210: 06f59063 bne a1,a5,80000270 + +80000214 : +80000214: 00843107 fld ft2,8(s0) +80000218: 00243827 fsd ft2,16(s0) +8000021c: 01042503 lw a0,16(s0) +80000220: 01442583 lw a1,20(s0) +80000224: 00002797 auipc a5,0x2 +80000228: df478793 addi a5,a5,-524 # 80002018 +8000022c: 0007a383 lw t2,0(a5) +80000230: 0047a783 lw a5,4(a5) +80000234: 00500193 li gp,5 +80000238: 02751c63 bne a0,t2,80000270 +8000023c: 02f59a63 bne a1,a5,80000270 + +80000240 : +80000240: 00842107 flw ft2,8(s0) +80000244: 00243827 fsd ft2,16(s0) +80000248: 01042503 lw a0,16(s0) +8000024c: 01442583 lw a1,20(s0) +80000250: 00002797 auipc a5,0x2 +80000254: dd078793 addi a5,a5,-560 # 80002020 +80000258: 0007a383 lw t2,0(a5) +8000025c: 0047a783 lw a5,4(a5) +80000260: 00600193 li gp,6 +80000264: 00751663 bne a0,t2,80000270 +80000268: 00f59463 bne a1,a5,80000270 +8000026c: 02301063 bne zero,gp,8000028c + +80000270 : +80000270: 0ff0000f fence +80000274: 00018063 beqz gp,80000274 +80000278: 00119193 slli gp,gp,0x1 +8000027c: 0011e193 ori gp,gp,1 +80000280: 05d00893 li a7,93 +80000284: 00018513 mv a0,gp +80000288: 00000073 ecall + +8000028c : +8000028c: 0ff0000f fence +80000290: 00100193 li gp,1 +80000294: 05d00893 li a7,93 +80000298: 00000513 li a0,0 +8000029c: 00000073 ecall +800002a0: c0001073 unimp +800002a4: 0000 unimp +800002a6: 0000 unimp +800002a8: 0000 unimp +800002aa: 0000 unimp +800002ac: 0000 unimp +800002ae: 0000 unimp +800002b0: 0000 unimp +800002b2: 0000 unimp +800002b4: 0000 unimp +800002b6: 0000 unimp +800002b8: 0000 unimp +800002ba: 0000 unimp +800002bc: 0000 unimp +800002be: 0000 unimp +800002c0: 0000 unimp +800002c2: 0000 unimp + +Disassembly of section .data: + +80002000 : +80002000: 0000 unimp +80002002: bf80 fsd fs0,56(a5) +80002004: 0000 unimp +80002006: 4000 lw s0,0(s0) + +80002008 : +80002008: 0000 unimp +8000200a: bf80 fsd fs0,56(a5) +8000200c: 0000 unimp +8000200e: 4000 lw s0,0(s0) + +80002010 : +80002010: 0000 unimp +80002012: bf80 fsd fs0,56(a5) +80002014: 0000 unimp +80002016: 4000 lw s0,0(s0) + +80002018 : +80002018: 0000 unimp +8000201a: 4040 lw s0,4(s0) +8000201c: 0000 unimp +8000201e: c080 sw s0,0(s1) + +80002020 : +80002020: 0000 unimp +80002022: 4040 lw s0,4(s0) +80002024: ffff 0xffff +80002026: ffff 0xffff +80002028: 0000 unimp +8000202a: 0000 unimp +8000202c: 0000 unimp +8000202e: 0000 unimp + +80002030 : +80002030: 0000 unimp +80002032: bf80 fsd fs0,56(a5) +80002034: 0000 unimp +80002036: 4000 lw s0,0(s0) +80002038: 0000 unimp +8000203a: 4040 lw s0,4(s0) +8000203c: 0000 unimp +8000203e: c080 sw s0,0(s1) +80002040: deadbeef jal t4,7ffdd62a <_start-0x229d6> +80002044: babe fsd fa5,368(sp) +80002046: cafe sw t6,84(sp) +80002048: 1dea slli s11,s11,0x3a +8000204a: abad j 800025c4 <_end+0x574> +8000204c: d00d beqz s0,80001f6e +8000204e: lui t1,0x1 diff --git a/src/test/resources/asm/rv32ud-p-recoding.dump b/src/test/resources/asm/rv32ud-p-recoding.dump new file mode 100644 index 0000000..1136439 --- /dev/null +++ b/src/test/resources/asm/rv32ud-p-recoding.dump @@ -0,0 +1,190 @@ + +rv32ud-p-recoding: file format elf32-littleriscv + + +Disassembly of section .text.init: + +80000000 <_start>: +80000000: 04c0006f j 8000004c + +80000004 : +80000004: 34202f73 csrr t5,mcause +80000008: 00800f93 li t6,8 +8000000c: 03ff0a63 beq t5,t6,80000040 +80000010: 00900f93 li t6,9 +80000014: 03ff0663 beq t5,t6,80000040 +80000018: 00b00f93 li t6,11 +8000001c: 03ff0263 beq t5,t6,80000040 +80000020: 80000f17 auipc t5,0x80000 +80000024: fe0f0f13 addi t5,t5,-32 # 0 <_start-0x80000000> +80000028: 000f0463 beqz t5,80000030 +8000002c: 000f0067 jr t5 +80000030: 34202f73 csrr t5,mcause +80000034: 000f5463 bgez t5,8000003c +80000038: 0040006f j 8000003c + +8000003c : +8000003c: 5391e193 ori gp,gp,1337 + +80000040 : +80000040: 00001f17 auipc t5,0x1 +80000044: fc3f2023 sw gp,-64(t5) # 80001000 +80000048: ff9ff06f j 80000040 + +8000004c : +8000004c: 00000093 li ra,0 +80000050: 00000113 li sp,0 +80000054: 00000193 li gp,0 +80000058: 00000213 li tp,0 +8000005c: 00000293 li t0,0 +80000060: 00000313 li t1,0 +80000064: 00000393 li t2,0 +80000068: 00000413 li s0,0 +8000006c: 00000493 li s1,0 +80000070: 00000513 li a0,0 +80000074: 00000593 li a1,0 +80000078: 00000613 li a2,0 +8000007c: 00000693 li a3,0 +80000080: 00000713 li a4,0 +80000084: 00000793 li a5,0 +80000088: 00000813 li a6,0 +8000008c: 00000893 li a7,0 +80000090: 00000913 li s2,0 +80000094: 00000993 li s3,0 +80000098: 00000a13 li s4,0 +8000009c: 00000a93 li s5,0 +800000a0: 00000b13 li s6,0 +800000a4: 00000b93 li s7,0 +800000a8: 00000c13 li s8,0 +800000ac: 00000c93 li s9,0 +800000b0: 00000d13 li s10,0 +800000b4: 00000d93 li s11,0 +800000b8: 00000e13 li t3,0 +800000bc: 00000e93 li t4,0 +800000c0: 00000f13 li t5,0 +800000c4: 00000f93 li t6,0 +800000c8: f1402573 csrr a0,mhartid +800000cc: 00051063 bnez a0,800000cc +800000d0: 00000297 auipc t0,0x0 +800000d4: 01028293 addi t0,t0,16 # 800000e0 +800000d8: 30529073 csrw mtvec,t0 +800000dc: 18005073 csrwi satp,0 +800000e0: 00000297 auipc t0,0x0 +800000e4: 02028293 addi t0,t0,32 # 80000100 +800000e8: 30529073 csrw mtvec,t0 +800000ec: 800002b7 lui t0,0x80000 +800000f0: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdfef> +800000f4: 3b029073 csrw pmpaddr0,t0 +800000f8: 01f00293 li t0,31 +800000fc: 3a029073 csrw pmpcfg0,t0 +80000100: 30405073 csrwi mie,0 +80000104: 00000297 auipc t0,0x0 +80000108: 01428293 addi t0,t0,20 # 80000118 +8000010c: 30529073 csrw mtvec,t0 +80000110: 30205073 csrwi medeleg,0 +80000114: 30305073 csrwi mideleg,0 +80000118: 00000193 li gp,0 +8000011c: 00000297 auipc t0,0x0 +80000120: ee828293 addi t0,t0,-280 # 80000004 +80000124: 30529073 csrw mtvec,t0 +80000128: 00100513 li a0,1 +8000012c: 01f51513 slli a0,a0,0x1f +80000130: 00054c63 bltz a0,80000148 +80000134: 0ff0000f fence +80000138: 00100193 li gp,1 +8000013c: 05d00893 li a7,93 +80000140: 00000513 li a0,0 +80000144: 00000073 ecall +80000148: 80000297 auipc t0,0x80000 +8000014c: eb828293 addi t0,t0,-328 # 0 <_start-0x80000000> +80000150: 00028a63 beqz t0,80000164 +80000154: 10529073 csrw stvec,t0 +80000158: 0000b2b7 lui t0,0xb +8000015c: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7> +80000160: 30229073 csrw medeleg,t0 +80000164: 30005073 csrwi mstatus,0 +80000168: 00002537 lui a0,0x2 +8000016c: 30052073 csrs mstatus,a0 +80000170: 00305073 csrwi fcsr,0 +80000174: 00000297 auipc t0,0x0 +80000178: 01428293 addi t0,t0,20 # 80000188 +8000017c: 34129073 csrw mepc,t0 +80000180: f1402573 csrr a0,mhartid +80000184: 30200073 mret +80000188: 00002517 auipc a0,0x2 +8000018c: e7852007 flw ft0,-392(a0) # 80002000 +80000190: 00002517 auipc a0,0x2 +80000194: e7452087 flw ft1,-396(a0) # 80002004 +80000198: 1000f0d3 fmul.s ft1,ft1,ft0 + +8000019c : +8000019c: a0102553 feq.s a0,ft0,ft1 +800001a0: 00100393 li t2,1 +800001a4: 00200193 li gp,2 +800001a8: 06751463 bne a0,t2,80000210 + +800001ac : +800001ac: a0100553 fle.s a0,ft0,ft1 +800001b0: 00100393 li t2,1 +800001b4: 00300193 li gp,3 +800001b8: 04751c63 bne a0,t2,80000210 + +800001bc : +800001bc: a0101553 flt.s a0,ft0,ft1 +800001c0: 00000393 li t2,0 +800001c4: 00400193 li gp,4 +800001c8: 04751463 bne a0,t2,80000210 +800001cc: d0007053 fcvt.s.w ft0,zero +800001d0: 00100513 li a0,1 +800001d4: d00570d3 fcvt.s.w ft1,a0 +800001d8: 1000f0d3 fmul.s ft1,ft1,ft0 + +800001dc : +800001dc: a0102553 feq.s a0,ft0,ft1 +800001e0: 00100393 li t2,1 +800001e4: 00500193 li gp,5 +800001e8: 02751463 bne a0,t2,80000210 + +800001ec : +800001ec: a0100553 fle.s a0,ft0,ft1 +800001f0: 00100393 li t2,1 +800001f4: 00600193 li gp,6 +800001f8: 00751c63 bne a0,t2,80000210 + +800001fc : +800001fc: a0101553 flt.s a0,ft0,ft1 +80000200: 00000393 li t2,0 +80000204: 00700193 li gp,7 +80000208: 00751463 bne a0,t2,80000210 +8000020c: 02301063 bne zero,gp,8000022c + +80000210 : +80000210: 0ff0000f fence +80000214: 00018063 beqz gp,80000214 +80000218: 00119193 slli gp,gp,0x1 +8000021c: 0011e193 ori gp,gp,1 +80000220: 05d00893 li a7,93 +80000224: 00018513 mv a0,gp +80000228: 00000073 ecall + +8000022c : +8000022c: 0ff0000f fence +80000230: 00100193 li gp,1 +80000234: 05d00893 li a7,93 +80000238: 00000513 li a0,0 +8000023c: 00000073 ecall +80000240: c0001073 unimp + +Disassembly of section .data: + +80002000 : +80002000: 0000 unimp +80002002: ff80 fsw fs0,56(a5) + +80002004 : +80002004: 0000 unimp +80002006: 4040 lw s0,4(s0) +80002008: 0000 unimp +8000200a: 0000 unimp +8000200c: 0000 unimp +8000200e: 0000 unimp diff --git a/src/test/resources/hex/rv32ud-p-fadd.hex b/src/test/resources/hex/rv32ud-p-fadd.hex new file mode 100755 index 0000000..af0e7c2 --- /dev/null +++ b/src/test/resources/hex/rv32ud-p-fadd.hex @@ -0,0 +1,101 @@ +:0200000480007A +:100000006F00C004732F2034930F8000630AFF0336 +:10001000930F90006306FF03930FB0006302FF038A +:10002000170F0080130F0FFE63040F0067000F000F +:10003000732F203463540F006F00400093E19153FD +:10004000171F000023203FFC6FF09FFF930000006C +:10005000130100009301000013020000930200004E +:100060001303000093030000130400009304000036 +:10007000130500009305000013060000930600001E +:100080001307000093070000130800009308000006 +:100090001309000093090000130A0000930A0000EE +:1000A000130B0000930B0000130C0000930C0000D6 +:1000B000130D0000930D0000130E0000930E0000BE +:1000C000130F0000930F0000732540F1631005002B +:1000D000970200009382020173905230735000180F +:1000E000970200009382020273905230B7020080A0 +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000634C05000F00F00F930110009308D005E9 +:10014000130500007300000097020080938282EB89 +:10015000638A020073905210B7B20000938292102B +:100160007390223073500030372500007320053023 +:100170007350300097020000938242017390123452 +:10018000732540F1730020309301200017250000F3 +:10019000130545E707300500873085000731050165 +:1001A000832685010323C501D37110022730350052 +:1001B0008323450003250500F315100013060000F6 +:1001C000631AD526631873266396C52693013000FB +:1001D00017250000130505E5073005008730850069 +:1001E00007310501832685010323C501D371100260 +:1001F000273035008323450003250500F315100043 +:10020000130610006318D522631673226394C52267 +:1002100093014000172500001305C5E207300500D3 +:100220008730850007310501832685010323C50139 +:10023000D3711002273035008323450003250500C4 +:10024000F3151000130610006316D51E6314731EF9 +:100250006392C51E9301500017250000130585E029 +:1002600007300500873085000731050183268501A9 +:100270000323C501D371100A2730350083234500BD +:1002800003250500F3151000130600006314D51AAA +:100290006312731A6390C51A93016000172500005A +:1002A000130545DE0730050087308500073105015D +:1002B000832685010323C501D371100A2730350039 +:1002C0008323450003250500F315100013061000D5 +:1002D0006312D51663107316639EC51493017000E4 +:1002E00017250000130505DC073005008730850061 +:1002F00007310501832685010323C501D371100A47 +:10030000273035008323450003250500F315100031 +:10031000130610006310D512631E7310639CC51082 +:1003200093018000172500001305C5D9073005008B +:100330008730850007310501832685010323C50128 +:10034000D3711012273035008323450003250500A3 +:10035000F315100013060000631ED50C631C730C0C +:10036000639AC50C9301900017250000130585D7EB +:100370000730050087308500073105018326850198 +:100380000323C501D37110122730350083234500A4 +:1003900003250500F315100013061000631CD50893 +:1003A000631A73086398C5089301A000172500001D +:1003B000130545D507300500873085000731050155 +:1003C000832685010323C501D37110122730350020 +:1003D0008323450003250500F315100013061000C4 +:1003E000631AD504631873046396C5049301B000BF +:1003F00017250000130505D3073005008730850059 +:1004000007310501832685010323C501D371100A35 +:10041000273035008323450003250500F315100020 +:10042000130600016318D500631673006394C500BA +:10043000631030020F00F00F6380010093911100F0 +:1004400093E111009308D0051385010073000000AB +:100450000F00F00F930110009308D0051305000062 +:1004600073000000731000C00000000000000000D6 +:10047000000000000000000000000000000000007C +:040480000000000078 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:102000000000000000000440000000000000F03F5D +:1020100000000000000000000000000000000C4074 +:1020200066666666664C93C09A9999999999F13F4C +:10203000000000000000000000000000004893C005 +:10204000F1D4C853FB2109403A8C30E28E79453EE9 +:102050000000000000000000DF6D2055FB2109405A +:102060000000000000000440000000000000F03FFD +:102070000000000000000000000000000000F83F29 +:1020800066666666664C93C09A9999999999F1BF6C +:10209000000000000000000000000000004893C0A5 +:1020A000F1D4C853FB2109403A8C30E28E79453E89 +:1020B0000000000000000000033C7152FB210940B9 +:1020C0000000000000000440000000000000F03F9D +:1020D00000000000000000000000000000000440BC +:1020E00066666666664C93C09A9999999999F1BF0C +:1020F00000000000000000003D0AD7A3703A9540A0 +:10210000F1D4C853FB2109403A8C30E28E79453E28 +:10211000000000000000000009FFC1A5C5DD603E11 +:10212000000000000000F07F000000000000F07FD1 +:102130000000000000000000000000000000F87F28 +:040000058000000077 +:00000001FF diff --git a/src/test/resources/hex/rv32ud-p-fclass.hex b/src/test/resources/hex/rv32ud-p-fclass.hex new file mode 100755 index 0000000..bd420da --- /dev/null +++ b/src/test/resources/hex/rv32ud-p-fclass.hex @@ -0,0 +1,62 @@ +:0200000480007A +:100000006F00C004732F2034930F8000630AFF0336 +:10001000930F90006306FF03930FB0006302FF038A +:10002000170F0080130F0FFE63040F0067000F000F +:10003000732F203463540F006F00400093E19153FD +:10004000171F000023203FFC6FF09FFF930000006C +:10005000130100009301000013020000930200004E +:100060001303000093030000130400009304000036 +:10007000130500009305000013060000930600001E +:100080001307000093070000130800009308000006 +:100090001309000093090000130A0000930A0000EE +:1000A000130B0000930B0000130C0000930C0000D6 +:1000B000130D0000930D0000130E0000930E0000BE +:1000C000130F0000930F0000732540F1631005002B +:1000D000970200009382020173905230735000180F +:1000E000970200009382020273905230B7020080A0 +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000634C05000F00F00F930110009308D005E9 +:10014000130500007300000097020080938282EB89 +:10015000638A020073905210B7B20000938292102B +:100160007390223073500030372500007320053023 +:100170007350300097020000938242017390123452 +:10018000732540F17300203017250000130585E723 +:1001900007350500531505E2930310009301200075 +:1001A0006312751017250000130545E60735050095 +:1001B000531505E293032000930130006314750E7C +:1001C00017250000130505E507350500531505E261 +:1001D00093034000930140006316750C172500003F +:1001E0001305C5E307350500531505E293038000A9 +:1001F000930150006318750A17250000130585E266 +:1002000007350500531505E29303000193016000D3 +:10021000631A750817250000130545E10735050029 +:10022000531505E29303000293017000631C7506E9 +:1002300017250000130505E007350500531505E2F5 +:100240009303000493018000631E750417250000CA +:100250001305C5DE07350500531505E293030008B5 +:10026000930190006310750417250000130585DDC8 +:1002700007350500531505E2930300109301A00014 +:100280006312750217250000130545DC07350500CC +:10029000531505E2930300209301B0006314750029 +:1002A000631030020F00F00F638001009391110082 +:1002B00093E111009308D00513850100730000003D +:1002C0000F00F00F930110009308D00513050000F4 +:1002D00073000000731000C0000000000000000068 +:1002E000000000000000000000000000000000000E +:1002F00000000000000000000000000000000000FE +:0403000000000000F9 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:10200000000000000000F0FF000000000000F0BF32 +:10201000FFFFFFFFFFFF0F800000000000000080B7 +:102020000000000000000000FFFFFFFFFFFF0F00A7 +:10203000000000000000F03F000000000000F07F02 +:10204000010000000000F07F000000000000F87FA9 +:040000058000000077 +:00000001FF diff --git a/src/test/resources/hex/rv32ud-p-fcmp.hex b/src/test/resources/hex/rv32ud-p-fcmp.hex new file mode 100755 index 0000000..1b0ec55 --- /dev/null +++ b/src/test/resources/hex/rv32ud-p-fcmp.hex @@ -0,0 +1,123 @@ +:0200000480007A +:100000006F00C004732F2034930F8000630AFF0336 +:10001000930F90006306FF03930FB0006302FF038A +:10002000170F0080130F0FFE63040F0067000F000F +:10003000732F203463540F006F00400093E19153FD +:10004000171F000023203FFC6FF09FFF930000006C +:10005000130100009301000013020000930200004E +:100060001303000093030000130400009304000036 +:10007000130500009305000013060000930600001E +:100080001307000093070000130800009308000006 +:100090001309000093090000130A0000930A0000EE +:1000A000130B0000930B0000130C0000930C0000D6 +:1000B000130D0000930D0000130E0000930E0000BE +:1000C000130F0000930F0000732540F1631005002B +:1000D000970200009382020173905230735000180F +:1000E000970200009382020273905230B7020080A0 +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000634C05000F00F00F930110009308D005E9 +:10014000130500007300000097020080938282EB89 +:10015000638A020073905210B7B20000938292102B +:100160007390223073500030372500007320053023 +:100170007350300097020000938242017390123452 +:10018000732540F1730020309301200017250000F3 +:10019000130545E707300500873085000731050165 +:1001A000832685010323C501532510A29303000074 +:1001B000F315100013060000631CD534631A733462 +:1001C0006398C5349301300017250000130585E5B9 +:1001D000073005008730850007310501832685013A +:1001E0000323C501530510A293030000F31510006B +:1001F00013060000631ED530631C7330639AC5304C +:1002000093014000172500001305C5E307300500E2 +:100210008730850007310501832685010323C50149 +:10022000531510A293030000F315100013060000ED +:100230006310D52E631E732C639CC52C9301500054 +:1002400017250000130505E20730050087308500FB +:1002500007310501832685010323C501532510A21B +:1002600093030000F3151000130600006312D52A53 +:100270006310732A639EC528930160001725000050 +:10028000130545E00730050087308500073105017B +:10029000832685010323C501530510A293030000A3 +:1002A000F3151000130600006314D526631273269D +:1002B0006390C5269301700017250000130585DEA5 +:1002C0000730050087308500073105018326850149 +:1002D0000323C501531510A293030000F31510006A +:1002E000130600006316D522631473226392C5229D +:1002F00093018000172500001305C5DC07300500B9 +:100300008730850007310501832685010323C50158 +:10031000532510A293030000F315100013060000EC +:100320006318D51E6316731E6394C51E9301900057 +:1003300017250000130505DB073005008730850011 +:1003400007310501832685010323C501532510A22A +:1003500093030000F315100013060000631AD51A6A +:100360006318731A6396C51A9301A000172500003D +:10037000130545D907300500873085000731050191 +:10038000832685010323C501532510A29303000092 +:10039000F315100013060001631CD516631A7316BB +:1003A0006398C5169301B00017250000130585D783 +:1003B0000730050087308500073105018326850158 +:1003C0000323C501531510A293030000F315100079 +:1003D00013060001631ED512631C7312639AC512C3 +:1003E0009301C000172500001305C5D5073005008F +:1003F0008730850007310501832685010323C50168 +:10040000531510A293030000F3151000130600010A +:100410006310D510631E730E639CC50E9301D0004C +:1004200017250000130505D4073005008730850027 +:1004300007310501832685010323C501531510A249 +:1004400093030000F3151000130600016312D50C8E +:100450006310730C639EC50A9301E000172500002A +:10046000130545D2073005008730850007310501A7 +:10047000832685010323C501530510A293030000C1 +:10048000F3151000130600016314D50863127308F6 +:100490006390C5089301F00017250000130585D06F +:1004A0000730050087308500073105018326850167 +:1004B0000323C501530510A293030000F315100098 +:1004C000130600016316D504631473046392C50414 +:1004D00093010001172500001305C5CE0730050064 +:1004E0008730850007310501832685010323C50177 +:1004F000530510A293030000F3151000130600012A +:100500006318D500631673006394C500631030024E +:100510000F00F00F638001009391110093E111002F +:100520009308D00513850100730000000F00F00F41 +:10053000930110009308D00513050000730000001C +:04054000731000C074 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:10200000C3F5285C8FC2F5BFC3F5285C8FC2F5BF4E +:1020100000000000000000000100000000000000BF +:10202000C3F5285C8FC2F5BFC3F5285C8FC2F5BF2E +:10203000000000000000000001000000000000009F +:10204000C3F5285C8FC2F5BFC3F5285C8FC2F5BF0E +:102050000000000000000000000000000000000080 +:10206000EC51B81E85EBF5BFC3F5285C8FC2F5BFF8 +:102070000000000000000000000000000000000060 +:10208000EC51B81E85EBF5BFC3F5285C8FC2F5BFD8 +:10209000000000000000000001000000000000003F +:1020A000EC51B81E85EBF5BFC3F5285C8FC2F5BFB8 +:1020B000000000000000000001000000000000001F +:1020C000FFFFFFFFFFFFFF7F000000000000000098 +:1020D0000000000000000000000000000000000000 +:1020E000FFFFFFFFFFFFFF7FFFFFFFFFFFFFFF7F00 +:1020F00000000000000000000000000000000000E0 +:10210000010000000000F07F00000000000000005F +:1021100000000000000000000000000000000000BF +:10212000FFFFFFFFFFFFFF7F000000000000000037 +:10213000000000000000000000000000000000009F +:10214000FFFFFFFFFFFFFF7FFFFFFFFFFFFFFF7F9F +:10215000000000000000000000000000000000007F +:10216000010000000000F07F0000000000000000FF +:10217000000000000000000000000000000000005F +:10218000FFFFFFFFFFFFFF7F0000000000000000D7 +:10219000000000000000000000000000000000003F +:1021A000FFFFFFFFFFFFFF7FFFFFFFFFFFFFFF7F3F +:1021B000000000000000000000000000000000001F +:1021C000010000000000F07F00000000000000009F +:1021D00000000000000000000000000000000000FF +:040000058000000077 +:00000001FF diff --git a/src/test/resources/hex/rv32ud-p-fcvt.hex b/src/test/resources/hex/rv32ud-p-fcvt.hex new file mode 100755 index 0000000..78064fa --- /dev/null +++ b/src/test/resources/hex/rv32ud-p-fcvt.hex @@ -0,0 +1,72 @@ +:0200000480007A +:100000006F00C004732F2034930F8000630AFF0336 +:10001000930F90006306FF03930FB0006302FF038A +:10002000170F0080130F0FFE63040F0067000F000F +:10003000732F203463540F006F00400093E19153FD +:10004000171F000023203FFC6FF09FFF930000006C +:10005000130100009301000013020000930200004E +:100060001303000093030000130400009304000036 +:10007000130500009305000013060000930600001E +:100080001307000093070000130800009308000006 +:100090001309000093090000130A0000930A0000EE +:1000A000130B0000930B0000130C0000930C0000D6 +:1000B000130D0000930D0000130E0000930E0000BE +:1000C000130F0000930F0000732540F1631005002B +:1000D000970200009382020173905230735000180F +:1000E000970200009382020273905230B7020080A0 +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000634C05000F00F00F930110009308D005E9 +:10014000130500007300000097020080938282EB89 +:10015000638A020073905210B7B20000938292102B +:100160007390223073500030372500007320053023 +:100170007350300097020000938242017390123452 +:10018000732540F1730020309301200017250000F3 +:10019000130545E783260500032745009305200046 +:1001A000538005D22730050083254500032505002F +:1001B000731010006312D5166390E516930130009A +:1001C00017250000130585E4832605000327450055 +:1001D0009305E0FF538005D22730050083254500B5 +:1001E00003250500731010006318D5126396E512FD +:1001F00093014000172500001305C5E18326050083 +:100200000327450093052000538015D227300500B1 +:10021000832545000325050073101000631ED50ECD +:10022000639CE50E9301500017250000130505DFC0 +:1002300083260500032745009305E0FF538015D270 +:1002400027300500832545000325050073101000A5 +:100250006314D50C6392E50C9301A00017250000F0 +:10026000130545DC0730050087308500073105019F +:10027000832685010323C501D3711040D381014238 +:10028000273035008323450003250500F3151000B2 +:10029000130600006312D50863107308639EC50639 +:1002A0009301B000172500001305C5D907200500EC +:1002B00087204500072185008326C500D301004221 +:1002C000D3F11140538501E0F3151000130600002F +:1002D0006314D5046392C50497250000938585D8DF +:1002E00007B10500537111405301014227B02500A9 +:1002F00003A5050083A5450097270000938787D5B0 +:1003000083A3070083A747009301C000631675000D +:100310006394F500631030020F00F00F638001005A +:100320009391110093E111009308D005138501000A +:10033000730000000F00F00F930110009308D00528 +:100340001305000073000000731000C000000000DF +:10035000000000000000000000000000000000009D +:10036000000000000000000000000000000000008D +:10037000000000000000000000000000000000007D +:040380000000000079 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:10200000000000000000004000000000000000C0D0 +:1020100000000000000000400000C0FFFFFFEF4193 +:10202000000000000000F8BF0000000000000000F9 +:102030000000000000000000000000000000F8BFE9 +:102040000000C0BF00000000000000000000C0BF92 +:10205000000000000000F87F000000000000000009 +:102060000480FFFFFFFFFC7F000000000000000075 +:040000058000000077 +:00000001FF diff --git a/src/test/resources/hex/rv32ud-p-fcvt_w.hex b/src/test/resources/hex/rv32ud-p-fcvt_w.hex new file mode 100755 index 0000000..f758858 --- /dev/null +++ b/src/test/resources/hex/rv32ud-p-fcvt_w.hex @@ -0,0 +1,120 @@ +:0200000480007A +:100000006F00C004732F2034930F8000630AFF0336 +:10001000930F90006306FF03930FB0006302FF038A +:10002000170F0080130F0FFE63040F0067000F000F +:10003000732F203463540F006F00400093E19153FD +:10004000171F000023203FFC6FF09FFF930000006C +:10005000130100009301000013020000930200004E +:100060001303000093030000130400009304000036 +:10007000130500009305000013060000930600001E +:100080001307000093070000130800009308000006 +:100090001309000093090000130A0000930A0000EE +:1000A000130B0000930B0000130C0000930C0000D6 +:1000B000130D0000930D0000130E0000930E0000BE +:1000C000130F0000930F0000732540F1631005002B +:1000D000970200009382020173905230735000180F +:1000E000970200009382020273905230B7020080A0 +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000634C05000F00F00F930110009308D005E9 +:10014000130500007300000097020080938282EB89 +:10015000638A020073905210B7B20000938292102B +:100160007390223073500030372500007320053023 +:100170007350300097020000938242017390123452 +:10018000732540F1730020309301200017250000F3 +:10019000130545E707200500872045000721850056 +:1001A0008326C500531500C0F31510001306100078 +:1001B0006314D53C6392C53C9301300017250000C1 +:1001C000130545E507200500872045000721850028 +:1001D0008326C500531500C0F31510001306000058 +:1001E000631CD538639AC538930140001725000079 +:1001F000130545E3072005008720450007218500FA +:100200008326C500531500C0F31510001306100017 +:100210006314D5366392C53693015000172500004C +:10022000130545E1072005008720450007218500CB +:100230008326C500531500C0F315100013061000E7 +:10024000631CD532639AC532930160001725000004 +:10025000130545DF0720050087204500072185009D +:100260008326C500531500C0F315100013060000C7 +:100270006314D5306392C5309301700017250000D8 +:10028000130545DD0720050087204500072185006F +:100290008326C500531500C0F31510001306100087 +:1002A000631CD52C639AC52C930180001725000090 +:1002B000130545DB07200500872045000721850041 +:1002C0008326C500531500C0F31510001306000166 +:1002D0006314D52A6392C52A930190001725000064 +:1002E000130545D907200500872045000721850013 +:1002F0008326C500531500C0F31510001306000136 +:10030000631CD526639AC5269301C00017250000FB +:10031000130545D7072005008720450007218500E4 +:100320008326C500531510C0F315100013060001F5 +:100330006314D5246392C5249301D00017250000CF +:10034000130545D5072005008720450007218500B6 +:100350008326C500531510C0F315100013060001C5 +:10036000631CD520639AC5209301E0001725000087 +:10037000130545D307200500872045000721850088 +:100380008326C500531510C0F31510001306100086 +:100390006314D51E6392C51E9301F000172500005B +:1003A000130545D10720050087204500072185005A +:1003B0008326C500531510C0F31510001306100056 +:1003C000631CD51A639AC51A930100011725000012 +:1003D000130545CF0720050087204500072185002C +:1003E0008326C500531510C0F31510001306000036 +:1003F0006314D5186392C5189301100117250000E6 +:10040000130545CD072005008720450007218500FD +:100410008326C500531510C0F315100013061000F5 +:10042000631CD514639AC51493012001172500009D +:10043000130545CB072005008720450007218500CF +:100440008326C500531510C0F315100013060001D4 +:100450006314D5126392C512930130011725000071 +:10046000130545C9072005008720450007218500A1 +:100470008326C500531510C0F315100013060000A5 +:10048000631CD50E639AC50E97200000938080C729 +:1004900087A00000D3F000C0B70300809383F3FF70 +:1004A0009301A002639A700C97200000938080C58E +:1004B00087A08000D3F000C0B70300809301C00282 +:1004C000639C700A972000009380C0C387A04000FF +:1004D000D3F000C0B70300809383F3FF9301400380 +:1004E000639C7008972000009380C0C187A0C00063 +:1004F000D3F000C0B70300809383F3FF9301600340 +:10050000639C7006972000009380C0BF87A0000006 +:10051000D3F010C09303F0FF9301E003639E7004D7 +:1005200097200000938000BE87A04000D3F010C049 +:100530009303F0FF9301F003639070049720000091 +:10054000938040BC87A08000D3F010C093030000CC +:10055000930100046392700297200000938080BA98 +:1005600087A0C000D3F010C09303F0FF93011004E4 +:1005700063947000631030020F00F00F638001007D +:100580009391110093E111009308D00513850100A8 +:10059000730000000F00F00F930110009308D005C6 +:1005A0001305000073000000731000C0000000007D +:1005B000000000000000000000000000000000003B +:0405C0000000000037 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:10200000CDCC8CBF0000000000000000FFFFFFFFF0 +:10201000000080BF0000000000000000FFFFFFFF85 +:10202000666666BF000000000000000000000000BF +:102030006666663F0000000000000000000000002F +:102040000000803F000000000000000001000000D0 +:10205000CDCC8C3F0000000000000000010000001B +:102060005ED032CF000000000000000000000080C1 +:102070005ED0324F0000000000000000FFFFFF7F35 +:10208000000040C000000000000000000000000050 +:10209000000080BF00000000000000000000000001 +:1020A000666666BF0000000000000000000000003F +:1020B0006666663F000000000000000000000000AF +:1020C0000000803F00000000000000000100000050 +:1020D000CDCC8C3F0000000000000000010000009B +:1020E0005ED032CF000000000000000000000000C1 +:1020F0005ED0324F0000000000000000005ED0B251 +:10210000FFFFFFFFFFFFFF7F000080FF0000807FD9 +:10211000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F4F +:10212000000000000000F0FF000000000000F07F51 +:040000058000000077 +:00000001FF diff --git a/src/test/resources/hex/rv32ud-p-fdiv.hex b/src/test/resources/hex/rv32ud-p-fdiv.hex new file mode 100755 index 0000000..c203f41 --- /dev/null +++ b/src/test/resources/hex/rv32ud-p-fdiv.hex @@ -0,0 +1,89 @@ +:0200000480007A +:100000006F00C004732F2034930F8000630AFF0336 +:10001000930F90006306FF03930FB0006302FF038A +:10002000170F0080130F0FFE63040F0067000F000F +:10003000732F203463540F006F00400093E19153FD +:10004000171F000023203FFC6FF09FFF930000006C +:10005000130100009301000013020000930200004E +:100060001303000093030000130400009304000036 +:10007000130500009305000013060000930600001E +:100080001307000093070000130800009308000006 +:100090001309000093090000130A0000930A0000EE +:1000A000130B0000930B0000130C0000930C0000D6 +:1000B000130D0000930D0000130E0000930E0000BE +:1000C000130F0000930F0000732540F1631005002B +:1000D000970200009382020173905230735000180F +:1000E000970200009382020273905230B7020080A0 +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000634C05000F00F00F930110009308D005E9 +:10014000130500007300000097020080938282EB89 +:10015000638A020073905210B7B20000938292102B +:100160007390223073500030372500007320053023 +:100170007350300097020000938242017390123452 +:10018000732540F1730020309301200017250000F3 +:10019000130545E707300500873085000731050165 +:1001A000832685010323C501D371101A273035003A +:1001B0008323450003250500F315100013061000E6 +:1001C0006316D51E6314731E6392C51E930130001F +:1001D00017250000130505E5073005008730850069 +:1001E00007310501832685010323C501D371101A48 +:1001F000273035008323450003250500F315100043 +:10020000130610006314D51A6312731A6390C51A8B +:1002100093014000172500001305C5E207300500D3 +:100220008730850007310501832685010323C50139 +:10023000D371101A273035008323450003250500AC +:10024000F3151000130600006312D5166310731621 +:10025000639EC5149301500017250000130585E027 +:1002600007300500873085000731050183268501A9 +:100270000323C501D371005A27303500832345007D +:1002800003250500F3151000130610006310D512A6 +:10029000631E7310639CC510930160001725000056 +:1002A000130545DE0730050087308500073105015D +:1002B000832685010323C501D371005A27303500F9 +:1002C0008323450003250500F315100013060000E5 +:1002D000631ED50C631C730C639AC50C930100015B +:1002E00017250000130505DC073005008730850061 +:1002F00007310501832685010323C501D371005A07 +:10030000273035008323450003250500F315100031 +:1003100013060001631CD508631A73086398C508A7 +:1003200093017000172500001305C5D9073005009B +:100330008730850007310501832685010323C50128 +:10034000D371005A2730350083234500032505006B +:10035000F315100013061000631AD5046318730414 +:100360006396C5049301800017250000130585D707 +:100370000730050087308500073105018326850198 +:100380000323C501D371005A27303500832345006C +:1003900003250500F3151000130610006318D5009F +:1003A000631673006394C500631030020F00F00FF2 +:1003B000638001009391110093E111009308D0052F +:1003C00013850100730000000F00F00F930110006F +:1003D0009308D0051305000073000000731000C0DF +:1003E000000000000000000000000000000000000D +:1003F00000000000000000000000000000000000FD +:0404000000000000F8 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:10200000F1D4C853FB210940DDB0F1890ABF054076 +:102010000000000000000000EC83C3F6DB7DF23F0F +:1020200000000000004893C066666666664C9340F8 +:102030000000000000000000A529193EB4F8EFBF21 +:10204000F1D4C853FB210940000000000000F03F1C +:102050000000000000000000F1D4C853FB2109403B +:10206000F1D4C853FB21094000000000000000002B +:1020700000000000000000007B586F91F85BFC3FFF +:10208000000000000088C3400000000000000000C5 +:1020900000000000000000000000000000005940A7 +:1020A000000000000000F0BF000000000000000081 +:1020B0000000000000000000000000000000F87FA9 +:1020C000000000000060654000000000000000000B +:1020D0000000000000000000F57496CE44272A405E +:1020E00005A10AC7DF94853E000000000000000043 +:1020F0000000000000000000997FE3C089473A3FDC +:040000058000000077 +:00000001FF diff --git a/src/test/resources/hex/rv32ud-p-fmadd.hex b/src/test/resources/hex/rv32ud-p-fmadd.hex new file mode 100755 index 0000000..7744209 --- /dev/null +++ b/src/test/resources/hex/rv32ud-p-fmadd.hex @@ -0,0 +1,113 @@ +:0200000480007A +:100000006F00C004732F2034930F8000630AFF0336 +:10001000930F90006306FF03930FB0006302FF038A +:10002000170F0080130F0FFE63040F0067000F000F +:10003000732F203463540F006F00400093E19153FD +:10004000171F000023203FFC6FF09FFF930000006C +:10005000130100009301000013020000930200004E +:100060001303000093030000130400009304000036 +:10007000130500009305000013060000930600001E +:100080001307000093070000130800009308000006 +:100090001309000093090000130A0000930A0000EE +:1000A000130B0000930B0000130C0000930C0000D6 +:1000B000130D0000930D0000130E0000930E0000BE +:1000C000130F0000930F0000732540F1631005002B +:1000D000970200009382020173905230735000180F +:1000E000970200009382020273905230B7020080A0 +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000634C05000F00F00F930110009308D005E9 +:10014000130500007300000097020080938282EB89 +:10015000638A020073905210B7B20000938292102B +:100160007390223073500030372500007320053023 +:100170007350300097020000938242017390123452 +:10018000732540F1730020309301200017250000F3 +:10019000130545E707300500873085000731050165 +:1001A000832685010323C501C37110122730350052 +:1001B0008323450003250500F315100013060000F6 +:1001C000631ED52E631C732E639AC52E93013000D7 +:1001D00017250000130505E5073005008730850069 +:1001E00007310501832685010323C501C371101260 +:1001F000273035008323450003250500F315100043 +:1002000013061000631CD52A631A732A6398C52A43 +:1002100093014000172500001305C5E207300500D3 +:100220008730850007310501832685010323C50139 +:10023000C3711012273035008323450003250500C4 +:10024000F315100013060000631AD52663187326F1 +:100250006396C5269301500017250000130585E01D +:1002600007300500873085000731050183268501A9 +:100270000323C501CF7110122730350083234500B9 +:1002800003250500F3151000130600006318D5229E +:10029000631673226394C522930160001725000042 +:1002A000130545DE0730050087308500073105015D +:1002B000832685010323C501CF7110122730350035 +:1002C0008323450003250500F315100013061000D5 +:1002D0006316D51E6314731E6392C51E93017000CE +:1002E00017250000130505DC073005008730850061 +:1002F00007310501832685010323C501CF71101243 +:10030000273035008323450003250500F315100031 +:10031000130600006314D51A6312731A6390C51A8A +:1003200093018000172500001305C5D9073005008B +:100330008730850007310501832685010323C50128 +:10034000C7711012273035008323450003250500AF +:10035000F3151000130600006312D5166310731610 +:10036000639EC5149301900017250000130585D7DF +:100370000730050087308500073105018326850198 +:100380000323C501C77110122730350083234500B0 +:1003900003250500F3151000130610006310D51295 +:1003A000631E7310639CC5109301A0001725000005 +:1003B000130545D507300500873085000731050155 +:1003C000832685010323C501C7711012273035002C +:1003D0008323450003250500F315100013060000D4 +:1003E000631ED50C631C730C639AC50C9301B0009B +:1003F00017250000130505D3073005008730850059 +:1004000007310501832685010323C501CB71101235 +:10041000273035008323450003250500F315100020 +:1004200013060000631CD508631A73086398C50897 +:100430009301C000172500001305C5D00730050043 +:100440008730850007310501832685010323C50117 +:10045000CB7110122730350083234500032505009A +:10046000F315100013061000631AD5046318730403 +:100470006396C5049301D00017250000130585CEAF +:100480000730050087308500073105018326850187 +:100490000323C501CB71101227303500832345009B +:1004A00003250500F3151000130600006318D5009E +:1004B000631673006394C500631030020F00F00FE1 +:1004C000638001009391110093E111009308D0051E +:1004D00013850100730000000F00F00F930110005E +:1004E0009308D0051305000073000000731000C0CE +:1004F00000000000000000000000000000000000FC +:0405000000000000F7 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:10200000000000000000F03F00000000000004405D +:10201000000000000000F03F0000000000000C4045 +:10202000000000000000F0BF66666666664C93C064 +:102030009A9999999999F13FCCCCCCCCCC509340BA +:10204000000000000000004000000000000014C07C +:1020500000000000000000C000000000000028C0D8 +:10206000000000000000F03F0000000000000440FD +:10207000000000000000F03F0000000000000CC065 +:10208000000000000000F0BF66666666664C93C004 +:102090009A9999999999F13FCCCCCCCCCC5093C0DA +:1020A000000000000000004000000000000014C01C +:1020B00000000000000000C00000000000002840F8 +:1020C000000000000000F03F00000000000004409D +:1020D000000000000000F03F000000000000F83F9A +:1020E000000000000000F0BF66666666664C93C0A4 +:1020F0009A9999999999F13F0000000000489340FE +:10210000000000000000004000000000000014C0BB +:1021100000000000000000C000000000000020C01F +:10212000000000000000F03F00000000000004403C +:10213000000000000000F03F000000000000F8BFB9 +:10214000000000000000F0BF66666666664C93C043 +:102150009A9999999999F13F00000000004893C01D +:10216000000000000000004000000000000014C05B +:1021700000000000000000C000000000000020403F +:040000058000000077 +:00000001FF diff --git a/src/test/resources/hex/rv32ud-p-fmin.hex b/src/test/resources/hex/rv32ud-p-fmin.hex new file mode 100755 index 0000000..5c18421 --- /dev/null +++ b/src/test/resources/hex/rv32ud-p-fmin.hex @@ -0,0 +1,153 @@ +:0200000480007A +:100000006F00C004732F2034930F8000630AFF0336 +:10001000930F90006306FF03930FB0006302FF038A +:10002000170F0080130F0FFE63040F0067000F000F +:10003000732F203463540F006F00400093E19153FD +:10004000171F000023203FFC6FF09FFF930000006C +:10005000130100009301000013020000930200004E +:100060001303000093030000130400009304000036 +:10007000130500009305000013060000930600001E +:100080001307000093070000130800009308000006 +:100090001309000093090000130A0000930A0000EE +:1000A000130B0000930B0000130C0000930C0000D6 +:1000B000130D0000930D0000130E0000930E0000BE +:1000C000130F0000930F0000732540F1631005002B +:1000D000970200009382020173905230735000180F +:1000E000970200009382020273905230B7020080A0 +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000634C05000F00F00F930110009308D005E9 +:10014000130500007300000097020080938282EB89 +:10015000638A020073905210B7B20000938292102B +:100160007390223073500030372500007320053023 +:100170007350300097020000938242017390123452 +:10018000732540F1730020309301200017250000F3 +:10019000130545E707300500873085000731050165 +:1001A000832685010323C501D301102A273035009A +:1001B0008323450003250500F315100013060000F6 +:1001C000631AD548631873486396C5489301300095 +:1001D00017250000130505E5073005008730850069 +:1001E00007310501832685010323C501D301102AA8 +:1001F000273035008323450003250500F315100043 +:10020000130600006318D544631673446394C54411 +:1002100093014000172500001305C5E207300500D3 +:100220008730850007310501832685010323C50139 +:10023000D301102A2730350083234500032505000C +:10024000F3151000130600006316D54063147340C5 +:100250006392C5409301500017250000130585E007 +:1002600007300500873085000731050183268501A9 +:100270000323C501D301102A27303500832345000D +:1002800003250500F3151000130600006314D53C88 +:100290006312733C6390C53C930160001725000016 +:1002A000130545DE0730050087308500073105015D +:1002B000832685010323C501D301102A2730350089 +:1002C0008323450003250500F315100013060000E5 +:1002D0006312D53863107338639EC536930170007E +:1002E00017250000130505DC073005008730850061 +:1002F00007310501832685010323C501D301102A97 +:10030000273035008323450003250500F315100031 +:10031000130600006310D534631E7332639CC5322C +:100320009301C000172500001305C5D9073005004B +:100330008730850007310501832685010323C50128 +:10034000D311102A273035008323450003250500EB +:10035000F315100013060000631ED52E631C732EC8 +:10036000639AC52E9301D00017250000130585D789 +:100370000730050087308500073105018326850198 +:100380000323C501D311102A2730350083234500EC +:1003900003250500F315100013060000631CD52A81 +:1003A000631A732A6398C52A9301E0001725000099 +:1003B000130545D507300500873085000731050155 +:1003C000832685010323C501D311102A2730350068 +:1003D0008323450003250500F315100013060000D4 +:1003E000631AD526631873266396C5269301F00019 +:1003F00017250000130505D3073005008730850059 +:1004000007310501832685010323C501D311102A75 +:10041000273035008323450003250500F315100020 +:10042000130600006318D522631673226394C52255 +:1004300093010001172500001305C5D00730050002 +:100440008730850007310501832685010323C50117 +:10045000D311102A273035008323450003250500DA +:10046000F3151000130600006316D51E6314731EE7 +:100470006392C51E9301100117250000130585CE58 +:100480000730050087308500073105018326850187 +:100490000323C501D311102A2730350083234500DB +:1004A00003250500F3151000130600006314D51A88 +:1004B0006312731A6390C51A930140011725000057 +:1004C000130545CC0730050087308500073105014D +:1004D000832685010323C501D311102A2730350057 +:1004E0008323450003250500F315100013060001C2 +:1004F0006312D51663107316639EC51493015001E1 +:1005000017250000130505CA073005008730850050 +:1005100007310501832685010323C501D311102A64 +:10052000273035008323450003250500F31510000F +:10053000130600006310D512631E7310639CC51070 +:100540009301E001172500001305C5C7073005001A +:100550008730850007310501832685010323C50106 +:10056000D301102A273035008323450003250500D9 +:10057000F315100013060000631ED50C631C730CEA +:10058000639AC50C9301F00117250000130585C57A +:100590000730050087308500073105018326850176 +:1005A0000323C501D301102A2730350083234500DA +:1005B00003250500F315100013060000631CD50881 +:1005C000631A73086398C508930100021725000099 +:1005D000130545C307300500873085000731050145 +:1005E000832685010323C501D311102A2730350046 +:1005F0008323450003250500F315100013060000B2 +:10060000631AD504631873046396C504930110023A +:1006100017250000130505C1073005008730850048 +:1006200007310501832685010323C501D311102A53 +:10063000273035008323450003250500F3151000FE +:10064000130600006318D500631673006394C50099 +:10065000631030020F00F00F6380010093911100CE +:1006600093E111009308D005138501007300000089 +:100670000F00F00F930110009308D0051305000040 +:1006800073000000731000C00000000000000000B4 +:10069000000000000000000000000000000000005A +:1006A000000000000000000000000000000000004A +:1006B000000000000000000000000000000000003A +:0406C0000000000036 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:102000000000000000000440000000000000F03F5D +:102010000000000000000000000000000000F03F91 +:1020200066666666664C93C09A9999999999F13F4C +:10203000000000000000000066666666664C93C003 +:102040009A9999999999F13F66666666664C93C02C +:10205000000000000000000066666666664C93C0E3 +:10206000FFFFFFFFFFFFFF7F66666666664C93C05B +:10207000000000000000000066666666664C93C0C3 +:10208000F1D4C853FB2109403A8C30E28E79453EA9 +:1020900000000000000000003A8C30E28E79453EDE +:1020A000000000000000F0BF00000000000000C0C1 +:1020B000000000000000000000000000000000C060 +:1020C0000000000000000440000000000000F03F9D +:1020D00000000000000000000000000000000440BC +:1020E00066666666664C93C09A9999999999F13F8C +:1020F00000000000000000009A9999999999F13F19 +:102100009A9999999999F13F66666666664C93C06B +:1021100000000000000000009A9999999999F13FF8 +:10212000FFFFFFFFFFFFFF7F66666666664C93C09A +:10213000000000000000000066666666664C93C002 +:10214000F1D4C853FB2109403A8C30E28E79453EE8 +:102150000000000000000000F1D4C853FB2109403A +:10216000000000000000F0BF00000000000000C000 +:102170000000000000000000000000000000F0BFB0 +:10218000010000000000F07F000000000000F03FB0 +:102190000000000000000000000000000000F03F10 +:1021A000FFFFFFFFFFFFFF7FFFFFFFFFFFFFFF7F3F +:1021B0000000000000000000000000000000F87FA8 +:1021C000000000000000008000000000000000008F +:1021D000000000000000000000000000000000807F +:1021E000000000000000000000000000000000806F +:1021F000000000000000000000000000000000805F +:10220000000000000000008000000000000000004E +:1022100000000000000000000000000000000000BE +:10222000000000000000000000000000000000802E +:10223000000000000000000000000000000000009E +:040000058000000077 +:00000001FF diff --git a/src/test/resources/hex/rv32ud-p-ldst.hex b/src/test/resources/hex/rv32ud-p-ldst.hex new file mode 100755 index 0000000..408d2d3 --- /dev/null +++ b/src/test/resources/hex/rv32ud-p-ldst.hex @@ -0,0 +1,58 @@ +:0200000480007A +:100000006F00C004732F2034930F8000630AFF0336 +:10001000930F90006306FF03930FB0006302FF038A +:10002000170F0080130F0FFE63040F0067000F000F +:10003000732F203463540F006F00400093E19153FD +:10004000171F000023203FFC6FF09FFF930000006C +:10005000130100009301000013020000930200004E +:100060001303000093030000130400009304000036 +:10007000130500009305000013060000930600001E +:100080001307000093070000130800009308000006 +:100090001309000093090000130A0000930A0000EE +:1000A000130B0000930B0000130C0000930C0000D6 +:1000B000130D0000930D0000130E0000930E0000BE +:1000C000130F0000930F0000732540F1631005002B +:1000D000970200009382020173905230735000180F +:1000E000970200009382020273905230B7020080A0 +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000634C05000F00F00F930110009308D005E9 +:10014000130500007300000097020080938282EB89 +:10015000638A020073905210B7B20000938292102B +:100160007390223073500030372500007320053023 +:100170007350300097020000938242017390123452 +:10018000732540F17300203017240000130484EA23 +:100190000731040027382400032504018325440186 +:1001A00097270000938707E683A3070083A74700EC +:1001B00093012000631E750A639CF50A0731040051 +:1001C00027282400032504018325440197270000E4 +:1001D0009387C7E383A3070083A7470093013000F9 +:1001E000631875086396F508072104002728240082 +:1001F000032504018325440197270000938787E1A5 +:1002000083A3070083A7470093014000631275068C +:100210006390F50607318400273824000325040184 +:100220008325440197270000938747DF83A30700B6 +:1002300083A7470093015000631C7502639AF5027F +:100240000721840027382400032504018325440165 +:1002500097270000938707DD83A3070083A7470044 +:1002600093016000631675006394F500631030021B +:100270000F00F00F638001009391110093E11100D2 +:100280009308D00513850100730000000F00F00FE4 +:10029000930110009308D0051305000073000000BF +:1002A000731000C00000000000000000000000000B +:1002B000000000000000000000000000000000003E +:0402C000000000003A +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:10200000000080BF00000040000080BF00000040D2 +:10201000000080BF0000004000004040000080C081 +:1020200000004040FFFFFFFF000000000000000034 +:10203000000080BF0000004000004040000080C061 +:10204000EFBEADDEBEBAFECAEA1DADAB0DD0371392 +:040000058000000077 +:00000001FF diff --git a/src/test/resources/hex/rv32ud-p-recoding.hex b/src/test/resources/hex/rv32ud-p-recoding.hex new file mode 100755 index 0000000..bd12e2a --- /dev/null +++ b/src/test/resources/hex/rv32ud-p-recoding.hex @@ -0,0 +1,46 @@ +:0200000480007A +:100000006F00C004732F2034930F8000630AFF0336 +:10001000930F90006306FF03930FB0006302FF038A +:10002000170F0080130F0FFE63040F0067000F000F +:10003000732F203463540F006F00400093E19153FD +:10004000171F000023203FFC6FF09FFF930000006C +:10005000130100009301000013020000930200004E +:100060001303000093030000130400009304000036 +:10007000130500009305000013060000930600001E +:100080001307000093070000130800009308000006 +:100090001309000093090000130A0000930A0000EE +:1000A000130B0000930B0000130C0000930C0000D6 +:1000B000130D0000930D0000130E0000930E0000BE +:1000C000130F0000930F0000732540F1631005002B +:1000D000970200009382020173905230735000180F +:1000E000970200009382020273905230B7020080A0 +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000634C05000F00F00F930110009308D005E9 +:10014000130500007300000097020080938282EB89 +:10015000638A020073905210B7B20000938292102B +:100160007390223073500030372500007320053023 +:100170007350300097020000938242017390123452 +:10018000732540F17300203017250000072085E714 +:1001900017250000872045E7D3F00010532510A055 +:1001A000930310009301200063147506530510A0FB +:1001B0009303100093013000631C7504531510A0C5 +:1001C000930300009301400063147504537000D042 +:1001D00013051000D37005D0D3F00010532510A0E4 +:1001E000930310009301500063147502530510A08F +:1001F0009303100093016000631C7500531510A059 +:1002000093030000930170006314750063103002C3 +:100210000F00F00F638001009391110093E1110032 +:100220009308D00513850100730000000F00F00F44 +:10023000930110009308D00513050000730000001F +:04024000731000C077 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:10200000000080FF000040400000000000000000D1 +:040000058000000077 +:00000001FF diff --git a/src/test/scala/vexriscv/TestIndividualFeatures.scala b/src/test/scala/vexriscv/TestIndividualFeatures.scala index 5e015ac..cd4b9e9 100644 --- a/src/test/scala/vexriscv/TestIndividualFeatures.scala +++ b/src/test/scala/vexriscv/TestIndividualFeatures.scala @@ -467,7 +467,6 @@ class DBusDimension extends VexRiscvDimension("DBus") { bytePerLine = bytePerLine, wayCount = wayCount, addressWidth = 32, - rfDataWidth = 32, cpuDataWidth = cpuDataWidth, //Not tested memDataWidth = memDataWidth, catchAccessError = catchAll, diff --git a/src/test/scala/vexriscv/ip/fpu/FpuTest.scala b/src/test/scala/vexriscv/ip/fpu/FpuTest.scala index 112252f..7f37a62 100644 --- a/src/test/scala/vexriscv/ip/fpu/FpuTest.scala +++ b/src/test/scala/vexriscv/ip/fpu/FpuTest.scala @@ -1507,55 +1507,55 @@ class FpuTest extends FunSuite{ } -object Clib { - val java_home = System.getProperty("java.home") - assert(java_home != "" && java_home != null, "JAVA_HOME need to be set") - val jdk = java_home.replace("/jre","").replace("\\jre","") - val jdkIncludes = jdk + "/include" - val flags = List("-fPIC", "-m64", "-shared", "-Wno-attributes") //-Wl,--whole-archive - val os = new File("/media/data/open/SaxonSoc/berkeley-softfloat-3/build/Linux-x86_64-GCC").listFiles().map(_.getAbsolutePath).filter(_.toString.endsWith(".o")) - val cmd = s"gcc -I/media/data/open/SaxonSoc/berkeley-softfloat-3/source/include -I$jdkIncludes -I$jdkIncludes/linux ${flags.mkString(" ")} -o src/test/cpp/fpu/math/fpu_math.so src/test/cpp/fpu/math/fpu_math.c src/test/cpp/fpu/math/softfloat.a" // src/test/cpp/fpu/math/softfloat.a - DoCmd.doCmd(cmd) - val math = new FpuMath -} -// cd /media/data/open/SaxonSoc/testFloatBuild/berkeley-softfloat-3/build/Linux-x86_64-GCC -// make clean && SPECIALIZE_TYPE=RISCV make -j$(nproc) && cp softfloat.a /media/data/open/SaxonSoc/artyA7SmpUpdate/SaxonSoc/ext/VexRiscv/src/test/cpp/fpu/math -object FpuCompileSo extends App{ - -// val b2f = lang.Float.intBitsToFloat(_) -// for(e <- FpuRoundMode.elements) { -// println(e) -// for (i <- -2 until 50) println(i + " => " + Clib.math.addF32(b2f(0x7f000000), b2f(0x7f000000 + i), e.position)) -// println("") -// } - //1 did not equal 3 Flag missmatch dut=1 ref=3 ## mul 0.9994812 -1.1754988E-38 -1.174889E-38 RMM - // println(Clib.math.mulF32(0.9994812f, -1.1754988E-38f, FpuRoundMode.RMM.position)) -// miaou ffffffff 7fffffe0 7f -// miaou 0 3ffffff0 70 = 0 - - - println(Clib.math.mulF32( 1.1753509E-38f, 1.0001221f, FpuRoundMode.RUP.position)) - println(Clib.math.mulF32( 1.1754945E-38f, 0.9999998f, FpuRoundMode.RUP.position)) -// testBinaryOp(mul, 1.1753509E-38f, 1.0001221f, 1.17549435E-38f ,1, FpuRoundMode.RUP,"mul") -// testBinaryOp(mul, 1.1754945E-38f, 0.9999998f, 1.17549435E-38f, 3, FpuRoundMode.RUP, "mul") -// miaou ffffffff 7fffffe0 7f -// miaou 0 3ffffff0 70 = 0 -// miaou ffffffff 7fffff7e 7f -// miaou 1 3fffffbf 3f = 1 - -// println(Clib.math.mulF32( 1.1753509E-38f, 1.0001221f, FpuRoundMode.RUP.position)) -// println(Clib.math.mulF32( 1.469368E-39f, 7.9999995f, FpuRoundMode.RUP.position)) -// println(Clib.math.mulF32( 1.40129846432e-45f, 7.9999995f, FpuRoundMode.RUP.position)) -// println(Clib.math.mulF32( 2.93873587706e-39f, 7.9999995f, FpuRoundMode.RUP.position)) -// println(Clib.math.mulF32( 1f, 7.9999995f, FpuRoundMode.RUP.position)) - - -// println(Clib.math.addF32(1.00000011921f, 4.0f, FpuRoundMode.RNE.position)) -// println(Clib.math.addF32(1.00000011921f, 4.0f, FpuRoundMode.RTZ.position)) -// println(Clib.math.addF32(1.00000011921f, 4.0f, FpuRoundMode.RDN.position)) -// println(Clib.math.addF32(1.00000011921f, 4.0f, FpuRoundMode.RUP.position)) -} - +//object Clib { +// val java_home = System.getProperty("java.home") +// assert(java_home != "" && java_home != null, "JAVA_HOME need to be set") +// val jdk = java_home.replace("/jre","").replace("\\jre","") +// val jdkIncludes = jdk + "/include" +// val flags = List("-fPIC", "-m64", "-shared", "-Wno-attributes") //-Wl,--whole-archive +// val os = new File("/media/data/open/SaxonSoc/berkeley-softfloat-3/build/Linux-x86_64-GCC").listFiles().map(_.getAbsolutePath).filter(_.toString.endsWith(".o")) +// val cmd = s"gcc -I/media/data/open/SaxonSoc/berkeley-softfloat-3/source/include -I$jdkIncludes -I$jdkIncludes/linux ${flags.mkString(" ")} -o src/test/cpp/fpu/math/fpu_math.so src/test/cpp/fpu/math/fpu_math.c src/test/cpp/fpu/math/softfloat.a" // src/test/cpp/fpu/math/softfloat.a +// DoCmd.doCmd(cmd) +// val math = new FpuMath +//} +//// cd /media/data/open/SaxonSoc/testFloatBuild/berkeley-softfloat-3/build/Linux-x86_64-GCC +//// make clean && SPECIALIZE_TYPE=RISCV make -j$(nproc) && cp softfloat.a /media/data/open/SaxonSoc/artyA7SmpUpdate/SaxonSoc/ext/VexRiscv/src/test/cpp/fpu/math +//object FpuCompileSo extends App{ +// +//// val b2f = lang.Float.intBitsToFloat(_) +//// for(e <- FpuRoundMode.elements) { +//// println(e) +//// for (i <- -2 until 50) println(i + " => " + Clib.math.addF32(b2f(0x7f000000), b2f(0x7f000000 + i), e.position)) +//// println("") +//// } +// //1 did not equal 3 Flag missmatch dut=1 ref=3 ## mul 0.9994812 -1.1754988E-38 -1.174889E-38 RMM +// // println(Clib.math.mulF32(0.9994812f, -1.1754988E-38f, FpuRoundMode.RMM.position)) +//// miaou ffffffff 7fffffe0 7f +//// miaou 0 3ffffff0 70 = 0 +// +// +// println(Clib.math.mulF32( 1.1753509E-38f, 1.0001221f, FpuRoundMode.RUP.position)) +// println(Clib.math.mulF32( 1.1754945E-38f, 0.9999998f, FpuRoundMode.RUP.position)) +//// testBinaryOp(mul, 1.1753509E-38f, 1.0001221f, 1.17549435E-38f ,1, FpuRoundMode.RUP,"mul") +//// testBinaryOp(mul, 1.1754945E-38f, 0.9999998f, 1.17549435E-38f, 3, FpuRoundMode.RUP, "mul") +//// miaou ffffffff 7fffffe0 7f +//// miaou 0 3ffffff0 70 = 0 +//// miaou ffffffff 7fffff7e 7f +//// miaou 1 3fffffbf 3f = 1 +// +//// println(Clib.math.mulF32( 1.1753509E-38f, 1.0001221f, FpuRoundMode.RUP.position)) +//// println(Clib.math.mulF32( 1.469368E-39f, 7.9999995f, FpuRoundMode.RUP.position)) +//// println(Clib.math.mulF32( 1.40129846432e-45f, 7.9999995f, FpuRoundMode.RUP.position)) +//// println(Clib.math.mulF32( 2.93873587706e-39f, 7.9999995f, FpuRoundMode.RUP.position)) +//// println(Clib.math.mulF32( 1f, 7.9999995f, FpuRoundMode.RUP.position)) +// +// +//// println(Clib.math.addF32(1.00000011921f, 4.0f, FpuRoundMode.RNE.position)) +//// println(Clib.math.addF32(1.00000011921f, 4.0f, FpuRoundMode.RTZ.position)) +//// println(Clib.math.addF32(1.00000011921f, 4.0f, FpuRoundMode.RDN.position)) +//// println(Clib.math.addF32(1.00000011921f, 4.0f, FpuRoundMode.RUP.position)) +//} +// class ProcessStream(cmd : String){ import sys.process._ @@ -1575,19 +1575,19 @@ class ProcessStream(cmd : String){ buf.dequeue()() } } - -object TestSoftFloat extends App{ - val p = new ProcessStream("testfloat_gen -forever f32_add") - Thread.sleep(1000) - println(p.next) - println(p.next) - println(p.next) - println(p.next) - println(p.next) - Thread.sleep(1000) - println(p.next) - while(true) { - Thread.sleep(10) - println(p.next) - } -} +// +//object TestSoftFloat extends App{ +// val p = new ProcessStream("testfloat_gen -forever f32_add") +// Thread.sleep(1000) +// println(p.next) +// println(p.next) +// println(p.next) +// println(p.next) +// println(p.next) +// Thread.sleep(1000) +// println(p.next) +// while(true) { +// Thread.sleep(10) +// println(p.next) +// } +//}