Add MUL/DIV/REM support with plugins (pass Riscv-Tests)

This commit is contained in:
Charles Papon 2017-03-17 11:45:01 +01:00
parent 52a524be06
commit 7517ac797d
23 changed files with 3233 additions and 18 deletions

View file

@ -100,7 +100,7 @@ class DBusSimplePlugin extends Plugin[VexRiscv]{
dRsp = in(DBusSimpleRsp()).setName("dRsp")
insert(MEMORY_READ_DATA) := dRsp.data
assert(!(input(MEMORY_ENABLE) && !input(INSTRUCTION)(5) && arbitration.isStuck),"DBusSimplePlugin doesn't allow memory stage stall when read happend")
assert(!(input(MEMORY_ENABLE) && (!input(INSTRUCTION)(5)) && arbitration.isStuck),"DBusSimplePlugin doesn't allow memory stage stall when read happend")
}
writeBack plug new Area {

View file

@ -0,0 +1,70 @@
package SpinalRiscv.Plugin
import SpinalRiscv.{VexRiscv, _}
import spinal.core._
import spinal.lib.math.MixedDivider
class DivPlugin extends Plugin[VexRiscv]{
object IS_DIV extends Stageable(Bool)
override def setup(pipeline: VexRiscv): Unit = {
import Riscv._
import pipeline.config._
val actions = List[(Stageable[_ <: BaseType],Any)](
LEGAL_INSTRUCTION -> True,
SRC1_CTRL -> Src1CtrlEnum.RS,
SRC2_CTRL -> Src2CtrlEnum.RS,
REGFILE_WRITE_VALID -> True,
BYPASSABLE_EXECUTE_STAGE -> False,
BYPASSABLE_MEMORY_STAGE -> True,
REG1_USE -> True,
REG2_USE -> True,
IS_DIV -> True
)
val decoderService = pipeline.service(classOf[DecoderService])
decoderService.addDefault(IS_DIV, False)
decoderService.add(List(
DIVX -> actions
))
}
override def build(pipeline: VexRiscv): Unit = {
import pipeline._
import pipeline.config._
val divider = new MixedDivider(32, 32, true) //cmd >-> rsp
execute plug new Area {
import execute._
divider.io.cmd.valid := False
divider.io.cmd.numerator := input(SRC1)
divider.io.cmd.denominator := input(SRC2)
divider.io.cmd.signed := !input(INSTRUCTION)(12)
when(arbitration.isValid && input(IS_DIV)) {
divider.io.cmd.valid := !arbitration.isStuckByOthers && !arbitration.removeIt
arbitration.haltIt := memory.arbitration.isValid && memory.input(IS_DIV)
}
}
memory plug new Area{
import memory._
divider.io.flush := memory.arbitration.removeIt
divider.io.rsp.ready := !arbitration.isStuckByOthers
when(arbitration.isValid && input(IS_DIV)) {
arbitration.haltIt := !divider.io.rsp.valid
input(REGFILE_WRITE_DATA) := Mux(input(INSTRUCTION)(13), divider.io.rsp.remainder, divider.io.rsp.quotient).asBits
}
divider.io.rsp.payload.error.allowPruning
}
}
}

View file

@ -0,0 +1,104 @@
package SpinalRiscv.Plugin
import SpinalRiscv._
import SpinalRiscv.VexRiscv
import spinal.core._
class MulPlugin extends Plugin[VexRiscv]{
object MUL_LL extends Stageable(UInt(32 bits))
object MUL_LH extends Stageable(SInt(34 bits))
object MUL_HL extends Stageable(SInt(34 bits))
object MUL_HH extends Stageable(SInt(34 bits))
object MUL_LOW extends Stageable(SInt(34+16+2 bits))
object IS_MUL extends Stageable(Bool)
override def setup(pipeline: VexRiscv): Unit = {
import Riscv._
import pipeline.config._
val actions = List[(Stageable[_ <: BaseType],Any)](
LEGAL_INSTRUCTION -> True,
SRC1_CTRL -> Src1CtrlEnum.RS,
SRC2_CTRL -> Src2CtrlEnum.RS,
REGFILE_WRITE_VALID -> True,
BYPASSABLE_EXECUTE_STAGE -> False,
BYPASSABLE_MEMORY_STAGE -> False,
REG1_USE -> True,
REG2_USE -> True,
IS_MUL -> True
)
val decoderService = pipeline.service(classOf[DecoderService])
decoderService.addDefault(IS_MUL, False)
decoderService.add(List(
MULX -> actions
))
}
override def build(pipeline: VexRiscv): Unit = {
import pipeline._
import pipeline.config._
execute plug new Area {
import execute._
val aSigned,bSigned = Bool
val a,b = Bits(32 bit)
a := input(SRC1)
b := input(SRC2)
switch(input(INSTRUCTION)(13 downto 12)) {
is(B"01") {
aSigned := True
bSigned := True
}
is(B"10") {
aSigned := True
bSigned := False
}
default {
aSigned := False
bSigned := False
}
}
val aULow = a(15 downto 0).asUInt
val bULow = b(15 downto 0).asUInt
val aSLow = (False ## a(15 downto 0)).asSInt
val bSLow = (False ## b(15 downto 0)).asSInt
val aHigh = (((aSigned && a.msb) ## a(31 downto 16))).asSInt
val bHigh = (((bSigned && b.msb) ## b(31 downto 16))).asSInt
insert(MUL_LL) := aULow * bULow
insert(MUL_LH) := aSLow * bHigh
insert(MUL_HL) := aHigh * bSLow
insert(MUL_HH) := aHigh * bHigh
}
memory plug new Area {
import memory._
insert(MUL_LOW) := S(0, MUL_HL.dataType.getWidth + 16 + 2 bit) + (False ## input(MUL_LL)).asSInt + (input(MUL_LH) << 16) + (input(MUL_HL) << 16)
}
writeBack plug new Area {
import writeBack._
val result = input(MUL_LOW) + (input(MUL_HH) << 32)
when(input(IS_MUL)){
switch(input(INSTRUCTION)(13 downto 12)){
is(B"00"){
input(REGFILE_WRITE_DATA) := input(MUL_LOW)(31 downto 0).asBits
}
is(B"01",B"10",B"11"){
input(REGFILE_WRITE_DATA) := result(63 downto 32).asBits
}
}
}
}
}
}

View file

@ -167,6 +167,9 @@ class LightShifterPlugin extends Plugin[VexRiscv]{
}
}
}
when(arbitration.removeIt){
isActive := False
}
}
}
}

View file

@ -68,4 +68,7 @@ object Riscv{
def JAL = M"-------------------------1101111"
def LUI = M"-------------------------0110111"
def AUIPC = M"-------------------------0010111"
def MULX = M"0000001----------0-------0110011"
def DIVX = M"0000001----------1-------0110011"
}

View file

@ -37,11 +37,13 @@ object TopLevel {
new RegFilePlugin(Plugin.SYNC),
new IntAluPlugin,
new SrcPlugin,
// new FullBarrielShifterPlugin,
new LightShifterPlugin,
new FullBarrielShifterPlugin,
// new LightShifterPlugin,
new DBusSimplePlugin,
new HazardSimplePlugin(false, true, false, true),
// new HazardSimplePlugin(false, false, false, false),
// new HazardSimplePlugin(false, true, false, true),
new HazardSimplePlugin(false, false, false, false),
new MulPlugin,
new DivPlugin,
new NoPredictionBranchPlugin(false)
)

View file

@ -111,6 +111,12 @@ class success : public std::exception { };
uint32_t testsCounter = 0, successCounter = 0;
double currentTime = 22;
double sc_time_stamp(){
return currentTime;
}
class Workspace{
public:
static uint32_t cycles;
@ -141,7 +147,7 @@ public:
Workspace* run(uint32_t timeout = 5000){
// cout << "Start " << name << endl;
currentTime = 4;
// init trace dump
Verilated::traceEverOn(true);
VerilatedVcdC* tfp = new VerilatedVcdC;
@ -149,23 +155,24 @@ public:
tfp->open((string(name)+ ".vcd").c_str());
// Reset
top->clk = 1;
top->clk = 0;
top->reset = 0;
top->iCmd_ready = 1;
top->dCmd_ready = 1;
top->eval();
top->eval(); currentTime = 3;
top->reset = 1;
top->eval();
tfp->dump(0);
top->reset = 0;
top->eval();
top->eval(); currentTime = 2;
top->clk = 1;
postReset();
try {
// run simulation for 100 clock periods
for (i = 16; i < timeout*2; i+=2) {
currentTime = 55;
uint32_t iRsp_inst_next = top->iRsp_inst;
uint32_t dRsp_inst_next = VL_RANDOM_I(32);
@ -347,15 +354,20 @@ string riscvTestMemory[] = {
//isaTestsMulDiv = ["rv32ui-p-mul.hex",
// "rv32ui-p-mulh.hex",
// "rv32ui-p-mulhsu.hex",
// "rv32ui-p-mulhu.hex",
// "rv32ui-p-div.hex",
// "rv32ui-p-divu.hex",
// "rv32ui-p-rem.hex",
// "rv32ui-p-remu.hex"]
string riscvTestMul[] = {
"rv32um-p-mul",
"rv32um-p-mulh",
"rv32um-p-mulhsu",
"rv32um-p-mulhu"
};
string riscvTestDiv[] = {
"rv32um-p-div",
"rv32um-p-divu",
"rv32um-p-rem",
"rv32um-p-remu"
};
#include <time.h>
@ -386,6 +398,12 @@ int main(int argc, char **argv, char **env) {
for(const string &name : riscvTestMemory){
RiscvTest(name).run();
}
for(const string &name : riscvTestMul){
RiscvTest(name).run();
}
for(const string &name : riscvTestDiv){
RiscvTest(name).run();
}
}
uint64_t duration = timer_end(startedAt);

View file

@ -0,0 +1,152 @@
rv32um-p-div: file format elf32-littleriscv
Disassembly of section .text.init:
80000000 <_start>:
80000000: 04c0006f j 8000004c <reset_vector>
80000004 <trap_vector>:
80000004: 34202f73 csrr t5,mcause
80000008: 00800f93 li t6,8
8000000c: 03ff0a63 beq t5,t6,80000040 <write_tohost>
80000010: 00900f93 li t6,9
80000014: 03ff0663 beq t5,t6,80000040 <write_tohost>
80000018: 00b00f93 li t6,11
8000001c: 03ff0263 beq t5,t6,80000040 <write_tohost>
80000020: 80000f17 auipc t5,0x80000
80000024: fe0f0f13 addi t5,t5,-32 # 0 <_start-0x80000000>
80000028: 000f0463 beqz t5,80000030 <trap_vector+0x2c>
8000002c: 000f0067 jr t5
80000030: 34202f73 csrr t5,mcause
80000034: 000f5463 bgez t5,8000003c <handle_exception>
80000038: 0040006f j 8000003c <handle_exception>
8000003c <handle_exception>:
8000003c: 539e6e13 ori t3,t3,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fdcf2023 sw t3,-64(t5) # 80001000 <tohost>
80000048: ff9ff06f j 80000040 <write_tohost>
8000004c <reset_vector>:
8000004c: f1402573 csrr a0,mhartid
80000050: 00051063 bnez a0,80000050 <reset_vector+0x4>
80000054: 30102573 csrr a0,misa
80000058: 00055863 bgez a0,80000068 <reset_vector+0x1c>
8000005c: 0ff0000f fence
80000060: 00100e13 li t3,1
80000064: 00000073 ecall
80000068: 00000e13 li t3,0
8000006c: 00000297 auipc t0,0x0
80000070: f9828293 addi t0,t0,-104 # 80000004 <trap_vector>
80000074: 30529073 csrw mtvec,t0
80000078: 30205073 csrwi medeleg,0
8000007c: 30305073 csrwi mideleg,0
80000080: 30405073 csrwi mie,0
80000084: 80000297 auipc t0,0x80000
80000088: f7c28293 addi t0,t0,-132 # 0 <_start-0x80000000>
8000008c: 00028c63 beqz t0,800000a4 <reset_vector+0x58>
80000090: 10529073 csrw stvec,t0
80000094: 1ab00293 li t0,427
80000098: 30229073 csrw medeleg,t0
8000009c: 30202373 csrr t1,medeleg
800000a0: f8629ee3 bne t0,t1,8000003c <handle_exception>
800000a4: 30005073 csrwi mstatus,0
800000a8: 00000297 auipc t0,0x0
800000ac: 01428293 addi t0,t0,20 # 800000bc <test_2>
800000b0: 34129073 csrw mepc,t0
800000b4: f1402573 csrr a0,mhartid
800000b8: 30200073 mret
800000bc <test_2>:
800000bc: 01400093 li ra,20
800000c0: 00600113 li sp,6
800000c4: 0220c1b3 div gp,ra,sp
800000c8: 00300e93 li t4,3
800000cc: 00200e13 li t3,2
800000d0: 0dd19463 bne gp,t4,80000198 <fail>
800000d4 <test_3>:
800000d4: fec00093 li ra,-20
800000d8: 00600113 li sp,6
800000dc: 0220c1b3 div gp,ra,sp
800000e0: ffd00e93 li t4,-3
800000e4: 00300e13 li t3,3
800000e8: 0bd19863 bne gp,t4,80000198 <fail>
800000ec <test_4>:
800000ec: 01400093 li ra,20
800000f0: ffa00113 li sp,-6
800000f4: 0220c1b3 div gp,ra,sp
800000f8: ffd00e93 li t4,-3
800000fc: 00400e13 li t3,4
80000100: 09d19c63 bne gp,t4,80000198 <fail>
80000104 <test_5>:
80000104: fec00093 li ra,-20
80000108: ffa00113 li sp,-6
8000010c: 0220c1b3 div gp,ra,sp
80000110: 00300e93 li t4,3
80000114: 00500e13 li t3,5
80000118: 09d19063 bne gp,t4,80000198 <fail>
8000011c <test_6>:
8000011c: 00000093 li ra,0
80000120: 00100113 li sp,1
80000124: 0220c1b3 div gp,ra,sp
80000128: 00000e93 li t4,0
8000012c: 00600e13 li t3,6
80000130: 07d19463 bne gp,t4,80000198 <fail>
80000134 <test_7>:
80000134: 00000093 li ra,0
80000138: fff00113 li sp,-1
8000013c: 0220c1b3 div gp,ra,sp
80000140: 00000e93 li t4,0
80000144: 00700e13 li t3,7
80000148: 05d19863 bne gp,t4,80000198 <fail>
8000014c <test_8>:
8000014c: 00000093 li ra,0
80000150: 00000113 li sp,0
80000154: 0220c1b3 div gp,ra,sp
80000158: fff00e93 li t4,-1
8000015c: 00800e13 li t3,8
80000160: 03d19c63 bne gp,t4,80000198 <fail>
80000164 <test_9>:
80000164: 00100093 li ra,1
80000168: 00000113 li sp,0
8000016c: 0220c1b3 div gp,ra,sp
80000170: fff00e93 li t4,-1
80000174: 00900e13 li t3,9
80000178: 03d19063 bne gp,t4,80000198 <fail>
8000017c <test_10>:
8000017c: 00000093 li ra,0
80000180: 00000113 li sp,0
80000184: 0220c1b3 div gp,ra,sp
80000188: fff00e93 li t4,-1
8000018c: 00a00e13 li t3,10
80000190: 01d19463 bne gp,t4,80000198 <fail>
80000194: 01c01c63 bne zero,t3,800001ac <pass>
80000198 <fail>:
80000198: 0ff0000f fence
8000019c: 000e0063 beqz t3,8000019c <fail+0x4>
800001a0: 001e1e13 slli t3,t3,0x1
800001a4: 001e6e13 ori t3,t3,1
800001a8: 00000073 ecall
800001ac <pass>:
800001ac: 0ff0000f fence
800001b0: 00100e13 li t3,1
800001b4: 00000073 ecall
800001b8: c0001073 unimp
800001bc: 0000 unimp
800001be: 0000 unimp
800001c0: 0000 unimp
800001c2: 0000 unimp

View file

@ -0,0 +1,151 @@
rv32um-p-divu: file format elf32-littleriscv
Disassembly of section .text.init:
80000000 <_start>:
80000000: 04c0006f j 8000004c <reset_vector>
80000004 <trap_vector>:
80000004: 34202f73 csrr t5,mcause
80000008: 00800f93 li t6,8
8000000c: 03ff0a63 beq t5,t6,80000040 <write_tohost>
80000010: 00900f93 li t6,9
80000014: 03ff0663 beq t5,t6,80000040 <write_tohost>
80000018: 00b00f93 li t6,11
8000001c: 03ff0263 beq t5,t6,80000040 <write_tohost>
80000020: 80000f17 auipc t5,0x80000
80000024: fe0f0f13 addi t5,t5,-32 # 0 <_start-0x80000000>
80000028: 000f0463 beqz t5,80000030 <trap_vector+0x2c>
8000002c: 000f0067 jr t5
80000030: 34202f73 csrr t5,mcause
80000034: 000f5463 bgez t5,8000003c <handle_exception>
80000038: 0040006f j 8000003c <handle_exception>
8000003c <handle_exception>:
8000003c: 539e6e13 ori t3,t3,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fdcf2023 sw t3,-64(t5) # 80001000 <tohost>
80000048: ff9ff06f j 80000040 <write_tohost>
8000004c <reset_vector>:
8000004c: f1402573 csrr a0,mhartid
80000050: 00051063 bnez a0,80000050 <reset_vector+0x4>
80000054: 30102573 csrr a0,misa
80000058: 00055863 bgez a0,80000068 <reset_vector+0x1c>
8000005c: 0ff0000f fence
80000060: 00100e13 li t3,1
80000064: 00000073 ecall
80000068: 00000e13 li t3,0
8000006c: 00000297 auipc t0,0x0
80000070: f9828293 addi t0,t0,-104 # 80000004 <trap_vector>
80000074: 30529073 csrw mtvec,t0
80000078: 30205073 csrwi medeleg,0
8000007c: 30305073 csrwi mideleg,0
80000080: 30405073 csrwi mie,0
80000084: 80000297 auipc t0,0x80000
80000088: f7c28293 addi t0,t0,-132 # 0 <_start-0x80000000>
8000008c: 00028c63 beqz t0,800000a4 <reset_vector+0x58>
80000090: 10529073 csrw stvec,t0
80000094: 1ab00293 li t0,427
80000098: 30229073 csrw medeleg,t0
8000009c: 30202373 csrr t1,medeleg
800000a0: f8629ee3 bne t0,t1,8000003c <handle_exception>
800000a4: 30005073 csrwi mstatus,0
800000a8: 00000297 auipc t0,0x0
800000ac: 01428293 addi t0,t0,20 # 800000bc <test_2>
800000b0: 34129073 csrw mepc,t0
800000b4: f1402573 csrr a0,mhartid
800000b8: 30200073 mret
800000bc <test_2>:
800000bc: 01400093 li ra,20
800000c0: 00600113 li sp,6
800000c4: 0220d1b3 divu gp,ra,sp
800000c8: 00300e93 li t4,3
800000cc: 00200e13 li t3,2
800000d0: 0dd19663 bne gp,t4,8000019c <fail>
800000d4 <test_3>:
800000d4: fec00093 li ra,-20
800000d8: 00600113 li sp,6
800000dc: 0220d1b3 divu gp,ra,sp
800000e0: 2aaabeb7 lui t4,0x2aaab
800000e4: aa7e8e93 addi t4,t4,-1369 # 2aaaaaa7 <_start-0x55555559>
800000e8: 00300e13 li t3,3
800000ec: 0bd19863 bne gp,t4,8000019c <fail>
800000f0 <test_4>:
800000f0: 01400093 li ra,20
800000f4: ffa00113 li sp,-6
800000f8: 0220d1b3 divu gp,ra,sp
800000fc: 00000e93 li t4,0
80000100: 00400e13 li t3,4
80000104: 09d19c63 bne gp,t4,8000019c <fail>
80000108 <test_5>:
80000108: fec00093 li ra,-20
8000010c: ffa00113 li sp,-6
80000110: 0220d1b3 divu gp,ra,sp
80000114: 00000e93 li t4,0
80000118: 00500e13 li t3,5
8000011c: 09d19063 bne gp,t4,8000019c <fail>
80000120 <test_6>:
80000120: 800000b7 lui ra,0x80000
80000124: 00100113 li sp,1
80000128: 0220d1b3 divu gp,ra,sp
8000012c: 80000eb7 lui t4,0x80000
80000130: 00600e13 li t3,6
80000134: 07d19463 bne gp,t4,8000019c <fail>
80000138 <test_7>:
80000138: 800000b7 lui ra,0x80000
8000013c: fff00113 li sp,-1
80000140: 0220d1b3 divu gp,ra,sp
80000144: 00000e93 li t4,0
80000148: 00700e13 li t3,7
8000014c: 05d19863 bne gp,t4,8000019c <fail>
80000150 <test_8>:
80000150: 800000b7 lui ra,0x80000
80000154: 00000113 li sp,0
80000158: 0220d1b3 divu gp,ra,sp
8000015c: fff00e93 li t4,-1
80000160: 00800e13 li t3,8
80000164: 03d19c63 bne gp,t4,8000019c <fail>
80000168 <test_9>:
80000168: 00100093 li ra,1
8000016c: 00000113 li sp,0
80000170: 0220d1b3 divu gp,ra,sp
80000174: fff00e93 li t4,-1
80000178: 00900e13 li t3,9
8000017c: 03d19063 bne gp,t4,8000019c <fail>
80000180 <test_10>:
80000180: 00000093 li ra,0
80000184: 00000113 li sp,0
80000188: 0220d1b3 divu gp,ra,sp
8000018c: fff00e93 li t4,-1
80000190: 00a00e13 li t3,10
80000194: 01d19463 bne gp,t4,8000019c <fail>
80000198: 01c01c63 bne zero,t3,800001b0 <pass>
8000019c <fail>:
8000019c: 0ff0000f fence
800001a0: 000e0063 beqz t3,800001a0 <fail+0x4>
800001a4: 001e1e13 slli t3,t3,0x1
800001a8: 001e6e13 ori t3,t3,1
800001ac: 00000073 ecall
800001b0 <pass>:
800001b0: 0ff0000f fence
800001b4: 00100e13 li t3,1
800001b8: 00000073 ecall
800001bc: c0001073 unimp
800001c0: 0000 unimp
800001c2: 0000 unimp

View file

@ -0,0 +1,467 @@
rv32um-p-mul: file format elf32-littleriscv
Disassembly of section .text.init:
80000000 <_start>:
80000000: 04c0006f j 8000004c <reset_vector>
80000004 <trap_vector>:
80000004: 34202f73 csrr t5,mcause
80000008: 00800f93 li t6,8
8000000c: 03ff0a63 beq t5,t6,80000040 <write_tohost>
80000010: 00900f93 li t6,9
80000014: 03ff0663 beq t5,t6,80000040 <write_tohost>
80000018: 00b00f93 li t6,11
8000001c: 03ff0263 beq t5,t6,80000040 <write_tohost>
80000020: 80000f17 auipc t5,0x80000
80000024: fe0f0f13 addi t5,t5,-32 # 0 <_start-0x80000000>
80000028: 000f0463 beqz t5,80000030 <trap_vector+0x2c>
8000002c: 000f0067 jr t5
80000030: 34202f73 csrr t5,mcause
80000034: 000f5463 bgez t5,8000003c <handle_exception>
80000038: 0040006f j 8000003c <handle_exception>
8000003c <handle_exception>:
8000003c: 539e6e13 ori t3,t3,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fdcf2023 sw t3,-64(t5) # 80001000 <tohost>
80000048: ff9ff06f j 80000040 <write_tohost>
8000004c <reset_vector>:
8000004c: f1402573 csrr a0,mhartid
80000050: 00051063 bnez a0,80000050 <reset_vector+0x4>
80000054: 30102573 csrr a0,misa
80000058: 00055863 bgez a0,80000068 <reset_vector+0x1c>
8000005c: 0ff0000f fence
80000060: 00100e13 li t3,1
80000064: 00000073 ecall
80000068: 00000e13 li t3,0
8000006c: 00000297 auipc t0,0x0
80000070: f9828293 addi t0,t0,-104 # 80000004 <trap_vector>
80000074: 30529073 csrw mtvec,t0
80000078: 30205073 csrwi medeleg,0
8000007c: 30305073 csrwi mideleg,0
80000080: 30405073 csrwi mie,0
80000084: 80000297 auipc t0,0x80000
80000088: f7c28293 addi t0,t0,-132 # 0 <_start-0x80000000>
8000008c: 00028c63 beqz t0,800000a4 <reset_vector+0x58>
80000090: 10529073 csrw stvec,t0
80000094: 1ab00293 li t0,427
80000098: 30229073 csrw medeleg,t0
8000009c: 30202373 csrr t1,medeleg
800000a0: f8629ee3 bne t0,t1,8000003c <handle_exception>
800000a4: 30005073 csrwi mstatus,0
800000a8: 00000297 auipc t0,0x0
800000ac: 01428293 addi t0,t0,20 # 800000bc <test_32>
800000b0: 34129073 csrw mepc,t0
800000b4: f1402573 csrr a0,mhartid
800000b8: 30200073 mret
800000bc <test_32>:
800000bc: 000080b7 lui ra,0x8
800000c0: e0008093 addi ra,ra,-512 # 7e00 <_start-0x7fff8200>
800000c4: b6db7137 lui sp,0xb6db7
800000c8: db710113 addi sp,sp,-585 # b6db6db7 <begin_signature+0x36db4db7>
800000cc: 022081b3 mul gp,ra,sp
800000d0: 00001eb7 lui t4,0x1
800000d4: 200e8e93 addi t4,t4,512 # 1200 <_start-0x7fffee00>
800000d8: 02000e13 li t3,32
800000dc: 4bd19463 bne gp,t4,80000584 <fail>
800000e0 <test_33>:
800000e0: 000080b7 lui ra,0x8
800000e4: fc008093 addi ra,ra,-64 # 7fc0 <_start-0x7fff8040>
800000e8: b6db7137 lui sp,0xb6db7
800000ec: db710113 addi sp,sp,-585 # b6db6db7 <begin_signature+0x36db4db7>
800000f0: 022081b3 mul gp,ra,sp
800000f4: 00001eb7 lui t4,0x1
800000f8: 240e8e93 addi t4,t4,576 # 1240 <_start-0x7fffedc0>
800000fc: 02100e13 li t3,33
80000100: 49d19263 bne gp,t4,80000584 <fail>
80000104 <test_2>:
80000104: 00000093 li ra,0
80000108: 00000113 li sp,0
8000010c: 022081b3 mul gp,ra,sp
80000110: 00000e93 li t4,0
80000114: 00200e13 li t3,2
80000118: 47d19663 bne gp,t4,80000584 <fail>
8000011c <test_3>:
8000011c: 00100093 li ra,1
80000120: 00100113 li sp,1
80000124: 022081b3 mul gp,ra,sp
80000128: 00100e93 li t4,1
8000012c: 00300e13 li t3,3
80000130: 45d19a63 bne gp,t4,80000584 <fail>
80000134 <test_4>:
80000134: 00300093 li ra,3
80000138: 00700113 li sp,7
8000013c: 022081b3 mul gp,ra,sp
80000140: 01500e93 li t4,21
80000144: 00400e13 li t3,4
80000148: 43d19e63 bne gp,t4,80000584 <fail>
8000014c <test_5>:
8000014c: 00000093 li ra,0
80000150: ffff8137 lui sp,0xffff8
80000154: 022081b3 mul gp,ra,sp
80000158: 00000e93 li t4,0
8000015c: 00500e13 li t3,5
80000160: 43d19263 bne gp,t4,80000584 <fail>
80000164 <test_6>:
80000164: 800000b7 lui ra,0x80000
80000168: 00000113 li sp,0
8000016c: 022081b3 mul gp,ra,sp
80000170: 00000e93 li t4,0
80000174: 00600e13 li t3,6
80000178: 41d19663 bne gp,t4,80000584 <fail>
8000017c <test_7>:
8000017c: 800000b7 lui ra,0x80000
80000180: ffff8137 lui sp,0xffff8
80000184: 022081b3 mul gp,ra,sp
80000188: 00000e93 li t4,0
8000018c: 00700e13 li t3,7
80000190: 3fd19a63 bne gp,t4,80000584 <fail>
80000194 <test_30>:
80000194: aaaab0b7 lui ra,0xaaaab
80000198: aab08093 addi ra,ra,-1365 # aaaaaaab <begin_signature+0x2aaa8aab>
8000019c: 00030137 lui sp,0x30
800001a0: e7d10113 addi sp,sp,-387 # 2fe7d <_start-0x7ffd0183>
800001a4: 022081b3 mul gp,ra,sp
800001a8: 00010eb7 lui t4,0x10
800001ac: f7fe8e93 addi t4,t4,-129 # ff7f <_start-0x7fff0081>
800001b0: 01e00e13 li t3,30
800001b4: 3dd19863 bne gp,t4,80000584 <fail>
800001b8 <test_31>:
800001b8: 000300b7 lui ra,0x30
800001bc: e7d08093 addi ra,ra,-387 # 2fe7d <_start-0x7ffd0183>
800001c0: aaaab137 lui sp,0xaaaab
800001c4: aab10113 addi sp,sp,-1365 # aaaaaaab <begin_signature+0x2aaa8aab>
800001c8: 022081b3 mul gp,ra,sp
800001cc: 00010eb7 lui t4,0x10
800001d0: f7fe8e93 addi t4,t4,-129 # ff7f <_start-0x7fff0081>
800001d4: 01f00e13 li t3,31
800001d8: 3bd19663 bne gp,t4,80000584 <fail>
800001dc <test_34>:
800001dc: ff0000b7 lui ra,0xff000
800001e0: ff000137 lui sp,0xff000
800001e4: 022081b3 mul gp,ra,sp
800001e8: 00000e93 li t4,0
800001ec: 02200e13 li t3,34
800001f0: 39d19a63 bne gp,t4,80000584 <fail>
800001f4 <test_35>:
800001f4: fff00093 li ra,-1
800001f8: fff00113 li sp,-1
800001fc: 022081b3 mul gp,ra,sp
80000200: 00100e93 li t4,1
80000204: 02300e13 li t3,35
80000208: 37d19e63 bne gp,t4,80000584 <fail>
8000020c <test_36>:
8000020c: fff00093 li ra,-1
80000210: 00100113 li sp,1
80000214: 022081b3 mul gp,ra,sp
80000218: fff00e93 li t4,-1
8000021c: 02400e13 li t3,36
80000220: 37d19263 bne gp,t4,80000584 <fail>
80000224 <test_37>:
80000224: 00100093 li ra,1
80000228: fff00113 li sp,-1
8000022c: 022081b3 mul gp,ra,sp
80000230: fff00e93 li t4,-1
80000234: 02500e13 li t3,37
80000238: 35d19663 bne gp,t4,80000584 <fail>
8000023c <test_8>:
8000023c: 00d00093 li ra,13
80000240: 00b00113 li sp,11
80000244: 022080b3 mul ra,ra,sp
80000248: 08f00e93 li t4,143
8000024c: 00800e13 li t3,8
80000250: 33d09a63 bne ra,t4,80000584 <fail>
80000254 <test_9>:
80000254: 00e00093 li ra,14
80000258: 00b00113 li sp,11
8000025c: 02208133 mul sp,ra,sp
80000260: 09a00e93 li t4,154
80000264: 00900e13 li t3,9
80000268: 31d11e63 bne sp,t4,80000584 <fail>
8000026c <test_10>:
8000026c: 00d00093 li ra,13
80000270: 021080b3 mul ra,ra,ra
80000274: 0a900e93 li t4,169
80000278: 00a00e13 li t3,10
8000027c: 31d09463 bne ra,t4,80000584 <fail>
80000280 <test_11>:
80000280: 00000213 li tp,0
80000284: 00d00093 li ra,13
80000288: 00b00113 li sp,11
8000028c: 022081b3 mul gp,ra,sp
80000290: 00018313 mv t1,gp
80000294: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000298: 00200293 li t0,2
8000029c: fe5214e3 bne tp,t0,80000284 <test_11+0x4>
800002a0: 08f00e93 li t4,143
800002a4: 00b00e13 li t3,11
800002a8: 2dd31e63 bne t1,t4,80000584 <fail>
800002ac <test_12>:
800002ac: 00000213 li tp,0
800002b0: 00e00093 li ra,14
800002b4: 00b00113 li sp,11
800002b8: 022081b3 mul gp,ra,sp
800002bc: 00000013 nop
800002c0: 00018313 mv t1,gp
800002c4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002c8: 00200293 li t0,2
800002cc: fe5212e3 bne tp,t0,800002b0 <test_12+0x4>
800002d0: 09a00e93 li t4,154
800002d4: 00c00e13 li t3,12
800002d8: 2bd31663 bne t1,t4,80000584 <fail>
800002dc <test_13>:
800002dc: 00000213 li tp,0
800002e0: 00f00093 li ra,15
800002e4: 00b00113 li sp,11
800002e8: 022081b3 mul gp,ra,sp
800002ec: 00000013 nop
800002f0: 00000013 nop
800002f4: 00018313 mv t1,gp
800002f8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002fc: 00200293 li t0,2
80000300: fe5210e3 bne tp,t0,800002e0 <test_13+0x4>
80000304: 0a500e93 li t4,165
80000308: 00d00e13 li t3,13
8000030c: 27d31c63 bne t1,t4,80000584 <fail>
80000310 <test_14>:
80000310: 00000213 li tp,0
80000314: 00d00093 li ra,13
80000318: 00b00113 li sp,11
8000031c: 022081b3 mul gp,ra,sp
80000320: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000324: 00200293 li t0,2
80000328: fe5216e3 bne tp,t0,80000314 <test_14+0x4>
8000032c: 08f00e93 li t4,143
80000330: 00e00e13 li t3,14
80000334: 25d19863 bne gp,t4,80000584 <fail>
80000338 <test_15>:
80000338: 00000213 li tp,0
8000033c: 00e00093 li ra,14
80000340: 00b00113 li sp,11
80000344: 00000013 nop
80000348: 022081b3 mul gp,ra,sp
8000034c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000350: 00200293 li t0,2
80000354: fe5214e3 bne tp,t0,8000033c <test_15+0x4>
80000358: 09a00e93 li t4,154
8000035c: 00f00e13 li t3,15
80000360: 23d19263 bne gp,t4,80000584 <fail>
80000364 <test_16>:
80000364: 00000213 li tp,0
80000368: 00f00093 li ra,15
8000036c: 00b00113 li sp,11
80000370: 00000013 nop
80000374: 00000013 nop
80000378: 022081b3 mul gp,ra,sp
8000037c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000380: 00200293 li t0,2
80000384: fe5212e3 bne tp,t0,80000368 <test_16+0x4>
80000388: 0a500e93 li t4,165
8000038c: 01000e13 li t3,16
80000390: 1fd19a63 bne gp,t4,80000584 <fail>
80000394 <test_17>:
80000394: 00000213 li tp,0
80000398: 00d00093 li ra,13
8000039c: 00000013 nop
800003a0: 00b00113 li sp,11
800003a4: 022081b3 mul gp,ra,sp
800003a8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800003ac: 00200293 li t0,2
800003b0: fe5214e3 bne tp,t0,80000398 <test_17+0x4>
800003b4: 08f00e93 li t4,143
800003b8: 01100e13 li t3,17
800003bc: 1dd19463 bne gp,t4,80000584 <fail>
800003c0 <test_18>:
800003c0: 00000213 li tp,0
800003c4: 00e00093 li ra,14
800003c8: 00000013 nop
800003cc: 00b00113 li sp,11
800003d0: 00000013 nop
800003d4: 022081b3 mul gp,ra,sp
800003d8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800003dc: 00200293 li t0,2
800003e0: fe5212e3 bne tp,t0,800003c4 <test_18+0x4>
800003e4: 09a00e93 li t4,154
800003e8: 01200e13 li t3,18
800003ec: 19d19c63 bne gp,t4,80000584 <fail>
800003f0 <test_19>:
800003f0: 00000213 li tp,0
800003f4: 00f00093 li ra,15
800003f8: 00000013 nop
800003fc: 00000013 nop
80000400: 00b00113 li sp,11
80000404: 022081b3 mul gp,ra,sp
80000408: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000040c: 00200293 li t0,2
80000410: fe5212e3 bne tp,t0,800003f4 <test_19+0x4>
80000414: 0a500e93 li t4,165
80000418: 01300e13 li t3,19
8000041c: 17d19463 bne gp,t4,80000584 <fail>
80000420 <test_20>:
80000420: 00000213 li tp,0
80000424: 00b00113 li sp,11
80000428: 00d00093 li ra,13
8000042c: 022081b3 mul gp,ra,sp
80000430: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000434: 00200293 li t0,2
80000438: fe5216e3 bne tp,t0,80000424 <test_20+0x4>
8000043c: 08f00e93 li t4,143
80000440: 01400e13 li t3,20
80000444: 15d19063 bne gp,t4,80000584 <fail>
80000448 <test_21>:
80000448: 00000213 li tp,0
8000044c: 00b00113 li sp,11
80000450: 00e00093 li ra,14
80000454: 00000013 nop
80000458: 022081b3 mul gp,ra,sp
8000045c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000460: 00200293 li t0,2
80000464: fe5214e3 bne tp,t0,8000044c <test_21+0x4>
80000468: 09a00e93 li t4,154
8000046c: 01500e13 li t3,21
80000470: 11d19a63 bne gp,t4,80000584 <fail>
80000474 <test_22>:
80000474: 00000213 li tp,0
80000478: 00b00113 li sp,11
8000047c: 00f00093 li ra,15
80000480: 00000013 nop
80000484: 00000013 nop
80000488: 022081b3 mul gp,ra,sp
8000048c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000490: 00200293 li t0,2
80000494: fe5212e3 bne tp,t0,80000478 <test_22+0x4>
80000498: 0a500e93 li t4,165
8000049c: 01600e13 li t3,22
800004a0: 0fd19263 bne gp,t4,80000584 <fail>
800004a4 <test_23>:
800004a4: 00000213 li tp,0
800004a8: 00b00113 li sp,11
800004ac: 00000013 nop
800004b0: 00d00093 li ra,13
800004b4: 022081b3 mul gp,ra,sp
800004b8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800004bc: 00200293 li t0,2
800004c0: fe5214e3 bne tp,t0,800004a8 <test_23+0x4>
800004c4: 08f00e93 li t4,143
800004c8: 01700e13 li t3,23
800004cc: 0bd19c63 bne gp,t4,80000584 <fail>
800004d0 <test_24>:
800004d0: 00000213 li tp,0
800004d4: 00b00113 li sp,11
800004d8: 00000013 nop
800004dc: 00e00093 li ra,14
800004e0: 00000013 nop
800004e4: 022081b3 mul gp,ra,sp
800004e8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800004ec: 00200293 li t0,2
800004f0: fe5212e3 bne tp,t0,800004d4 <test_24+0x4>
800004f4: 09a00e93 li t4,154
800004f8: 01800e13 li t3,24
800004fc: 09d19463 bne gp,t4,80000584 <fail>
80000500 <test_25>:
80000500: 00000213 li tp,0
80000504: 00b00113 li sp,11
80000508: 00000013 nop
8000050c: 00000013 nop
80000510: 00f00093 li ra,15
80000514: 022081b3 mul gp,ra,sp
80000518: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000051c: 00200293 li t0,2
80000520: fe5212e3 bne tp,t0,80000504 <test_25+0x4>
80000524: 0a500e93 li t4,165
80000528: 01900e13 li t3,25
8000052c: 05d19c63 bne gp,t4,80000584 <fail>
80000530 <test_26>:
80000530: 01f00093 li ra,31
80000534: 02100133 mul sp,zero,ra
80000538: 00000e93 li t4,0
8000053c: 01a00e13 li t3,26
80000540: 05d11263 bne sp,t4,80000584 <fail>
80000544 <test_27>:
80000544: 02000093 li ra,32
80000548: 02008133 mul sp,ra,zero
8000054c: 00000e93 li t4,0
80000550: 01b00e13 li t3,27
80000554: 03d11863 bne sp,t4,80000584 <fail>
80000558 <test_28>:
80000558: 020000b3 mul ra,zero,zero
8000055c: 00000e93 li t4,0
80000560: 01c00e13 li t3,28
80000564: 03d09063 bne ra,t4,80000584 <fail>
80000568 <test_29>:
80000568: 02100093 li ra,33
8000056c: 02200113 li sp,34
80000570: 02208033 mul zero,ra,sp
80000574: 00000e93 li t4,0
80000578: 01d00e13 li t3,29
8000057c: 01d01463 bne zero,t4,80000584 <fail>
80000580: 01c01c63 bne zero,t3,80000598 <pass>
80000584 <fail>:
80000584: 0ff0000f fence
80000588: 000e0063 beqz t3,80000588 <fail+0x4>
8000058c: 001e1e13 slli t3,t3,0x1
80000590: 001e6e13 ori t3,t3,1
80000594: 00000073 ecall
80000598 <pass>:
80000598: 0ff0000f fence
8000059c: 00100e13 li t3,1
800005a0: 00000073 ecall
800005a4: c0001073 unimp
800005a8: 0000 unimp
800005aa: 0000 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

View file

@ -0,0 +1,463 @@
rv32um-p-mulh: file format elf32-littleriscv
Disassembly of section .text.init:
80000000 <_start>:
80000000: 04c0006f j 8000004c <reset_vector>
80000004 <trap_vector>:
80000004: 34202f73 csrr t5,mcause
80000008: 00800f93 li t6,8
8000000c: 03ff0a63 beq t5,t6,80000040 <write_tohost>
80000010: 00900f93 li t6,9
80000014: 03ff0663 beq t5,t6,80000040 <write_tohost>
80000018: 00b00f93 li t6,11
8000001c: 03ff0263 beq t5,t6,80000040 <write_tohost>
80000020: 80000f17 auipc t5,0x80000
80000024: fe0f0f13 addi t5,t5,-32 # 0 <_start-0x80000000>
80000028: 000f0463 beqz t5,80000030 <trap_vector+0x2c>
8000002c: 000f0067 jr t5
80000030: 34202f73 csrr t5,mcause
80000034: 000f5463 bgez t5,8000003c <handle_exception>
80000038: 0040006f j 8000003c <handle_exception>
8000003c <handle_exception>:
8000003c: 539e6e13 ori t3,t3,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fdcf2023 sw t3,-64(t5) # 80001000 <tohost>
80000048: ff9ff06f j 80000040 <write_tohost>
8000004c <reset_vector>:
8000004c: f1402573 csrr a0,mhartid
80000050: 00051063 bnez a0,80000050 <reset_vector+0x4>
80000054: 30102573 csrr a0,misa
80000058: 00055863 bgez a0,80000068 <reset_vector+0x1c>
8000005c: 0ff0000f fence
80000060: 00100e13 li t3,1
80000064: 00000073 ecall
80000068: 00000e13 li t3,0
8000006c: 00000297 auipc t0,0x0
80000070: f9828293 addi t0,t0,-104 # 80000004 <trap_vector>
80000074: 30529073 csrw mtvec,t0
80000078: 30205073 csrwi medeleg,0
8000007c: 30305073 csrwi mideleg,0
80000080: 30405073 csrwi mie,0
80000084: 80000297 auipc t0,0x80000
80000088: f7c28293 addi t0,t0,-132 # 0 <_start-0x80000000>
8000008c: 00028c63 beqz t0,800000a4 <reset_vector+0x58>
80000090: 10529073 csrw stvec,t0
80000094: 1ab00293 li t0,427
80000098: 30229073 csrw medeleg,t0
8000009c: 30202373 csrr t1,medeleg
800000a0: f8629ee3 bne t0,t1,8000003c <handle_exception>
800000a4: 30005073 csrwi mstatus,0
800000a8: 00000297 auipc t0,0x0
800000ac: 01428293 addi t0,t0,20 # 800000bc <test_2>
800000b0: 34129073 csrw mepc,t0
800000b4: f1402573 csrr a0,mhartid
800000b8: 30200073 mret
800000bc <test_2>:
800000bc: 00000093 li ra,0
800000c0: 00000113 li sp,0
800000c4: 022091b3 mulh gp,ra,sp
800000c8: 00000e93 li t4,0
800000cc: 00200e13 li t3,2
800000d0: 4bd19a63 bne gp,t4,80000584 <fail>
800000d4 <test_3>:
800000d4: 00100093 li ra,1
800000d8: 00100113 li sp,1
800000dc: 022091b3 mulh gp,ra,sp
800000e0: 00000e93 li t4,0
800000e4: 00300e13 li t3,3
800000e8: 49d19e63 bne gp,t4,80000584 <fail>
800000ec <test_4>:
800000ec: 00300093 li ra,3
800000f0: 00700113 li sp,7
800000f4: 022091b3 mulh gp,ra,sp
800000f8: 00000e93 li t4,0
800000fc: 00400e13 li t3,4
80000100: 49d19263 bne gp,t4,80000584 <fail>
80000104 <test_5>:
80000104: 00000093 li ra,0
80000108: ffff8137 lui sp,0xffff8
8000010c: 022091b3 mulh gp,ra,sp
80000110: 00000e93 li t4,0
80000114: 00500e13 li t3,5
80000118: 47d19663 bne gp,t4,80000584 <fail>
8000011c <test_6>:
8000011c: 800000b7 lui ra,0x80000
80000120: 00000113 li sp,0
80000124: 022091b3 mulh gp,ra,sp
80000128: 00000e93 li t4,0
8000012c: 00600e13 li t3,6
80000130: 45d19a63 bne gp,t4,80000584 <fail>
80000134 <test_7>:
80000134: 800000b7 lui ra,0x80000
80000138: 00000113 li sp,0
8000013c: 022091b3 mulh gp,ra,sp
80000140: 00000e93 li t4,0
80000144: 00700e13 li t3,7
80000148: 43d19e63 bne gp,t4,80000584 <fail>
8000014c <test_30>:
8000014c: aaaab0b7 lui ra,0xaaaab
80000150: aab08093 addi ra,ra,-1365 # aaaaaaab <begin_signature+0x2aaa8aab>
80000154: 00030137 lui sp,0x30
80000158: e7d10113 addi sp,sp,-387 # 2fe7d <_start-0x7ffd0183>
8000015c: 022091b3 mulh gp,ra,sp
80000160: ffff0eb7 lui t4,0xffff0
80000164: 081e8e93 addi t4,t4,129 # ffff0081 <begin_signature+0x7ffee081>
80000168: 01e00e13 li t3,30
8000016c: 41d19c63 bne gp,t4,80000584 <fail>
80000170 <test_31>:
80000170: 000300b7 lui ra,0x30
80000174: e7d08093 addi ra,ra,-387 # 2fe7d <_start-0x7ffd0183>
80000178: aaaab137 lui sp,0xaaaab
8000017c: aab10113 addi sp,sp,-1365 # aaaaaaab <begin_signature+0x2aaa8aab>
80000180: 022091b3 mulh gp,ra,sp
80000184: ffff0eb7 lui t4,0xffff0
80000188: 081e8e93 addi t4,t4,129 # ffff0081 <begin_signature+0x7ffee081>
8000018c: 01f00e13 li t3,31
80000190: 3fd19a63 bne gp,t4,80000584 <fail>
80000194 <test_32>:
80000194: ff0000b7 lui ra,0xff000
80000198: ff000137 lui sp,0xff000
8000019c: 022091b3 mulh gp,ra,sp
800001a0: 00010eb7 lui t4,0x10
800001a4: 02000e13 li t3,32
800001a8: 3dd19e63 bne gp,t4,80000584 <fail>
800001ac <test_33>:
800001ac: fff00093 li ra,-1
800001b0: fff00113 li sp,-1
800001b4: 022091b3 mulh gp,ra,sp
800001b8: 00000e93 li t4,0
800001bc: 02100e13 li t3,33
800001c0: 3dd19263 bne gp,t4,80000584 <fail>
800001c4 <test_34>:
800001c4: fff00093 li ra,-1
800001c8: 00100113 li sp,1
800001cc: 022091b3 mulh gp,ra,sp
800001d0: fff00e93 li t4,-1
800001d4: 02200e13 li t3,34
800001d8: 3bd19663 bne gp,t4,80000584 <fail>
800001dc <test_35>:
800001dc: 00100093 li ra,1
800001e0: fff00113 li sp,-1
800001e4: 022091b3 mulh gp,ra,sp
800001e8: fff00e93 li t4,-1
800001ec: 02300e13 li t3,35
800001f0: 39d19a63 bne gp,t4,80000584 <fail>
800001f4 <test_8>:
800001f4: 00d000b7 lui ra,0xd00
800001f8: 00b00137 lui sp,0xb00
800001fc: 022090b3 mulh ra,ra,sp
80000200: 00009eb7 lui t4,0x9
80000204: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
80000208: 00800e13 li t3,8
8000020c: 37d09c63 bne ra,t4,80000584 <fail>
80000210 <test_9>:
80000210: 00e000b7 lui ra,0xe00
80000214: 00b00137 lui sp,0xb00
80000218: 02209133 mulh sp,ra,sp
8000021c: 0000aeb7 lui t4,0xa
80000220: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
80000224: 00900e13 li t3,9
80000228: 35d11e63 bne sp,t4,80000584 <fail>
8000022c <test_10>:
8000022c: 00d000b7 lui ra,0xd00
80000230: 021090b3 mulh ra,ra,ra
80000234: 0000beb7 lui t4,0xb
80000238: 900e8e93 addi t4,t4,-1792 # a900 <_start-0x7fff5700>
8000023c: 00a00e13 li t3,10
80000240: 35d09263 bne ra,t4,80000584 <fail>
80000244 <test_11>:
80000244: 00000213 li tp,0
80000248: 00d000b7 lui ra,0xd00
8000024c: 00b00137 lui sp,0xb00
80000250: 022091b3 mulh gp,ra,sp
80000254: 00018313 mv t1,gp
80000258: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000025c: 00200293 li t0,2
80000260: fe5214e3 bne tp,t0,80000248 <test_11+0x4>
80000264: 00009eb7 lui t4,0x9
80000268: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
8000026c: 00b00e13 li t3,11
80000270: 31d31a63 bne t1,t4,80000584 <fail>
80000274 <test_12>:
80000274: 00000213 li tp,0
80000278: 00e000b7 lui ra,0xe00
8000027c: 00b00137 lui sp,0xb00
80000280: 022091b3 mulh gp,ra,sp
80000284: 00000013 nop
80000288: 00018313 mv t1,gp
8000028c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000290: 00200293 li t0,2
80000294: fe5212e3 bne tp,t0,80000278 <test_12+0x4>
80000298: 0000aeb7 lui t4,0xa
8000029c: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
800002a0: 00c00e13 li t3,12
800002a4: 2fd31063 bne t1,t4,80000584 <fail>
800002a8 <test_13>:
800002a8: 00000213 li tp,0
800002ac: 00f000b7 lui ra,0xf00
800002b0: 00b00137 lui sp,0xb00
800002b4: 022091b3 mulh gp,ra,sp
800002b8: 00000013 nop
800002bc: 00000013 nop
800002c0: 00018313 mv t1,gp
800002c4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002c8: 00200293 li t0,2
800002cc: fe5210e3 bne tp,t0,800002ac <test_13+0x4>
800002d0: 0000aeb7 lui t4,0xa
800002d4: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
800002d8: 00d00e13 li t3,13
800002dc: 2bd31463 bne t1,t4,80000584 <fail>
800002e0 <test_14>:
800002e0: 00000213 li tp,0
800002e4: 00d000b7 lui ra,0xd00
800002e8: 00b00137 lui sp,0xb00
800002ec: 022091b3 mulh gp,ra,sp
800002f0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002f4: 00200293 li t0,2
800002f8: fe5216e3 bne tp,t0,800002e4 <test_14+0x4>
800002fc: 00009eb7 lui t4,0x9
80000300: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
80000304: 00e00e13 li t3,14
80000308: 27d19e63 bne gp,t4,80000584 <fail>
8000030c <test_15>:
8000030c: 00000213 li tp,0
80000310: 00e000b7 lui ra,0xe00
80000314: 00b00137 lui sp,0xb00
80000318: 00000013 nop
8000031c: 022091b3 mulh gp,ra,sp
80000320: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000324: 00200293 li t0,2
80000328: fe5214e3 bne tp,t0,80000310 <test_15+0x4>
8000032c: 0000aeb7 lui t4,0xa
80000330: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
80000334: 00f00e13 li t3,15
80000338: 25d19663 bne gp,t4,80000584 <fail>
8000033c <test_16>:
8000033c: 00000213 li tp,0
80000340: 00f000b7 lui ra,0xf00
80000344: 00b00137 lui sp,0xb00
80000348: 00000013 nop
8000034c: 00000013 nop
80000350: 022091b3 mulh gp,ra,sp
80000354: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000358: 00200293 li t0,2
8000035c: fe5212e3 bne tp,t0,80000340 <test_16+0x4>
80000360: 0000aeb7 lui t4,0xa
80000364: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
80000368: 01000e13 li t3,16
8000036c: 21d19c63 bne gp,t4,80000584 <fail>
80000370 <test_17>:
80000370: 00000213 li tp,0
80000374: 00d000b7 lui ra,0xd00
80000378: 00000013 nop
8000037c: 00b00137 lui sp,0xb00
80000380: 022091b3 mulh gp,ra,sp
80000384: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000388: 00200293 li t0,2
8000038c: fe5214e3 bne tp,t0,80000374 <test_17+0x4>
80000390: 00009eb7 lui t4,0x9
80000394: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
80000398: 01100e13 li t3,17
8000039c: 1fd19463 bne gp,t4,80000584 <fail>
800003a0 <test_18>:
800003a0: 00000213 li tp,0
800003a4: 00e000b7 lui ra,0xe00
800003a8: 00000013 nop
800003ac: 00b00137 lui sp,0xb00
800003b0: 00000013 nop
800003b4: 022091b3 mulh gp,ra,sp
800003b8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800003bc: 00200293 li t0,2
800003c0: fe5212e3 bne tp,t0,800003a4 <test_18+0x4>
800003c4: 0000aeb7 lui t4,0xa
800003c8: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
800003cc: 01200e13 li t3,18
800003d0: 1bd19a63 bne gp,t4,80000584 <fail>
800003d4 <test_19>:
800003d4: 00000213 li tp,0
800003d8: 00f000b7 lui ra,0xf00
800003dc: 00000013 nop
800003e0: 00000013 nop
800003e4: 00b00137 lui sp,0xb00
800003e8: 022091b3 mulh gp,ra,sp
800003ec: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800003f0: 00200293 li t0,2
800003f4: fe5212e3 bne tp,t0,800003d8 <test_19+0x4>
800003f8: 0000aeb7 lui t4,0xa
800003fc: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
80000400: 01300e13 li t3,19
80000404: 19d19063 bne gp,t4,80000584 <fail>
80000408 <test_20>:
80000408: 00000213 li tp,0
8000040c: 00b00137 lui sp,0xb00
80000410: 00d000b7 lui ra,0xd00
80000414: 022091b3 mulh gp,ra,sp
80000418: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000041c: 00200293 li t0,2
80000420: fe5216e3 bne tp,t0,8000040c <test_20+0x4>
80000424: 00009eb7 lui t4,0x9
80000428: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
8000042c: 01400e13 li t3,20
80000430: 15d19a63 bne gp,t4,80000584 <fail>
80000434 <test_21>:
80000434: 00000213 li tp,0
80000438: 00b00137 lui sp,0xb00
8000043c: 00e000b7 lui ra,0xe00
80000440: 00000013 nop
80000444: 022091b3 mulh gp,ra,sp
80000448: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000044c: 00200293 li t0,2
80000450: fe5214e3 bne tp,t0,80000438 <test_21+0x4>
80000454: 0000aeb7 lui t4,0xa
80000458: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
8000045c: 01500e13 li t3,21
80000460: 13d19263 bne gp,t4,80000584 <fail>
80000464 <test_22>:
80000464: 00000213 li tp,0
80000468: 00b00137 lui sp,0xb00
8000046c: 00f000b7 lui ra,0xf00
80000470: 00000013 nop
80000474: 00000013 nop
80000478: 022091b3 mulh gp,ra,sp
8000047c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000480: 00200293 li t0,2
80000484: fe5212e3 bne tp,t0,80000468 <test_22+0x4>
80000488: 0000aeb7 lui t4,0xa
8000048c: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
80000490: 01600e13 li t3,22
80000494: 0fd19863 bne gp,t4,80000584 <fail>
80000498 <test_23>:
80000498: 00000213 li tp,0
8000049c: 00b00137 lui sp,0xb00
800004a0: 00000013 nop
800004a4: 00d000b7 lui ra,0xd00
800004a8: 022091b3 mulh gp,ra,sp
800004ac: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800004b0: 00200293 li t0,2
800004b4: fe5214e3 bne tp,t0,8000049c <test_23+0x4>
800004b8: 00009eb7 lui t4,0x9
800004bc: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
800004c0: 01700e13 li t3,23
800004c4: 0dd19063 bne gp,t4,80000584 <fail>
800004c8 <test_24>:
800004c8: 00000213 li tp,0
800004cc: 00b00137 lui sp,0xb00
800004d0: 00000013 nop
800004d4: 00e000b7 lui ra,0xe00
800004d8: 00000013 nop
800004dc: 022091b3 mulh gp,ra,sp
800004e0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800004e4: 00200293 li t0,2
800004e8: fe5212e3 bne tp,t0,800004cc <test_24+0x4>
800004ec: 0000aeb7 lui t4,0xa
800004f0: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
800004f4: 01800e13 li t3,24
800004f8: 09d19663 bne gp,t4,80000584 <fail>
800004fc <test_25>:
800004fc: 00000213 li tp,0
80000500: 00b00137 lui sp,0xb00
80000504: 00000013 nop
80000508: 00000013 nop
8000050c: 00f000b7 lui ra,0xf00
80000510: 022091b3 mulh gp,ra,sp
80000514: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000518: 00200293 li t0,2
8000051c: fe5212e3 bne tp,t0,80000500 <test_25+0x4>
80000520: 0000aeb7 lui t4,0xa
80000524: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
80000528: 01900e13 li t3,25
8000052c: 05d19c63 bne gp,t4,80000584 <fail>
80000530 <test_26>:
80000530: 7c0000b7 lui ra,0x7c000
80000534: 02101133 mulh sp,zero,ra
80000538: 00000e93 li t4,0
8000053c: 01a00e13 li t3,26
80000540: 05d11263 bne sp,t4,80000584 <fail>
80000544 <test_27>:
80000544: 800000b7 lui ra,0x80000
80000548: 02009133 mulh sp,ra,zero
8000054c: 00000e93 li t4,0
80000550: 01b00e13 li t3,27
80000554: 03d11863 bne sp,t4,80000584 <fail>
80000558 <test_28>:
80000558: 020010b3 mulh ra,zero,zero
8000055c: 00000e93 li t4,0
80000560: 01c00e13 li t3,28
80000564: 03d09063 bne ra,t4,80000584 <fail>
80000568 <test_29>:
80000568: 021000b7 lui ra,0x2100
8000056c: 02200137 lui sp,0x2200
80000570: 02209033 mulh zero,ra,sp
80000574: 00000e93 li t4,0
80000578: 01d00e13 li t3,29
8000057c: 01d01463 bne zero,t4,80000584 <fail>
80000580: 01c01c63 bne zero,t3,80000598 <pass>
80000584 <fail>:
80000584: 0ff0000f fence
80000588: 000e0063 beqz t3,80000588 <fail+0x4>
8000058c: 001e1e13 slli t3,t3,0x1
80000590: 001e6e13 ori t3,t3,1
80000594: 00000073 ecall
80000598 <pass>:
80000598: 0ff0000f fence
8000059c: 00100e13 li t3,1
800005a0: 00000073 ecall
800005a4: c0001073 unimp
800005a8: 0000 unimp
800005aa: 0000 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

View file

@ -0,0 +1,463 @@
rv32um-p-mulhsu: file format elf32-littleriscv
Disassembly of section .text.init:
80000000 <_start>:
80000000: 04c0006f j 8000004c <reset_vector>
80000004 <trap_vector>:
80000004: 34202f73 csrr t5,mcause
80000008: 00800f93 li t6,8
8000000c: 03ff0a63 beq t5,t6,80000040 <write_tohost>
80000010: 00900f93 li t6,9
80000014: 03ff0663 beq t5,t6,80000040 <write_tohost>
80000018: 00b00f93 li t6,11
8000001c: 03ff0263 beq t5,t6,80000040 <write_tohost>
80000020: 80000f17 auipc t5,0x80000
80000024: fe0f0f13 addi t5,t5,-32 # 0 <_start-0x80000000>
80000028: 000f0463 beqz t5,80000030 <trap_vector+0x2c>
8000002c: 000f0067 jr t5
80000030: 34202f73 csrr t5,mcause
80000034: 000f5463 bgez t5,8000003c <handle_exception>
80000038: 0040006f j 8000003c <handle_exception>
8000003c <handle_exception>:
8000003c: 539e6e13 ori t3,t3,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fdcf2023 sw t3,-64(t5) # 80001000 <tohost>
80000048: ff9ff06f j 80000040 <write_tohost>
8000004c <reset_vector>:
8000004c: f1402573 csrr a0,mhartid
80000050: 00051063 bnez a0,80000050 <reset_vector+0x4>
80000054: 30102573 csrr a0,misa
80000058: 00055863 bgez a0,80000068 <reset_vector+0x1c>
8000005c: 0ff0000f fence
80000060: 00100e13 li t3,1
80000064: 00000073 ecall
80000068: 00000e13 li t3,0
8000006c: 00000297 auipc t0,0x0
80000070: f9828293 addi t0,t0,-104 # 80000004 <trap_vector>
80000074: 30529073 csrw mtvec,t0
80000078: 30205073 csrwi medeleg,0
8000007c: 30305073 csrwi mideleg,0
80000080: 30405073 csrwi mie,0
80000084: 80000297 auipc t0,0x80000
80000088: f7c28293 addi t0,t0,-132 # 0 <_start-0x80000000>
8000008c: 00028c63 beqz t0,800000a4 <reset_vector+0x58>
80000090: 10529073 csrw stvec,t0
80000094: 1ab00293 li t0,427
80000098: 30229073 csrw medeleg,t0
8000009c: 30202373 csrr t1,medeleg
800000a0: f8629ee3 bne t0,t1,8000003c <handle_exception>
800000a4: 30005073 csrwi mstatus,0
800000a8: 00000297 auipc t0,0x0
800000ac: 01428293 addi t0,t0,20 # 800000bc <test_2>
800000b0: 34129073 csrw mepc,t0
800000b4: f1402573 csrr a0,mhartid
800000b8: 30200073 mret
800000bc <test_2>:
800000bc: 00000093 li ra,0
800000c0: 00000113 li sp,0
800000c4: 0220a1b3 mulhsu gp,ra,sp
800000c8: 00000e93 li t4,0
800000cc: 00200e13 li t3,2
800000d0: 4bd19a63 bne gp,t4,80000584 <fail>
800000d4 <test_3>:
800000d4: 00100093 li ra,1
800000d8: 00100113 li sp,1
800000dc: 0220a1b3 mulhsu gp,ra,sp
800000e0: 00000e93 li t4,0
800000e4: 00300e13 li t3,3
800000e8: 49d19e63 bne gp,t4,80000584 <fail>
800000ec <test_4>:
800000ec: 00300093 li ra,3
800000f0: 00700113 li sp,7
800000f4: 0220a1b3 mulhsu gp,ra,sp
800000f8: 00000e93 li t4,0
800000fc: 00400e13 li t3,4
80000100: 49d19263 bne gp,t4,80000584 <fail>
80000104 <test_5>:
80000104: 00000093 li ra,0
80000108: ffff8137 lui sp,0xffff8
8000010c: 0220a1b3 mulhsu gp,ra,sp
80000110: 00000e93 li t4,0
80000114: 00500e13 li t3,5
80000118: 47d19663 bne gp,t4,80000584 <fail>
8000011c <test_6>:
8000011c: 800000b7 lui ra,0x80000
80000120: 00000113 li sp,0
80000124: 0220a1b3 mulhsu gp,ra,sp
80000128: 00000e93 li t4,0
8000012c: 00600e13 li t3,6
80000130: 45d19a63 bne gp,t4,80000584 <fail>
80000134 <test_7>:
80000134: 800000b7 lui ra,0x80000
80000138: ffff8137 lui sp,0xffff8
8000013c: 0220a1b3 mulhsu gp,ra,sp
80000140: 80004eb7 lui t4,0x80004
80000144: 00700e13 li t3,7
80000148: 43d19e63 bne gp,t4,80000584 <fail>
8000014c <test_30>:
8000014c: aaaab0b7 lui ra,0xaaaab
80000150: aab08093 addi ra,ra,-1365 # aaaaaaab <begin_signature+0x2aaa8aab>
80000154: 00030137 lui sp,0x30
80000158: e7d10113 addi sp,sp,-387 # 2fe7d <_start-0x7ffd0183>
8000015c: 0220a1b3 mulhsu gp,ra,sp
80000160: ffff0eb7 lui t4,0xffff0
80000164: 081e8e93 addi t4,t4,129 # ffff0081 <begin_signature+0x7ffee081>
80000168: 01e00e13 li t3,30
8000016c: 41d19c63 bne gp,t4,80000584 <fail>
80000170 <test_31>:
80000170: 000300b7 lui ra,0x30
80000174: e7d08093 addi ra,ra,-387 # 2fe7d <_start-0x7ffd0183>
80000178: aaaab137 lui sp,0xaaaab
8000017c: aab10113 addi sp,sp,-1365 # aaaaaaab <begin_signature+0x2aaa8aab>
80000180: 0220a1b3 mulhsu gp,ra,sp
80000184: 00020eb7 lui t4,0x20
80000188: efee8e93 addi t4,t4,-258 # 1fefe <_start-0x7ffe0102>
8000018c: 01f00e13 li t3,31
80000190: 3fd19a63 bne gp,t4,80000584 <fail>
80000194 <test_32>:
80000194: ff0000b7 lui ra,0xff000
80000198: ff000137 lui sp,0xff000
8000019c: 0220a1b3 mulhsu gp,ra,sp
800001a0: ff010eb7 lui t4,0xff010
800001a4: 02000e13 li t3,32
800001a8: 3dd19e63 bne gp,t4,80000584 <fail>
800001ac <test_33>:
800001ac: fff00093 li ra,-1
800001b0: fff00113 li sp,-1
800001b4: 0220a1b3 mulhsu gp,ra,sp
800001b8: fff00e93 li t4,-1
800001bc: 02100e13 li t3,33
800001c0: 3dd19263 bne gp,t4,80000584 <fail>
800001c4 <test_34>:
800001c4: fff00093 li ra,-1
800001c8: 00100113 li sp,1
800001cc: 0220a1b3 mulhsu gp,ra,sp
800001d0: fff00e93 li t4,-1
800001d4: 02200e13 li t3,34
800001d8: 3bd19663 bne gp,t4,80000584 <fail>
800001dc <test_35>:
800001dc: 00100093 li ra,1
800001e0: fff00113 li sp,-1
800001e4: 0220a1b3 mulhsu gp,ra,sp
800001e8: 00000e93 li t4,0
800001ec: 02300e13 li t3,35
800001f0: 39d19a63 bne gp,t4,80000584 <fail>
800001f4 <test_8>:
800001f4: 00d000b7 lui ra,0xd00
800001f8: 00b00137 lui sp,0xb00
800001fc: 0220a0b3 mulhsu ra,ra,sp
80000200: 00009eb7 lui t4,0x9
80000204: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
80000208: 00800e13 li t3,8
8000020c: 37d09c63 bne ra,t4,80000584 <fail>
80000210 <test_9>:
80000210: 00e000b7 lui ra,0xe00
80000214: 00b00137 lui sp,0xb00
80000218: 0220a133 mulhsu sp,ra,sp
8000021c: 0000aeb7 lui t4,0xa
80000220: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
80000224: 00900e13 li t3,9
80000228: 35d11e63 bne sp,t4,80000584 <fail>
8000022c <test_10>:
8000022c: 00d000b7 lui ra,0xd00
80000230: 0210a0b3 mulhsu ra,ra,ra
80000234: 0000beb7 lui t4,0xb
80000238: 900e8e93 addi t4,t4,-1792 # a900 <_start-0x7fff5700>
8000023c: 00a00e13 li t3,10
80000240: 35d09263 bne ra,t4,80000584 <fail>
80000244 <test_11>:
80000244: 00000213 li tp,0
80000248: 00d000b7 lui ra,0xd00
8000024c: 00b00137 lui sp,0xb00
80000250: 0220a1b3 mulhsu gp,ra,sp
80000254: 00018313 mv t1,gp
80000258: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000025c: 00200293 li t0,2
80000260: fe5214e3 bne tp,t0,80000248 <test_11+0x4>
80000264: 00009eb7 lui t4,0x9
80000268: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
8000026c: 00b00e13 li t3,11
80000270: 31d31a63 bne t1,t4,80000584 <fail>
80000274 <test_12>:
80000274: 00000213 li tp,0
80000278: 00e000b7 lui ra,0xe00
8000027c: 00b00137 lui sp,0xb00
80000280: 0220a1b3 mulhsu gp,ra,sp
80000284: 00000013 nop
80000288: 00018313 mv t1,gp
8000028c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000290: 00200293 li t0,2
80000294: fe5212e3 bne tp,t0,80000278 <test_12+0x4>
80000298: 0000aeb7 lui t4,0xa
8000029c: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
800002a0: 00c00e13 li t3,12
800002a4: 2fd31063 bne t1,t4,80000584 <fail>
800002a8 <test_13>:
800002a8: 00000213 li tp,0
800002ac: 00f000b7 lui ra,0xf00
800002b0: 00b00137 lui sp,0xb00
800002b4: 0220a1b3 mulhsu gp,ra,sp
800002b8: 00000013 nop
800002bc: 00000013 nop
800002c0: 00018313 mv t1,gp
800002c4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002c8: 00200293 li t0,2
800002cc: fe5210e3 bne tp,t0,800002ac <test_13+0x4>
800002d0: 0000aeb7 lui t4,0xa
800002d4: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
800002d8: 00d00e13 li t3,13
800002dc: 2bd31463 bne t1,t4,80000584 <fail>
800002e0 <test_14>:
800002e0: 00000213 li tp,0
800002e4: 00d000b7 lui ra,0xd00
800002e8: 00b00137 lui sp,0xb00
800002ec: 0220a1b3 mulhsu gp,ra,sp
800002f0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002f4: 00200293 li t0,2
800002f8: fe5216e3 bne tp,t0,800002e4 <test_14+0x4>
800002fc: 00009eb7 lui t4,0x9
80000300: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
80000304: 00e00e13 li t3,14
80000308: 27d19e63 bne gp,t4,80000584 <fail>
8000030c <test_15>:
8000030c: 00000213 li tp,0
80000310: 00e000b7 lui ra,0xe00
80000314: 00b00137 lui sp,0xb00
80000318: 00000013 nop
8000031c: 0220a1b3 mulhsu gp,ra,sp
80000320: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000324: 00200293 li t0,2
80000328: fe5214e3 bne tp,t0,80000310 <test_15+0x4>
8000032c: 0000aeb7 lui t4,0xa
80000330: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
80000334: 00f00e13 li t3,15
80000338: 25d19663 bne gp,t4,80000584 <fail>
8000033c <test_16>:
8000033c: 00000213 li tp,0
80000340: 00f000b7 lui ra,0xf00
80000344: 00b00137 lui sp,0xb00
80000348: 00000013 nop
8000034c: 00000013 nop
80000350: 0220a1b3 mulhsu gp,ra,sp
80000354: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000358: 00200293 li t0,2
8000035c: fe5212e3 bne tp,t0,80000340 <test_16+0x4>
80000360: 0000aeb7 lui t4,0xa
80000364: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
80000368: 01000e13 li t3,16
8000036c: 21d19c63 bne gp,t4,80000584 <fail>
80000370 <test_17>:
80000370: 00000213 li tp,0
80000374: 00d000b7 lui ra,0xd00
80000378: 00000013 nop
8000037c: 00b00137 lui sp,0xb00
80000380: 0220a1b3 mulhsu gp,ra,sp
80000384: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000388: 00200293 li t0,2
8000038c: fe5214e3 bne tp,t0,80000374 <test_17+0x4>
80000390: 00009eb7 lui t4,0x9
80000394: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
80000398: 01100e13 li t3,17
8000039c: 1fd19463 bne gp,t4,80000584 <fail>
800003a0 <test_18>:
800003a0: 00000213 li tp,0
800003a4: 00e000b7 lui ra,0xe00
800003a8: 00000013 nop
800003ac: 00b00137 lui sp,0xb00
800003b0: 00000013 nop
800003b4: 0220a1b3 mulhsu gp,ra,sp
800003b8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800003bc: 00200293 li t0,2
800003c0: fe5212e3 bne tp,t0,800003a4 <test_18+0x4>
800003c4: 0000aeb7 lui t4,0xa
800003c8: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
800003cc: 01200e13 li t3,18
800003d0: 1bd19a63 bne gp,t4,80000584 <fail>
800003d4 <test_19>:
800003d4: 00000213 li tp,0
800003d8: 00f000b7 lui ra,0xf00
800003dc: 00000013 nop
800003e0: 00000013 nop
800003e4: 00b00137 lui sp,0xb00
800003e8: 0220a1b3 mulhsu gp,ra,sp
800003ec: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800003f0: 00200293 li t0,2
800003f4: fe5212e3 bne tp,t0,800003d8 <test_19+0x4>
800003f8: 0000aeb7 lui t4,0xa
800003fc: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
80000400: 01300e13 li t3,19
80000404: 19d19063 bne gp,t4,80000584 <fail>
80000408 <test_20>:
80000408: 00000213 li tp,0
8000040c: 00b00137 lui sp,0xb00
80000410: 00d000b7 lui ra,0xd00
80000414: 0220a1b3 mulhsu gp,ra,sp
80000418: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000041c: 00200293 li t0,2
80000420: fe5216e3 bne tp,t0,8000040c <test_20+0x4>
80000424: 00009eb7 lui t4,0x9
80000428: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
8000042c: 01400e13 li t3,20
80000430: 15d19a63 bne gp,t4,80000584 <fail>
80000434 <test_21>:
80000434: 00000213 li tp,0
80000438: 00b00137 lui sp,0xb00
8000043c: 00e000b7 lui ra,0xe00
80000440: 00000013 nop
80000444: 0220a1b3 mulhsu gp,ra,sp
80000448: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000044c: 00200293 li t0,2
80000450: fe5214e3 bne tp,t0,80000438 <test_21+0x4>
80000454: 0000aeb7 lui t4,0xa
80000458: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
8000045c: 01500e13 li t3,21
80000460: 13d19263 bne gp,t4,80000584 <fail>
80000464 <test_22>:
80000464: 00000213 li tp,0
80000468: 00b00137 lui sp,0xb00
8000046c: 00f000b7 lui ra,0xf00
80000470: 00000013 nop
80000474: 00000013 nop
80000478: 0220a1b3 mulhsu gp,ra,sp
8000047c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000480: 00200293 li t0,2
80000484: fe5212e3 bne tp,t0,80000468 <test_22+0x4>
80000488: 0000aeb7 lui t4,0xa
8000048c: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
80000490: 01600e13 li t3,22
80000494: 0fd19863 bne gp,t4,80000584 <fail>
80000498 <test_23>:
80000498: 00000213 li tp,0
8000049c: 00b00137 lui sp,0xb00
800004a0: 00000013 nop
800004a4: 00d000b7 lui ra,0xd00
800004a8: 0220a1b3 mulhsu gp,ra,sp
800004ac: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800004b0: 00200293 li t0,2
800004b4: fe5214e3 bne tp,t0,8000049c <test_23+0x4>
800004b8: 00009eb7 lui t4,0x9
800004bc: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
800004c0: 01700e13 li t3,23
800004c4: 0dd19063 bne gp,t4,80000584 <fail>
800004c8 <test_24>:
800004c8: 00000213 li tp,0
800004cc: 00b00137 lui sp,0xb00
800004d0: 00000013 nop
800004d4: 00e000b7 lui ra,0xe00
800004d8: 00000013 nop
800004dc: 0220a1b3 mulhsu gp,ra,sp
800004e0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800004e4: 00200293 li t0,2
800004e8: fe5212e3 bne tp,t0,800004cc <test_24+0x4>
800004ec: 0000aeb7 lui t4,0xa
800004f0: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
800004f4: 01800e13 li t3,24
800004f8: 09d19663 bne gp,t4,80000584 <fail>
800004fc <test_25>:
800004fc: 00000213 li tp,0
80000500: 00b00137 lui sp,0xb00
80000504: 00000013 nop
80000508: 00000013 nop
8000050c: 00f000b7 lui ra,0xf00
80000510: 0220a1b3 mulhsu gp,ra,sp
80000514: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000518: 00200293 li t0,2
8000051c: fe5212e3 bne tp,t0,80000500 <test_25+0x4>
80000520: 0000aeb7 lui t4,0xa
80000524: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
80000528: 01900e13 li t3,25
8000052c: 05d19c63 bne gp,t4,80000584 <fail>
80000530 <test_26>:
80000530: 7c0000b7 lui ra,0x7c000
80000534: 02102133 mulhsu sp,zero,ra
80000538: 00000e93 li t4,0
8000053c: 01a00e13 li t3,26
80000540: 05d11263 bne sp,t4,80000584 <fail>
80000544 <test_27>:
80000544: 800000b7 lui ra,0x80000
80000548: 0200a133 mulhsu sp,ra,zero
8000054c: 00000e93 li t4,0
80000550: 01b00e13 li t3,27
80000554: 03d11863 bne sp,t4,80000584 <fail>
80000558 <test_28>:
80000558: 020020b3 mulhsu ra,zero,zero
8000055c: 00000e93 li t4,0
80000560: 01c00e13 li t3,28
80000564: 03d09063 bne ra,t4,80000584 <fail>
80000568 <test_29>:
80000568: 021000b7 lui ra,0x2100
8000056c: 02200137 lui sp,0x2200
80000570: 0220a033 mulhsu zero,ra,sp
80000574: 00000e93 li t4,0
80000578: 01d00e13 li t3,29
8000057c: 01d01463 bne zero,t4,80000584 <fail>
80000580: 01c01c63 bne zero,t3,80000598 <pass>
80000584 <fail>:
80000584: 0ff0000f fence
80000588: 000e0063 beqz t3,80000588 <fail+0x4>
8000058c: 001e1e13 slli t3,t3,0x1
80000590: 001e6e13 ori t3,t3,1
80000594: 00000073 ecall
80000598 <pass>:
80000598: 0ff0000f fence
8000059c: 00100e13 li t3,1
800005a0: 00000073 ecall
800005a4: c0001073 unimp
800005a8: 0000 unimp
800005aa: 0000 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

View file

@ -0,0 +1,463 @@
rv32um-p-mulhu: file format elf32-littleriscv
Disassembly of section .text.init:
80000000 <_start>:
80000000: 04c0006f j 8000004c <reset_vector>
80000004 <trap_vector>:
80000004: 34202f73 csrr t5,mcause
80000008: 00800f93 li t6,8
8000000c: 03ff0a63 beq t5,t6,80000040 <write_tohost>
80000010: 00900f93 li t6,9
80000014: 03ff0663 beq t5,t6,80000040 <write_tohost>
80000018: 00b00f93 li t6,11
8000001c: 03ff0263 beq t5,t6,80000040 <write_tohost>
80000020: 80000f17 auipc t5,0x80000
80000024: fe0f0f13 addi t5,t5,-32 # 0 <_start-0x80000000>
80000028: 000f0463 beqz t5,80000030 <trap_vector+0x2c>
8000002c: 000f0067 jr t5
80000030: 34202f73 csrr t5,mcause
80000034: 000f5463 bgez t5,8000003c <handle_exception>
80000038: 0040006f j 8000003c <handle_exception>
8000003c <handle_exception>:
8000003c: 539e6e13 ori t3,t3,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fdcf2023 sw t3,-64(t5) # 80001000 <tohost>
80000048: ff9ff06f j 80000040 <write_tohost>
8000004c <reset_vector>:
8000004c: f1402573 csrr a0,mhartid
80000050: 00051063 bnez a0,80000050 <reset_vector+0x4>
80000054: 30102573 csrr a0,misa
80000058: 00055863 bgez a0,80000068 <reset_vector+0x1c>
8000005c: 0ff0000f fence
80000060: 00100e13 li t3,1
80000064: 00000073 ecall
80000068: 00000e13 li t3,0
8000006c: 00000297 auipc t0,0x0
80000070: f9828293 addi t0,t0,-104 # 80000004 <trap_vector>
80000074: 30529073 csrw mtvec,t0
80000078: 30205073 csrwi medeleg,0
8000007c: 30305073 csrwi mideleg,0
80000080: 30405073 csrwi mie,0
80000084: 80000297 auipc t0,0x80000
80000088: f7c28293 addi t0,t0,-132 # 0 <_start-0x80000000>
8000008c: 00028c63 beqz t0,800000a4 <reset_vector+0x58>
80000090: 10529073 csrw stvec,t0
80000094: 1ab00293 li t0,427
80000098: 30229073 csrw medeleg,t0
8000009c: 30202373 csrr t1,medeleg
800000a0: f8629ee3 bne t0,t1,8000003c <handle_exception>
800000a4: 30005073 csrwi mstatus,0
800000a8: 00000297 auipc t0,0x0
800000ac: 01428293 addi t0,t0,20 # 800000bc <test_2>
800000b0: 34129073 csrw mepc,t0
800000b4: f1402573 csrr a0,mhartid
800000b8: 30200073 mret
800000bc <test_2>:
800000bc: 00000093 li ra,0
800000c0: 00000113 li sp,0
800000c4: 0220b1b3 mulhu gp,ra,sp
800000c8: 00000e93 li t4,0
800000cc: 00200e13 li t3,2
800000d0: 4bd19a63 bne gp,t4,80000584 <fail>
800000d4 <test_3>:
800000d4: 00100093 li ra,1
800000d8: 00100113 li sp,1
800000dc: 0220b1b3 mulhu gp,ra,sp
800000e0: 00000e93 li t4,0
800000e4: 00300e13 li t3,3
800000e8: 49d19e63 bne gp,t4,80000584 <fail>
800000ec <test_4>:
800000ec: 00300093 li ra,3
800000f0: 00700113 li sp,7
800000f4: 0220b1b3 mulhu gp,ra,sp
800000f8: 00000e93 li t4,0
800000fc: 00400e13 li t3,4
80000100: 49d19263 bne gp,t4,80000584 <fail>
80000104 <test_5>:
80000104: 00000093 li ra,0
80000108: ffff8137 lui sp,0xffff8
8000010c: 0220b1b3 mulhu gp,ra,sp
80000110: 00000e93 li t4,0
80000114: 00500e13 li t3,5
80000118: 47d19663 bne gp,t4,80000584 <fail>
8000011c <test_6>:
8000011c: 800000b7 lui ra,0x80000
80000120: 00000113 li sp,0
80000124: 0220b1b3 mulhu gp,ra,sp
80000128: 00000e93 li t4,0
8000012c: 00600e13 li t3,6
80000130: 45d19a63 bne gp,t4,80000584 <fail>
80000134 <test_7>:
80000134: 800000b7 lui ra,0x80000
80000138: ffff8137 lui sp,0xffff8
8000013c: 0220b1b3 mulhu gp,ra,sp
80000140: 7fffceb7 lui t4,0x7fffc
80000144: 00700e13 li t3,7
80000148: 43d19e63 bne gp,t4,80000584 <fail>
8000014c <test_30>:
8000014c: aaaab0b7 lui ra,0xaaaab
80000150: aab08093 addi ra,ra,-1365 # aaaaaaab <begin_signature+0x2aaa8aab>
80000154: 00030137 lui sp,0x30
80000158: e7d10113 addi sp,sp,-387 # 2fe7d <_start-0x7ffd0183>
8000015c: 0220b1b3 mulhu gp,ra,sp
80000160: 00020eb7 lui t4,0x20
80000164: efee8e93 addi t4,t4,-258 # 1fefe <_start-0x7ffe0102>
80000168: 01e00e13 li t3,30
8000016c: 41d19c63 bne gp,t4,80000584 <fail>
80000170 <test_31>:
80000170: 000300b7 lui ra,0x30
80000174: e7d08093 addi ra,ra,-387 # 2fe7d <_start-0x7ffd0183>
80000178: aaaab137 lui sp,0xaaaab
8000017c: aab10113 addi sp,sp,-1365 # aaaaaaab <begin_signature+0x2aaa8aab>
80000180: 0220b1b3 mulhu gp,ra,sp
80000184: 00020eb7 lui t4,0x20
80000188: efee8e93 addi t4,t4,-258 # 1fefe <_start-0x7ffe0102>
8000018c: 01f00e13 li t3,31
80000190: 3fd19a63 bne gp,t4,80000584 <fail>
80000194 <test_32>:
80000194: ff0000b7 lui ra,0xff000
80000198: ff000137 lui sp,0xff000
8000019c: 0220b1b3 mulhu gp,ra,sp
800001a0: fe010eb7 lui t4,0xfe010
800001a4: 02000e13 li t3,32
800001a8: 3dd19e63 bne gp,t4,80000584 <fail>
800001ac <test_33>:
800001ac: fff00093 li ra,-1
800001b0: fff00113 li sp,-1
800001b4: 0220b1b3 mulhu gp,ra,sp
800001b8: ffe00e93 li t4,-2
800001bc: 02100e13 li t3,33
800001c0: 3dd19263 bne gp,t4,80000584 <fail>
800001c4 <test_34>:
800001c4: fff00093 li ra,-1
800001c8: 00100113 li sp,1
800001cc: 0220b1b3 mulhu gp,ra,sp
800001d0: 00000e93 li t4,0
800001d4: 02200e13 li t3,34
800001d8: 3bd19663 bne gp,t4,80000584 <fail>
800001dc <test_35>:
800001dc: 00100093 li ra,1
800001e0: fff00113 li sp,-1
800001e4: 0220b1b3 mulhu gp,ra,sp
800001e8: 00000e93 li t4,0
800001ec: 02300e13 li t3,35
800001f0: 39d19a63 bne gp,t4,80000584 <fail>
800001f4 <test_8>:
800001f4: 00d000b7 lui ra,0xd00
800001f8: 00b00137 lui sp,0xb00
800001fc: 0220b0b3 mulhu ra,ra,sp
80000200: 00009eb7 lui t4,0x9
80000204: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
80000208: 00800e13 li t3,8
8000020c: 37d09c63 bne ra,t4,80000584 <fail>
80000210 <test_9>:
80000210: 00e000b7 lui ra,0xe00
80000214: 00b00137 lui sp,0xb00
80000218: 0220b133 mulhu sp,ra,sp
8000021c: 0000aeb7 lui t4,0xa
80000220: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
80000224: 00900e13 li t3,9
80000228: 35d11e63 bne sp,t4,80000584 <fail>
8000022c <test_10>:
8000022c: 00d000b7 lui ra,0xd00
80000230: 0210b0b3 mulhu ra,ra,ra
80000234: 0000beb7 lui t4,0xb
80000238: 900e8e93 addi t4,t4,-1792 # a900 <_start-0x7fff5700>
8000023c: 00a00e13 li t3,10
80000240: 35d09263 bne ra,t4,80000584 <fail>
80000244 <test_11>:
80000244: 00000213 li tp,0
80000248: 00d000b7 lui ra,0xd00
8000024c: 00b00137 lui sp,0xb00
80000250: 0220b1b3 mulhu gp,ra,sp
80000254: 00018313 mv t1,gp
80000258: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000025c: 00200293 li t0,2
80000260: fe5214e3 bne tp,t0,80000248 <test_11+0x4>
80000264: 00009eb7 lui t4,0x9
80000268: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
8000026c: 00b00e13 li t3,11
80000270: 31d31a63 bne t1,t4,80000584 <fail>
80000274 <test_12>:
80000274: 00000213 li tp,0
80000278: 00e000b7 lui ra,0xe00
8000027c: 00b00137 lui sp,0xb00
80000280: 0220b1b3 mulhu gp,ra,sp
80000284: 00000013 nop
80000288: 00018313 mv t1,gp
8000028c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000290: 00200293 li t0,2
80000294: fe5212e3 bne tp,t0,80000278 <test_12+0x4>
80000298: 0000aeb7 lui t4,0xa
8000029c: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
800002a0: 00c00e13 li t3,12
800002a4: 2fd31063 bne t1,t4,80000584 <fail>
800002a8 <test_13>:
800002a8: 00000213 li tp,0
800002ac: 00f000b7 lui ra,0xf00
800002b0: 00b00137 lui sp,0xb00
800002b4: 0220b1b3 mulhu gp,ra,sp
800002b8: 00000013 nop
800002bc: 00000013 nop
800002c0: 00018313 mv t1,gp
800002c4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002c8: 00200293 li t0,2
800002cc: fe5210e3 bne tp,t0,800002ac <test_13+0x4>
800002d0: 0000aeb7 lui t4,0xa
800002d4: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
800002d8: 00d00e13 li t3,13
800002dc: 2bd31463 bne t1,t4,80000584 <fail>
800002e0 <test_14>:
800002e0: 00000213 li tp,0
800002e4: 00d000b7 lui ra,0xd00
800002e8: 00b00137 lui sp,0xb00
800002ec: 0220b1b3 mulhu gp,ra,sp
800002f0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002f4: 00200293 li t0,2
800002f8: fe5216e3 bne tp,t0,800002e4 <test_14+0x4>
800002fc: 00009eb7 lui t4,0x9
80000300: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
80000304: 00e00e13 li t3,14
80000308: 27d19e63 bne gp,t4,80000584 <fail>
8000030c <test_15>:
8000030c: 00000213 li tp,0
80000310: 00e000b7 lui ra,0xe00
80000314: 00b00137 lui sp,0xb00
80000318: 00000013 nop
8000031c: 0220b1b3 mulhu gp,ra,sp
80000320: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000324: 00200293 li t0,2
80000328: fe5214e3 bne tp,t0,80000310 <test_15+0x4>
8000032c: 0000aeb7 lui t4,0xa
80000330: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
80000334: 00f00e13 li t3,15
80000338: 25d19663 bne gp,t4,80000584 <fail>
8000033c <test_16>:
8000033c: 00000213 li tp,0
80000340: 00f000b7 lui ra,0xf00
80000344: 00b00137 lui sp,0xb00
80000348: 00000013 nop
8000034c: 00000013 nop
80000350: 0220b1b3 mulhu gp,ra,sp
80000354: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000358: 00200293 li t0,2
8000035c: fe5212e3 bne tp,t0,80000340 <test_16+0x4>
80000360: 0000aeb7 lui t4,0xa
80000364: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
80000368: 01000e13 li t3,16
8000036c: 21d19c63 bne gp,t4,80000584 <fail>
80000370 <test_17>:
80000370: 00000213 li tp,0
80000374: 00d000b7 lui ra,0xd00
80000378: 00000013 nop
8000037c: 00b00137 lui sp,0xb00
80000380: 0220b1b3 mulhu gp,ra,sp
80000384: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000388: 00200293 li t0,2
8000038c: fe5214e3 bne tp,t0,80000374 <test_17+0x4>
80000390: 00009eb7 lui t4,0x9
80000394: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
80000398: 01100e13 li t3,17
8000039c: 1fd19463 bne gp,t4,80000584 <fail>
800003a0 <test_18>:
800003a0: 00000213 li tp,0
800003a4: 00e000b7 lui ra,0xe00
800003a8: 00000013 nop
800003ac: 00b00137 lui sp,0xb00
800003b0: 00000013 nop
800003b4: 0220b1b3 mulhu gp,ra,sp
800003b8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800003bc: 00200293 li t0,2
800003c0: fe5212e3 bne tp,t0,800003a4 <test_18+0x4>
800003c4: 0000aeb7 lui t4,0xa
800003c8: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
800003cc: 01200e13 li t3,18
800003d0: 1bd19a63 bne gp,t4,80000584 <fail>
800003d4 <test_19>:
800003d4: 00000213 li tp,0
800003d8: 00f000b7 lui ra,0xf00
800003dc: 00000013 nop
800003e0: 00000013 nop
800003e4: 00b00137 lui sp,0xb00
800003e8: 0220b1b3 mulhu gp,ra,sp
800003ec: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800003f0: 00200293 li t0,2
800003f4: fe5212e3 bne tp,t0,800003d8 <test_19+0x4>
800003f8: 0000aeb7 lui t4,0xa
800003fc: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
80000400: 01300e13 li t3,19
80000404: 19d19063 bne gp,t4,80000584 <fail>
80000408 <test_20>:
80000408: 00000213 li tp,0
8000040c: 00b00137 lui sp,0xb00
80000410: 00d000b7 lui ra,0xd00
80000414: 0220b1b3 mulhu gp,ra,sp
80000418: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000041c: 00200293 li t0,2
80000420: fe5216e3 bne tp,t0,8000040c <test_20+0x4>
80000424: 00009eb7 lui t4,0x9
80000428: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
8000042c: 01400e13 li t3,20
80000430: 15d19a63 bne gp,t4,80000584 <fail>
80000434 <test_21>:
80000434: 00000213 li tp,0
80000438: 00b00137 lui sp,0xb00
8000043c: 00e000b7 lui ra,0xe00
80000440: 00000013 nop
80000444: 0220b1b3 mulhu gp,ra,sp
80000448: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000044c: 00200293 li t0,2
80000450: fe5214e3 bne tp,t0,80000438 <test_21+0x4>
80000454: 0000aeb7 lui t4,0xa
80000458: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
8000045c: 01500e13 li t3,21
80000460: 13d19263 bne gp,t4,80000584 <fail>
80000464 <test_22>:
80000464: 00000213 li tp,0
80000468: 00b00137 lui sp,0xb00
8000046c: 00f000b7 lui ra,0xf00
80000470: 00000013 nop
80000474: 00000013 nop
80000478: 0220b1b3 mulhu gp,ra,sp
8000047c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000480: 00200293 li t0,2
80000484: fe5212e3 bne tp,t0,80000468 <test_22+0x4>
80000488: 0000aeb7 lui t4,0xa
8000048c: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
80000490: 01600e13 li t3,22
80000494: 0fd19863 bne gp,t4,80000584 <fail>
80000498 <test_23>:
80000498: 00000213 li tp,0
8000049c: 00b00137 lui sp,0xb00
800004a0: 00000013 nop
800004a4: 00d000b7 lui ra,0xd00
800004a8: 0220b1b3 mulhu gp,ra,sp
800004ac: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800004b0: 00200293 li t0,2
800004b4: fe5214e3 bne tp,t0,8000049c <test_23+0x4>
800004b8: 00009eb7 lui t4,0x9
800004bc: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
800004c0: 01700e13 li t3,23
800004c4: 0dd19063 bne gp,t4,80000584 <fail>
800004c8 <test_24>:
800004c8: 00000213 li tp,0
800004cc: 00b00137 lui sp,0xb00
800004d0: 00000013 nop
800004d4: 00e000b7 lui ra,0xe00
800004d8: 00000013 nop
800004dc: 0220b1b3 mulhu gp,ra,sp
800004e0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800004e4: 00200293 li t0,2
800004e8: fe5212e3 bne tp,t0,800004cc <test_24+0x4>
800004ec: 0000aeb7 lui t4,0xa
800004f0: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
800004f4: 01800e13 li t3,24
800004f8: 09d19663 bne gp,t4,80000584 <fail>
800004fc <test_25>:
800004fc: 00000213 li tp,0
80000500: 00b00137 lui sp,0xb00
80000504: 00000013 nop
80000508: 00000013 nop
8000050c: 00f000b7 lui ra,0xf00
80000510: 0220b1b3 mulhu gp,ra,sp
80000514: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000518: 00200293 li t0,2
8000051c: fe5212e3 bne tp,t0,80000500 <test_25+0x4>
80000520: 0000aeb7 lui t4,0xa
80000524: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
80000528: 01900e13 li t3,25
8000052c: 05d19c63 bne gp,t4,80000584 <fail>
80000530 <test_26>:
80000530: 7c0000b7 lui ra,0x7c000
80000534: 02103133 mulhu sp,zero,ra
80000538: 00000e93 li t4,0
8000053c: 01a00e13 li t3,26
80000540: 05d11263 bne sp,t4,80000584 <fail>
80000544 <test_27>:
80000544: 800000b7 lui ra,0x80000
80000548: 0200b133 mulhu sp,ra,zero
8000054c: 00000e93 li t4,0
80000550: 01b00e13 li t3,27
80000554: 03d11863 bne sp,t4,80000584 <fail>
80000558 <test_28>:
80000558: 020030b3 mulhu ra,zero,zero
8000055c: 00000e93 li t4,0
80000560: 01c00e13 li t3,28
80000564: 03d09063 bne ra,t4,80000584 <fail>
80000568 <test_29>:
80000568: 021000b7 lui ra,0x2100
8000056c: 02200137 lui sp,0x2200
80000570: 0220b033 mulhu zero,ra,sp
80000574: 00000e93 li t4,0
80000578: 01d00e13 li t3,29
8000057c: 01d01463 bne zero,t4,80000584 <fail>
80000580: 01c01c63 bne zero,t3,80000598 <pass>
80000584 <fail>:
80000584: 0ff0000f fence
80000588: 000e0063 beqz t3,80000588 <fail+0x4>
8000058c: 001e1e13 slli t3,t3,0x1
80000590: 001e6e13 ori t3,t3,1
80000594: 00000073 ecall
80000598 <pass>:
80000598: 0ff0000f fence
8000059c: 00100e13 li t3,1
800005a0: 00000073 ecall
800005a4: c0001073 unimp
800005a8: 0000 unimp
800005aa: 0000 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

View file

@ -0,0 +1,152 @@
rv32um-p-rem: file format elf32-littleriscv
Disassembly of section .text.init:
80000000 <_start>:
80000000: 04c0006f j 8000004c <reset_vector>
80000004 <trap_vector>:
80000004: 34202f73 csrr t5,mcause
80000008: 00800f93 li t6,8
8000000c: 03ff0a63 beq t5,t6,80000040 <write_tohost>
80000010: 00900f93 li t6,9
80000014: 03ff0663 beq t5,t6,80000040 <write_tohost>
80000018: 00b00f93 li t6,11
8000001c: 03ff0263 beq t5,t6,80000040 <write_tohost>
80000020: 80000f17 auipc t5,0x80000
80000024: fe0f0f13 addi t5,t5,-32 # 0 <_start-0x80000000>
80000028: 000f0463 beqz t5,80000030 <trap_vector+0x2c>
8000002c: 000f0067 jr t5
80000030: 34202f73 csrr t5,mcause
80000034: 000f5463 bgez t5,8000003c <handle_exception>
80000038: 0040006f j 8000003c <handle_exception>
8000003c <handle_exception>:
8000003c: 539e6e13 ori t3,t3,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fdcf2023 sw t3,-64(t5) # 80001000 <tohost>
80000048: ff9ff06f j 80000040 <write_tohost>
8000004c <reset_vector>:
8000004c: f1402573 csrr a0,mhartid
80000050: 00051063 bnez a0,80000050 <reset_vector+0x4>
80000054: 30102573 csrr a0,misa
80000058: 00055863 bgez a0,80000068 <reset_vector+0x1c>
8000005c: 0ff0000f fence
80000060: 00100e13 li t3,1
80000064: 00000073 ecall
80000068: 00000e13 li t3,0
8000006c: 00000297 auipc t0,0x0
80000070: f9828293 addi t0,t0,-104 # 80000004 <trap_vector>
80000074: 30529073 csrw mtvec,t0
80000078: 30205073 csrwi medeleg,0
8000007c: 30305073 csrwi mideleg,0
80000080: 30405073 csrwi mie,0
80000084: 80000297 auipc t0,0x80000
80000088: f7c28293 addi t0,t0,-132 # 0 <_start-0x80000000>
8000008c: 00028c63 beqz t0,800000a4 <reset_vector+0x58>
80000090: 10529073 csrw stvec,t0
80000094: 1ab00293 li t0,427
80000098: 30229073 csrw medeleg,t0
8000009c: 30202373 csrr t1,medeleg
800000a0: f8629ee3 bne t0,t1,8000003c <handle_exception>
800000a4: 30005073 csrwi mstatus,0
800000a8: 00000297 auipc t0,0x0
800000ac: 01428293 addi t0,t0,20 # 800000bc <test_2>
800000b0: 34129073 csrw mepc,t0
800000b4: f1402573 csrr a0,mhartid
800000b8: 30200073 mret
800000bc <test_2>:
800000bc: 01400093 li ra,20
800000c0: 00600113 li sp,6
800000c4: 0220e1b3 rem gp,ra,sp
800000c8: 00200e93 li t4,2
800000cc: 00200e13 li t3,2
800000d0: 0dd19463 bne gp,t4,80000198 <fail>
800000d4 <test_3>:
800000d4: fec00093 li ra,-20
800000d8: 00600113 li sp,6
800000dc: 0220e1b3 rem gp,ra,sp
800000e0: ffe00e93 li t4,-2
800000e4: 00300e13 li t3,3
800000e8: 0bd19863 bne gp,t4,80000198 <fail>
800000ec <test_4>:
800000ec: 01400093 li ra,20
800000f0: ffa00113 li sp,-6
800000f4: 0220e1b3 rem gp,ra,sp
800000f8: 00200e93 li t4,2
800000fc: 00400e13 li t3,4
80000100: 09d19c63 bne gp,t4,80000198 <fail>
80000104 <test_5>:
80000104: fec00093 li ra,-20
80000108: ffa00113 li sp,-6
8000010c: 0220e1b3 rem gp,ra,sp
80000110: ffe00e93 li t4,-2
80000114: 00500e13 li t3,5
80000118: 09d19063 bne gp,t4,80000198 <fail>
8000011c <test_6>:
8000011c: 00000093 li ra,0
80000120: 00100113 li sp,1
80000124: 0220e1b3 rem gp,ra,sp
80000128: 00000e93 li t4,0
8000012c: 00600e13 li t3,6
80000130: 07d19463 bne gp,t4,80000198 <fail>
80000134 <test_7>:
80000134: 00000093 li ra,0
80000138: fff00113 li sp,-1
8000013c: 0220e1b3 rem gp,ra,sp
80000140: 00000e93 li t4,0
80000144: 00700e13 li t3,7
80000148: 05d19863 bne gp,t4,80000198 <fail>
8000014c <test_8>:
8000014c: 00000093 li ra,0
80000150: 00000113 li sp,0
80000154: 0220e1b3 rem gp,ra,sp
80000158: 00000e93 li t4,0
8000015c: 00800e13 li t3,8
80000160: 03d19c63 bne gp,t4,80000198 <fail>
80000164 <test_9>:
80000164: 00100093 li ra,1
80000168: 00000113 li sp,0
8000016c: 0220e1b3 rem gp,ra,sp
80000170: 00100e93 li t4,1
80000174: 00900e13 li t3,9
80000178: 03d19063 bne gp,t4,80000198 <fail>
8000017c <test_10>:
8000017c: 00000093 li ra,0
80000180: 00000113 li sp,0
80000184: 0220e1b3 rem gp,ra,sp
80000188: 00000e93 li t4,0
8000018c: 00a00e13 li t3,10
80000190: 01d19463 bne gp,t4,80000198 <fail>
80000194: 01c01c63 bne zero,t3,800001ac <pass>
80000198 <fail>:
80000198: 0ff0000f fence
8000019c: 000e0063 beqz t3,8000019c <fail+0x4>
800001a0: 001e1e13 slli t3,t3,0x1
800001a4: 001e6e13 ori t3,t3,1
800001a8: 00000073 ecall
800001ac <pass>:
800001ac: 0ff0000f fence
800001b0: 00100e13 li t3,1
800001b4: 00000073 ecall
800001b8: c0001073 unimp
800001bc: 0000 unimp
800001be: 0000 unimp
800001c0: 0000 unimp
800001c2: 0000 unimp

View file

@ -0,0 +1,152 @@
rv32um-p-remu: file format elf32-littleriscv
Disassembly of section .text.init:
80000000 <_start>:
80000000: 04c0006f j 8000004c <reset_vector>
80000004 <trap_vector>:
80000004: 34202f73 csrr t5,mcause
80000008: 00800f93 li t6,8
8000000c: 03ff0a63 beq t5,t6,80000040 <write_tohost>
80000010: 00900f93 li t6,9
80000014: 03ff0663 beq t5,t6,80000040 <write_tohost>
80000018: 00b00f93 li t6,11
8000001c: 03ff0263 beq t5,t6,80000040 <write_tohost>
80000020: 80000f17 auipc t5,0x80000
80000024: fe0f0f13 addi t5,t5,-32 # 0 <_start-0x80000000>
80000028: 000f0463 beqz t5,80000030 <trap_vector+0x2c>
8000002c: 000f0067 jr t5
80000030: 34202f73 csrr t5,mcause
80000034: 000f5463 bgez t5,8000003c <handle_exception>
80000038: 0040006f j 8000003c <handle_exception>
8000003c <handle_exception>:
8000003c: 539e6e13 ori t3,t3,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fdcf2023 sw t3,-64(t5) # 80001000 <tohost>
80000048: ff9ff06f j 80000040 <write_tohost>
8000004c <reset_vector>:
8000004c: f1402573 csrr a0,mhartid
80000050: 00051063 bnez a0,80000050 <reset_vector+0x4>
80000054: 30102573 csrr a0,misa
80000058: 00055863 bgez a0,80000068 <reset_vector+0x1c>
8000005c: 0ff0000f fence
80000060: 00100e13 li t3,1
80000064: 00000073 ecall
80000068: 00000e13 li t3,0
8000006c: 00000297 auipc t0,0x0
80000070: f9828293 addi t0,t0,-104 # 80000004 <trap_vector>
80000074: 30529073 csrw mtvec,t0
80000078: 30205073 csrwi medeleg,0
8000007c: 30305073 csrwi mideleg,0
80000080: 30405073 csrwi mie,0
80000084: 80000297 auipc t0,0x80000
80000088: f7c28293 addi t0,t0,-132 # 0 <_start-0x80000000>
8000008c: 00028c63 beqz t0,800000a4 <reset_vector+0x58>
80000090: 10529073 csrw stvec,t0
80000094: 1ab00293 li t0,427
80000098: 30229073 csrw medeleg,t0
8000009c: 30202373 csrr t1,medeleg
800000a0: f8629ee3 bne t0,t1,8000003c <handle_exception>
800000a4: 30005073 csrwi mstatus,0
800000a8: 00000297 auipc t0,0x0
800000ac: 01428293 addi t0,t0,20 # 800000bc <test_2>
800000b0: 34129073 csrw mepc,t0
800000b4: f1402573 csrr a0,mhartid
800000b8: 30200073 mret
800000bc <test_2>:
800000bc: 01400093 li ra,20
800000c0: 00600113 li sp,6
800000c4: 0220f1b3 remu gp,ra,sp
800000c8: 00200e93 li t4,2
800000cc: 00200e13 li t3,2
800000d0: 0dd19463 bne gp,t4,80000198 <fail>
800000d4 <test_3>:
800000d4: fec00093 li ra,-20
800000d8: 00600113 li sp,6
800000dc: 0220f1b3 remu gp,ra,sp
800000e0: 00200e93 li t4,2
800000e4: 00300e13 li t3,3
800000e8: 0bd19863 bne gp,t4,80000198 <fail>
800000ec <test_4>:
800000ec: 01400093 li ra,20
800000f0: ffa00113 li sp,-6
800000f4: 0220f1b3 remu gp,ra,sp
800000f8: 01400e93 li t4,20
800000fc: 00400e13 li t3,4
80000100: 09d19c63 bne gp,t4,80000198 <fail>
80000104 <test_5>:
80000104: fec00093 li ra,-20
80000108: ffa00113 li sp,-6
8000010c: 0220f1b3 remu gp,ra,sp
80000110: fec00e93 li t4,-20
80000114: 00500e13 li t3,5
80000118: 09d19063 bne gp,t4,80000198 <fail>
8000011c <test_6>:
8000011c: 00000093 li ra,0
80000120: 00100113 li sp,1
80000124: 0220f1b3 remu gp,ra,sp
80000128: 00000e93 li t4,0
8000012c: 00600e13 li t3,6
80000130: 07d19463 bne gp,t4,80000198 <fail>
80000134 <test_7>:
80000134: 00000093 li ra,0
80000138: fff00113 li sp,-1
8000013c: 0220f1b3 remu gp,ra,sp
80000140: 00000e93 li t4,0
80000144: 00700e13 li t3,7
80000148: 05d19863 bne gp,t4,80000198 <fail>
8000014c <test_8>:
8000014c: 00000093 li ra,0
80000150: 00000113 li sp,0
80000154: 0220f1b3 remu gp,ra,sp
80000158: 00000e93 li t4,0
8000015c: 00800e13 li t3,8
80000160: 03d19c63 bne gp,t4,80000198 <fail>
80000164 <test_9>:
80000164: 00100093 li ra,1
80000168: 00000113 li sp,0
8000016c: 0220f1b3 remu gp,ra,sp
80000170: 00100e93 li t4,1
80000174: 00900e13 li t3,9
80000178: 03d19063 bne gp,t4,80000198 <fail>
8000017c <test_10>:
8000017c: 00000093 li ra,0
80000180: 00000113 li sp,0
80000184: 0220f1b3 remu gp,ra,sp
80000188: 00000e93 li t4,0
8000018c: 00a00e13 li t3,10
80000190: 01d19463 bne gp,t4,80000198 <fail>
80000194: 01c01c63 bne zero,t3,800001ac <pass>
80000198 <fail>:
80000198: 0ff0000f fence
8000019c: 000e0063 beqz t3,8000019c <fail+0x4>
800001a0: 001e1e13 slli t3,t3,0x1
800001a4: 001e6e13 ori t3,t3,1
800001a8: 00000073 ecall
800001ac <pass>:
800001ac: 0ff0000f fence
800001b0: 00100e13 li t3,1
800001b4: 00000073 ecall
800001b8: c0001073 unimp
800001bc: 0000 unimp
800001be: 0000 unimp
800001c0: 0000 unimp
800001c2: 0000 unimp

View file

@ -0,0 +1,37 @@
:0200000480007A
:100000006F00C004732F2034930F8000630AFF0336
:10001000930F90006306FF03930FB0006302FF038A
:10002000170F0080130F0FFE63040F0067000F000F
:10003000732F203463540F006F004000136E9E53E3
:10004000171F00002320CFFD6FF09FFF732540F1A5
:100050006310050073251030635805000F00F00F82
:10006000130E100073000000130E00009702000032
:10007000938282F973905230735020307350303035
:1000800073504030970200809382C2F7638C020065
:10009000739052109302B01A739022307323203061
:1000A000E39E62F873500030970200009382420191
:1000B00073901234732540F1730020309300400197
:1000C00013016000B3C12002930E3000130E200014
:1000D0006394D10D9300C0FE13016000B3C12002F0
:1000E000930ED0FF130E30006398D10B93004001A4
:1000F0001301A0FFB3C12002930ED0FF130E4000E6
:10010000639CD1099300C0FE1301A0FFB3C120027C
:10011000930E3000130E50006390D109930000003D
:1001200013011000B3C12002930E0000130E6000F3
:100130006394D107930000001301F0FFB3C12002C4
:10014000930E0000130E70006398D1059300000019
:1001500013010000B3C12002930EF0FF130E8000C4
:10016000639CD1039300100013010000B3C120026F
:10017000930EF0FF130E90006390D10393000000E4
:1001800013010000B3C12002930EF0FF130EA00074
:100190006394D101631CC0010F00F00F63000E00D7
:1001A000131E1E00136E1E00730000000F00F00FE0
:1001B000130E100073000000731000C00000000058
:0401C000000000003B
:1010000000000000000000000000000000000000E0
:1010100000000000000000000000000000000000D0
:1010200000000000000000000000000000000000C0
:1010300000000000000000000000000000000000B0
:081040000000000000000000A8
:040000058000200057
:00000001FF

View file

@ -0,0 +1,37 @@
:0200000480007A
:100000006F00C004732F2034930F8000630AFF0336
:10001000930F90006306FF03930FB0006302FF038A
:10002000170F0080130F0FFE63040F0067000F000F
:10003000732F203463540F006F004000136E9E53E3
:10004000171F00002320CFFD6FF09FFF732540F1A5
:100050006310050073251030635805000F00F00F82
:10006000130E100073000000130E00009702000032
:10007000938282F973905230735020307350303035
:1000800073504030970200809382C2F7638C020065
:10009000739052109302B01A739022307323203061
:1000A000E39E62F873500030970200009382420191
:1000B00073901234732540F1730020309300400197
:1000C00013016000B3D12002930E3000130E200004
:1000D0006396D10D9300C0FE13016000B3D12002DE
:1000E000B7BEAA2A938E7EAA130E30006398D10B56
:1000F000930040011301A0FFB3D12002930E000032
:10010000130E4000639CD1099300C0FE1301A0FFB1
:10011000B3D12002930E0000130E50006390D1095A
:10012000B700008013011000B3D12002B70E008089
:10013000130E60006394D107B70000801301F0FF35
:10014000B3D12002930E0000130E70006398D10506
:10015000B700008013010000B3D12002930EF0FF1E
:10016000130E8000639CD103930010001301000064
:10017000B3D12002930EF0FF130E90006390D103D1
:100180009300000013010000B3D12002930EF0FF92
:10019000130EA0006394D101631CC0010F00F00F87
:1001A00063000E00131E1E00136E1E00730000007D
:1001B0000F00F00F130E100073000000731000C04A
:0401C000000000003B
:1010000000000000000000000000000000000000E0
:1010100000000000000000000000000000000000D0
:1010200000000000000000000000000000000000C0
:1010300000000000000000000000000000000000B0
:081040000000000000000000A8
:040000058000200057
:00000001FF

View file

@ -0,0 +1,101 @@
:0200000480007A
:100000006F00C004732F2034930F8000630AFF0336
:10001000930F90006306FF03930FB0006302FF038A
:10002000170F0080130F0FFE63040F0067000F000F
:10003000732F203463540F006F004000136E9E53E3
:10004000171F00002320CFFD6FF09FFF732540F1A5
:100050006310050073251030635805000F00F00F82
:10006000130E100073000000130E00009702000032
:10007000938282F973905230735020307350303035
:1000800073504030970200809382C2F7638C020065
:10009000739052109302B01A739022307323203061
:1000A000E39E62F873500030970200009382420191
:1000B00073901234732540F173002030B780000034
:1000C000938000E03771DBB6130171DBB38120024E
:1000D000B71E0000938E0E20130E00026394D14BC6
:1000E000B7800000938000FC3771DBB6130171DB31
:1000F000B3812002B71E0000938E0E24130E10024F
:100100006392D1499300000013010000B3812002E3
:10011000930E0000130E20006396D1479300100049
:1001200013011000B3812002930E1000130E300053
:10013000639AD1459300300013017000B38120020F
:10014000930E5001130E4000639ED14393000000B4
:100150003781FFFFB3812002930E0000130E500081
:100160006392D143B700008013010000B3812002E5
:10017000930E0000130E60006396D141B70000801B
:100180003781FFFFB3812002930E0000130E700031
:10019000639AD13FB7B0AAAA9380B0AA37010300EF
:1001A0001301D1E7B3812002B70E0100938EFEF751
:1001B000130EE0016398D13DB70003009380D0E7B0
:1001C00037B1AAAA1301B1AAB3812002B70E010068
:1001D000938EFEF7130EF0016396D13BB70000FF3C
:1001E000370100FFB3812002930E0000130E20029E
:1001F000639AD1399300F0FF1301F0FFB38120021D
:10020000930E1000130E3002639ED1379300F0FF5F
:1002100013011000B3812002930EF0FF130E400271
:100220006392D137930010001301F0FFB3812002D5
:10023000930EF0FF130E50026396D1359300D00059
:100240001301B000B3802002930EF008130E80005B
:10025000639AD0339300E0001301B0003381200291
:10026000930EA009130E9000631ED1319300D000AD
:10027000B3801002930E900A130EA0006394D03145
:10028000130200009300D0001301B000B3812002DC
:10029000138301001302120093022000E31452FEA4
:1002A000930EF008130EB000631ED32D130200004E
:1002B0009300E0001301B000B3812002130000009E
:1002C000138301001302120093022000E31252FE76
:1002D000930EA009130EC0006316D32B1302000067
:1002E0009300F0001301B000B3812002130000005E
:1002F0001300000013830100130212009302200078
:10030000E31052FE930E500A130ED000631CD32745
:10031000130200009300D0001301B000B38120024B
:100320001302120093022000E31652FE930EF0080F
:10033000130EE0006398D125130200009300E00043
:100340001301B00013000000B38120021302120059
:1003500093022000E31452FE930EA009130EF00046
:100360006392D123130200009300F0001301B00048
:100370001300000013000000B381200213021200DA
:1003800093022000E31252FE930E500A130E000156
:10039000639AD11F130200009300D00013000000E5
:1003A0001301B000B3812002130212009302200057
:1003B000E31452FE930EF008130E10016394D11D46
:1003C000130200009300E000130000001301B000CE
:1003D00013000000B38120021302120093022000D8
:1003E000E31252FE930EA009130E2001639CD11953
:1003F000130200009300F00013000000130000003F
:100400001301B000B38120021302120093022000F6
:10041000E31252FE930E500A130E30016394D1176B
:10042000130200001301B0009300D000B38120023A
:100430001302120093022000E31652FE930EF008FE
:10044000130E40016390D115130200001301B00098
:100450009300E00013000000B38120021302120099
:1004600093022000E31452FE930EA009130E5001D4
:10047000639AD111130200001301B0009300F00041
:100480001300000013000000B381200213021200C9
:1004900093022000E31252FE930E500A130E6001E5
:1004A0006392D10F130200001301B000130000008B
:1004B0009300D000B38120021302120093022000A7
:1004C000E31452FE930EF008130E7001639CD10BDF
:1004D000130200001301B000130000009300E000BD
:1004E00013000000B38120021302120093022000C7
:1004F000E31252FE930EA009130E80016394D109FA
:10050000130200001301B0001300000013000000EC
:100510009300F000B3812002130212009302200026
:10052000E31252FE930E500A130E9001639CD10504
:100530009300F00133011002930E0000130EA0018E
:100540006312D1059300000233810002930E000074
:10055000130EB0016318D103B3000002930E000024
:10056000130EC0016390D003930010021301200208
:1005700033802002930E0000130ED0016314D001CB
:10058000631CC0010F00F00F63000E00131E1E005D
:10059000136E1E00730000000F00F00F130E10000A
:1005A00073000000731000C0000000000000000095
:1005B000000000000000000000000000000000003B
:0405C0000000000037
:1010000000000000000000000000000000000000E0
:1010100000000000000000000000000000000000D0
:1010200000000000000000000000000000000000C0
:1010300000000000000000000000000000000000B0
:081040000000000000000000A8
:040000058000200057
:00000001FF

View file

@ -0,0 +1,101 @@
:0200000480007A
:100000006F00C004732F2034930F8000630AFF0336
:10001000930F90006306FF03930FB0006302FF038A
:10002000170F0080130F0FFE63040F0067000F000F
:10003000732F203463540F006F004000136E9E53E3
:10004000171F00002320CFFD6FF09FFF732540F1A5
:100050006310050073251030635805000F00F00F82
:10006000130E100073000000130E00009702000032
:10007000938282F973905230735020307350303035
:1000800073504030970200809382C2F7638C020065
:10009000739052109302B01A739022307323203061
:1000A000E39E62F873500030970200009382420191
:1000B00073901234732540F17300203093000000D8
:1000C00013010000B3912002930E0000130E2000D4
:1000D000639AD14B9300100013011000B3912002DA
:1000E000930E0000130E3000639ED1499300300040
:1000F00013017000B3912002930E0000130E400014
:100100006392D149930000003781FFFFB391200231
:10011000930E0000130E50006396D147B700008085
:1001200013010000B3912002930E0000130E600033
:10013000639AD145B700008013010000B3912002FB
:10014000930E0000130E7000639ED143B7B0AAAAAD
:100150009380B0AA370103001301D1E7B3912002C5
:10016000B70EFFFF938E1E08130EE001639CD14172
:10017000B70003009380D0E737B1AAAA1301B1AA50
:10018000B3912002B70EFFFF938E1E08130EF001ED
:10019000639AD13FB70000FF370100FFB3912002FF
:1001A000B70E0100130E0002639ED13D9300F0FFD5
:1001B0001301F0FFB3912002930E0000130E100202
:1001C0006392D13D9300F0FF13011000B391200220
:1001D000930EF0FF130E20026396D13B93001000A4
:1001E0001301F0FFB3912002930EF0FF130E3002C3
:1001F000639AD139B700D0003701B000B390200224
:10020000B79E0000938E0EF0130E8000639CD037D3
:10021000B700E0003701B00033912002B7AE000014
:10022000938E0EA0130E9000631ED135B700D00040
:10023000B3901002B7BE0000938E0E90130EA00074
:100240006392D03513020000B700D0003701B00030
:10025000B3912002138301001302120093022000C5
:10026000E31452FEB79E0000938E0EF0130EB00002
:10027000631AD33113020000B700E0003701B00069
:10028000B391200213000000138301001302120037
:1002900093022000E31252FEB7AE0000938E0EA030
:1002A000130EC0006310D32F13020000B700F0003C
:1002B0003701B000B39120021300000013000000CA
:1002C000138301001302120093022000E31052FE78
:1002D000B7AE0000938E0E50130ED0006314D32BD4
:1002E00013020000B700D0003701B000B391200224
:1002F0001302120093022000E31652FEB79E000084
:10030000938E0EF0130EE000639ED12713020000BF
:10031000B700E0003701B00013000000B3912002E5
:100320001302120093022000E31452FEB7AE000045
:10033000938E0EA0130EF0006396D12513020000D9
:10034000B700F0003701B0001300000013000000F8
:10035000B39120021302120093022000E31252FE16
:10036000B7AE0000938E0E50130E0001639CD12196
:1003700013020000B700D000130000003701B000E6
:10038000B39120021302120093022000E31452FEE4
:10039000B79E0000938E0EF0130E10016394D11FD0
:1003A00013020000B700E000130000003701B000A6
:1003B00013000000B39120021302120093022000E8
:1003C000E31252FEB7AE0000938E0EA0130E200172
:1003D000639AD11B13020000B700F0001300000065
:1003E000130000003701B000B39120021302120085
:1003F00093022000E31252FEB7AE0000938E0E501F
:10040000130E30016390D119130200003701B000C0
:10041000B700D000B3912002130212009302200013
:10042000E31652FEB79E0000938E0EF0130E4001AD
:10043000639AD115130200003701B000B700E00045
:1004400013000000B3912002130212009302200057
:10045000E31452FEB7AE0000938E0EA0130E5001AF
:100460006392D113130200003701B000B700F0000F
:100470001300000013000000B391200213021200C9
:1004800093022000E31252FEB7AE0000938E0E508E
:10049000130E60016398D10F130200003701B00002
:1004A00013000000B700D000B39120021302120025
:1004B00093022000E31452FEB79E0000938E0EF0CC
:1004C000130E70016390D10D130200003701B000CC
:1004D00013000000B700E00013000000B3912002F9
:1004E0001302120093022000E31252FEB7AE000086
:1004F000938E0EA0130E80016396D10913020000A3
:100500003701B0001300000013000000B700F00036
:10051000B39120021302120093022000E31252FE54
:10052000B7AE0000938E0E50130E9001639CD10560
:10053000B700007C33111002930E0000130EA001CF
:100540006312D105B700008033910002930E0000C2
:10055000130EB0016318D103B3100002930E000014
:10056000130EC0016390D003B700100237012002C0
:1005700033902002930E0000130ED0016314D001BB
:10058000631CC0010F00F00F63000E00131E1E005D
:10059000136E1E00730000000F00F00F130E10000A
:1005A00073000000731000C0000000000000000095
:1005B000000000000000000000000000000000003B
:0405C0000000000037
:1010000000000000000000000000000000000000E0
:1010100000000000000000000000000000000000D0
:1010200000000000000000000000000000000000C0
:1010300000000000000000000000000000000000B0
:081040000000000000000000A8
:040000058000200057
:00000001FF

View file

@ -0,0 +1,101 @@
:0200000480007A
:100000006F00C004732F2034930F8000630AFF0336
:10001000930F90006306FF03930FB0006302FF038A
:10002000170F0080130F0FFE63040F0067000F000F
:10003000732F203463540F006F004000136E9E53E3
:10004000171F00002320CFFD6FF09FFF732540F1A5
:100050006310050073251030635805000F00F00F82
:10006000130E100073000000130E00009702000032
:10007000938282F973905230735020307350303035
:1000800073504030970200809382C2F7638C020065
:10009000739052109302B01A739022307323203061
:1000A000E39E62F873500030970200009382420191
:1000B00073901234732540F17300203093000000D8
:1000C00013010000B3A12002930E0000130E2000C4
:1000D000639AD14B9300100013011000B3A12002CA
:1000E000930E0000130E3000639ED1499300300040
:1000F00013017000B3A12002930E0000130E400004
:100100006392D149930000003781FFFFB3A1200221
:10011000930E0000130E50006396D147B700008085
:1001200013010000B3A12002930E0000130E600023
:10013000639AD145B70000803781FFFFB3A1200249
:10014000B74E0080130E7000639ED143B7B0AAAAC9
:100150009380B0AA370103001301D1E7B3A12002B5
:10016000B70EFFFF938E1E08130EE001639CD14172
:10017000B70003009380D0E737B1AAAA1301B1AA50
:10018000B3A12002B70E0200938EEEEF130EF00122
:10019000639AD13FB70000FF370100FFB3A12002EF
:1001A000B70E01FF130E0002639ED13D9300F0FFD6
:1001B0001301F0FFB3A12002930EF0FF130E100203
:1001C0006392D13D9300F0FF13011000B3A1200210
:1001D000930EF0FF130E20026396D13B93001000A4
:1001E0001301F0FFB3A12002930E0000130E3002A2
:1001F000639AD139B700D0003701B000B3A0200214
:10020000B79E0000938E0EF0130E8000639CD037D3
:10021000B700E0003701B00033A12002B7AE000004
:10022000938E0EA0130E9000631ED135B700D00040
:10023000B3A01002B7BE0000938E0E90130EA00064
:100240006392D03513020000B700D0003701B00030
:10025000B3A12002138301001302120093022000B5
:10026000E31452FEB79E0000938E0EF0130EB00002
:10027000631AD33113020000B700E0003701B00069
:10028000B3A1200213000000138301001302120027
:1002900093022000E31252FEB7AE0000938E0EA030
:1002A000130EC0006310D32F13020000B700F0003C
:1002B0003701B000B3A120021300000013000000BA
:1002C000138301001302120093022000E31052FE78
:1002D000B7AE0000938E0E50130ED0006314D32BD4
:1002E00013020000B700D0003701B000B3A1200214
:1002F0001302120093022000E31652FEB79E000084
:10030000938E0EF0130EE000639ED12713020000BF
:10031000B700E0003701B00013000000B3A12002D5
:100320001302120093022000E31452FEB7AE000045
:10033000938E0EA0130EF0006396D12513020000D9
:10034000B700F0003701B0001300000013000000F8
:10035000B3A120021302120093022000E31252FE06
:10036000B7AE0000938E0E50130E0001639CD12196
:1003700013020000B700D000130000003701B000E6
:10038000B3A120021302120093022000E31452FED4
:10039000B79E0000938E0EF0130E10016394D11FD0
:1003A00013020000B700E000130000003701B000A6
:1003B00013000000B3A120021302120093022000D8
:1003C000E31252FEB7AE0000938E0EA0130E200172
:1003D000639AD11B13020000B700F0001300000065
:1003E000130000003701B000B3A120021302120075
:1003F00093022000E31252FEB7AE0000938E0E501F
:10040000130E30016390D119130200003701B000C0
:10041000B700D000B3A12002130212009302200003
:10042000E31652FEB79E0000938E0EF0130E4001AD
:10043000639AD115130200003701B000B700E00045
:1004400013000000B3A12002130212009302200047
:10045000E31452FEB7AE0000938E0EA0130E5001AF
:100460006392D113130200003701B000B700F0000F
:100470001300000013000000B3A1200213021200B9
:1004800093022000E31252FEB7AE0000938E0E508E
:10049000130E60016398D10F130200003701B00002
:1004A00013000000B700D000B3A120021302120015
:1004B00093022000E31452FEB79E0000938E0EF0CC
:1004C000130E70016390D10D130200003701B000CC
:1004D00013000000B700E00013000000B3A12002E9
:1004E0001302120093022000E31252FEB7AE000086
:1004F000938E0EA0130E80016396D10913020000A3
:100500003701B0001300000013000000B700F00036
:10051000B3A120021302120093022000E31252FE44
:10052000B7AE0000938E0E50130E9001639CD10560
:10053000B700007C33211002930E0000130EA001BF
:100540006312D105B700008033A10002930E0000B2
:10055000130EB0016318D103B3200002930E000004
:10056000130EC0016390D003B700100237012002C0
:1005700033A02002930E0000130ED0016314D001AB
:10058000631CC0010F00F00F63000E00131E1E005D
:10059000136E1E00730000000F00F00F130E10000A
:1005A00073000000731000C0000000000000000095
:1005B000000000000000000000000000000000003B
:0405C0000000000037
:1010000000000000000000000000000000000000E0
:1010100000000000000000000000000000000000D0
:1010200000000000000000000000000000000000C0
:1010300000000000000000000000000000000000B0
:081040000000000000000000A8
:040000058000200057
:00000001FF

View file

@ -0,0 +1,101 @@
:0200000480007A
:100000006F00C004732F2034930F8000630AFF0336
:10001000930F90006306FF03930FB0006302FF038A
:10002000170F0080130F0FFE63040F0067000F000F
:10003000732F203463540F006F004000136E9E53E3
:10004000171F00002320CFFD6FF09FFF732540F1A5
:100050006310050073251030635805000F00F00F82
:10006000130E100073000000130E00009702000032
:10007000938282F973905230735020307350303035
:1000800073504030970200809382C2F7638C020065
:10009000739052109302B01A739022307323203061
:1000A000E39E62F873500030970200009382420191
:1000B00073901234732540F17300203093000000D8
:1000C00013010000B3B12002930E0000130E2000B4
:1000D000639AD14B9300100013011000B3B12002BA
:1000E000930E0000130E3000639ED1499300300040
:1000F00013017000B3B12002930E0000130E4000F4
:100100006392D149930000003781FFFFB3B1200211
:10011000930E0000130E50006396D147B700008085
:1001200013010000B3B12002930E0000130E600013
:10013000639AD145B70000803781FFFFB3B1200239
:10014000B7CEFF7F130E7000639ED143B7B0AAAA4B
:100150009380B0AA370103001301D1E7B3B12002A5
:10016000B70E0200938EEEEF130EE001639CD141B7
:10017000B70003009380D0E737B1AAAA1301B1AA50
:10018000B3B12002B70E0200938EEEEF130EF00112
:10019000639AD13FB70000FF370100FFB3B12002DF
:1001A000B70E01FE130E0002639ED13D9300F0FFD7
:1001B0001301F0FFB3B12002930EE0FF130E100203
:1001C0006392D13D9300F0FF13011000B3B1200200
:1001D000930E0000130E20026396D13B9300100093
:1001E0001301F0FFB3B12002930E0000130E300292
:1001F000639AD139B700D0003701B000B3B0200204
:10020000B79E0000938E0EF0130E8000639CD037D3
:10021000B700E0003701B00033B12002B7AE0000F4
:10022000938E0EA0130E9000631ED135B700D00040
:10023000B3B01002B7BE0000938E0E90130EA00054
:100240006392D03513020000B700D0003701B00030
:10025000B3B12002138301001302120093022000A5
:10026000E31452FEB79E0000938E0EF0130EB00002
:10027000631AD33113020000B700E0003701B00069
:10028000B3B1200213000000138301001302120017
:1002900093022000E31252FEB7AE0000938E0EA030
:1002A000130EC0006310D32F13020000B700F0003C
:1002B0003701B000B3B120021300000013000000AA
:1002C000138301001302120093022000E31052FE78
:1002D000B7AE0000938E0E50130ED0006314D32BD4
:1002E00013020000B700D0003701B000B3B1200204
:1002F0001302120093022000E31652FEB79E000084
:10030000938E0EF0130EE000639ED12713020000BF
:10031000B700E0003701B00013000000B3B12002C5
:100320001302120093022000E31452FEB7AE000045
:10033000938E0EA0130EF0006396D12513020000D9
:10034000B700F0003701B0001300000013000000F8
:10035000B3B120021302120093022000E31252FEF6
:10036000B7AE0000938E0E50130E0001639CD12196
:1003700013020000B700D000130000003701B000E6
:10038000B3B120021302120093022000E31452FEC4
:10039000B79E0000938E0EF0130E10016394D11FD0
:1003A00013020000B700E000130000003701B000A6
:1003B00013000000B3B120021302120093022000C8
:1003C000E31252FEB7AE0000938E0EA0130E200172
:1003D000639AD11B13020000B700F0001300000065
:1003E000130000003701B000B3B120021302120065
:1003F00093022000E31252FEB7AE0000938E0E501F
:10040000130E30016390D119130200003701B000C0
:10041000B700D000B3B120021302120093022000F3
:10042000E31652FEB79E0000938E0EF0130E4001AD
:10043000639AD115130200003701B000B700E00045
:1004400013000000B3B12002130212009302200037
:10045000E31452FEB7AE0000938E0EA0130E5001AF
:100460006392D113130200003701B000B700F0000F
:100470001300000013000000B3B1200213021200A9
:1004800093022000E31252FEB7AE0000938E0E508E
:10049000130E60016398D10F130200003701B00002
:1004A00013000000B700D000B3B120021302120005
:1004B00093022000E31452FEB79E0000938E0EF0CC
:1004C000130E70016390D10D130200003701B000CC
:1004D00013000000B700E00013000000B3B12002D9
:1004E0001302120093022000E31252FEB7AE000086
:1004F000938E0EA0130E80016396D10913020000A3
:100500003701B0001300000013000000B700F00036
:10051000B3B120021302120093022000E31252FE34
:10052000B7AE0000938E0E50130E9001639CD10560
:10053000B700007C33311002930E0000130EA001AF
:100540006312D105B700008033B10002930E0000A2
:10055000130EB0016318D103B3300002930E0000F4
:10056000130EC0016390D003B700100237012002C0
:1005700033B02002930E0000130ED0016314D0019B
:10058000631CC0010F00F00F63000E00131E1E005D
:10059000136E1E00730000000F00F00F130E10000A
:1005A00073000000731000C0000000000000000095
:1005B000000000000000000000000000000000003B
:0405C0000000000037
:1010000000000000000000000000000000000000E0
:1010100000000000000000000000000000000000D0
:1010200000000000000000000000000000000000C0
:1010300000000000000000000000000000000000B0
:081040000000000000000000A8
:040000058000200057
:00000001FF

View file

@ -0,0 +1,37 @@
:0200000480007A
:100000006F00C004732F2034930F8000630AFF0336
:10001000930F90006306FF03930FB0006302FF038A
:10002000170F0080130F0FFE63040F0067000F000F
:10003000732F203463540F006F004000136E9E53E3
:10004000171F00002320CFFD6FF09FFF732540F1A5
:100050006310050073251030635805000F00F00F82
:10006000130E100073000000130E00009702000032
:10007000938282F973905230735020307350303035
:1000800073504030970200809382C2F7638C020065
:10009000739052109302B01A739022307323203061
:1000A000E39E62F873500030970200009382420191
:1000B00073901234732540F1730020309300400197
:1000C00013016000B3E12002930E2000130E200004
:1000D0006394D10D9300C0FE13016000B3E12002D0
:1000E000930EE0FF130E30006398D10B9300400194
:1000F0001301A0FFB3E12002930E2000130E400075
:10010000639CD1099300C0FE1301A0FFB3E120025C
:10011000930EE0FF130E50006390D109930000008E
:1001200013011000B3E12002930E0000130E6000D3
:100130006394D107930000001301F0FFB3E12002A4
:10014000930E0000130E70006398D1059300000019
:1001500013010000B3E12002930E0000130E800093
:10016000639CD1039300100013010000B3E120024F
:10017000930E1000130E90006390D10393000000C3
:1001800013010000B3E12002930E0000130EA00043
:100190006394D101631CC0010F00F00F63000E00D7
:1001A000131E1E00136E1E00730000000F00F00FE0
:1001B000130E100073000000731000C00000000058
:0401C000000000003B
:1010000000000000000000000000000000000000E0
:1010100000000000000000000000000000000000D0
:1010200000000000000000000000000000000000C0
:1010300000000000000000000000000000000000B0
:081040000000000000000000A8
:040000058000200057
:00000001FF

View file

@ -0,0 +1,37 @@
:0200000480007A
:100000006F00C004732F2034930F8000630AFF0336
:10001000930F90006306FF03930FB0006302FF038A
:10002000170F0080130F0FFE63040F0067000F000F
:10003000732F203463540F006F004000136E9E53E3
:10004000171F00002320CFFD6FF09FFF732540F1A5
:100050006310050073251030635805000F00F00F82
:10006000130E100073000000130E00009702000032
:10007000938282F973905230735020307350303035
:1000800073504030970200809382C2F7638C020065
:10009000739052109302B01A739022307323203061
:1000A000E39E62F873500030970200009382420191
:1000B00073901234732540F1730020309300400197
:1000C00013016000B3F12002930E2000130E2000F4
:1000D0006394D10D9300C0FE13016000B3F12002C0
:1000E000930E2000130E30006398D10B9300400153
:1000F0001301A0FFB3F12002930E4001130E400044
:10010000639CD1099300C0FE1301A0FFB3F120024C
:10011000930EC0FE130E50006390D10993000000AF
:1001200013011000B3F12002930E0000130E6000C3
:100130006394D107930000001301F0FFB3F1200294
:10014000930E0000130E70006398D1059300000019
:1001500013010000B3F12002930E0000130E800083
:10016000639CD1039300100013010000B3F120023F
:10017000930E1000130E90006390D10393000000C3
:1001800013010000B3F12002930E0000130EA00033
:100190006394D101631CC0010F00F00F63000E00D7
:1001A000131E1E00136E1E00730000000F00F00FE0
:1001B000130E100073000000731000C00000000058
:0401C000000000003B
:1010000000000000000000000000000000000000E0
:1010100000000000000000000000000000000000D0
:1010200000000000000000000000000000000000C0
:1010300000000000000000000000000000000000B0
:081040000000000000000000A8
:040000058000200057
:00000001FF