adding dram writeenable support + scheduler bug fixes

This commit is contained in:
Blaise Tine 2020-05-27 19:00:23 -04:00
parent a9f896b4f3
commit 9e5885b820
96 changed files with 21656 additions and 86621 deletions

View file

@ -0,0 +1,262 @@
rv32mi-p-csr: 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: 00000f17 auipc t5,0x0
80000024: 26cf0f13 addi t5,t5,620 # 8000028c <mtvec_handler>
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: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-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: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 02028293 addi t0,t0,32 # 80000084 <reset_vector+0x38>
8000006c: 30529073 csrw mtvec,t0
80000070: 800002b7 lui t0,0x80000
80000074: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdfef>
80000078: 3b029073 csrw pmpaddr0,t0
8000007c: 01f00293 li t0,31
80000080: 3a029073 csrw pmpcfg0,t0
80000084: 00000297 auipc t0,0x0
80000088: 01828293 addi t0,t0,24 # 8000009c <reset_vector+0x50>
8000008c: 30529073 csrw mtvec,t0
80000090: 30205073 csrwi medeleg,0
80000094: 30305073 csrwi mideleg,0
80000098: 30405073 csrwi mie,0
8000009c: 00000193 li gp,0
800000a0: 00000297 auipc t0,0x0
800000a4: f6428293 addi t0,t0,-156 # 80000004 <trap_vector>
800000a8: 30529073 csrw mtvec,t0
800000ac: 00100513 li a0,1
800000b0: 01f51513 slli a0,a0,0x1f
800000b4: 00054c63 bltz a0,800000cc <reset_vector+0x80>
800000b8: 0ff0000f fence
800000bc: 00100193 li gp,1
800000c0: 05d00893 li a7,93
800000c4: 00000513 li a0,0
800000c8: 00000073 ecall
800000cc: 80000297 auipc t0,0x80000
800000d0: f3428293 addi t0,t0,-204 # 0 <_start-0x80000000>
800000d4: 00028e63 beqz t0,800000f0 <reset_vector+0xa4>
800000d8: 10529073 csrw stvec,t0
800000dc: 0000b2b7 lui t0,0xb
800000e0: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000e4: 30229073 csrw medeleg,t0
800000e8: 30202373 csrr t1,medeleg
800000ec: f46298e3 bne t0,t1,8000003c <handle_exception>
800000f0: 30005073 csrwi mstatus,0
800000f4: 00002537 lui a0,0x2
800000f8: 80050513 addi a0,a0,-2048 # 1800 <_start-0x7fffe800>
800000fc: 30052073 csrs mstatus,a0
80000100: 00000297 auipc t0,0x0
80000104: 01428293 addi t0,t0,20 # 80000114 <reset_vector+0xc8>
80000108: 34129073 csrw mepc,t0
8000010c: f1402573 csrr a0,mhartid
80000110: 30200073 mret
80000114: 3401d073 csrwi mscratch,3
80000118 <test_2>:
80000118: 34002573 csrr a0,mscratch
8000011c: 00300e93 li t4,3
80000120: 00200193 li gp,2
80000124: 13d51c63 bne a0,t4,8000025c <fail>
80000128 <test_3>:
80000128: 3400f5f3 csrrci a1,mscratch,1
8000012c: 00300e93 li t4,3
80000130: 00300193 li gp,3
80000134: 13d59463 bne a1,t4,8000025c <fail>
80000138 <test_4>:
80000138: 34026673 csrrsi a2,mscratch,4
8000013c: 00200e93 li t4,2
80000140: 00400193 li gp,4
80000144: 11d61c63 bne a2,t4,8000025c <fail>
80000148 <test_5>:
80000148: 340156f3 csrrwi a3,mscratch,2
8000014c: 00600e93 li t4,6
80000150: 00500193 li gp,5
80000154: 11d69463 bne a3,t4,8000025c <fail>
80000158 <test_6>:
80000158: 0bad2537 lui a0,0xbad2
8000015c: dea50513 addi a0,a0,-534 # bad1dea <_start-0x7452e216>
80000160: 340515f3 csrrw a1,mscratch,a0
80000164: 00200e93 li t4,2
80000168: 00600193 li gp,6
8000016c: 0fd59863 bne a1,t4,8000025c <fail>
80000170 <test_7>:
80000170: 00002537 lui a0,0x2
80000174: dea50513 addi a0,a0,-534 # 1dea <_start-0x7fffe216>
80000178: 34053573 csrrc a0,mscratch,a0
8000017c: 0bad2eb7 lui t4,0xbad2
80000180: deae8e93 addi t4,t4,-534 # bad1dea <_start-0x7452e216>
80000184: 00700193 li gp,7
80000188: 0dd51a63 bne a0,t4,8000025c <fail>
8000018c <test_8>:
8000018c: 0000c537 lui a0,0xc
80000190: eef50513 addi a0,a0,-273 # beef <_start-0x7fff4111>
80000194: 34052573 csrrs a0,mscratch,a0
80000198: 0bad0eb7 lui t4,0xbad0
8000019c: 00800193 li gp,8
800001a0: 0bd51e63 bne a0,t4,8000025c <fail>
800001a4 <test_9>:
800001a4: 34002573 csrr a0,mscratch
800001a8: 0badceb7 lui t4,0xbadc
800001ac: eefe8e93 addi t4,t4,-273 # badbeef <_start-0x74524111>
800001b0: 00900193 li gp,9
800001b4: 0bd51463 bne a0,t4,8000025c <fail>
800001b8: 30102573 csrr a0,misa
800001bc: 02057513 andi a0,a0,32
800001c0: 02050863 beqz a0,800001f0 <test_10+0x14>
800001c4: 000065b7 lui a1,0x6
800001c8: 3005a073 csrs mstatus,a1
800001cc: f0000053 fmv.w.x ft0,zero
800001d0: 3005b073 csrc mstatus,a1
800001d4: 00002597 auipc a1,0x2
800001d8: e2c58593 addi a1,a1,-468 # 80002000 <begin_signature>
800001dc <test_10>:
800001dc: 0005a027 fsw ft0,0(a1)
800001e0: 0005a503 lw a0,0(a1)
800001e4: 00100e93 li t4,1
800001e8: 00a00193 li gp,10
800001ec: 07d51863 bne a0,t4,8000025c <fail>
800001f0: 30102573 csrr a0,misa
800001f4: 01455513 srli a0,a0,0x14
800001f8: 00157513 andi a0,a0,1
800001fc: 04050463 beqz a0,80000244 <finish>
80000200: 000022b7 lui t0,0x2
80000204: 80028293 addi t0,t0,-2048 # 1800 <_start-0x7fffe800>
80000208: 3002b073 csrc mstatus,t0
8000020c: 00000297 auipc t0,0x0
80000210: 01028293 addi t0,t0,16 # 8000021c <test_11>
80000214: 34129073 csrw mepc,t0
80000218: 30200073 mret
8000021c <test_11>:
8000021c: 0ff00513 li a0,255
80000220: c0001573 csrrw a0,cycle,zero
80000224: 0ff00e93 li t4,255
80000228: 00b00193 li gp,11
8000022c: 03d51863 bne a0,t4,8000025c <fail>
80000230 <test_12>:
80000230: 0ff00513 li a0,255
80000234: 30002573 csrr a0,mstatus
80000238: 0ff00e93 li t4,255
8000023c: 00c00193 li gp,12
80000240: 01d51e63 bne a0,t4,8000025c <fail>
80000244 <finish>:
80000244: 0ff0000f fence
80000248: 00100193 li gp,1
8000024c: 05d00893 li a7,93
80000250: 00000513 li a0,0
80000254: 00000073 ecall
80000258: 02301063 bne zero,gp,80000278 <pass>
8000025c <fail>:
8000025c: 0ff0000f fence
80000260: 00018063 beqz gp,80000260 <fail+0x4>
80000264: 00119193 slli gp,gp,0x1
80000268: 0011e193 ori gp,gp,1
8000026c: 05d00893 li a7,93
80000270: 00018513 mv a0,gp
80000274: 00000073 ecall
80000278 <pass>:
80000278: 0ff0000f fence
8000027c: 00100193 li gp,1
80000280: 05d00893 li a7,93
80000284: 00000513 li a0,0
80000288: 00000073 ecall
8000028c <mtvec_handler>:
8000028c: 00900293 li t0,9
80000290: 0051e663 bltu gp,t0,8000029c <mtvec_handler+0x10>
80000294: 00b00293 li t0,11
80000298: 0232f263 bgeu t0,gp,800002bc <privileged>
8000029c: 342022f3 csrr t0,mcause
800002a0: 00800313 li t1,8
800002a4: fa629ce3 bne t0,t1,8000025c <fail>
800002a8: 0ff0000f fence
800002ac: 00100193 li gp,1
800002b0: 05d00893 li a7,93
800002b4: 00000513 li a0,0
800002b8: 00000073 ecall
800002bc <privileged>:
800002bc: 342022f3 csrr t0,mcause
800002c0: 00200313 li t1,2
800002c4: f8629ce3 bne t0,t1,8000025c <fail>
800002c8: 341022f3 csrr t0,mepc
800002cc: 00428293 addi t0,t0,4
800002d0: 34129073 csrw mepc,t0
800002d4: 30200073 mret
800002d8: c0001073 unimp
800002dc: 0000 unimp
800002de: 0000 unimp
800002e0: 0000 unimp
800002e2: 0000 unimp
800002e4: 0000 unimp
800002e6: 0000 unimp
800002e8: 0000 unimp
800002ea: 0000 unimp
800002ec: 0000 unimp
800002ee: 0000 unimp
800002f0: 0000 unimp
800002f2: 0000 unimp
800002f4: 0000 unimp
800002f6: 0000 unimp
800002f8: 0000 unimp
800002fa: 0000 unimp
800002fc: 0000 unimp
800002fe: 0000 unimp
80000300: 0000 unimp
80000302: 0000 unimp
Disassembly of section .data:
80002000 <begin_signature>:
80002000: 0001 nop
80002002: 0000 unimp
80002004: 0000 unimp
80002006: 0000 unimp
80002008: 0000 unimp
8000200a: 0000 unimp
8000200c: 0000 unimp
8000200e: 0000 unimp

View file

@ -0,0 +1,368 @@
rv32mi-p-illegal: 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: 00000f17 auipc t5,0x0
80000024: 2e0f0f13 addi t5,t5,736 # 80000300 <mtvec_handler>
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: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-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: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 02028293 addi t0,t0,32 # 80000084 <reset_vector+0x38>
8000006c: 30529073 csrw mtvec,t0
80000070: 800002b7 lui t0,0x80000
80000074: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdfff>
80000078: 3b029073 csrw pmpaddr0,t0
8000007c: 01f00293 li t0,31
80000080: 3a029073 csrw pmpcfg0,t0
80000084: 00000297 auipc t0,0x0
80000088: 01828293 addi t0,t0,24 # 8000009c <reset_vector+0x50>
8000008c: 30529073 csrw mtvec,t0
80000090: 30205073 csrwi medeleg,0
80000094: 30305073 csrwi mideleg,0
80000098: 30405073 csrwi mie,0
8000009c: 00000193 li gp,0
800000a0: 00000297 auipc t0,0x0
800000a4: f6428293 addi t0,t0,-156 # 80000004 <trap_vector>
800000a8: 30529073 csrw mtvec,t0
800000ac: 00100513 li a0,1
800000b0: 01f51513 slli a0,a0,0x1f
800000b4: 00054c63 bltz a0,800000cc <reset_vector+0x80>
800000b8: 0ff0000f fence
800000bc: 00100193 li gp,1
800000c0: 05d00893 li a7,93
800000c4: 00000513 li a0,0
800000c8: 00000073 ecall
800000cc: 80000297 auipc t0,0x80000
800000d0: f3428293 addi t0,t0,-204 # 0 <_start-0x80000000>
800000d4: 00028e63 beqz t0,800000f0 <reset_vector+0xa4>
800000d8: 10529073 csrw stvec,t0
800000dc: 0000b2b7 lui t0,0xb
800000e0: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000e4: 30229073 csrw medeleg,t0
800000e8: 30202373 csrr t1,medeleg
800000ec: f46298e3 bne t0,t1,8000003c <handle_exception>
800000f0: 30005073 csrwi mstatus,0
800000f4: 00002537 lui a0,0x2
800000f8: 80050513 addi a0,a0,-2048 # 1800 <_start-0x7fffe800>
800000fc: 30052073 csrs mstatus,a0
80000100: 00000297 auipc t0,0x0
80000104: 01428293 addi t0,t0,20 # 80000114 <reset_vector+0xc8>
80000108: 34129073 csrw mepc,t0
8000010c: f1402573 csrr a0,mhartid
80000110: 30200073 mret
80000114: 00200193 li gp,2
80000118 <bad2>:
80000118: 0000 unimp
8000011a: 0000 unimp
8000011c: 0f40006f j 80000210 <fail>
80000120: 000022b7 lui t0,0x2
80000124: 80028293 addi t0,t0,-2048 # 1800 <_start-0x7fffe800>
80000128: 3002b073 csrc mstatus,t0
8000012c: 00001337 lui t1,0x1
80000130: 80030313 addi t1,t1,-2048 # 800 <_start-0x7ffff800>
80000134: 30032073 csrs mstatus,t1
80000138: 300023f3 csrr t2,mstatus
8000013c: 0053f3b3 and t2,t2,t0
80000140: 0e731663 bne t1,t2,8000022c <pass>
80000144 <test_vectored_interrupts>:
80000144: 34415073 csrwi mip,2
80000148: 30415073 csrwi mie,2
8000014c: 00000297 auipc t0,0x0
80000150: 1b528293 addi t0,t0,437 # 80000301 <mtvec_handler+0x1>
80000154: 30529473 csrrw s0,mtvec,t0
80000158: 305022f3 csrr t0,mtvec
8000015c: 0012f293 andi t0,t0,1
80000160: 00028663 beqz t0,8000016c <msip>
80000164: 30046073 csrsi mstatus,8
80000168: 0000006f j 80000168 <test_vectored_interrupts+0x24>
8000016c <msip>:
8000016c: 30541073 csrw mtvec,s0
80000170: 30315073 csrwi mideleg,2
80000174: 00000297 auipc t0,0x0
80000178: 02828293 addi t0,t0,40 # 8000019c <msip+0x30>
8000017c: 34129073 csrw mepc,t0
80000180: 000022b7 lui t0,0x2
80000184: 80028293 addi t0,t0,-2048 # 1800 <_start-0x7fffe800>
80000188: 3002b073 csrc mstatus,t0
8000018c: 00001337 lui t1,0x1
80000190: 80030313 addi t1,t1,-2048 # 800 <_start-0x7ffff800>
80000194: 30032073 csrs mstatus,t1
80000198: 30200073 mret
8000019c: 10500073 wfi
800001a0 <bad3>:
800001a0: 0000 unimp
800001a2: 0000 unimp
800001a4: 06c0006f j 80000210 <fail>
800001a8 <bad4>:
800001a8: 10500073 wfi
800001ac: 0640006f j 80000210 <fail>
800001b0: 12000073 sfence.vma
800001b4: 180022f3 csrr t0,satp
800001b8 <bad5>:
800001b8: 0000 unimp
800001ba: 0000 unimp
800001bc: 0540006f j 80000210 <fail>
800001c0 <bad6>:
800001c0: 12000073 sfence.vma
800001c4: 04c0006f j 80000210 <fail>
800001c8 <bad7>:
800001c8: 180022f3 csrr t0,satp
800001cc: 0440006f j 80000210 <fail>
800001d0: 00000297 auipc t0,0x0
800001d4: 02028293 addi t0,t0,32 # 800001f0 <bad8>
800001d8: 14129073 csrw sepc,t0
800001dc: 10000293 li t0,256
800001e0: 1002a073 csrs sstatus,t0
800001e4: 02000293 li t0,32
800001e8: 1002b073 csrc sstatus,t0
800001ec: 10200073 sret
800001f0 <bad8>:
800001f0: 0000 unimp
800001f2: 0000 unimp
800001f4: 01c0006f j 80000210 <fail>
800001f8: 00000297 auipc t0,0x0
800001fc: 01028293 addi t0,t0,16 # 80000208 <bad9+0x4>
80000200: 14129073 csrw sepc,t0
80000204 <bad9>:
80000204: 10200073 sret
80000208: 0080006f j 80000210 <fail>
8000020c: 02301063 bne zero,gp,8000022c <pass>
80000210 <fail>:
80000210: 0ff0000f fence
80000214: 00018063 beqz gp,80000214 <fail+0x4>
80000218: 00119193 slli gp,gp,0x1
8000021c: 0011e193 ori gp,gp,1
80000220: 05d00893 li a7,93
80000224: 00018513 mv a0,gp
80000228: 00000073 ecall
8000022c <pass>:
8000022c: 0ff0000f fence
80000230: 00100193 li gp,1
80000234: 05d00893 li a7,93
80000238: 00000513 li a0,0
8000023c: 00000073 ecall
80000240: 00000013 nop
80000244: 00000013 nop
80000248: 00000013 nop
8000024c: 00000013 nop
80000250: 00000013 nop
80000254: 00000013 nop
80000258: 00000013 nop
8000025c: 00000013 nop
80000260: 00000013 nop
80000264: 00000013 nop
80000268: 00000013 nop
8000026c: 00000013 nop
80000270: 00000013 nop
80000274: 00000013 nop
80000278: 00000013 nop
8000027c: 00000013 nop
80000280: 00000013 nop
80000284: 00000013 nop
80000288: 00000013 nop
8000028c: 00000013 nop
80000290: 00000013 nop
80000294: 00000013 nop
80000298: 00000013 nop
8000029c: 00000013 nop
800002a0: 00000013 nop
800002a4: 00000013 nop
800002a8: 00000013 nop
800002ac: 00000013 nop
800002b0: 00000013 nop
800002b4: 00000013 nop
800002b8: 00000013 nop
800002bc: 00000013 nop
800002c0: 00000013 nop
800002c4: 00000013 nop
800002c8: 00000013 nop
800002cc: 00000013 nop
800002d0: 00000013 nop
800002d4: 00000013 nop
800002d8: 00000013 nop
800002dc: 00000013 nop
800002e0: 00000013 nop
800002e4: 00000013 nop
800002e8: 00000013 nop
800002ec: 00000013 nop
800002f0: 00000013 nop
800002f4: 00000013 nop
800002f8: 00000013 nop
800002fc: 00000013 nop
80000300 <mtvec_handler>:
80000300: 0400006f j 80000340 <synchronous_exception>
80000304: e69ff06f j 8000016c <msip>
80000308: f09ff06f j 80000210 <fail>
8000030c: f05ff06f j 80000210 <fail>
80000310: f01ff06f j 80000210 <fail>
80000314: efdff06f j 80000210 <fail>
80000318: ef9ff06f j 80000210 <fail>
8000031c: ef5ff06f j 80000210 <fail>
80000320: ef1ff06f j 80000210 <fail>
80000324: eedff06f j 80000210 <fail>
80000328: ee9ff06f j 80000210 <fail>
8000032c: ee5ff06f j 80000210 <fail>
80000330: ee1ff06f j 80000210 <fail>
80000334: eddff06f j 80000210 <fail>
80000338: ed9ff06f j 80000210 <fail>
8000033c: ed5ff06f j 80000210 <fail>
80000340 <synchronous_exception>:
80000340: 00200313 li t1,2
80000344: 342022f3 csrr t0,mcause
80000348: ec6294e3 bne t0,t1,80000210 <fail>
8000034c: 341022f3 csrr t0,mepc
80000350: 343023f3 csrr t2,mtval
80000354: 00038e63 beqz t2,80000370 <synchronous_exception+0x30>
80000358: 0002d303 lhu t1,0(t0)
8000035c: 0063c3b3 xor t2,t2,t1
80000360: 0022d303 lhu t1,2(t0)
80000364: 01031313 slli t1,t1,0x10
80000368: 0063c3b3 xor t2,t2,t1
8000036c: ea0392e3 bnez t2,80000210 <fail>
80000370: 00000317 auipc t1,0x0
80000374: da830313 addi t1,t1,-600 # 80000118 <bad2>
80000378: 04628e63 beq t0,t1,800003d4 <synchronous_exception+0x94>
8000037c: 00000317 auipc t1,0x0
80000380: e2430313 addi t1,t1,-476 # 800001a0 <bad3>
80000384: 04628e63 beq t0,t1,800003e0 <synchronous_exception+0xa0>
80000388: 00000317 auipc t1,0x0
8000038c: e2030313 addi t1,t1,-480 # 800001a8 <bad4>
80000390: 04628263 beq t0,t1,800003d4 <synchronous_exception+0x94>
80000394: 00000317 auipc t1,0x0
80000398: e2430313 addi t1,t1,-476 # 800001b8 <bad5>
8000039c: 04628863 beq t0,t1,800003ec <synchronous_exception+0xac>
800003a0: 00000317 auipc t1,0x0
800003a4: e2030313 addi t1,t1,-480 # 800001c0 <bad6>
800003a8: 02628663 beq t0,t1,800003d4 <synchronous_exception+0x94>
800003ac: 00000317 auipc t1,0x0
800003b0: e1c30313 addi t1,t1,-484 # 800001c8 <bad7>
800003b4: 02628063 beq t0,t1,800003d4 <synchronous_exception+0x94>
800003b8: 00000317 auipc t1,0x0
800003bc: e3830313 addi t1,t1,-456 # 800001f0 <bad8>
800003c0: 02628c63 beq t0,t1,800003f8 <synchronous_exception+0xb8>
800003c4: 00000317 auipc t1,0x0
800003c8: e4030313 addi t1,t1,-448 # 80000204 <bad9>
800003cc: 02628c63 beq t0,t1,80000404 <synchronous_exception+0xc4>
800003d0: e41ff06f j 80000210 <fail>
800003d4: 00828293 addi t0,t0,8
800003d8: 34129073 csrw mepc,t0
800003dc: 30200073 mret
800003e0: 00200337 lui t1,0x200
800003e4: 30032073 csrs mstatus,t1
800003e8: fedff06f j 800003d4 <synchronous_exception+0x94>
800003ec: 00100337 lui t1,0x100
800003f0: 30032073 csrs mstatus,t1
800003f4: fe1ff06f j 800003d4 <synchronous_exception+0x94>
800003f8: 00400337 lui t1,0x400
800003fc: 30032073 csrs mstatus,t1
80000400: fd5ff06f j 800003d4 <synchronous_exception+0x94>
80000404: fd1ff06f j 800003d4 <synchronous_exception+0x94>
80000408: c0001073 unimp
8000040c: 0000 unimp
8000040e: 0000 unimp
80000410: 0000 unimp
80000412: 0000 unimp
80000414: 0000 unimp
80000416: 0000 unimp
80000418: 0000 unimp
8000041a: 0000 unimp
8000041c: 0000 unimp
8000041e: 0000 unimp
80000420: 0000 unimp
80000422: 0000 unimp
80000424: 0000 unimp
80000426: 0000 unimp
80000428: 0000 unimp
8000042a: 0000 unimp
8000042c: 0000 unimp
8000042e: 0000 unimp
80000430: 0000 unimp
80000432: 0000 unimp
80000434: 0000 unimp
80000436: 0000 unimp
80000438: 0000 unimp
8000043a: 0000 unimp
8000043c: 0000 unimp
8000043e: 0000 unimp
80000440: 0000 unimp
80000442: 0000 unimp
80000444: 0000 unimp
80000446: 0000 unimp
80000448: 0000 unimp
8000044a: 0000 unimp
8000044c: 0000 unimp
8000044e: 0000 unimp
80000450: 0000 unimp
80000452: 0000 unimp
80000454: 0000 unimp
80000456: 0000 unimp
80000458: 0000 unimp
8000045a: 0000 unimp
8000045c: 0000 unimp
8000045e: 0000 unimp
80000460: 0000 unimp
80000462: 0000 unimp
80000464: 0000 unimp
80000466: 0000 unimp
80000468: 0000 unimp
8000046a: 0000 unimp
8000046c: 0000 unimp
8000046e: 0000 unimp
80000470: 0000 unimp
80000472: 0000 unimp
80000474: 0000 unimp
80000476: 0000 unimp
80000478: 0000 unimp
8000047a: 0000 unimp
8000047c: 0000 unimp
8000047e: 0000 unimp
80000480: 0000 unimp
80000482: 0000 unimp
80000484: 0000 unimp
80000486: 0000 unimp

View file

@ -0,0 +1,123 @@
rv32mi-p-sbreak: 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: 00000f17 auipc t5,0x0
80000024: 134f0f13 addi t5,t5,308 # 80000154 <mtvec_handler>
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: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-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: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 02028293 addi t0,t0,32 # 80000084 <reset_vector+0x38>
8000006c: 30529073 csrw mtvec,t0
80000070: 800002b7 lui t0,0x80000
80000074: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdfff>
80000078: 3b029073 csrw pmpaddr0,t0
8000007c: 01f00293 li t0,31
80000080: 3a029073 csrw pmpcfg0,t0
80000084: 00000297 auipc t0,0x0
80000088: 01828293 addi t0,t0,24 # 8000009c <reset_vector+0x50>
8000008c: 30529073 csrw mtvec,t0
80000090: 30205073 csrwi medeleg,0
80000094: 30305073 csrwi mideleg,0
80000098: 30405073 csrwi mie,0
8000009c: 00000193 li gp,0
800000a0: 00000297 auipc t0,0x0
800000a4: f6428293 addi t0,t0,-156 # 80000004 <trap_vector>
800000a8: 30529073 csrw mtvec,t0
800000ac: 00100513 li a0,1
800000b0: 01f51513 slli a0,a0,0x1f
800000b4: 00054c63 bltz a0,800000cc <reset_vector+0x80>
800000b8: 0ff0000f fence
800000bc: 00100193 li gp,1
800000c0: 05d00893 li a7,93
800000c4: 00000513 li a0,0
800000c8: 00000073 ecall
800000cc: 80000297 auipc t0,0x80000
800000d0: f3428293 addi t0,t0,-204 # 0 <_start-0x80000000>
800000d4: 00028e63 beqz t0,800000f0 <reset_vector+0xa4>
800000d8: 10529073 csrw stvec,t0
800000dc: 0000b2b7 lui t0,0xb
800000e0: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000e4: 30229073 csrw medeleg,t0
800000e8: 30202373 csrr t1,medeleg
800000ec: f46298e3 bne t0,t1,8000003c <handle_exception>
800000f0: 30005073 csrwi mstatus,0
800000f4: 00002537 lui a0,0x2
800000f8: 80050513 addi a0,a0,-2048 # 1800 <_start-0x7fffe800>
800000fc: 30052073 csrs mstatus,a0
80000100: 00000297 auipc t0,0x0
80000104: 01428293 addi t0,t0,20 # 80000114 <reset_vector+0xc8>
80000108: 34129073 csrw mepc,t0
8000010c: f1402573 csrr a0,mhartid
80000110: 30200073 mret
80000114: 00200193 li gp,2
80000118 <do_break>:
80000118: 00100073 ebreak
8000011c: 0080006f j 80000124 <fail>
80000120: 02301063 bne zero,gp,80000140 <pass>
80000124 <fail>:
80000124: 0ff0000f fence
80000128: 00018063 beqz gp,80000128 <fail+0x4>
8000012c: 00119193 slli gp,gp,0x1
80000130: 0011e193 ori gp,gp,1
80000134: 05d00893 li a7,93
80000138: 00018513 mv a0,gp
8000013c: 00000073 ecall
80000140 <pass>:
80000140: 0ff0000f fence
80000144: 00100193 li gp,1
80000148: 05d00893 li a7,93
8000014c: 00000513 li a0,0
80000150: 00000073 ecall
80000154 <mtvec_handler>:
80000154: 00300313 li t1,3
80000158: 342022f3 csrr t0,mcause
8000015c: fc6294e3 bne t0,t1,80000124 <fail>
80000160: 00000317 auipc t1,0x0
80000164: fb830313 addi t1,t1,-72 # 80000118 <do_break>
80000168: 341022f3 csrr t0,mepc
8000016c: fa629ce3 bne t0,t1,80000124 <fail>
80000170: fd1ff06f j 80000140 <pass>
80000174: c0001073 unimp
80000178: 0000 unimp
8000017a: 0000 unimp
8000017c: 0000 unimp
8000017e: 0000 unimp
80000180: 0000 unimp
80000182: 0000 unimp

View file

@ -0,0 +1,140 @@
rv32mi-p-scall: 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: 00000f17 auipc t5,0x0
80000024: 174f0f13 addi t5,t5,372 # 80000194 <mtvec_handler>
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: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-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: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 02028293 addi t0,t0,32 # 80000084 <reset_vector+0x38>
8000006c: 30529073 csrw mtvec,t0
80000070: 800002b7 lui t0,0x80000
80000074: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdfff>
80000078: 3b029073 csrw pmpaddr0,t0
8000007c: 01f00293 li t0,31
80000080: 3a029073 csrw pmpcfg0,t0
80000084: 00000297 auipc t0,0x0
80000088: 01828293 addi t0,t0,24 # 8000009c <reset_vector+0x50>
8000008c: 30529073 csrw mtvec,t0
80000090: 30205073 csrwi medeleg,0
80000094: 30305073 csrwi mideleg,0
80000098: 30405073 csrwi mie,0
8000009c: 00000193 li gp,0
800000a0: 00000297 auipc t0,0x0
800000a4: f6428293 addi t0,t0,-156 # 80000004 <trap_vector>
800000a8: 30529073 csrw mtvec,t0
800000ac: 00100513 li a0,1
800000b0: 01f51513 slli a0,a0,0x1f
800000b4: 00054c63 bltz a0,800000cc <reset_vector+0x80>
800000b8: 0ff0000f fence
800000bc: 00100193 li gp,1
800000c0: 05d00893 li a7,93
800000c4: 00000513 li a0,0
800000c8: 00000073 ecall
800000cc: 80000297 auipc t0,0x80000
800000d0: f3428293 addi t0,t0,-204 # 0 <_start-0x80000000>
800000d4: 00028e63 beqz t0,800000f0 <reset_vector+0xa4>
800000d8: 10529073 csrw stvec,t0
800000dc: 0000b2b7 lui t0,0xb
800000e0: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000e4: 30229073 csrw medeleg,t0
800000e8: 30202373 csrr t1,medeleg
800000ec: f46298e3 bne t0,t1,8000003c <handle_exception>
800000f0: 30005073 csrwi mstatus,0
800000f4: 00002537 lui a0,0x2
800000f8: 80050513 addi a0,a0,-2048 # 1800 <_start-0x7fffe800>
800000fc: 30052073 csrs mstatus,a0
80000100: 00000297 auipc t0,0x0
80000104: 01428293 addi t0,t0,20 # 80000114 <reset_vector+0xc8>
80000108: 34129073 csrw mepc,t0
8000010c: f1402573 csrr a0,mhartid
80000110: 30200073 mret
80000114: 00200193 li gp,2
80000118: 00800313 li t1,8
8000011c: 000022b7 lui t0,0x2
80000120: 80028293 addi t0,t0,-2048 # 1800 <_start-0x7fffe800>
80000124: 3002b073 csrc mstatus,t0
80000128: 300023f3 csrr t2,mstatus
8000012c: 0072f2b3 and t0,t0,t2
80000130: 00028463 beqz t0,80000138 <reset_vector+0xec>
80000134: 00b00313 li t1,11
80000138: 000022b7 lui t0,0x2
8000013c: 80028293 addi t0,t0,-2048 # 1800 <_start-0x7fffe800>
80000140: 3002b073 csrc mstatus,t0
80000144: 00000297 auipc t0,0x0
80000148: 01028293 addi t0,t0,16 # 80000154 <reset_vector+0x108>
8000014c: 34129073 csrw mepc,t0
80000150: 30200073 mret
80000154: 00100193 li gp,1
80000158 <do_scall>:
80000158: 00000073 ecall
8000015c: 0080006f j 80000164 <fail>
80000160: 02301063 bne zero,gp,80000180 <pass>
80000164 <fail>:
80000164: 0ff0000f fence
80000168: 00018063 beqz gp,80000168 <fail+0x4>
8000016c: 00119193 slli gp,gp,0x1
80000170: 0011e193 ori gp,gp,1
80000174: 05d00893 li a7,93
80000178: 00018513 mv a0,gp
8000017c: 00000073 ecall
80000180 <pass>:
80000180: 0ff0000f fence
80000184: 00100193 li gp,1
80000188: 05d00893 li a7,93
8000018c: 00000513 li a0,0
80000190: 00000073 ecall
80000194 <mtvec_handler>:
80000194: 342022f3 csrr t0,mcause
80000198: fc6296e3 bne t0,t1,80000164 <fail>
8000019c: 00000397 auipc t2,0x0
800001a0: fbc38393 addi t2,t2,-68 # 80000158 <do_scall>
800001a4: 341022f3 csrr t0,mepc
800001a8: fa729ee3 bne t0,t2,80000164 <fail>
800001ac: fd5ff06f j 80000180 <pass>
800001b0: c0001073 unimp
800001b4: 0000 unimp
800001b6: 0000 unimp
800001b8: 0000 unimp
800001ba: 0000 unimp
800001bc: 0000 unimp
800001be: 0000 unimp
800001c0: 0000 unimp
800001c2: 0000 unimp

View file

@ -0,0 +1,504 @@
rv32ui-p-add: 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: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-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: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 02028293 addi t0,t0,32 # 80000084 <reset_vector+0x38>
8000006c: 30529073 csrw mtvec,t0
80000070: 800002b7 lui t0,0x80000
80000074: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdfff>
80000078: 3b029073 csrw pmpaddr0,t0
8000007c: 01f00293 li t0,31
80000080: 3a029073 csrw pmpcfg0,t0
80000084: 00000297 auipc t0,0x0
80000088: 01828293 addi t0,t0,24 # 8000009c <reset_vector+0x50>
8000008c: 30529073 csrw mtvec,t0
80000090: 30205073 csrwi medeleg,0
80000094: 30305073 csrwi mideleg,0
80000098: 30405073 csrwi mie,0
8000009c: 00000193 li gp,0
800000a0: 00000297 auipc t0,0x0
800000a4: f6428293 addi t0,t0,-156 # 80000004 <trap_vector>
800000a8: 30529073 csrw mtvec,t0
800000ac: 00100513 li a0,1
800000b0: 01f51513 slli a0,a0,0x1f
800000b4: 00054c63 bltz a0,800000cc <reset_vector+0x80>
800000b8: 0ff0000f fence
800000bc: 00100193 li gp,1
800000c0: 05d00893 li a7,93
800000c4: 00000513 li a0,0
800000c8: 00000073 ecall
800000cc: 80000297 auipc t0,0x80000
800000d0: f3428293 addi t0,t0,-204 # 0 <_start-0x80000000>
800000d4: 00028e63 beqz t0,800000f0 <reset_vector+0xa4>
800000d8: 10529073 csrw stvec,t0
800000dc: 0000b2b7 lui t0,0xb
800000e0: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000e4: 30229073 csrw medeleg,t0
800000e8: 30202373 csrr t1,medeleg
800000ec: f46298e3 bne t0,t1,8000003c <handle_exception>
800000f0: 30005073 csrwi mstatus,0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <test_2>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108 <test_2>:
80000108: 00000093 li ra,0
8000010c: 00000113 li sp,0
80000110: 00208733 add a4,ra,sp
80000114: 00000e93 li t4,0
80000118: 00200193 li gp,2
8000011c: 4dd71663 bne a4,t4,800005e8 <fail>
80000120 <test_3>:
80000120: 00100093 li ra,1
80000124: 00100113 li sp,1
80000128: 00208733 add a4,ra,sp
8000012c: 00200e93 li t4,2
80000130: 00300193 li gp,3
80000134: 4bd71a63 bne a4,t4,800005e8 <fail>
80000138 <test_4>:
80000138: 00300093 li ra,3
8000013c: 00700113 li sp,7
80000140: 00208733 add a4,ra,sp
80000144: 00a00e93 li t4,10
80000148: 00400193 li gp,4
8000014c: 49d71e63 bne a4,t4,800005e8 <fail>
80000150 <test_5>:
80000150: 00000093 li ra,0
80000154: ffff8137 lui sp,0xffff8
80000158: 00208733 add a4,ra,sp
8000015c: ffff8eb7 lui t4,0xffff8
80000160: 00500193 li gp,5
80000164: 49d71263 bne a4,t4,800005e8 <fail>
80000168 <test_6>:
80000168: 800000b7 lui ra,0x80000
8000016c: 00000113 li sp,0
80000170: 00208733 add a4,ra,sp
80000174: 80000eb7 lui t4,0x80000
80000178: 00600193 li gp,6
8000017c: 47d71663 bne a4,t4,800005e8 <fail>
80000180 <test_7>:
80000180: 800000b7 lui ra,0x80000
80000184: ffff8137 lui sp,0xffff8
80000188: 00208733 add a4,ra,sp
8000018c: 7fff8eb7 lui t4,0x7fff8
80000190: 00700193 li gp,7
80000194: 45d71a63 bne a4,t4,800005e8 <fail>
80000198 <test_8>:
80000198: 00000093 li ra,0
8000019c: 00008137 lui sp,0x8
800001a0: fff10113 addi sp,sp,-1 # 7fff <_start-0x7fff8001>
800001a4: 00208733 add a4,ra,sp
800001a8: 00008eb7 lui t4,0x8
800001ac: fffe8e93 addi t4,t4,-1 # 7fff <_start-0x7fff8001>
800001b0: 00800193 li gp,8
800001b4: 43d71a63 bne a4,t4,800005e8 <fail>
800001b8 <test_9>:
800001b8: 800000b7 lui ra,0x80000
800001bc: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffffdfff>
800001c0: 00000113 li sp,0
800001c4: 00208733 add a4,ra,sp
800001c8: 80000eb7 lui t4,0x80000
800001cc: fffe8e93 addi t4,t4,-1 # 7fffffff <_end+0xffffdfff>
800001d0: 00900193 li gp,9
800001d4: 41d71a63 bne a4,t4,800005e8 <fail>
800001d8 <test_10>:
800001d8: 800000b7 lui ra,0x80000
800001dc: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffffdfff>
800001e0: 00008137 lui sp,0x8
800001e4: fff10113 addi sp,sp,-1 # 7fff <_start-0x7fff8001>
800001e8: 00208733 add a4,ra,sp
800001ec: 80008eb7 lui t4,0x80008
800001f0: ffee8e93 addi t4,t4,-2 # 80007ffe <_end+0x5ffe>
800001f4: 00a00193 li gp,10
800001f8: 3fd71863 bne a4,t4,800005e8 <fail>
800001fc <test_11>:
800001fc: 800000b7 lui ra,0x80000
80000200: 00008137 lui sp,0x8
80000204: fff10113 addi sp,sp,-1 # 7fff <_start-0x7fff8001>
80000208: 00208733 add a4,ra,sp
8000020c: 80008eb7 lui t4,0x80008
80000210: fffe8e93 addi t4,t4,-1 # 80007fff <_end+0x5fff>
80000214: 00b00193 li gp,11
80000218: 3dd71863 bne a4,t4,800005e8 <fail>
8000021c <test_12>:
8000021c: 800000b7 lui ra,0x80000
80000220: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffffdfff>
80000224: ffff8137 lui sp,0xffff8
80000228: 00208733 add a4,ra,sp
8000022c: 7fff8eb7 lui t4,0x7fff8
80000230: fffe8e93 addi t4,t4,-1 # 7fff7fff <_start-0x8001>
80000234: 00c00193 li gp,12
80000238: 3bd71863 bne a4,t4,800005e8 <fail>
8000023c <test_13>:
8000023c: 00000093 li ra,0
80000240: fff00113 li sp,-1
80000244: 00208733 add a4,ra,sp
80000248: fff00e93 li t4,-1
8000024c: 00d00193 li gp,13
80000250: 39d71c63 bne a4,t4,800005e8 <fail>
80000254 <test_14>:
80000254: fff00093 li ra,-1
80000258: 00100113 li sp,1
8000025c: 00208733 add a4,ra,sp
80000260: 00000e93 li t4,0
80000264: 00e00193 li gp,14
80000268: 39d71063 bne a4,t4,800005e8 <fail>
8000026c <test_15>:
8000026c: fff00093 li ra,-1
80000270: fff00113 li sp,-1
80000274: 00208733 add a4,ra,sp
80000278: ffe00e93 li t4,-2
8000027c: 00f00193 li gp,15
80000280: 37d71463 bne a4,t4,800005e8 <fail>
80000284 <test_16>:
80000284: 00100093 li ra,1
80000288: 80000137 lui sp,0x80000
8000028c: fff10113 addi sp,sp,-1 # 7fffffff <_end+0xffffdfff>
80000290: 00208733 add a4,ra,sp
80000294: 80000eb7 lui t4,0x80000
80000298: 01000193 li gp,16
8000029c: 35d71663 bne a4,t4,800005e8 <fail>
800002a0 <test_17>:
800002a0: 00d00093 li ra,13
800002a4: 00b00113 li sp,11
800002a8: 002080b3 add ra,ra,sp
800002ac: 01800e93 li t4,24
800002b0: 01100193 li gp,17
800002b4: 33d09a63 bne ra,t4,800005e8 <fail>
800002b8 <test_18>:
800002b8: 00e00093 li ra,14
800002bc: 00b00113 li sp,11
800002c0: 00208133 add sp,ra,sp
800002c4: 01900e93 li t4,25
800002c8: 01200193 li gp,18
800002cc: 31d11e63 bne sp,t4,800005e8 <fail>
800002d0 <test_19>:
800002d0: 00d00093 li ra,13
800002d4: 001080b3 add ra,ra,ra
800002d8: 01a00e93 li t4,26
800002dc: 01300193 li gp,19
800002e0: 31d09463 bne ra,t4,800005e8 <fail>
800002e4 <test_20>:
800002e4: 00000213 li tp,0
800002e8: 00d00093 li ra,13
800002ec: 00b00113 li sp,11
800002f0: 00208733 add a4,ra,sp
800002f4: 00070313 mv t1,a4
800002f8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002fc: 00200293 li t0,2
80000300: fe5214e3 bne tp,t0,800002e8 <test_20+0x4>
80000304: 01800e93 li t4,24
80000308: 01400193 li gp,20
8000030c: 2dd31e63 bne t1,t4,800005e8 <fail>
80000310 <test_21>:
80000310: 00000213 li tp,0
80000314: 00e00093 li ra,14
80000318: 00b00113 li sp,11
8000031c: 00208733 add a4,ra,sp
80000320: 00000013 nop
80000324: 00070313 mv t1,a4
80000328: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000032c: 00200293 li t0,2
80000330: fe5212e3 bne tp,t0,80000314 <test_21+0x4>
80000334: 01900e93 li t4,25
80000338: 01500193 li gp,21
8000033c: 2bd31663 bne t1,t4,800005e8 <fail>
80000340 <test_22>:
80000340: 00000213 li tp,0
80000344: 00f00093 li ra,15
80000348: 00b00113 li sp,11
8000034c: 00208733 add a4,ra,sp
80000350: 00000013 nop
80000354: 00000013 nop
80000358: 00070313 mv t1,a4
8000035c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000360: 00200293 li t0,2
80000364: fe5210e3 bne tp,t0,80000344 <test_22+0x4>
80000368: 01a00e93 li t4,26
8000036c: 01600193 li gp,22
80000370: 27d31c63 bne t1,t4,800005e8 <fail>
80000374 <test_23>:
80000374: 00000213 li tp,0
80000378: 00d00093 li ra,13
8000037c: 00b00113 li sp,11
80000380: 00208733 add a4,ra,sp
80000384: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000388: 00200293 li t0,2
8000038c: fe5216e3 bne tp,t0,80000378 <test_23+0x4>
80000390: 01800e93 li t4,24
80000394: 01700193 li gp,23
80000398: 25d71863 bne a4,t4,800005e8 <fail>
8000039c <test_24>:
8000039c: 00000213 li tp,0
800003a0: 00e00093 li ra,14
800003a4: 00b00113 li sp,11
800003a8: 00000013 nop
800003ac: 00208733 add a4,ra,sp
800003b0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800003b4: 00200293 li t0,2
800003b8: fe5214e3 bne tp,t0,800003a0 <test_24+0x4>
800003bc: 01900e93 li t4,25
800003c0: 01800193 li gp,24
800003c4: 23d71263 bne a4,t4,800005e8 <fail>
800003c8 <test_25>:
800003c8: 00000213 li tp,0
800003cc: 00f00093 li ra,15
800003d0: 00b00113 li sp,11
800003d4: 00000013 nop
800003d8: 00000013 nop
800003dc: 00208733 add a4,ra,sp
800003e0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800003e4: 00200293 li t0,2
800003e8: fe5212e3 bne tp,t0,800003cc <test_25+0x4>
800003ec: 01a00e93 li t4,26
800003f0: 01900193 li gp,25
800003f4: 1fd71a63 bne a4,t4,800005e8 <fail>
800003f8 <test_26>:
800003f8: 00000213 li tp,0
800003fc: 00d00093 li ra,13
80000400: 00000013 nop
80000404: 00b00113 li sp,11
80000408: 00208733 add a4,ra,sp
8000040c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000410: 00200293 li t0,2
80000414: fe5214e3 bne tp,t0,800003fc <test_26+0x4>
80000418: 01800e93 li t4,24
8000041c: 01a00193 li gp,26
80000420: 1dd71463 bne a4,t4,800005e8 <fail>
80000424 <test_27>:
80000424: 00000213 li tp,0
80000428: 00e00093 li ra,14
8000042c: 00000013 nop
80000430: 00b00113 li sp,11
80000434: 00000013 nop
80000438: 00208733 add a4,ra,sp
8000043c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000440: 00200293 li t0,2
80000444: fe5212e3 bne tp,t0,80000428 <test_27+0x4>
80000448: 01900e93 li t4,25
8000044c: 01b00193 li gp,27
80000450: 19d71c63 bne a4,t4,800005e8 <fail>
80000454 <test_28>:
80000454: 00000213 li tp,0
80000458: 00f00093 li ra,15
8000045c: 00000013 nop
80000460: 00000013 nop
80000464: 00b00113 li sp,11
80000468: 00208733 add a4,ra,sp
8000046c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000470: 00200293 li t0,2
80000474: fe5212e3 bne tp,t0,80000458 <test_28+0x4>
80000478: 01a00e93 li t4,26
8000047c: 01c00193 li gp,28
80000480: 17d71463 bne a4,t4,800005e8 <fail>
80000484 <test_29>:
80000484: 00000213 li tp,0
80000488: 00b00113 li sp,11
8000048c: 00d00093 li ra,13
80000490: 00208733 add a4,ra,sp
80000494: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000498: 00200293 li t0,2
8000049c: fe5216e3 bne tp,t0,80000488 <test_29+0x4>
800004a0: 01800e93 li t4,24
800004a4: 01d00193 li gp,29
800004a8: 15d71063 bne a4,t4,800005e8 <fail>
800004ac <test_30>:
800004ac: 00000213 li tp,0
800004b0: 00b00113 li sp,11
800004b4: 00e00093 li ra,14
800004b8: 00000013 nop
800004bc: 00208733 add a4,ra,sp
800004c0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800004c4: 00200293 li t0,2
800004c8: fe5214e3 bne tp,t0,800004b0 <test_30+0x4>
800004cc: 01900e93 li t4,25
800004d0: 01e00193 li gp,30
800004d4: 11d71a63 bne a4,t4,800005e8 <fail>
800004d8 <test_31>:
800004d8: 00000213 li tp,0
800004dc: 00b00113 li sp,11
800004e0: 00f00093 li ra,15
800004e4: 00000013 nop
800004e8: 00000013 nop
800004ec: 00208733 add a4,ra,sp
800004f0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800004f4: 00200293 li t0,2
800004f8: fe5212e3 bne tp,t0,800004dc <test_31+0x4>
800004fc: 01a00e93 li t4,26
80000500: 01f00193 li gp,31
80000504: 0fd71263 bne a4,t4,800005e8 <fail>
80000508 <test_32>:
80000508: 00000213 li tp,0
8000050c: 00b00113 li sp,11
80000510: 00000013 nop
80000514: 00d00093 li ra,13
80000518: 00208733 add a4,ra,sp
8000051c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000520: 00200293 li t0,2
80000524: fe5214e3 bne tp,t0,8000050c <test_32+0x4>
80000528: 01800e93 li t4,24
8000052c: 02000193 li gp,32
80000530: 0bd71c63 bne a4,t4,800005e8 <fail>
80000534 <test_33>:
80000534: 00000213 li tp,0
80000538: 00b00113 li sp,11
8000053c: 00000013 nop
80000540: 00e00093 li ra,14
80000544: 00000013 nop
80000548: 00208733 add a4,ra,sp
8000054c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000550: 00200293 li t0,2
80000554: fe5212e3 bne tp,t0,80000538 <test_33+0x4>
80000558: 01900e93 li t4,25
8000055c: 02100193 li gp,33
80000560: 09d71463 bne a4,t4,800005e8 <fail>
80000564 <test_34>:
80000564: 00000213 li tp,0
80000568: 00b00113 li sp,11
8000056c: 00000013 nop
80000570: 00000013 nop
80000574: 00f00093 li ra,15
80000578: 00208733 add a4,ra,sp
8000057c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000580: 00200293 li t0,2
80000584: fe5212e3 bne tp,t0,80000568 <test_34+0x4>
80000588: 01a00e93 li t4,26
8000058c: 02200193 li gp,34
80000590: 05d71c63 bne a4,t4,800005e8 <fail>
80000594 <test_35>:
80000594: 00f00093 li ra,15
80000598: 00100133 add sp,zero,ra
8000059c: 00f00e93 li t4,15
800005a0: 02300193 li gp,35
800005a4: 05d11263 bne sp,t4,800005e8 <fail>
800005a8 <test_36>:
800005a8: 02000093 li ra,32
800005ac: 00008133 add sp,ra,zero
800005b0: 02000e93 li t4,32
800005b4: 02400193 li gp,36
800005b8: 03d11863 bne sp,t4,800005e8 <fail>
800005bc <test_37>:
800005bc: 000000b3 add ra,zero,zero
800005c0: 00000e93 li t4,0
800005c4: 02500193 li gp,37
800005c8: 03d09063 bne ra,t4,800005e8 <fail>
800005cc <test_38>:
800005cc: 01000093 li ra,16
800005d0: 01e00113 li sp,30
800005d4: 00208033 add zero,ra,sp
800005d8: 00000e93 li t4,0
800005dc: 02600193 li gp,38
800005e0: 01d01463 bne zero,t4,800005e8 <fail>
800005e4: 02301063 bne zero,gp,80000604 <pass>
800005e8 <fail>:
800005e8: 0ff0000f fence
800005ec: 00018063 beqz gp,800005ec <fail+0x4>
800005f0: 00119193 slli gp,gp,0x1
800005f4: 0011e193 ori gp,gp,1
800005f8: 05d00893 li a7,93
800005fc: 00018513 mv a0,gp
80000600: 00000073 ecall
80000604 <pass>:
80000604: 0ff0000f fence
80000608: 00100193 li gp,1
8000060c: 05d00893 li a7,93
80000610: 00000513 li a0,0
80000614: 00000073 ecall
80000618: c0001073 unimp
8000061c: 0000 unimp
8000061e: 0000 unimp
80000620: 0000 unimp
80000622: 0000 unimp
80000624: 0000 unimp
80000626: 0000 unimp
80000628: 0000 unimp
8000062a: 0000 unimp
8000062c: 0000 unimp
8000062e: 0000 unimp
80000630: 0000 unimp
80000632: 0000 unimp
80000634: 0000 unimp
80000636: 0000 unimp
80000638: 0000 unimp
8000063a: 0000 unimp
8000063c: 0000 unimp
8000063e: 0000 unimp
80000640: 0000 unimp
80000642: 0000 unimp

View file

@ -0,0 +1,308 @@
rv32ui-p-addi: 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: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-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: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 02028293 addi t0,t0,32 # 80000084 <reset_vector+0x38>
8000006c: 30529073 csrw mtvec,t0
80000070: 800002b7 lui t0,0x80000
80000074: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdfff>
80000078: 3b029073 csrw pmpaddr0,t0
8000007c: 01f00293 li t0,31
80000080: 3a029073 csrw pmpcfg0,t0
80000084: 00000297 auipc t0,0x0
80000088: 01828293 addi t0,t0,24 # 8000009c <reset_vector+0x50>
8000008c: 30529073 csrw mtvec,t0
80000090: 30205073 csrwi medeleg,0
80000094: 30305073 csrwi mideleg,0
80000098: 30405073 csrwi mie,0
8000009c: 00000193 li gp,0
800000a0: 00000297 auipc t0,0x0
800000a4: f6428293 addi t0,t0,-156 # 80000004 <trap_vector>
800000a8: 30529073 csrw mtvec,t0
800000ac: 00100513 li a0,1
800000b0: 01f51513 slli a0,a0,0x1f
800000b4: 00054c63 bltz a0,800000cc <reset_vector+0x80>
800000b8: 0ff0000f fence
800000bc: 00100193 li gp,1
800000c0: 05d00893 li a7,93
800000c4: 00000513 li a0,0
800000c8: 00000073 ecall
800000cc: 80000297 auipc t0,0x80000
800000d0: f3428293 addi t0,t0,-204 # 0 <_start-0x80000000>
800000d4: 00028e63 beqz t0,800000f0 <reset_vector+0xa4>
800000d8: 10529073 csrw stvec,t0
800000dc: 0000b2b7 lui t0,0xb
800000e0: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000e4: 30229073 csrw medeleg,t0
800000e8: 30202373 csrr t1,medeleg
800000ec: f46298e3 bne t0,t1,8000003c <handle_exception>
800000f0: 30005073 csrwi mstatus,0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <test_2>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108 <test_2>:
80000108: 00000093 li ra,0
8000010c: 00008713 mv a4,ra
80000110: 00000e93 li t4,0
80000114: 00200193 li gp,2
80000118: 27d71c63 bne a4,t4,80000390 <fail>
8000011c <test_3>:
8000011c: 00100093 li ra,1
80000120: 00108713 addi a4,ra,1
80000124: 00200e93 li t4,2
80000128: 00300193 li gp,3
8000012c: 27d71263 bne a4,t4,80000390 <fail>
80000130 <test_4>:
80000130: 00300093 li ra,3
80000134: 00708713 addi a4,ra,7
80000138: 00a00e93 li t4,10
8000013c: 00400193 li gp,4
80000140: 25d71863 bne a4,t4,80000390 <fail>
80000144 <test_5>:
80000144: 00000093 li ra,0
80000148: 80008713 addi a4,ra,-2048
8000014c: 80000e93 li t4,-2048
80000150: 00500193 li gp,5
80000154: 23d71e63 bne a4,t4,80000390 <fail>
80000158 <test_6>:
80000158: 800000b7 lui ra,0x80000
8000015c: 00008713 mv a4,ra
80000160: 80000eb7 lui t4,0x80000
80000164: 00600193 li gp,6
80000168: 23d71463 bne a4,t4,80000390 <fail>
8000016c <test_7>:
8000016c: 800000b7 lui ra,0x80000
80000170: 80008713 addi a4,ra,-2048 # 7ffff800 <_end+0xffffd800>
80000174: 80000eb7 lui t4,0x80000
80000178: 800e8e93 addi t4,t4,-2048 # 7ffff800 <_end+0xffffd800>
8000017c: 00700193 li gp,7
80000180: 21d71863 bne a4,t4,80000390 <fail>
80000184 <test_8>:
80000184: 00000093 li ra,0
80000188: 7ff08713 addi a4,ra,2047
8000018c: 7ff00e93 li t4,2047
80000190: 00800193 li gp,8
80000194: 1fd71e63 bne a4,t4,80000390 <fail>
80000198 <test_9>:
80000198: 800000b7 lui ra,0x80000
8000019c: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffffdfff>
800001a0: 00008713 mv a4,ra
800001a4: 80000eb7 lui t4,0x80000
800001a8: fffe8e93 addi t4,t4,-1 # 7fffffff <_end+0xffffdfff>
800001ac: 00900193 li gp,9
800001b0: 1fd71063 bne a4,t4,80000390 <fail>
800001b4 <test_10>:
800001b4: 800000b7 lui ra,0x80000
800001b8: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffffdfff>
800001bc: 7ff08713 addi a4,ra,2047
800001c0: 80000eb7 lui t4,0x80000
800001c4: 7fee8e93 addi t4,t4,2046 # 800007fe <_end+0xffffe7fe>
800001c8: 00a00193 li gp,10
800001cc: 1dd71263 bne a4,t4,80000390 <fail>
800001d0 <test_11>:
800001d0: 800000b7 lui ra,0x80000
800001d4: 7ff08713 addi a4,ra,2047 # 800007ff <_end+0xffffe7ff>
800001d8: 80000eb7 lui t4,0x80000
800001dc: 7ffe8e93 addi t4,t4,2047 # 800007ff <_end+0xffffe7ff>
800001e0: 00b00193 li gp,11
800001e4: 1bd71663 bne a4,t4,80000390 <fail>
800001e8 <test_12>:
800001e8: 800000b7 lui ra,0x80000
800001ec: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffffdfff>
800001f0: 80008713 addi a4,ra,-2048
800001f4: 7ffffeb7 lui t4,0x7ffff
800001f8: 7ffe8e93 addi t4,t4,2047 # 7ffff7ff <_start-0x801>
800001fc: 00c00193 li gp,12
80000200: 19d71863 bne a4,t4,80000390 <fail>
80000204 <test_13>:
80000204: 00000093 li ra,0
80000208: fff08713 addi a4,ra,-1
8000020c: fff00e93 li t4,-1
80000210: 00d00193 li gp,13
80000214: 17d71e63 bne a4,t4,80000390 <fail>
80000218 <test_14>:
80000218: fff00093 li ra,-1
8000021c: 00108713 addi a4,ra,1
80000220: 00000e93 li t4,0
80000224: 00e00193 li gp,14
80000228: 17d71463 bne a4,t4,80000390 <fail>
8000022c <test_15>:
8000022c: fff00093 li ra,-1
80000230: fff08713 addi a4,ra,-1
80000234: ffe00e93 li t4,-2
80000238: 00f00193 li gp,15
8000023c: 15d71a63 bne a4,t4,80000390 <fail>
80000240 <test_16>:
80000240: 800000b7 lui ra,0x80000
80000244: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffffdfff>
80000248: 00108713 addi a4,ra,1
8000024c: 80000eb7 lui t4,0x80000
80000250: 01000193 li gp,16
80000254: 13d71e63 bne a4,t4,80000390 <fail>
80000258 <test_17>:
80000258: 00d00093 li ra,13
8000025c: 00b08093 addi ra,ra,11
80000260: 01800e93 li t4,24
80000264: 01100193 li gp,17
80000268: 13d09463 bne ra,t4,80000390 <fail>
8000026c <test_18>:
8000026c: 00000213 li tp,0
80000270: 00d00093 li ra,13
80000274: 00b08713 addi a4,ra,11
80000278: 00070313 mv t1,a4
8000027c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000280: 00200293 li t0,2
80000284: fe5216e3 bne tp,t0,80000270 <test_18+0x4>
80000288: 01800e93 li t4,24
8000028c: 01200193 li gp,18
80000290: 11d31063 bne t1,t4,80000390 <fail>
80000294 <test_19>:
80000294: 00000213 li tp,0
80000298: 00d00093 li ra,13
8000029c: 00a08713 addi a4,ra,10
800002a0: 00000013 nop
800002a4: 00070313 mv t1,a4
800002a8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002ac: 00200293 li t0,2
800002b0: fe5214e3 bne tp,t0,80000298 <test_19+0x4>
800002b4: 01700e93 li t4,23
800002b8: 01300193 li gp,19
800002bc: 0dd31a63 bne t1,t4,80000390 <fail>
800002c0 <test_20>:
800002c0: 00000213 li tp,0
800002c4: 00d00093 li ra,13
800002c8: 00908713 addi a4,ra,9
800002cc: 00000013 nop
800002d0: 00000013 nop
800002d4: 00070313 mv t1,a4
800002d8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002dc: 00200293 li t0,2
800002e0: fe5212e3 bne tp,t0,800002c4 <test_20+0x4>
800002e4: 01600e93 li t4,22
800002e8: 01400193 li gp,20
800002ec: 0bd31263 bne t1,t4,80000390 <fail>
800002f0 <test_21>:
800002f0: 00000213 li tp,0
800002f4: 00d00093 li ra,13
800002f8: 00b08713 addi a4,ra,11
800002fc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000300: 00200293 li t0,2
80000304: fe5218e3 bne tp,t0,800002f4 <test_21+0x4>
80000308: 01800e93 li t4,24
8000030c: 01500193 li gp,21
80000310: 09d71063 bne a4,t4,80000390 <fail>
80000314 <test_22>:
80000314: 00000213 li tp,0
80000318: 00d00093 li ra,13
8000031c: 00000013 nop
80000320: 00a08713 addi a4,ra,10
80000324: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000328: 00200293 li t0,2
8000032c: fe5216e3 bne tp,t0,80000318 <test_22+0x4>
80000330: 01700e93 li t4,23
80000334: 01600193 li gp,22
80000338: 05d71c63 bne a4,t4,80000390 <fail>
8000033c <test_23>:
8000033c: 00000213 li tp,0
80000340: 00d00093 li ra,13
80000344: 00000013 nop
80000348: 00000013 nop
8000034c: 00908713 addi a4,ra,9
80000350: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000354: 00200293 li t0,2
80000358: fe5214e3 bne tp,t0,80000340 <test_23+0x4>
8000035c: 01600e93 li t4,22
80000360: 01700193 li gp,23
80000364: 03d71663 bne a4,t4,80000390 <fail>
80000368 <test_24>:
80000368: 02000093 li ra,32
8000036c: 02000e93 li t4,32
80000370: 01800193 li gp,24
80000374: 01d09e63 bne ra,t4,80000390 <fail>
80000378 <test_25>:
80000378: 02100093 li ra,33
8000037c: 03208013 addi zero,ra,50
80000380: 00000e93 li t4,0
80000384: 01900193 li gp,25
80000388: 01d01463 bne zero,t4,80000390 <fail>
8000038c: 02301063 bne zero,gp,800003ac <pass>
80000390 <fail>:
80000390: 0ff0000f fence
80000394: 00018063 beqz gp,80000394 <fail+0x4>
80000398: 00119193 slli gp,gp,0x1
8000039c: 0011e193 ori gp,gp,1
800003a0: 05d00893 li a7,93
800003a4: 00018513 mv a0,gp
800003a8: 00000073 ecall
800003ac <pass>:
800003ac: 0ff0000f fence
800003b0: 00100193 li gp,1
800003b4: 05d00893 li a7,93
800003b8: 00000513 li a0,0
800003bc: 00000073 ecall
800003c0: c0001073 unimp

View file

@ -0,0 +1,460 @@
rv32ui-p-and: 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: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-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: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 02028293 addi t0,t0,32 # 80000084 <reset_vector+0x38>
8000006c: 30529073 csrw mtvec,t0
80000070: 800002b7 lui t0,0x80000
80000074: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdfff>
80000078: 3b029073 csrw pmpaddr0,t0
8000007c: 01f00293 li t0,31
80000080: 3a029073 csrw pmpcfg0,t0
80000084: 00000297 auipc t0,0x0
80000088: 01828293 addi t0,t0,24 # 8000009c <reset_vector+0x50>
8000008c: 30529073 csrw mtvec,t0
80000090: 30205073 csrwi medeleg,0
80000094: 30305073 csrwi mideleg,0
80000098: 30405073 csrwi mie,0
8000009c: 00000193 li gp,0
800000a0: 00000297 auipc t0,0x0
800000a4: f6428293 addi t0,t0,-156 # 80000004 <trap_vector>
800000a8: 30529073 csrw mtvec,t0
800000ac: 00100513 li a0,1
800000b0: 01f51513 slli a0,a0,0x1f
800000b4: 00054c63 bltz a0,800000cc <reset_vector+0x80>
800000b8: 0ff0000f fence
800000bc: 00100193 li gp,1
800000c0: 05d00893 li a7,93
800000c4: 00000513 li a0,0
800000c8: 00000073 ecall
800000cc: 80000297 auipc t0,0x80000
800000d0: f3428293 addi t0,t0,-204 # 0 <_start-0x80000000>
800000d4: 00028e63 beqz t0,800000f0 <reset_vector+0xa4>
800000d8: 10529073 csrw stvec,t0
800000dc: 0000b2b7 lui t0,0xb
800000e0: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000e4: 30229073 csrw medeleg,t0
800000e8: 30202373 csrr t1,medeleg
800000ec: f46298e3 bne t0,t1,8000003c <handle_exception>
800000f0: 30005073 csrwi mstatus,0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <test_2>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108 <test_2>:
80000108: ff0100b7 lui ra,0xff010
8000010c: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
80000110: 0f0f1137 lui sp,0xf0f1
80000114: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
80000118: 0020f733 and a4,ra,sp
8000011c: 0f001eb7 lui t4,0xf001
80000120: f00e8e93 addi t4,t4,-256 # f000f00 <_start-0x70fff100>
80000124: 00200193 li gp,2
80000128: 49d71c63 bne a4,t4,800005c0 <fail>
8000012c <test_3>:
8000012c: 0ff010b7 lui ra,0xff01
80000130: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
80000134: f0f0f137 lui sp,0xf0f0f
80000138: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f0d0f0>
8000013c: 0020f733 and a4,ra,sp
80000140: 00f00eb7 lui t4,0xf00
80000144: 0f0e8e93 addi t4,t4,240 # f000f0 <_start-0x7f0fff10>
80000148: 00300193 li gp,3
8000014c: 47d71a63 bne a4,t4,800005c0 <fail>
80000150 <test_4>:
80000150: 00ff00b7 lui ra,0xff0
80000154: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
80000158: 0f0f1137 lui sp,0xf0f1
8000015c: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
80000160: 0020f733 and a4,ra,sp
80000164: 000f0eb7 lui t4,0xf0
80000168: 00fe8e93 addi t4,t4,15 # f000f <_start-0x7ff0fff1>
8000016c: 00400193 li gp,4
80000170: 45d71863 bne a4,t4,800005c0 <fail>
80000174 <test_5>:
80000174: f00ff0b7 lui ra,0xf00ff
80000178: 00f08093 addi ra,ra,15 # f00ff00f <_end+0x700fd00f>
8000017c: f0f0f137 lui sp,0xf0f0f
80000180: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f0d0f0>
80000184: 0020f733 and a4,ra,sp
80000188: f000feb7 lui t4,0xf000f
8000018c: 00500193 li gp,5
80000190: 43d71863 bne a4,t4,800005c0 <fail>
80000194 <test_6>:
80000194: ff0100b7 lui ra,0xff010
80000198: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
8000019c: 0f0f1137 lui sp,0xf0f1
800001a0: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
800001a4: 0020f0b3 and ra,ra,sp
800001a8: 0f001eb7 lui t4,0xf001
800001ac: f00e8e93 addi t4,t4,-256 # f000f00 <_start-0x70fff100>
800001b0: 00600193 li gp,6
800001b4: 41d09663 bne ra,t4,800005c0 <fail>
800001b8 <test_7>:
800001b8: 0ff010b7 lui ra,0xff01
800001bc: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
800001c0: f0f0f137 lui sp,0xf0f0f
800001c4: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f0d0f0>
800001c8: 0020f133 and sp,ra,sp
800001cc: 00f00eb7 lui t4,0xf00
800001d0: 0f0e8e93 addi t4,t4,240 # f000f0 <_start-0x7f0fff10>
800001d4: 00700193 li gp,7
800001d8: 3fd11463 bne sp,t4,800005c0 <fail>
800001dc <test_8>:
800001dc: ff0100b7 lui ra,0xff010
800001e0: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
800001e4: 0010f0b3 and ra,ra,ra
800001e8: ff010eb7 lui t4,0xff010
800001ec: f00e8e93 addi t4,t4,-256 # ff00ff00 <_end+0x7f00df00>
800001f0: 00800193 li gp,8
800001f4: 3dd09663 bne ra,t4,800005c0 <fail>
800001f8 <test_9>:
800001f8: 00000213 li tp,0
800001fc: ff0100b7 lui ra,0xff010
80000200: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
80000204: 0f0f1137 lui sp,0xf0f1
80000208: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
8000020c: 0020f733 and a4,ra,sp
80000210: 00070313 mv t1,a4
80000214: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000218: 00200293 li t0,2
8000021c: fe5210e3 bne tp,t0,800001fc <test_9+0x4>
80000220: 0f001eb7 lui t4,0xf001
80000224: f00e8e93 addi t4,t4,-256 # f000f00 <_start-0x70fff100>
80000228: 00900193 li gp,9
8000022c: 39d31a63 bne t1,t4,800005c0 <fail>
80000230 <test_10>:
80000230: 00000213 li tp,0
80000234: 0ff010b7 lui ra,0xff01
80000238: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
8000023c: f0f0f137 lui sp,0xf0f0f
80000240: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f0d0f0>
80000244: 0020f733 and a4,ra,sp
80000248: 00000013 nop
8000024c: 00070313 mv t1,a4
80000250: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000254: 00200293 li t0,2
80000258: fc521ee3 bne tp,t0,80000234 <test_10+0x4>
8000025c: 00f00eb7 lui t4,0xf00
80000260: 0f0e8e93 addi t4,t4,240 # f000f0 <_start-0x7f0fff10>
80000264: 00a00193 li gp,10
80000268: 35d31c63 bne t1,t4,800005c0 <fail>
8000026c <test_11>:
8000026c: 00000213 li tp,0
80000270: 00ff00b7 lui ra,0xff0
80000274: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
80000278: 0f0f1137 lui sp,0xf0f1
8000027c: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
80000280: 0020f733 and a4,ra,sp
80000284: 00000013 nop
80000288: 00000013 nop
8000028c: 00070313 mv t1,a4
80000290: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000294: 00200293 li t0,2
80000298: fc521ce3 bne tp,t0,80000270 <test_11+0x4>
8000029c: 000f0eb7 lui t4,0xf0
800002a0: 00fe8e93 addi t4,t4,15 # f000f <_start-0x7ff0fff1>
800002a4: 00b00193 li gp,11
800002a8: 31d31c63 bne t1,t4,800005c0 <fail>
800002ac <test_12>:
800002ac: 00000213 li tp,0
800002b0: ff0100b7 lui ra,0xff010
800002b4: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
800002b8: 0f0f1137 lui sp,0xf0f1
800002bc: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
800002c0: 0020f733 and a4,ra,sp
800002c4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002c8: 00200293 li t0,2
800002cc: fe5212e3 bne tp,t0,800002b0 <test_12+0x4>
800002d0: 0f001eb7 lui t4,0xf001
800002d4: f00e8e93 addi t4,t4,-256 # f000f00 <_start-0x70fff100>
800002d8: 00c00193 li gp,12
800002dc: 2fd71263 bne a4,t4,800005c0 <fail>
800002e0 <test_13>:
800002e0: 00000213 li tp,0
800002e4: 0ff010b7 lui ra,0xff01
800002e8: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
800002ec: f0f0f137 lui sp,0xf0f0f
800002f0: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f0d0f0>
800002f4: 00000013 nop
800002f8: 0020f733 and a4,ra,sp
800002fc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000300: 00200293 li t0,2
80000304: fe5210e3 bne tp,t0,800002e4 <test_13+0x4>
80000308: 00f00eb7 lui t4,0xf00
8000030c: 0f0e8e93 addi t4,t4,240 # f000f0 <_start-0x7f0fff10>
80000310: 00d00193 li gp,13
80000314: 2bd71663 bne a4,t4,800005c0 <fail>
80000318 <test_14>:
80000318: 00000213 li tp,0
8000031c: 00ff00b7 lui ra,0xff0
80000320: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
80000324: 0f0f1137 lui sp,0xf0f1
80000328: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
8000032c: 00000013 nop
80000330: 00000013 nop
80000334: 0020f733 and a4,ra,sp
80000338: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000033c: 00200293 li t0,2
80000340: fc521ee3 bne tp,t0,8000031c <test_14+0x4>
80000344: 000f0eb7 lui t4,0xf0
80000348: 00fe8e93 addi t4,t4,15 # f000f <_start-0x7ff0fff1>
8000034c: 00e00193 li gp,14
80000350: 27d71863 bne a4,t4,800005c0 <fail>
80000354 <test_15>:
80000354: 00000213 li tp,0
80000358: ff0100b7 lui ra,0xff010
8000035c: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
80000360: 00000013 nop
80000364: 0f0f1137 lui sp,0xf0f1
80000368: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
8000036c: 0020f733 and a4,ra,sp
80000370: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000374: 00200293 li t0,2
80000378: fe5210e3 bne tp,t0,80000358 <test_15+0x4>
8000037c: 0f001eb7 lui t4,0xf001
80000380: f00e8e93 addi t4,t4,-256 # f000f00 <_start-0x70fff100>
80000384: 00f00193 li gp,15
80000388: 23d71c63 bne a4,t4,800005c0 <fail>
8000038c <test_16>:
8000038c: 00000213 li tp,0
80000390: 0ff010b7 lui ra,0xff01
80000394: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
80000398: 00000013 nop
8000039c: f0f0f137 lui sp,0xf0f0f
800003a0: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f0d0f0>
800003a4: 00000013 nop
800003a8: 0020f733 and a4,ra,sp
800003ac: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800003b0: 00200293 li t0,2
800003b4: fc521ee3 bne tp,t0,80000390 <test_16+0x4>
800003b8: 00f00eb7 lui t4,0xf00
800003bc: 0f0e8e93 addi t4,t4,240 # f000f0 <_start-0x7f0fff10>
800003c0: 01000193 li gp,16
800003c4: 1fd71e63 bne a4,t4,800005c0 <fail>
800003c8 <test_17>:
800003c8: 00000213 li tp,0
800003cc: 00ff00b7 lui ra,0xff0
800003d0: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
800003d4: 00000013 nop
800003d8: 00000013 nop
800003dc: 0f0f1137 lui sp,0xf0f1
800003e0: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
800003e4: 0020f733 and a4,ra,sp
800003e8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800003ec: 00200293 li t0,2
800003f0: fc521ee3 bne tp,t0,800003cc <test_17+0x4>
800003f4: 000f0eb7 lui t4,0xf0
800003f8: 00fe8e93 addi t4,t4,15 # f000f <_start-0x7ff0fff1>
800003fc: 01100193 li gp,17
80000400: 1dd71063 bne a4,t4,800005c0 <fail>
80000404 <test_18>:
80000404: 00000213 li tp,0
80000408: 0f0f1137 lui sp,0xf0f1
8000040c: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
80000410: ff0100b7 lui ra,0xff010
80000414: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
80000418: 0020f733 and a4,ra,sp
8000041c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000420: 00200293 li t0,2
80000424: fe5212e3 bne tp,t0,80000408 <test_18+0x4>
80000428: 0f001eb7 lui t4,0xf001
8000042c: f00e8e93 addi t4,t4,-256 # f000f00 <_start-0x70fff100>
80000430: 01200193 li gp,18
80000434: 19d71663 bne a4,t4,800005c0 <fail>
80000438 <test_19>:
80000438: 00000213 li tp,0
8000043c: f0f0f137 lui sp,0xf0f0f
80000440: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f0d0f0>
80000444: 0ff010b7 lui ra,0xff01
80000448: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
8000044c: 00000013 nop
80000450: 0020f733 and a4,ra,sp
80000454: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000458: 00200293 li t0,2
8000045c: fe5210e3 bne tp,t0,8000043c <test_19+0x4>
80000460: 00f00eb7 lui t4,0xf00
80000464: 0f0e8e93 addi t4,t4,240 # f000f0 <_start-0x7f0fff10>
80000468: 01300193 li gp,19
8000046c: 15d71a63 bne a4,t4,800005c0 <fail>
80000470 <test_20>:
80000470: 00000213 li tp,0
80000474: 0f0f1137 lui sp,0xf0f1
80000478: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
8000047c: 00ff00b7 lui ra,0xff0
80000480: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
80000484: 00000013 nop
80000488: 00000013 nop
8000048c: 0020f733 and a4,ra,sp
80000490: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000494: 00200293 li t0,2
80000498: fc521ee3 bne tp,t0,80000474 <test_20+0x4>
8000049c: 000f0eb7 lui t4,0xf0
800004a0: 00fe8e93 addi t4,t4,15 # f000f <_start-0x7ff0fff1>
800004a4: 01400193 li gp,20
800004a8: 11d71c63 bne a4,t4,800005c0 <fail>
800004ac <test_21>:
800004ac: 00000213 li tp,0
800004b0: 0f0f1137 lui sp,0xf0f1
800004b4: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
800004b8: 00000013 nop
800004bc: ff0100b7 lui ra,0xff010
800004c0: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
800004c4: 0020f733 and a4,ra,sp
800004c8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800004cc: 00200293 li t0,2
800004d0: fe5210e3 bne tp,t0,800004b0 <test_21+0x4>
800004d4: 0f001eb7 lui t4,0xf001
800004d8: f00e8e93 addi t4,t4,-256 # f000f00 <_start-0x70fff100>
800004dc: 01500193 li gp,21
800004e0: 0fd71063 bne a4,t4,800005c0 <fail>
800004e4 <test_22>:
800004e4: 00000213 li tp,0
800004e8: f0f0f137 lui sp,0xf0f0f
800004ec: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f0d0f0>
800004f0: 00000013 nop
800004f4: 0ff010b7 lui ra,0xff01
800004f8: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
800004fc: 00000013 nop
80000500: 0020f733 and a4,ra,sp
80000504: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000508: 00200293 li t0,2
8000050c: fc521ee3 bne tp,t0,800004e8 <test_22+0x4>
80000510: 00f00eb7 lui t4,0xf00
80000514: 0f0e8e93 addi t4,t4,240 # f000f0 <_start-0x7f0fff10>
80000518: 01600193 li gp,22
8000051c: 0bd71263 bne a4,t4,800005c0 <fail>
80000520 <test_23>:
80000520: 00000213 li tp,0
80000524: 0f0f1137 lui sp,0xf0f1
80000528: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
8000052c: 00000013 nop
80000530: 00000013 nop
80000534: 00ff00b7 lui ra,0xff0
80000538: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
8000053c: 0020f733 and a4,ra,sp
80000540: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000544: 00200293 li t0,2
80000548: fc521ee3 bne tp,t0,80000524 <test_23+0x4>
8000054c: 000f0eb7 lui t4,0xf0
80000550: 00fe8e93 addi t4,t4,15 # f000f <_start-0x7ff0fff1>
80000554: 01700193 li gp,23
80000558: 07d71463 bne a4,t4,800005c0 <fail>
8000055c <test_24>:
8000055c: ff0100b7 lui ra,0xff010
80000560: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
80000564: 00107133 and sp,zero,ra
80000568: 00000e93 li t4,0
8000056c: 01800193 li gp,24
80000570: 05d11863 bne sp,t4,800005c0 <fail>
80000574 <test_25>:
80000574: 00ff00b7 lui ra,0xff0
80000578: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
8000057c: 0000f133 and sp,ra,zero
80000580: 00000e93 li t4,0
80000584: 01900193 li gp,25
80000588: 03d11c63 bne sp,t4,800005c0 <fail>
8000058c <test_26>:
8000058c: 000070b3 and ra,zero,zero
80000590: 00000e93 li t4,0
80000594: 01a00193 li gp,26
80000598: 03d09463 bne ra,t4,800005c0 <fail>
8000059c <test_27>:
8000059c: 111110b7 lui ra,0x11111
800005a0: 11108093 addi ra,ra,273 # 11111111 <_start-0x6eeeeeef>
800005a4: 22222137 lui sp,0x22222
800005a8: 22210113 addi sp,sp,546 # 22222222 <_start-0x5dddddde>
800005ac: 0020f033 and zero,ra,sp
800005b0: 00000e93 li t4,0
800005b4: 01b00193 li gp,27
800005b8: 01d01463 bne zero,t4,800005c0 <fail>
800005bc: 02301063 bne zero,gp,800005dc <pass>
800005c0 <fail>:
800005c0: 0ff0000f fence
800005c4: 00018063 beqz gp,800005c4 <fail+0x4>
800005c8: 00119193 slli gp,gp,0x1
800005cc: 0011e193 ori gp,gp,1
800005d0: 05d00893 li a7,93
800005d4: 00018513 mv a0,gp
800005d8: 00000073 ecall
800005dc <pass>:
800005dc: 0ff0000f fence
800005e0: 00100193 li gp,1
800005e4: 05d00893 li a7,93
800005e8: 00000513 li a0,0
800005ec: 00000073 ecall
800005f0: c0001073 unimp
800005f4: 0000 unimp
800005f6: 0000 unimp
800005f8: 0000 unimp
800005fa: 0000 unimp
800005fc: 0000 unimp
800005fe: 0000 unimp
80000600: 0000 unimp
80000602: 0000 unimp

View file

@ -0,0 +1,240 @@
rv32ui-p-andi: 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: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-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: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 02028293 addi t0,t0,32 # 80000084 <reset_vector+0x38>
8000006c: 30529073 csrw mtvec,t0
80000070: 800002b7 lui t0,0x80000
80000074: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdfff>
80000078: 3b029073 csrw pmpaddr0,t0
8000007c: 01f00293 li t0,31
80000080: 3a029073 csrw pmpcfg0,t0
80000084: 00000297 auipc t0,0x0
80000088: 01828293 addi t0,t0,24 # 8000009c <reset_vector+0x50>
8000008c: 30529073 csrw mtvec,t0
80000090: 30205073 csrwi medeleg,0
80000094: 30305073 csrwi mideleg,0
80000098: 30405073 csrwi mie,0
8000009c: 00000193 li gp,0
800000a0: 00000297 auipc t0,0x0
800000a4: f6428293 addi t0,t0,-156 # 80000004 <trap_vector>
800000a8: 30529073 csrw mtvec,t0
800000ac: 00100513 li a0,1
800000b0: 01f51513 slli a0,a0,0x1f
800000b4: 00054c63 bltz a0,800000cc <reset_vector+0x80>
800000b8: 0ff0000f fence
800000bc: 00100193 li gp,1
800000c0: 05d00893 li a7,93
800000c4: 00000513 li a0,0
800000c8: 00000073 ecall
800000cc: 80000297 auipc t0,0x80000
800000d0: f3428293 addi t0,t0,-204 # 0 <_start-0x80000000>
800000d4: 00028e63 beqz t0,800000f0 <reset_vector+0xa4>
800000d8: 10529073 csrw stvec,t0
800000dc: 0000b2b7 lui t0,0xb
800000e0: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000e4: 30229073 csrw medeleg,t0
800000e8: 30202373 csrr t1,medeleg
800000ec: f46298e3 bne t0,t1,8000003c <handle_exception>
800000f0: 30005073 csrwi mstatus,0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <test_2>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108 <test_2>:
80000108: ff0100b7 lui ra,0xff010
8000010c: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
80000110: f0f0f713 andi a4,ra,-241
80000114: ff010eb7 lui t4,0xff010
80000118: f00e8e93 addi t4,t4,-256 # ff00ff00 <_end+0x7f00df00>
8000011c: 00200193 li gp,2
80000120: 1bd71463 bne a4,t4,800002c8 <fail>
80000124 <test_3>:
80000124: 0ff010b7 lui ra,0xff01
80000128: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
8000012c: 0f00f713 andi a4,ra,240
80000130: 0f000e93 li t4,240
80000134: 00300193 li gp,3
80000138: 19d71863 bne a4,t4,800002c8 <fail>
8000013c <test_4>:
8000013c: 00ff00b7 lui ra,0xff0
80000140: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
80000144: 70f0f713 andi a4,ra,1807
80000148: 00f00e93 li t4,15
8000014c: 00400193 li gp,4
80000150: 17d71c63 bne a4,t4,800002c8 <fail>
80000154 <test_5>:
80000154: f00ff0b7 lui ra,0xf00ff
80000158: 00f08093 addi ra,ra,15 # f00ff00f <_end+0x700fd00f>
8000015c: 0f00f713 andi a4,ra,240
80000160: 00000e93 li t4,0
80000164: 00500193 li gp,5
80000168: 17d71063 bne a4,t4,800002c8 <fail>
8000016c <test_6>:
8000016c: ff0100b7 lui ra,0xff010
80000170: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
80000174: 0f00f093 andi ra,ra,240
80000178: 00000e93 li t4,0
8000017c: 00600193 li gp,6
80000180: 15d09463 bne ra,t4,800002c8 <fail>
80000184 <test_7>:
80000184: 00000213 li tp,0
80000188: 0ff010b7 lui ra,0xff01
8000018c: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
80000190: 70f0f713 andi a4,ra,1807
80000194: 00070313 mv t1,a4
80000198: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000019c: 00200293 li t0,2
800001a0: fe5214e3 bne tp,t0,80000188 <test_7+0x4>
800001a4: 70000e93 li t4,1792
800001a8: 00700193 li gp,7
800001ac: 11d31e63 bne t1,t4,800002c8 <fail>
800001b0 <test_8>:
800001b0: 00000213 li tp,0
800001b4: 00ff00b7 lui ra,0xff0
800001b8: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
800001bc: 0f00f713 andi a4,ra,240
800001c0: 00000013 nop
800001c4: 00070313 mv t1,a4
800001c8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800001cc: 00200293 li t0,2
800001d0: fe5212e3 bne tp,t0,800001b4 <test_8+0x4>
800001d4: 0f000e93 li t4,240
800001d8: 00800193 li gp,8
800001dc: 0fd31663 bne t1,t4,800002c8 <fail>
800001e0 <test_9>:
800001e0: 00000213 li tp,0
800001e4: f00ff0b7 lui ra,0xf00ff
800001e8: 00f08093 addi ra,ra,15 # f00ff00f <_end+0x700fd00f>
800001ec: f0f0f713 andi a4,ra,-241
800001f0: 00000013 nop
800001f4: 00000013 nop
800001f8: 00070313 mv t1,a4
800001fc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000200: 00200293 li t0,2
80000204: fe5210e3 bne tp,t0,800001e4 <test_9+0x4>
80000208: f00ffeb7 lui t4,0xf00ff
8000020c: 00fe8e93 addi t4,t4,15 # f00ff00f <_end+0x700fd00f>
80000210: 00900193 li gp,9
80000214: 0bd31a63 bne t1,t4,800002c8 <fail>
80000218 <test_10>:
80000218: 00000213 li tp,0
8000021c: 0ff010b7 lui ra,0xff01
80000220: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
80000224: 70f0f713 andi a4,ra,1807
80000228: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000022c: 00200293 li t0,2
80000230: fe5216e3 bne tp,t0,8000021c <test_10+0x4>
80000234: 70000e93 li t4,1792
80000238: 00a00193 li gp,10
8000023c: 09d71663 bne a4,t4,800002c8 <fail>
80000240 <test_11>:
80000240: 00000213 li tp,0
80000244: 00ff00b7 lui ra,0xff0
80000248: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
8000024c: 00000013 nop
80000250: 0f00f713 andi a4,ra,240
80000254: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000258: 00200293 li t0,2
8000025c: fe5214e3 bne tp,t0,80000244 <test_11+0x4>
80000260: 0f000e93 li t4,240
80000264: 00b00193 li gp,11
80000268: 07d71063 bne a4,t4,800002c8 <fail>
8000026c <test_12>:
8000026c: 00000213 li tp,0
80000270: f00ff0b7 lui ra,0xf00ff
80000274: 00f08093 addi ra,ra,15 # f00ff00f <_end+0x700fd00f>
80000278: 00000013 nop
8000027c: 00000013 nop
80000280: 70f0f713 andi a4,ra,1807
80000284: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000288: 00200293 li t0,2
8000028c: fe5212e3 bne tp,t0,80000270 <test_12+0x4>
80000290: 00f00e93 li t4,15
80000294: 00c00193 li gp,12
80000298: 03d71863 bne a4,t4,800002c8 <fail>
8000029c <test_13>:
8000029c: 0f007093 andi ra,zero,240
800002a0: 00000e93 li t4,0
800002a4: 00d00193 li gp,13
800002a8: 03d09063 bne ra,t4,800002c8 <fail>
800002ac <test_14>:
800002ac: 00ff00b7 lui ra,0xff0
800002b0: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
800002b4: 70f0f013 andi zero,ra,1807
800002b8: 00000e93 li t4,0
800002bc: 00e00193 li gp,14
800002c0: 01d01463 bne zero,t4,800002c8 <fail>
800002c4: 02301063 bne zero,gp,800002e4 <pass>
800002c8 <fail>:
800002c8: 0ff0000f fence
800002cc: 00018063 beqz gp,800002cc <fail+0x4>
800002d0: 00119193 slli gp,gp,0x1
800002d4: 0011e193 ori gp,gp,1
800002d8: 05d00893 li a7,93
800002dc: 00018513 mv a0,gp
800002e0: 00000073 ecall
800002e4 <pass>:
800002e4: 0ff0000f fence
800002e8: 00100193 li gp,1
800002ec: 05d00893 li a7,93
800002f0: 00000513 li a0,0
800002f4: 00000073 ecall
800002f8: c0001073 unimp
800002fc: 0000 unimp
800002fe: 0000 unimp
80000300: 0000 unimp
80000302: 0000 unimp

View file

@ -0,0 +1,149 @@
rv32ui-p-auipc: 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: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-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: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 02028293 addi t0,t0,32 # 80000084 <reset_vector+0x38>
8000006c: 30529073 csrw mtvec,t0
80000070: 800002b7 lui t0,0x80000
80000074: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdfff>
80000078: 3b029073 csrw pmpaddr0,t0
8000007c: 01f00293 li t0,31
80000080: 3a029073 csrw pmpcfg0,t0
80000084: 00000297 auipc t0,0x0
80000088: 01828293 addi t0,t0,24 # 8000009c <reset_vector+0x50>
8000008c: 30529073 csrw mtvec,t0
80000090: 30205073 csrwi medeleg,0
80000094: 30305073 csrwi mideleg,0
80000098: 30405073 csrwi mie,0
8000009c: 00000193 li gp,0
800000a0: 00000297 auipc t0,0x0
800000a4: f6428293 addi t0,t0,-156 # 80000004 <trap_vector>
800000a8: 30529073 csrw mtvec,t0
800000ac: 00100513 li a0,1
800000b0: 01f51513 slli a0,a0,0x1f
800000b4: 00054c63 bltz a0,800000cc <reset_vector+0x80>
800000b8: 0ff0000f fence
800000bc: 00100193 li gp,1
800000c0: 05d00893 li a7,93
800000c4: 00000513 li a0,0
800000c8: 00000073 ecall
800000cc: 80000297 auipc t0,0x80000
800000d0: f3428293 addi t0,t0,-204 # 0 <_start-0x80000000>
800000d4: 00028e63 beqz t0,800000f0 <reset_vector+0xa4>
800000d8: 10529073 csrw stvec,t0
800000dc: 0000b2b7 lui t0,0xb
800000e0: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000e4: 30229073 csrw medeleg,t0
800000e8: 30202373 csrr t1,medeleg
800000ec: f46298e3 bne t0,t1,8000003c <handle_exception>
800000f0: 30005073 csrwi mstatus,0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <test_2>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108 <test_2>:
80000108: 00002517 auipc a0,0x2
8000010c: 71c50513 addi a0,a0,1820 # 80002824 <_end+0x824>
80000110: 004005ef jal a1,80000114 <test_2+0xc>
80000114: 40b50533 sub a0,a0,a1
80000118: 00002eb7 lui t4,0x2
8000011c: 710e8e93 addi t4,t4,1808 # 2710 <_start-0x7fffd8f0>
80000120: 00200193 li gp,2
80000124: 03d51463 bne a0,t4,8000014c <fail>
80000128 <test_3>:
80000128: ffffe517 auipc a0,0xffffe
8000012c: 8fc50513 addi a0,a0,-1796 # 7fffda24 <_start-0x25dc>
80000130: 004005ef jal a1,80000134 <test_3+0xc>
80000134: 40b50533 sub a0,a0,a1
80000138: ffffeeb7 lui t4,0xffffe
8000013c: 8f0e8e93 addi t4,t4,-1808 # ffffd8f0 <_end+0x7fffb8f0>
80000140: 00300193 li gp,3
80000144: 01d51463 bne a0,t4,8000014c <fail>
80000148: 02301063 bne zero,gp,80000168 <pass>
8000014c <fail>:
8000014c: 0ff0000f fence
80000150: 00018063 beqz gp,80000150 <fail+0x4>
80000154: 00119193 slli gp,gp,0x1
80000158: 0011e193 ori gp,gp,1
8000015c: 05d00893 li a7,93
80000160: 00018513 mv a0,gp
80000164: 00000073 ecall
80000168 <pass>:
80000168: 0ff0000f fence
8000016c: 00100193 li gp,1
80000170: 05d00893 li a7,93
80000174: 00000513 li a0,0
80000178: 00000073 ecall
8000017c: c0001073 unimp
80000180: 0000 unimp
80000182: 0000 unimp
80000184: 0000 unimp
80000186: 0000 unimp
80000188: 0000 unimp
8000018a: 0000 unimp
8000018c: 0000 unimp
8000018e: 0000 unimp
80000190: 0000 unimp
80000192: 0000 unimp
80000194: 0000 unimp
80000196: 0000 unimp
80000198: 0000 unimp
8000019a: 0000 unimp
8000019c: 0000 unimp
8000019e: 0000 unimp
800001a0: 0000 unimp
800001a2: 0000 unimp
800001a4: 0000 unimp
800001a6: 0000 unimp
800001a8: 0000 unimp
800001aa: 0000 unimp
800001ac: 0000 unimp
800001ae: 0000 unimp
800001b0: 0000 unimp
800001b2: 0000 unimp
800001b4: 0000 unimp
800001b6: 0000 unimp
800001b8: 0000 unimp
800001ba: 0000 unimp

View file

@ -0,0 +1,318 @@
rv32ui-p-beq: 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: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-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: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 02028293 addi t0,t0,32 # 80000084 <reset_vector+0x38>
8000006c: 30529073 csrw mtvec,t0
80000070: 800002b7 lui t0,0x80000
80000074: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdfff>
80000078: 3b029073 csrw pmpaddr0,t0
8000007c: 01f00293 li t0,31
80000080: 3a029073 csrw pmpcfg0,t0
80000084: 00000297 auipc t0,0x0
80000088: 01828293 addi t0,t0,24 # 8000009c <reset_vector+0x50>
8000008c: 30529073 csrw mtvec,t0
80000090: 30205073 csrwi medeleg,0
80000094: 30305073 csrwi mideleg,0
80000098: 30405073 csrwi mie,0
8000009c: 00000193 li gp,0
800000a0: 00000297 auipc t0,0x0
800000a4: f6428293 addi t0,t0,-156 # 80000004 <trap_vector>
800000a8: 30529073 csrw mtvec,t0
800000ac: 00100513 li a0,1
800000b0: 01f51513 slli a0,a0,0x1f
800000b4: 00054c63 bltz a0,800000cc <reset_vector+0x80>
800000b8: 0ff0000f fence
800000bc: 00100193 li gp,1
800000c0: 05d00893 li a7,93
800000c4: 00000513 li a0,0
800000c8: 00000073 ecall
800000cc: 80000297 auipc t0,0x80000
800000d0: f3428293 addi t0,t0,-204 # 0 <_start-0x80000000>
800000d4: 00028e63 beqz t0,800000f0 <reset_vector+0xa4>
800000d8: 10529073 csrw stvec,t0
800000dc: 0000b2b7 lui t0,0xb
800000e0: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000e4: 30229073 csrw medeleg,t0
800000e8: 30202373 csrr t1,medeleg
800000ec: f46298e3 bne t0,t1,8000003c <handle_exception>
800000f0: 30005073 csrwi mstatus,0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <test_2>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108 <test_2>:
80000108: 00200193 li gp,2
8000010c: 00000093 li ra,0
80000110: 00000113 li sp,0
80000114: 00208663 beq ra,sp,80000120 <test_2+0x18>
80000118: 2a301863 bne zero,gp,800003c8 <fail>
8000011c: 00301663 bne zero,gp,80000128 <test_3>
80000120: fe208ee3 beq ra,sp,8000011c <test_2+0x14>
80000124: 2a301263 bne zero,gp,800003c8 <fail>
80000128 <test_3>:
80000128: 00300193 li gp,3
8000012c: 00100093 li ra,1
80000130: 00100113 li sp,1
80000134: 00208663 beq ra,sp,80000140 <test_3+0x18>
80000138: 28301863 bne zero,gp,800003c8 <fail>
8000013c: 00301663 bne zero,gp,80000148 <test_4>
80000140: fe208ee3 beq ra,sp,8000013c <test_3+0x14>
80000144: 28301263 bne zero,gp,800003c8 <fail>
80000148 <test_4>:
80000148: 00400193 li gp,4
8000014c: fff00093 li ra,-1
80000150: fff00113 li sp,-1
80000154: 00208663 beq ra,sp,80000160 <test_4+0x18>
80000158: 26301863 bne zero,gp,800003c8 <fail>
8000015c: 00301663 bne zero,gp,80000168 <test_5>
80000160: fe208ee3 beq ra,sp,8000015c <test_4+0x14>
80000164: 26301263 bne zero,gp,800003c8 <fail>
80000168 <test_5>:
80000168: 00500193 li gp,5
8000016c: 00000093 li ra,0
80000170: 00100113 li sp,1
80000174: 00208463 beq ra,sp,8000017c <test_5+0x14>
80000178: 00301463 bne zero,gp,80000180 <test_5+0x18>
8000017c: 24301663 bne zero,gp,800003c8 <fail>
80000180: fe208ee3 beq ra,sp,8000017c <test_5+0x14>
80000184 <test_6>:
80000184: 00600193 li gp,6
80000188: 00100093 li ra,1
8000018c: 00000113 li sp,0
80000190: 00208463 beq ra,sp,80000198 <test_6+0x14>
80000194: 00301463 bne zero,gp,8000019c <test_6+0x18>
80000198: 22301863 bne zero,gp,800003c8 <fail>
8000019c: fe208ee3 beq ra,sp,80000198 <test_6+0x14>
800001a0 <test_7>:
800001a0: 00700193 li gp,7
800001a4: fff00093 li ra,-1
800001a8: 00100113 li sp,1
800001ac: 00208463 beq ra,sp,800001b4 <test_7+0x14>
800001b0: 00301463 bne zero,gp,800001b8 <test_7+0x18>
800001b4: 20301a63 bne zero,gp,800003c8 <fail>
800001b8: fe208ee3 beq ra,sp,800001b4 <test_7+0x14>
800001bc <test_8>:
800001bc: 00800193 li gp,8
800001c0: 00100093 li ra,1
800001c4: fff00113 li sp,-1
800001c8: 00208463 beq ra,sp,800001d0 <test_8+0x14>
800001cc: 00301463 bne zero,gp,800001d4 <test_8+0x18>
800001d0: 1e301c63 bne zero,gp,800003c8 <fail>
800001d4: fe208ee3 beq ra,sp,800001d0 <test_8+0x14>
800001d8 <test_9>:
800001d8: 00900193 li gp,9
800001dc: 00000213 li tp,0
800001e0: 00000093 li ra,0
800001e4: fff00113 li sp,-1
800001e8: 1e208063 beq ra,sp,800003c8 <fail>
800001ec: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800001f0: 00200293 li t0,2
800001f4: fe5216e3 bne tp,t0,800001e0 <test_9+0x8>
800001f8 <test_10>:
800001f8: 00a00193 li gp,10
800001fc: 00000213 li tp,0
80000200: 00000093 li ra,0
80000204: fff00113 li sp,-1
80000208: 00000013 nop
8000020c: 1a208e63 beq ra,sp,800003c8 <fail>
80000210: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000214: 00200293 li t0,2
80000218: fe5214e3 bne tp,t0,80000200 <test_10+0x8>
8000021c <test_11>:
8000021c: 00b00193 li gp,11
80000220: 00000213 li tp,0
80000224: 00000093 li ra,0
80000228: fff00113 li sp,-1
8000022c: 00000013 nop
80000230: 00000013 nop
80000234: 18208a63 beq ra,sp,800003c8 <fail>
80000238: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000023c: 00200293 li t0,2
80000240: fe5212e3 bne tp,t0,80000224 <test_11+0x8>
80000244 <test_12>:
80000244: 00c00193 li gp,12
80000248: 00000213 li tp,0
8000024c: 00000093 li ra,0
80000250: 00000013 nop
80000254: fff00113 li sp,-1
80000258: 16208863 beq ra,sp,800003c8 <fail>
8000025c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000260: 00200293 li t0,2
80000264: fe5214e3 bne tp,t0,8000024c <test_12+0x8>
80000268 <test_13>:
80000268: 00d00193 li gp,13
8000026c: 00000213 li tp,0
80000270: 00000093 li ra,0
80000274: 00000013 nop
80000278: fff00113 li sp,-1
8000027c: 00000013 nop
80000280: 14208463 beq ra,sp,800003c8 <fail>
80000284: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000288: 00200293 li t0,2
8000028c: fe5212e3 bne tp,t0,80000270 <test_13+0x8>
80000290 <test_14>:
80000290: 00e00193 li gp,14
80000294: 00000213 li tp,0
80000298: 00000093 li ra,0
8000029c: 00000013 nop
800002a0: 00000013 nop
800002a4: fff00113 li sp,-1
800002a8: 12208063 beq ra,sp,800003c8 <fail>
800002ac: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002b0: 00200293 li t0,2
800002b4: fe5212e3 bne tp,t0,80000298 <test_14+0x8>
800002b8 <test_15>:
800002b8: 00f00193 li gp,15
800002bc: 00000213 li tp,0
800002c0: 00000093 li ra,0
800002c4: fff00113 li sp,-1
800002c8: 10208063 beq ra,sp,800003c8 <fail>
800002cc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002d0: 00200293 li t0,2
800002d4: fe5216e3 bne tp,t0,800002c0 <test_15+0x8>
800002d8 <test_16>:
800002d8: 01000193 li gp,16
800002dc: 00000213 li tp,0
800002e0: 00000093 li ra,0
800002e4: fff00113 li sp,-1
800002e8: 00000013 nop
800002ec: 0c208e63 beq ra,sp,800003c8 <fail>
800002f0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002f4: 00200293 li t0,2
800002f8: fe5214e3 bne tp,t0,800002e0 <test_16+0x8>
800002fc <test_17>:
800002fc: 01100193 li gp,17
80000300: 00000213 li tp,0
80000304: 00000093 li ra,0
80000308: fff00113 li sp,-1
8000030c: 00000013 nop
80000310: 00000013 nop
80000314: 0a208a63 beq ra,sp,800003c8 <fail>
80000318: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000031c: 00200293 li t0,2
80000320: fe5212e3 bne tp,t0,80000304 <test_17+0x8>
80000324 <test_18>:
80000324: 01200193 li gp,18
80000328: 00000213 li tp,0
8000032c: 00000093 li ra,0
80000330: 00000013 nop
80000334: fff00113 li sp,-1
80000338: 08208863 beq ra,sp,800003c8 <fail>
8000033c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000340: 00200293 li t0,2
80000344: fe5214e3 bne tp,t0,8000032c <test_18+0x8>
80000348 <test_19>:
80000348: 01300193 li gp,19
8000034c: 00000213 li tp,0
80000350: 00000093 li ra,0
80000354: 00000013 nop
80000358: fff00113 li sp,-1
8000035c: 00000013 nop
80000360: 06208463 beq ra,sp,800003c8 <fail>
80000364: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000368: 00200293 li t0,2
8000036c: fe5212e3 bne tp,t0,80000350 <test_19+0x8>
80000370 <test_20>:
80000370: 01400193 li gp,20
80000374: 00000213 li tp,0
80000378: 00000093 li ra,0
8000037c: 00000013 nop
80000380: 00000013 nop
80000384: fff00113 li sp,-1
80000388: 04208063 beq ra,sp,800003c8 <fail>
8000038c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000390: 00200293 li t0,2
80000394: fe5212e3 bne tp,t0,80000378 <test_20+0x8>
80000398 <test_21>:
80000398: 00100093 li ra,1
8000039c: 00000a63 beqz zero,800003b0 <test_21+0x18>
800003a0: 00108093 addi ra,ra,1
800003a4: 00108093 addi ra,ra,1
800003a8: 00108093 addi ra,ra,1
800003ac: 00108093 addi ra,ra,1
800003b0: 00108093 addi ra,ra,1
800003b4: 00108093 addi ra,ra,1
800003b8: 00300e93 li t4,3
800003bc: 01500193 li gp,21
800003c0: 01d09463 bne ra,t4,800003c8 <fail>
800003c4: 02301063 bne zero,gp,800003e4 <pass>
800003c8 <fail>:
800003c8: 0ff0000f fence
800003cc: 00018063 beqz gp,800003cc <fail+0x4>
800003d0: 00119193 slli gp,gp,0x1
800003d4: 0011e193 ori gp,gp,1
800003d8: 05d00893 li a7,93
800003dc: 00018513 mv a0,gp
800003e0: 00000073 ecall
800003e4 <pass>:
800003e4: 0ff0000f fence
800003e8: 00100193 li gp,1
800003ec: 05d00893 li a7,93
800003f0: 00000513 li a0,0
800003f4: 00000073 ecall
800003f8: c0001073 unimp
800003fc: 0000 unimp
800003fe: 0000 unimp
80000400: 0000 unimp
80000402: 0000 unimp

View file

@ -0,0 +1,364 @@
rv32ui-p-bge: 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: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-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: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 02028293 addi t0,t0,32 # 80000084 <reset_vector+0x38>
8000006c: 30529073 csrw mtvec,t0
80000070: 800002b7 lui t0,0x80000
80000074: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdfff>
80000078: 3b029073 csrw pmpaddr0,t0
8000007c: 01f00293 li t0,31
80000080: 3a029073 csrw pmpcfg0,t0
80000084: 00000297 auipc t0,0x0
80000088: 01828293 addi t0,t0,24 # 8000009c <reset_vector+0x50>
8000008c: 30529073 csrw mtvec,t0
80000090: 30205073 csrwi medeleg,0
80000094: 30305073 csrwi mideleg,0
80000098: 30405073 csrwi mie,0
8000009c: 00000193 li gp,0
800000a0: 00000297 auipc t0,0x0
800000a4: f6428293 addi t0,t0,-156 # 80000004 <trap_vector>
800000a8: 30529073 csrw mtvec,t0
800000ac: 00100513 li a0,1
800000b0: 01f51513 slli a0,a0,0x1f
800000b4: 00054c63 bltz a0,800000cc <reset_vector+0x80>
800000b8: 0ff0000f fence
800000bc: 00100193 li gp,1
800000c0: 05d00893 li a7,93
800000c4: 00000513 li a0,0
800000c8: 00000073 ecall
800000cc: 80000297 auipc t0,0x80000
800000d0: f3428293 addi t0,t0,-204 # 0 <_start-0x80000000>
800000d4: 00028e63 beqz t0,800000f0 <reset_vector+0xa4>
800000d8: 10529073 csrw stvec,t0
800000dc: 0000b2b7 lui t0,0xb
800000e0: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000e4: 30229073 csrw medeleg,t0
800000e8: 30202373 csrr t1,medeleg
800000ec: f46298e3 bne t0,t1,8000003c <handle_exception>
800000f0: 30005073 csrwi mstatus,0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <test_2>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108 <test_2>:
80000108: 00200193 li gp,2
8000010c: 00000093 li ra,0
80000110: 00000113 li sp,0
80000114: 0020d663 bge ra,sp,80000120 <test_2+0x18>
80000118: 30301863 bne zero,gp,80000428 <fail>
8000011c: 00301663 bne zero,gp,80000128 <test_3>
80000120: fe20dee3 bge ra,sp,8000011c <test_2+0x14>
80000124: 30301263 bne zero,gp,80000428 <fail>
80000128 <test_3>:
80000128: 00300193 li gp,3
8000012c: 00100093 li ra,1
80000130: 00100113 li sp,1
80000134: 0020d663 bge ra,sp,80000140 <test_3+0x18>
80000138: 2e301863 bne zero,gp,80000428 <fail>
8000013c: 00301663 bne zero,gp,80000148 <test_4>
80000140: fe20dee3 bge ra,sp,8000013c <test_3+0x14>
80000144: 2e301263 bne zero,gp,80000428 <fail>
80000148 <test_4>:
80000148: 00400193 li gp,4
8000014c: fff00093 li ra,-1
80000150: fff00113 li sp,-1
80000154: 0020d663 bge ra,sp,80000160 <test_4+0x18>
80000158: 2c301863 bne zero,gp,80000428 <fail>
8000015c: 00301663 bne zero,gp,80000168 <test_5>
80000160: fe20dee3 bge ra,sp,8000015c <test_4+0x14>
80000164: 2c301263 bne zero,gp,80000428 <fail>
80000168 <test_5>:
80000168: 00500193 li gp,5
8000016c: 00100093 li ra,1
80000170: 00000113 li sp,0
80000174: 0020d663 bge ra,sp,80000180 <test_5+0x18>
80000178: 2a301863 bne zero,gp,80000428 <fail>
8000017c: 00301663 bne zero,gp,80000188 <test_6>
80000180: fe20dee3 bge ra,sp,8000017c <test_5+0x14>
80000184: 2a301263 bne zero,gp,80000428 <fail>
80000188 <test_6>:
80000188: 00600193 li gp,6
8000018c: 00100093 li ra,1
80000190: fff00113 li sp,-1
80000194: 0020d663 bge ra,sp,800001a0 <test_6+0x18>
80000198: 28301863 bne zero,gp,80000428 <fail>
8000019c: 00301663 bne zero,gp,800001a8 <test_7>
800001a0: fe20dee3 bge ra,sp,8000019c <test_6+0x14>
800001a4: 28301263 bne zero,gp,80000428 <fail>
800001a8 <test_7>:
800001a8: 00700193 li gp,7
800001ac: fff00093 li ra,-1
800001b0: ffe00113 li sp,-2
800001b4: 0020d663 bge ra,sp,800001c0 <test_7+0x18>
800001b8: 26301863 bne zero,gp,80000428 <fail>
800001bc: 00301663 bne zero,gp,800001c8 <test_8>
800001c0: fe20dee3 bge ra,sp,800001bc <test_7+0x14>
800001c4: 26301263 bne zero,gp,80000428 <fail>
800001c8 <test_8>:
800001c8: 00800193 li gp,8
800001cc: 00000093 li ra,0
800001d0: 00100113 li sp,1
800001d4: 0020d463 bge ra,sp,800001dc <test_8+0x14>
800001d8: 00301463 bne zero,gp,800001e0 <test_8+0x18>
800001dc: 24301663 bne zero,gp,80000428 <fail>
800001e0: fe20dee3 bge ra,sp,800001dc <test_8+0x14>
800001e4 <test_9>:
800001e4: 00900193 li gp,9
800001e8: fff00093 li ra,-1
800001ec: 00100113 li sp,1
800001f0: 0020d463 bge ra,sp,800001f8 <test_9+0x14>
800001f4: 00301463 bne zero,gp,800001fc <test_9+0x18>
800001f8: 22301863 bne zero,gp,80000428 <fail>
800001fc: fe20dee3 bge ra,sp,800001f8 <test_9+0x14>
80000200 <test_10>:
80000200: 00a00193 li gp,10
80000204: ffe00093 li ra,-2
80000208: fff00113 li sp,-1
8000020c: 0020d463 bge ra,sp,80000214 <test_10+0x14>
80000210: 00301463 bne zero,gp,80000218 <test_10+0x18>
80000214: 20301a63 bne zero,gp,80000428 <fail>
80000218: fe20dee3 bge ra,sp,80000214 <test_10+0x14>
8000021c <test_11>:
8000021c: 00b00193 li gp,11
80000220: ffe00093 li ra,-2
80000224: 00100113 li sp,1
80000228: 0020d463 bge ra,sp,80000230 <test_11+0x14>
8000022c: 00301463 bne zero,gp,80000234 <test_11+0x18>
80000230: 1e301c63 bne zero,gp,80000428 <fail>
80000234: fe20dee3 bge ra,sp,80000230 <test_11+0x14>
80000238 <test_12>:
80000238: 00c00193 li gp,12
8000023c: 00000213 li tp,0
80000240: fff00093 li ra,-1
80000244: 00000113 li sp,0
80000248: 1e20d063 bge ra,sp,80000428 <fail>
8000024c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000250: 00200293 li t0,2
80000254: fe5216e3 bne tp,t0,80000240 <test_12+0x8>
80000258 <test_13>:
80000258: 00d00193 li gp,13
8000025c: 00000213 li tp,0
80000260: fff00093 li ra,-1
80000264: 00000113 li sp,0
80000268: 00000013 nop
8000026c: 1a20de63 bge ra,sp,80000428 <fail>
80000270: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000274: 00200293 li t0,2
80000278: fe5214e3 bne tp,t0,80000260 <test_13+0x8>
8000027c <test_14>:
8000027c: 00e00193 li gp,14
80000280: 00000213 li tp,0
80000284: fff00093 li ra,-1
80000288: 00000113 li sp,0
8000028c: 00000013 nop
80000290: 00000013 nop
80000294: 1820da63 bge ra,sp,80000428 <fail>
80000298: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000029c: 00200293 li t0,2
800002a0: fe5212e3 bne tp,t0,80000284 <test_14+0x8>
800002a4 <test_15>:
800002a4: 00f00193 li gp,15
800002a8: 00000213 li tp,0
800002ac: fff00093 li ra,-1
800002b0: 00000013 nop
800002b4: 00000113 li sp,0
800002b8: 1620d863 bge ra,sp,80000428 <fail>
800002bc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002c0: 00200293 li t0,2
800002c4: fe5214e3 bne tp,t0,800002ac <test_15+0x8>
800002c8 <test_16>:
800002c8: 01000193 li gp,16
800002cc: 00000213 li tp,0
800002d0: fff00093 li ra,-1
800002d4: 00000013 nop
800002d8: 00000113 li sp,0
800002dc: 00000013 nop
800002e0: 1420d463 bge ra,sp,80000428 <fail>
800002e4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002e8: 00200293 li t0,2
800002ec: fe5212e3 bne tp,t0,800002d0 <test_16+0x8>
800002f0 <test_17>:
800002f0: 01100193 li gp,17
800002f4: 00000213 li tp,0
800002f8: fff00093 li ra,-1
800002fc: 00000013 nop
80000300: 00000013 nop
80000304: 00000113 li sp,0
80000308: 1220d063 bge ra,sp,80000428 <fail>
8000030c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000310: 00200293 li t0,2
80000314: fe5212e3 bne tp,t0,800002f8 <test_17+0x8>
80000318 <test_18>:
80000318: 01200193 li gp,18
8000031c: 00000213 li tp,0
80000320: fff00093 li ra,-1
80000324: 00000113 li sp,0
80000328: 1020d063 bge ra,sp,80000428 <fail>
8000032c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000330: 00200293 li t0,2
80000334: fe5216e3 bne tp,t0,80000320 <test_18+0x8>
80000338 <test_19>:
80000338: 01300193 li gp,19
8000033c: 00000213 li tp,0
80000340: fff00093 li ra,-1
80000344: 00000113 li sp,0
80000348: 00000013 nop
8000034c: 0c20de63 bge ra,sp,80000428 <fail>
80000350: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000354: 00200293 li t0,2
80000358: fe5214e3 bne tp,t0,80000340 <test_19+0x8>
8000035c <test_20>:
8000035c: 01400193 li gp,20
80000360: 00000213 li tp,0
80000364: fff00093 li ra,-1
80000368: 00000113 li sp,0
8000036c: 00000013 nop
80000370: 00000013 nop
80000374: 0a20da63 bge ra,sp,80000428 <fail>
80000378: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000037c: 00200293 li t0,2
80000380: fe5212e3 bne tp,t0,80000364 <test_20+0x8>
80000384 <test_21>:
80000384: 01500193 li gp,21
80000388: 00000213 li tp,0
8000038c: fff00093 li ra,-1
80000390: 00000013 nop
80000394: 00000113 li sp,0
80000398: 0820d863 bge ra,sp,80000428 <fail>
8000039c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800003a0: 00200293 li t0,2
800003a4: fe5214e3 bne tp,t0,8000038c <test_21+0x8>
800003a8 <test_22>:
800003a8: 01600193 li gp,22
800003ac: 00000213 li tp,0
800003b0: fff00093 li ra,-1
800003b4: 00000013 nop
800003b8: 00000113 li sp,0
800003bc: 00000013 nop
800003c0: 0620d463 bge ra,sp,80000428 <fail>
800003c4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800003c8: 00200293 li t0,2
800003cc: fe5212e3 bne tp,t0,800003b0 <test_22+0x8>
800003d0 <test_23>:
800003d0: 01700193 li gp,23
800003d4: 00000213 li tp,0
800003d8: fff00093 li ra,-1
800003dc: 00000013 nop
800003e0: 00000013 nop
800003e4: 00000113 li sp,0
800003e8: 0420d063 bge ra,sp,80000428 <fail>
800003ec: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800003f0: 00200293 li t0,2
800003f4: fe5212e3 bne tp,t0,800003d8 <test_23+0x8>
800003f8 <test_24>:
800003f8: 00100093 li ra,1
800003fc: 0000da63 bgez ra,80000410 <test_24+0x18>
80000400: 00108093 addi ra,ra,1
80000404: 00108093 addi ra,ra,1
80000408: 00108093 addi ra,ra,1
8000040c: 00108093 addi ra,ra,1
80000410: 00108093 addi ra,ra,1
80000414: 00108093 addi ra,ra,1
80000418: 00300e93 li t4,3
8000041c: 01800193 li gp,24
80000420: 01d09463 bne ra,t4,80000428 <fail>
80000424: 02301063 bne zero,gp,80000444 <pass>
80000428 <fail>:
80000428: 0ff0000f fence
8000042c: 00018063 beqz gp,8000042c <fail+0x4>
80000430: 00119193 slli gp,gp,0x1
80000434: 0011e193 ori gp,gp,1
80000438: 05d00893 li a7,93
8000043c: 00018513 mv a0,gp
80000440: 00000073 ecall
80000444 <pass>:
80000444: 0ff0000f fence
80000448: 00100193 li gp,1
8000044c: 05d00893 li a7,93
80000450: 00000513 li a0,0
80000454: 00000073 ecall
80000458: c0001073 unimp
8000045c: 0000 unimp
8000045e: 0000 unimp
80000460: 0000 unimp
80000462: 0000 unimp
80000464: 0000 unimp
80000466: 0000 unimp
80000468: 0000 unimp
8000046a: 0000 unimp
8000046c: 0000 unimp
8000046e: 0000 unimp
80000470: 0000 unimp
80000472: 0000 unimp
80000474: 0000 unimp
80000476: 0000 unimp
80000478: 0000 unimp
8000047a: 0000 unimp
8000047c: 0000 unimp
8000047e: 0000 unimp
80000480: 0000 unimp
80000482: 0000 unimp

View file

@ -0,0 +1,383 @@
rv32ui-p-bgeu: 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: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-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: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 02028293 addi t0,t0,32 # 80000084 <reset_vector+0x38>
8000006c: 30529073 csrw mtvec,t0
80000070: 800002b7 lui t0,0x80000
80000074: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdfff>
80000078: 3b029073 csrw pmpaddr0,t0
8000007c: 01f00293 li t0,31
80000080: 3a029073 csrw pmpcfg0,t0
80000084: 00000297 auipc t0,0x0
80000088: 01828293 addi t0,t0,24 # 8000009c <reset_vector+0x50>
8000008c: 30529073 csrw mtvec,t0
80000090: 30205073 csrwi medeleg,0
80000094: 30305073 csrwi mideleg,0
80000098: 30405073 csrwi mie,0
8000009c: 00000193 li gp,0
800000a0: 00000297 auipc t0,0x0
800000a4: f6428293 addi t0,t0,-156 # 80000004 <trap_vector>
800000a8: 30529073 csrw mtvec,t0
800000ac: 00100513 li a0,1
800000b0: 01f51513 slli a0,a0,0x1f
800000b4: 00054c63 bltz a0,800000cc <reset_vector+0x80>
800000b8: 0ff0000f fence
800000bc: 00100193 li gp,1
800000c0: 05d00893 li a7,93
800000c4: 00000513 li a0,0
800000c8: 00000073 ecall
800000cc: 80000297 auipc t0,0x80000
800000d0: f3428293 addi t0,t0,-204 # 0 <_start-0x80000000>
800000d4: 00028e63 beqz t0,800000f0 <reset_vector+0xa4>
800000d8: 10529073 csrw stvec,t0
800000dc: 0000b2b7 lui t0,0xb
800000e0: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000e4: 30229073 csrw medeleg,t0
800000e8: 30202373 csrr t1,medeleg
800000ec: f46298e3 bne t0,t1,8000003c <handle_exception>
800000f0: 30005073 csrwi mstatus,0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <test_2>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108 <test_2>:
80000108: 00200193 li gp,2
8000010c: 00000093 li ra,0
80000110: 00000113 li sp,0
80000114: 0020f663 bgeu ra,sp,80000120 <test_2+0x18>
80000118: 34301263 bne zero,gp,8000045c <fail>
8000011c: 00301663 bne zero,gp,80000128 <test_3>
80000120: fe20fee3 bgeu ra,sp,8000011c <test_2+0x14>
80000124: 32301c63 bne zero,gp,8000045c <fail>
80000128 <test_3>:
80000128: 00300193 li gp,3
8000012c: 00100093 li ra,1
80000130: 00100113 li sp,1
80000134: 0020f663 bgeu ra,sp,80000140 <test_3+0x18>
80000138: 32301263 bne zero,gp,8000045c <fail>
8000013c: 00301663 bne zero,gp,80000148 <test_4>
80000140: fe20fee3 bgeu ra,sp,8000013c <test_3+0x14>
80000144: 30301c63 bne zero,gp,8000045c <fail>
80000148 <test_4>:
80000148: 00400193 li gp,4
8000014c: fff00093 li ra,-1
80000150: fff00113 li sp,-1
80000154: 0020f663 bgeu ra,sp,80000160 <test_4+0x18>
80000158: 30301263 bne zero,gp,8000045c <fail>
8000015c: 00301663 bne zero,gp,80000168 <test_5>
80000160: fe20fee3 bgeu ra,sp,8000015c <test_4+0x14>
80000164: 2e301c63 bne zero,gp,8000045c <fail>
80000168 <test_5>:
80000168: 00500193 li gp,5
8000016c: 00100093 li ra,1
80000170: 00000113 li sp,0
80000174: 0020f663 bgeu ra,sp,80000180 <test_5+0x18>
80000178: 2e301263 bne zero,gp,8000045c <fail>
8000017c: 00301663 bne zero,gp,80000188 <test_6>
80000180: fe20fee3 bgeu ra,sp,8000017c <test_5+0x14>
80000184: 2c301c63 bne zero,gp,8000045c <fail>
80000188 <test_6>:
80000188: 00600193 li gp,6
8000018c: fff00093 li ra,-1
80000190: ffe00113 li sp,-2
80000194: 0020f663 bgeu ra,sp,800001a0 <test_6+0x18>
80000198: 2c301263 bne zero,gp,8000045c <fail>
8000019c: 00301663 bne zero,gp,800001a8 <test_7>
800001a0: fe20fee3 bgeu ra,sp,8000019c <test_6+0x14>
800001a4: 2a301c63 bne zero,gp,8000045c <fail>
800001a8 <test_7>:
800001a8: 00700193 li gp,7
800001ac: fff00093 li ra,-1
800001b0: 00000113 li sp,0
800001b4: 0020f663 bgeu ra,sp,800001c0 <test_7+0x18>
800001b8: 2a301263 bne zero,gp,8000045c <fail>
800001bc: 00301663 bne zero,gp,800001c8 <test_8>
800001c0: fe20fee3 bgeu ra,sp,800001bc <test_7+0x14>
800001c4: 28301c63 bne zero,gp,8000045c <fail>
800001c8 <test_8>:
800001c8: 00800193 li gp,8
800001cc: 00000093 li ra,0
800001d0: 00100113 li sp,1
800001d4: 0020f463 bgeu ra,sp,800001dc <test_8+0x14>
800001d8: 00301463 bne zero,gp,800001e0 <test_8+0x18>
800001dc: 28301063 bne zero,gp,8000045c <fail>
800001e0: fe20fee3 bgeu ra,sp,800001dc <test_8+0x14>
800001e4 <test_9>:
800001e4: 00900193 li gp,9
800001e8: ffe00093 li ra,-2
800001ec: fff00113 li sp,-1
800001f0: 0020f463 bgeu ra,sp,800001f8 <test_9+0x14>
800001f4: 00301463 bne zero,gp,800001fc <test_9+0x18>
800001f8: 26301263 bne zero,gp,8000045c <fail>
800001fc: fe20fee3 bgeu ra,sp,800001f8 <test_9+0x14>
80000200 <test_10>:
80000200: 00a00193 li gp,10
80000204: 00000093 li ra,0
80000208: fff00113 li sp,-1
8000020c: 0020f463 bgeu ra,sp,80000214 <test_10+0x14>
80000210: 00301463 bne zero,gp,80000218 <test_10+0x18>
80000214: 24301463 bne zero,gp,8000045c <fail>
80000218: fe20fee3 bgeu ra,sp,80000214 <test_10+0x14>
8000021c <test_11>:
8000021c: 00b00193 li gp,11
80000220: 800000b7 lui ra,0x80000
80000224: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffffdfff>
80000228: 80000137 lui sp,0x80000
8000022c: 0020f463 bgeu ra,sp,80000234 <test_11+0x18>
80000230: 00301463 bne zero,gp,80000238 <test_11+0x1c>
80000234: 22301463 bne zero,gp,8000045c <fail>
80000238: fe20fee3 bgeu ra,sp,80000234 <test_11+0x18>
8000023c <test_12>:
8000023c: 00c00193 li gp,12
80000240: 00000213 li tp,0
80000244: f00000b7 lui ra,0xf0000
80000248: fff08093 addi ra,ra,-1 # efffffff <_end+0x6fffdfff>
8000024c: f0000137 lui sp,0xf0000
80000250: 2020f663 bgeu ra,sp,8000045c <fail>
80000254: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000258: 00200293 li t0,2
8000025c: fe5214e3 bne tp,t0,80000244 <test_12+0x8>
80000260 <test_13>:
80000260: 00d00193 li gp,13
80000264: 00000213 li tp,0
80000268: f00000b7 lui ra,0xf0000
8000026c: fff08093 addi ra,ra,-1 # efffffff <_end+0x6fffdfff>
80000270: f0000137 lui sp,0xf0000
80000274: 00000013 nop
80000278: 1e20f263 bgeu ra,sp,8000045c <fail>
8000027c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000280: 00200293 li t0,2
80000284: fe5212e3 bne tp,t0,80000268 <test_13+0x8>
80000288 <test_14>:
80000288: 00e00193 li gp,14
8000028c: 00000213 li tp,0
80000290: f00000b7 lui ra,0xf0000
80000294: fff08093 addi ra,ra,-1 # efffffff <_end+0x6fffdfff>
80000298: f0000137 lui sp,0xf0000
8000029c: 00000013 nop
800002a0: 00000013 nop
800002a4: 1a20fc63 bgeu ra,sp,8000045c <fail>
800002a8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002ac: 00200293 li t0,2
800002b0: fe5210e3 bne tp,t0,80000290 <test_14+0x8>
800002b4 <test_15>:
800002b4: 00f00193 li gp,15
800002b8: 00000213 li tp,0
800002bc: f00000b7 lui ra,0xf0000
800002c0: fff08093 addi ra,ra,-1 # efffffff <_end+0x6fffdfff>
800002c4: 00000013 nop
800002c8: f0000137 lui sp,0xf0000
800002cc: 1820f863 bgeu ra,sp,8000045c <fail>
800002d0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002d4: 00200293 li t0,2
800002d8: fe5212e3 bne tp,t0,800002bc <test_15+0x8>
800002dc <test_16>:
800002dc: 01000193 li gp,16
800002e0: 00000213 li tp,0
800002e4: f00000b7 lui ra,0xf0000
800002e8: fff08093 addi ra,ra,-1 # efffffff <_end+0x6fffdfff>
800002ec: 00000013 nop
800002f0: f0000137 lui sp,0xf0000
800002f4: 00000013 nop
800002f8: 1620f263 bgeu ra,sp,8000045c <fail>
800002fc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000300: 00200293 li t0,2
80000304: fe5210e3 bne tp,t0,800002e4 <test_16+0x8>
80000308 <test_17>:
80000308: 01100193 li gp,17
8000030c: 00000213 li tp,0
80000310: f00000b7 lui ra,0xf0000
80000314: fff08093 addi ra,ra,-1 # efffffff <_end+0x6fffdfff>
80000318: 00000013 nop
8000031c: 00000013 nop
80000320: f0000137 lui sp,0xf0000
80000324: 1220fc63 bgeu ra,sp,8000045c <fail>
80000328: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000032c: 00200293 li t0,2
80000330: fe5210e3 bne tp,t0,80000310 <test_17+0x8>
80000334 <test_18>:
80000334: 01200193 li gp,18
80000338: 00000213 li tp,0
8000033c: f00000b7 lui ra,0xf0000
80000340: fff08093 addi ra,ra,-1 # efffffff <_end+0x6fffdfff>
80000344: f0000137 lui sp,0xf0000
80000348: 1020fa63 bgeu ra,sp,8000045c <fail>
8000034c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000350: 00200293 li t0,2
80000354: fe5214e3 bne tp,t0,8000033c <test_18+0x8>
80000358 <test_19>:
80000358: 01300193 li gp,19
8000035c: 00000213 li tp,0
80000360: f00000b7 lui ra,0xf0000
80000364: fff08093 addi ra,ra,-1 # efffffff <_end+0x6fffdfff>
80000368: f0000137 lui sp,0xf0000
8000036c: 00000013 nop
80000370: 0e20f663 bgeu ra,sp,8000045c <fail>
80000374: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000378: 00200293 li t0,2
8000037c: fe5212e3 bne tp,t0,80000360 <test_19+0x8>
80000380 <test_20>:
80000380: 01400193 li gp,20
80000384: 00000213 li tp,0
80000388: f00000b7 lui ra,0xf0000
8000038c: fff08093 addi ra,ra,-1 # efffffff <_end+0x6fffdfff>
80000390: f0000137 lui sp,0xf0000
80000394: 00000013 nop
80000398: 00000013 nop
8000039c: 0c20f063 bgeu ra,sp,8000045c <fail>
800003a0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800003a4: 00200293 li t0,2
800003a8: fe5210e3 bne tp,t0,80000388 <test_20+0x8>
800003ac <test_21>:
800003ac: 01500193 li gp,21
800003b0: 00000213 li tp,0
800003b4: f00000b7 lui ra,0xf0000
800003b8: fff08093 addi ra,ra,-1 # efffffff <_end+0x6fffdfff>
800003bc: 00000013 nop
800003c0: f0000137 lui sp,0xf0000
800003c4: 0820fc63 bgeu ra,sp,8000045c <fail>
800003c8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800003cc: 00200293 li t0,2
800003d0: fe5212e3 bne tp,t0,800003b4 <test_21+0x8>
800003d4 <test_22>:
800003d4: 01600193 li gp,22
800003d8: 00000213 li tp,0
800003dc: f00000b7 lui ra,0xf0000
800003e0: fff08093 addi ra,ra,-1 # efffffff <_end+0x6fffdfff>
800003e4: 00000013 nop
800003e8: f0000137 lui sp,0xf0000
800003ec: 00000013 nop
800003f0: 0620f663 bgeu ra,sp,8000045c <fail>
800003f4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800003f8: 00200293 li t0,2
800003fc: fe5210e3 bne tp,t0,800003dc <test_22+0x8>
80000400 <test_23>:
80000400: 01700193 li gp,23
80000404: 00000213 li tp,0
80000408: f00000b7 lui ra,0xf0000
8000040c: fff08093 addi ra,ra,-1 # efffffff <_end+0x6fffdfff>
80000410: 00000013 nop
80000414: 00000013 nop
80000418: f0000137 lui sp,0xf0000
8000041c: 0420f063 bgeu ra,sp,8000045c <fail>
80000420: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000424: 00200293 li t0,2
80000428: fe5210e3 bne tp,t0,80000408 <test_23+0x8>
8000042c <test_24>:
8000042c: 00100093 li ra,1
80000430: 0000fa63 bgeu ra,zero,80000444 <test_24+0x18>
80000434: 00108093 addi ra,ra,1
80000438: 00108093 addi ra,ra,1
8000043c: 00108093 addi ra,ra,1
80000440: 00108093 addi ra,ra,1
80000444: 00108093 addi ra,ra,1
80000448: 00108093 addi ra,ra,1
8000044c: 00300e93 li t4,3
80000450: 01800193 li gp,24
80000454: 01d09463 bne ra,t4,8000045c <fail>
80000458: 02301063 bne zero,gp,80000478 <pass>
8000045c <fail>:
8000045c: 0ff0000f fence
80000460: 00018063 beqz gp,80000460 <fail+0x4>
80000464: 00119193 slli gp,gp,0x1
80000468: 0011e193 ori gp,gp,1
8000046c: 05d00893 li a7,93
80000470: 00018513 mv a0,gp
80000474: 00000073 ecall
80000478 <pass>:
80000478: 0ff0000f fence
8000047c: 00100193 li gp,1
80000480: 05d00893 li a7,93
80000484: 00000513 li a0,0
80000488: 00000073 ecall
8000048c: c0001073 unimp
80000490: 0000 unimp
80000492: 0000 unimp
80000494: 0000 unimp
80000496: 0000 unimp
80000498: 0000 unimp
8000049a: 0000 unimp
8000049c: 0000 unimp
8000049e: 0000 unimp
800004a0: 0000 unimp
800004a2: 0000 unimp
800004a4: 0000 unimp
800004a6: 0000 unimp
800004a8: 0000 unimp
800004aa: 0000 unimp
800004ac: 0000 unimp
800004ae: 0000 unimp
800004b0: 0000 unimp
800004b2: 0000 unimp
800004b4: 0000 unimp
800004b6: 0000 unimp
800004b8: 0000 unimp
800004ba: 0000 unimp
800004bc: 0000 unimp
800004be: 0000 unimp
800004c0: 0000 unimp
800004c2: 0000 unimp

View file

@ -0,0 +1,318 @@
rv32ui-p-blt: 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: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-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: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 02028293 addi t0,t0,32 # 80000084 <reset_vector+0x38>
8000006c: 30529073 csrw mtvec,t0
80000070: 800002b7 lui t0,0x80000
80000074: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdfff>
80000078: 3b029073 csrw pmpaddr0,t0
8000007c: 01f00293 li t0,31
80000080: 3a029073 csrw pmpcfg0,t0
80000084: 00000297 auipc t0,0x0
80000088: 01828293 addi t0,t0,24 # 8000009c <reset_vector+0x50>
8000008c: 30529073 csrw mtvec,t0
80000090: 30205073 csrwi medeleg,0
80000094: 30305073 csrwi mideleg,0
80000098: 30405073 csrwi mie,0
8000009c: 00000193 li gp,0
800000a0: 00000297 auipc t0,0x0
800000a4: f6428293 addi t0,t0,-156 # 80000004 <trap_vector>
800000a8: 30529073 csrw mtvec,t0
800000ac: 00100513 li a0,1
800000b0: 01f51513 slli a0,a0,0x1f
800000b4: 00054c63 bltz a0,800000cc <reset_vector+0x80>
800000b8: 0ff0000f fence
800000bc: 00100193 li gp,1
800000c0: 05d00893 li a7,93
800000c4: 00000513 li a0,0
800000c8: 00000073 ecall
800000cc: 80000297 auipc t0,0x80000
800000d0: f3428293 addi t0,t0,-204 # 0 <_start-0x80000000>
800000d4: 00028e63 beqz t0,800000f0 <reset_vector+0xa4>
800000d8: 10529073 csrw stvec,t0
800000dc: 0000b2b7 lui t0,0xb
800000e0: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000e4: 30229073 csrw medeleg,t0
800000e8: 30202373 csrr t1,medeleg
800000ec: f46298e3 bne t0,t1,8000003c <handle_exception>
800000f0: 30005073 csrwi mstatus,0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <test_2>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108 <test_2>:
80000108: 00200193 li gp,2
8000010c: 00000093 li ra,0
80000110: 00100113 li sp,1
80000114: 0020c663 blt ra,sp,80000120 <test_2+0x18>
80000118: 2a301863 bne zero,gp,800003c8 <fail>
8000011c: 00301663 bne zero,gp,80000128 <test_3>
80000120: fe20cee3 blt ra,sp,8000011c <test_2+0x14>
80000124: 2a301263 bne zero,gp,800003c8 <fail>
80000128 <test_3>:
80000128: 00300193 li gp,3
8000012c: fff00093 li ra,-1
80000130: 00100113 li sp,1
80000134: 0020c663 blt ra,sp,80000140 <test_3+0x18>
80000138: 28301863 bne zero,gp,800003c8 <fail>
8000013c: 00301663 bne zero,gp,80000148 <test_4>
80000140: fe20cee3 blt ra,sp,8000013c <test_3+0x14>
80000144: 28301263 bne zero,gp,800003c8 <fail>
80000148 <test_4>:
80000148: 00400193 li gp,4
8000014c: ffe00093 li ra,-2
80000150: fff00113 li sp,-1
80000154: 0020c663 blt ra,sp,80000160 <test_4+0x18>
80000158: 26301863 bne zero,gp,800003c8 <fail>
8000015c: 00301663 bne zero,gp,80000168 <test_5>
80000160: fe20cee3 blt ra,sp,8000015c <test_4+0x14>
80000164: 26301263 bne zero,gp,800003c8 <fail>
80000168 <test_5>:
80000168: 00500193 li gp,5
8000016c: 00100093 li ra,1
80000170: 00000113 li sp,0
80000174: 0020c463 blt ra,sp,8000017c <test_5+0x14>
80000178: 00301463 bne zero,gp,80000180 <test_5+0x18>
8000017c: 24301663 bne zero,gp,800003c8 <fail>
80000180: fe20cee3 blt ra,sp,8000017c <test_5+0x14>
80000184 <test_6>:
80000184: 00600193 li gp,6
80000188: 00100093 li ra,1
8000018c: fff00113 li sp,-1
80000190: 0020c463 blt ra,sp,80000198 <test_6+0x14>
80000194: 00301463 bne zero,gp,8000019c <test_6+0x18>
80000198: 22301863 bne zero,gp,800003c8 <fail>
8000019c: fe20cee3 blt ra,sp,80000198 <test_6+0x14>
800001a0 <test_7>:
800001a0: 00700193 li gp,7
800001a4: fff00093 li ra,-1
800001a8: ffe00113 li sp,-2
800001ac: 0020c463 blt ra,sp,800001b4 <test_7+0x14>
800001b0: 00301463 bne zero,gp,800001b8 <test_7+0x18>
800001b4: 20301a63 bne zero,gp,800003c8 <fail>
800001b8: fe20cee3 blt ra,sp,800001b4 <test_7+0x14>
800001bc <test_8>:
800001bc: 00800193 li gp,8
800001c0: 00100093 li ra,1
800001c4: ffe00113 li sp,-2
800001c8: 0020c463 blt ra,sp,800001d0 <test_8+0x14>
800001cc: 00301463 bne zero,gp,800001d4 <test_8+0x18>
800001d0: 1e301c63 bne zero,gp,800003c8 <fail>
800001d4: fe20cee3 blt ra,sp,800001d0 <test_8+0x14>
800001d8 <test_9>:
800001d8: 00900193 li gp,9
800001dc: 00000213 li tp,0
800001e0: 00000093 li ra,0
800001e4: fff00113 li sp,-1
800001e8: 1e20c063 blt ra,sp,800003c8 <fail>
800001ec: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800001f0: 00200293 li t0,2
800001f4: fe5216e3 bne tp,t0,800001e0 <test_9+0x8>
800001f8 <test_10>:
800001f8: 00a00193 li gp,10
800001fc: 00000213 li tp,0
80000200: 00000093 li ra,0
80000204: fff00113 li sp,-1
80000208: 00000013 nop
8000020c: 1a20ce63 blt ra,sp,800003c8 <fail>
80000210: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000214: 00200293 li t0,2
80000218: fe5214e3 bne tp,t0,80000200 <test_10+0x8>
8000021c <test_11>:
8000021c: 00b00193 li gp,11
80000220: 00000213 li tp,0
80000224: 00000093 li ra,0
80000228: fff00113 li sp,-1
8000022c: 00000013 nop
80000230: 00000013 nop
80000234: 1820ca63 blt ra,sp,800003c8 <fail>
80000238: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000023c: 00200293 li t0,2
80000240: fe5212e3 bne tp,t0,80000224 <test_11+0x8>
80000244 <test_12>:
80000244: 00c00193 li gp,12
80000248: 00000213 li tp,0
8000024c: 00000093 li ra,0
80000250: 00000013 nop
80000254: fff00113 li sp,-1
80000258: 1620c863 blt ra,sp,800003c8 <fail>
8000025c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000260: 00200293 li t0,2
80000264: fe5214e3 bne tp,t0,8000024c <test_12+0x8>
80000268 <test_13>:
80000268: 00d00193 li gp,13
8000026c: 00000213 li tp,0
80000270: 00000093 li ra,0
80000274: 00000013 nop
80000278: fff00113 li sp,-1
8000027c: 00000013 nop
80000280: 1420c463 blt ra,sp,800003c8 <fail>
80000284: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000288: 00200293 li t0,2
8000028c: fe5212e3 bne tp,t0,80000270 <test_13+0x8>
80000290 <test_14>:
80000290: 00e00193 li gp,14
80000294: 00000213 li tp,0
80000298: 00000093 li ra,0
8000029c: 00000013 nop
800002a0: 00000013 nop
800002a4: fff00113 li sp,-1
800002a8: 1220c063 blt ra,sp,800003c8 <fail>
800002ac: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002b0: 00200293 li t0,2
800002b4: fe5212e3 bne tp,t0,80000298 <test_14+0x8>
800002b8 <test_15>:
800002b8: 00f00193 li gp,15
800002bc: 00000213 li tp,0
800002c0: 00000093 li ra,0
800002c4: fff00113 li sp,-1
800002c8: 1020c063 blt ra,sp,800003c8 <fail>
800002cc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002d0: 00200293 li t0,2
800002d4: fe5216e3 bne tp,t0,800002c0 <test_15+0x8>
800002d8 <test_16>:
800002d8: 01000193 li gp,16
800002dc: 00000213 li tp,0
800002e0: 00000093 li ra,0
800002e4: fff00113 li sp,-1
800002e8: 00000013 nop
800002ec: 0c20ce63 blt ra,sp,800003c8 <fail>
800002f0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002f4: 00200293 li t0,2
800002f8: fe5214e3 bne tp,t0,800002e0 <test_16+0x8>
800002fc <test_17>:
800002fc: 01100193 li gp,17
80000300: 00000213 li tp,0
80000304: 00000093 li ra,0
80000308: fff00113 li sp,-1
8000030c: 00000013 nop
80000310: 00000013 nop
80000314: 0a20ca63 blt ra,sp,800003c8 <fail>
80000318: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000031c: 00200293 li t0,2
80000320: fe5212e3 bne tp,t0,80000304 <test_17+0x8>
80000324 <test_18>:
80000324: 01200193 li gp,18
80000328: 00000213 li tp,0
8000032c: 00000093 li ra,0
80000330: 00000013 nop
80000334: fff00113 li sp,-1
80000338: 0820c863 blt ra,sp,800003c8 <fail>
8000033c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000340: 00200293 li t0,2
80000344: fe5214e3 bne tp,t0,8000032c <test_18+0x8>
80000348 <test_19>:
80000348: 01300193 li gp,19
8000034c: 00000213 li tp,0
80000350: 00000093 li ra,0
80000354: 00000013 nop
80000358: fff00113 li sp,-1
8000035c: 00000013 nop
80000360: 0620c463 blt ra,sp,800003c8 <fail>
80000364: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000368: 00200293 li t0,2
8000036c: fe5212e3 bne tp,t0,80000350 <test_19+0x8>
80000370 <test_20>:
80000370: 01400193 li gp,20
80000374: 00000213 li tp,0
80000378: 00000093 li ra,0
8000037c: 00000013 nop
80000380: 00000013 nop
80000384: fff00113 li sp,-1
80000388: 0420c063 blt ra,sp,800003c8 <fail>
8000038c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000390: 00200293 li t0,2
80000394: fe5212e3 bne tp,t0,80000378 <test_20+0x8>
80000398 <test_21>:
80000398: 00100093 li ra,1
8000039c: 00104a63 bgtz ra,800003b0 <test_21+0x18>
800003a0: 00108093 addi ra,ra,1
800003a4: 00108093 addi ra,ra,1
800003a8: 00108093 addi ra,ra,1
800003ac: 00108093 addi ra,ra,1
800003b0: 00108093 addi ra,ra,1
800003b4: 00108093 addi ra,ra,1
800003b8: 00300e93 li t4,3
800003bc: 01500193 li gp,21
800003c0: 01d09463 bne ra,t4,800003c8 <fail>
800003c4: 02301063 bne zero,gp,800003e4 <pass>
800003c8 <fail>:
800003c8: 0ff0000f fence
800003cc: 00018063 beqz gp,800003cc <fail+0x4>
800003d0: 00119193 slli gp,gp,0x1
800003d4: 0011e193 ori gp,gp,1
800003d8: 05d00893 li a7,93
800003dc: 00018513 mv a0,gp
800003e0: 00000073 ecall
800003e4 <pass>:
800003e4: 0ff0000f fence
800003e8: 00100193 li gp,1
800003ec: 05d00893 li a7,93
800003f0: 00000513 li a0,0
800003f4: 00000073 ecall
800003f8: c0001073 unimp
800003fc: 0000 unimp
800003fe: 0000 unimp
80000400: 0000 unimp
80000402: 0000 unimp

View file

@ -0,0 +1,337 @@
rv32ui-p-bltu: 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: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-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: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 02028293 addi t0,t0,32 # 80000084 <reset_vector+0x38>
8000006c: 30529073 csrw mtvec,t0
80000070: 800002b7 lui t0,0x80000
80000074: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdfff>
80000078: 3b029073 csrw pmpaddr0,t0
8000007c: 01f00293 li t0,31
80000080: 3a029073 csrw pmpcfg0,t0
80000084: 00000297 auipc t0,0x0
80000088: 01828293 addi t0,t0,24 # 8000009c <reset_vector+0x50>
8000008c: 30529073 csrw mtvec,t0
80000090: 30205073 csrwi medeleg,0
80000094: 30305073 csrwi mideleg,0
80000098: 30405073 csrwi mie,0
8000009c: 00000193 li gp,0
800000a0: 00000297 auipc t0,0x0
800000a4: f6428293 addi t0,t0,-156 # 80000004 <trap_vector>
800000a8: 30529073 csrw mtvec,t0
800000ac: 00100513 li a0,1
800000b0: 01f51513 slli a0,a0,0x1f
800000b4: 00054c63 bltz a0,800000cc <reset_vector+0x80>
800000b8: 0ff0000f fence
800000bc: 00100193 li gp,1
800000c0: 05d00893 li a7,93
800000c4: 00000513 li a0,0
800000c8: 00000073 ecall
800000cc: 80000297 auipc t0,0x80000
800000d0: f3428293 addi t0,t0,-204 # 0 <_start-0x80000000>
800000d4: 00028e63 beqz t0,800000f0 <reset_vector+0xa4>
800000d8: 10529073 csrw stvec,t0
800000dc: 0000b2b7 lui t0,0xb
800000e0: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000e4: 30229073 csrw medeleg,t0
800000e8: 30202373 csrr t1,medeleg
800000ec: f46298e3 bne t0,t1,8000003c <handle_exception>
800000f0: 30005073 csrwi mstatus,0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <test_2>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108 <test_2>:
80000108: 00200193 li gp,2
8000010c: 00000093 li ra,0
80000110: 00100113 li sp,1
80000114: 0020e663 bltu ra,sp,80000120 <test_2+0x18>
80000118: 2e301263 bne zero,gp,800003fc <fail>
8000011c: 00301663 bne zero,gp,80000128 <test_3>
80000120: fe20eee3 bltu ra,sp,8000011c <test_2+0x14>
80000124: 2c301c63 bne zero,gp,800003fc <fail>
80000128 <test_3>:
80000128: 00300193 li gp,3
8000012c: ffe00093 li ra,-2
80000130: fff00113 li sp,-1
80000134: 0020e663 bltu ra,sp,80000140 <test_3+0x18>
80000138: 2c301263 bne zero,gp,800003fc <fail>
8000013c: 00301663 bne zero,gp,80000148 <test_4>
80000140: fe20eee3 bltu ra,sp,8000013c <test_3+0x14>
80000144: 2a301c63 bne zero,gp,800003fc <fail>
80000148 <test_4>:
80000148: 00400193 li gp,4
8000014c: 00000093 li ra,0
80000150: fff00113 li sp,-1
80000154: 0020e663 bltu ra,sp,80000160 <test_4+0x18>
80000158: 2a301263 bne zero,gp,800003fc <fail>
8000015c: 00301663 bne zero,gp,80000168 <test_5>
80000160: fe20eee3 bltu ra,sp,8000015c <test_4+0x14>
80000164: 28301c63 bne zero,gp,800003fc <fail>
80000168 <test_5>:
80000168: 00500193 li gp,5
8000016c: 00100093 li ra,1
80000170: 00000113 li sp,0
80000174: 0020e463 bltu ra,sp,8000017c <test_5+0x14>
80000178: 00301463 bne zero,gp,80000180 <test_5+0x18>
8000017c: 28301063 bne zero,gp,800003fc <fail>
80000180: fe20eee3 bltu ra,sp,8000017c <test_5+0x14>
80000184 <test_6>:
80000184: 00600193 li gp,6
80000188: fff00093 li ra,-1
8000018c: ffe00113 li sp,-2
80000190: 0020e463 bltu ra,sp,80000198 <test_6+0x14>
80000194: 00301463 bne zero,gp,8000019c <test_6+0x18>
80000198: 26301263 bne zero,gp,800003fc <fail>
8000019c: fe20eee3 bltu ra,sp,80000198 <test_6+0x14>
800001a0 <test_7>:
800001a0: 00700193 li gp,7
800001a4: fff00093 li ra,-1
800001a8: 00000113 li sp,0
800001ac: 0020e463 bltu ra,sp,800001b4 <test_7+0x14>
800001b0: 00301463 bne zero,gp,800001b8 <test_7+0x18>
800001b4: 24301463 bne zero,gp,800003fc <fail>
800001b8: fe20eee3 bltu ra,sp,800001b4 <test_7+0x14>
800001bc <test_8>:
800001bc: 00800193 li gp,8
800001c0: 800000b7 lui ra,0x80000
800001c4: 80000137 lui sp,0x80000
800001c8: fff10113 addi sp,sp,-1 # 7fffffff <_end+0xffffdfff>
800001cc: 0020e463 bltu ra,sp,800001d4 <test_8+0x18>
800001d0: 00301463 bne zero,gp,800001d8 <test_8+0x1c>
800001d4: 22301463 bne zero,gp,800003fc <fail>
800001d8: fe20eee3 bltu ra,sp,800001d4 <test_8+0x18>
800001dc <test_9>:
800001dc: 00900193 li gp,9
800001e0: 00000213 li tp,0
800001e4: f00000b7 lui ra,0xf0000
800001e8: f0000137 lui sp,0xf0000
800001ec: fff10113 addi sp,sp,-1 # efffffff <_end+0x6fffdfff>
800001f0: 2020e663 bltu ra,sp,800003fc <fail>
800001f4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800001f8: 00200293 li t0,2
800001fc: fe5214e3 bne tp,t0,800001e4 <test_9+0x8>
80000200 <test_10>:
80000200: 00a00193 li gp,10
80000204: 00000213 li tp,0
80000208: f00000b7 lui ra,0xf0000
8000020c: f0000137 lui sp,0xf0000
80000210: fff10113 addi sp,sp,-1 # efffffff <_end+0x6fffdfff>
80000214: 00000013 nop
80000218: 1e20e263 bltu ra,sp,800003fc <fail>
8000021c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000220: 00200293 li t0,2
80000224: fe5212e3 bne tp,t0,80000208 <test_10+0x8>
80000228 <test_11>:
80000228: 00b00193 li gp,11
8000022c: 00000213 li tp,0
80000230: f00000b7 lui ra,0xf0000
80000234: f0000137 lui sp,0xf0000
80000238: fff10113 addi sp,sp,-1 # efffffff <_end+0x6fffdfff>
8000023c: 00000013 nop
80000240: 00000013 nop
80000244: 1a20ec63 bltu ra,sp,800003fc <fail>
80000248: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000024c: 00200293 li t0,2
80000250: fe5210e3 bne tp,t0,80000230 <test_11+0x8>
80000254 <test_12>:
80000254: 00c00193 li gp,12
80000258: 00000213 li tp,0
8000025c: f00000b7 lui ra,0xf0000
80000260: 00000013 nop
80000264: f0000137 lui sp,0xf0000
80000268: fff10113 addi sp,sp,-1 # efffffff <_end+0x6fffdfff>
8000026c: 1820e863 bltu ra,sp,800003fc <fail>
80000270: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000274: 00200293 li t0,2
80000278: fe5212e3 bne tp,t0,8000025c <test_12+0x8>
8000027c <test_13>:
8000027c: 00d00193 li gp,13
80000280: 00000213 li tp,0
80000284: f00000b7 lui ra,0xf0000
80000288: 00000013 nop
8000028c: f0000137 lui sp,0xf0000
80000290: fff10113 addi sp,sp,-1 # efffffff <_end+0x6fffdfff>
80000294: 00000013 nop
80000298: 1620e263 bltu ra,sp,800003fc <fail>
8000029c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002a0: 00200293 li t0,2
800002a4: fe5210e3 bne tp,t0,80000284 <test_13+0x8>
800002a8 <test_14>:
800002a8: 00e00193 li gp,14
800002ac: 00000213 li tp,0
800002b0: f00000b7 lui ra,0xf0000
800002b4: 00000013 nop
800002b8: 00000013 nop
800002bc: f0000137 lui sp,0xf0000
800002c0: fff10113 addi sp,sp,-1 # efffffff <_end+0x6fffdfff>
800002c4: 1220ec63 bltu ra,sp,800003fc <fail>
800002c8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002cc: 00200293 li t0,2
800002d0: fe5210e3 bne tp,t0,800002b0 <test_14+0x8>
800002d4 <test_15>:
800002d4: 00f00193 li gp,15
800002d8: 00000213 li tp,0
800002dc: f00000b7 lui ra,0xf0000
800002e0: f0000137 lui sp,0xf0000
800002e4: fff10113 addi sp,sp,-1 # efffffff <_end+0x6fffdfff>
800002e8: 1020ea63 bltu ra,sp,800003fc <fail>
800002ec: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002f0: 00200293 li t0,2
800002f4: fe5214e3 bne tp,t0,800002dc <test_15+0x8>
800002f8 <test_16>:
800002f8: 01000193 li gp,16
800002fc: 00000213 li tp,0
80000300: f00000b7 lui ra,0xf0000
80000304: f0000137 lui sp,0xf0000
80000308: fff10113 addi sp,sp,-1 # efffffff <_end+0x6fffdfff>
8000030c: 00000013 nop
80000310: 0e20e663 bltu ra,sp,800003fc <fail>
80000314: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000318: 00200293 li t0,2
8000031c: fe5212e3 bne tp,t0,80000300 <test_16+0x8>
80000320 <test_17>:
80000320: 01100193 li gp,17
80000324: 00000213 li tp,0
80000328: f00000b7 lui ra,0xf0000
8000032c: f0000137 lui sp,0xf0000
80000330: fff10113 addi sp,sp,-1 # efffffff <_end+0x6fffdfff>
80000334: 00000013 nop
80000338: 00000013 nop
8000033c: 0c20e063 bltu ra,sp,800003fc <fail>
80000340: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000344: 00200293 li t0,2
80000348: fe5210e3 bne tp,t0,80000328 <test_17+0x8>
8000034c <test_18>:
8000034c: 01200193 li gp,18
80000350: 00000213 li tp,0
80000354: f00000b7 lui ra,0xf0000
80000358: 00000013 nop
8000035c: f0000137 lui sp,0xf0000
80000360: fff10113 addi sp,sp,-1 # efffffff <_end+0x6fffdfff>
80000364: 0820ec63 bltu ra,sp,800003fc <fail>
80000368: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000036c: 00200293 li t0,2
80000370: fe5212e3 bne tp,t0,80000354 <test_18+0x8>
80000374 <test_19>:
80000374: 01300193 li gp,19
80000378: 00000213 li tp,0
8000037c: f00000b7 lui ra,0xf0000
80000380: 00000013 nop
80000384: f0000137 lui sp,0xf0000
80000388: fff10113 addi sp,sp,-1 # efffffff <_end+0x6fffdfff>
8000038c: 00000013 nop
80000390: 0620e663 bltu ra,sp,800003fc <fail>
80000394: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000398: 00200293 li t0,2
8000039c: fe5210e3 bne tp,t0,8000037c <test_19+0x8>
800003a0 <test_20>:
800003a0: 01400193 li gp,20
800003a4: 00000213 li tp,0
800003a8: f00000b7 lui ra,0xf0000
800003ac: 00000013 nop
800003b0: 00000013 nop
800003b4: f0000137 lui sp,0xf0000
800003b8: fff10113 addi sp,sp,-1 # efffffff <_end+0x6fffdfff>
800003bc: 0420e063 bltu ra,sp,800003fc <fail>
800003c0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800003c4: 00200293 li t0,2
800003c8: fe5210e3 bne tp,t0,800003a8 <test_20+0x8>
800003cc <test_21>:
800003cc: 00100093 li ra,1
800003d0: 00106a63 bltu zero,ra,800003e4 <test_21+0x18>
800003d4: 00108093 addi ra,ra,1 # f0000001 <_end+0x6fffe001>
800003d8: 00108093 addi ra,ra,1
800003dc: 00108093 addi ra,ra,1
800003e0: 00108093 addi ra,ra,1
800003e4: 00108093 addi ra,ra,1
800003e8: 00108093 addi ra,ra,1
800003ec: 00300e93 li t4,3
800003f0: 01500193 li gp,21
800003f4: 01d09463 bne ra,t4,800003fc <fail>
800003f8: 02301063 bne zero,gp,80000418 <pass>
800003fc <fail>:
800003fc: 0ff0000f fence
80000400: 00018063 beqz gp,80000400 <fail+0x4>
80000404: 00119193 slli gp,gp,0x1
80000408: 0011e193 ori gp,gp,1
8000040c: 05d00893 li a7,93
80000410: 00018513 mv a0,gp
80000414: 00000073 ecall
80000418 <pass>:
80000418: 0ff0000f fence
8000041c: 00100193 li gp,1
80000420: 05d00893 li a7,93
80000424: 00000513 li a0,0
80000428: 00000073 ecall
8000042c: c0001073 unimp
80000430: 0000 unimp
80000432: 0000 unimp
80000434: 0000 unimp
80000436: 0000 unimp
80000438: 0000 unimp
8000043a: 0000 unimp
8000043c: 0000 unimp
8000043e: 0000 unimp
80000440: 0000 unimp
80000442: 0000 unimp

View file

@ -0,0 +1,317 @@
rv32ui-p-bne: 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: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-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: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 02028293 addi t0,t0,32 # 80000084 <reset_vector+0x38>
8000006c: 30529073 csrw mtvec,t0
80000070: 800002b7 lui t0,0x80000
80000074: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdfff>
80000078: 3b029073 csrw pmpaddr0,t0
8000007c: 01f00293 li t0,31
80000080: 3a029073 csrw pmpcfg0,t0
80000084: 00000297 auipc t0,0x0
80000088: 01828293 addi t0,t0,24 # 8000009c <reset_vector+0x50>
8000008c: 30529073 csrw mtvec,t0
80000090: 30205073 csrwi medeleg,0
80000094: 30305073 csrwi mideleg,0
80000098: 30405073 csrwi mie,0
8000009c: 00000193 li gp,0
800000a0: 00000297 auipc t0,0x0
800000a4: f6428293 addi t0,t0,-156 # 80000004 <trap_vector>
800000a8: 30529073 csrw mtvec,t0
800000ac: 00100513 li a0,1
800000b0: 01f51513 slli a0,a0,0x1f
800000b4: 00054c63 bltz a0,800000cc <reset_vector+0x80>
800000b8: 0ff0000f fence
800000bc: 00100193 li gp,1
800000c0: 05d00893 li a7,93
800000c4: 00000513 li a0,0
800000c8: 00000073 ecall
800000cc: 80000297 auipc t0,0x80000
800000d0: f3428293 addi t0,t0,-204 # 0 <_start-0x80000000>
800000d4: 00028e63 beqz t0,800000f0 <reset_vector+0xa4>
800000d8: 10529073 csrw stvec,t0
800000dc: 0000b2b7 lui t0,0xb
800000e0: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000e4: 30229073 csrw medeleg,t0
800000e8: 30202373 csrr t1,medeleg
800000ec: f46298e3 bne t0,t1,8000003c <handle_exception>
800000f0: 30005073 csrwi mstatus,0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <test_2>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108 <test_2>:
80000108: 00200193 li gp,2
8000010c: 00000093 li ra,0
80000110: 00100113 li sp,1
80000114: 00209663 bne ra,sp,80000120 <test_2+0x18>
80000118: 2a301a63 bne zero,gp,800003cc <fail>
8000011c: 00301663 bne zero,gp,80000128 <test_3>
80000120: fe209ee3 bne ra,sp,8000011c <test_2+0x14>
80000124: 2a301463 bne zero,gp,800003cc <fail>
80000128 <test_3>:
80000128: 00300193 li gp,3
8000012c: 00100093 li ra,1
80000130: 00000113 li sp,0
80000134: 00209663 bne ra,sp,80000140 <test_3+0x18>
80000138: 28301a63 bne zero,gp,800003cc <fail>
8000013c: 00301663 bne zero,gp,80000148 <test_4>
80000140: fe209ee3 bne ra,sp,8000013c <test_3+0x14>
80000144: 28301463 bne zero,gp,800003cc <fail>
80000148 <test_4>:
80000148: 00400193 li gp,4
8000014c: fff00093 li ra,-1
80000150: 00100113 li sp,1
80000154: 00209663 bne ra,sp,80000160 <test_4+0x18>
80000158: 26301a63 bne zero,gp,800003cc <fail>
8000015c: 00301663 bne zero,gp,80000168 <test_5>
80000160: fe209ee3 bne ra,sp,8000015c <test_4+0x14>
80000164: 26301463 bne zero,gp,800003cc <fail>
80000168 <test_5>:
80000168: 00500193 li gp,5
8000016c: 00100093 li ra,1
80000170: fff00113 li sp,-1
80000174: 00209663 bne ra,sp,80000180 <test_5+0x18>
80000178: 24301a63 bne zero,gp,800003cc <fail>
8000017c: 00301663 bne zero,gp,80000188 <test_6>
80000180: fe209ee3 bne ra,sp,8000017c <test_5+0x14>
80000184: 24301463 bne zero,gp,800003cc <fail>
80000188 <test_6>:
80000188: 00600193 li gp,6
8000018c: 00000093 li ra,0
80000190: 00000113 li sp,0
80000194: 00209463 bne ra,sp,8000019c <test_6+0x14>
80000198: 00301463 bne zero,gp,800001a0 <test_6+0x18>
8000019c: 22301863 bne zero,gp,800003cc <fail>
800001a0: fe209ee3 bne ra,sp,8000019c <test_6+0x14>
800001a4 <test_7>:
800001a4: 00700193 li gp,7
800001a8: 00100093 li ra,1
800001ac: 00100113 li sp,1
800001b0: 00209463 bne ra,sp,800001b8 <test_7+0x14>
800001b4: 00301463 bne zero,gp,800001bc <test_7+0x18>
800001b8: 20301a63 bne zero,gp,800003cc <fail>
800001bc: fe209ee3 bne ra,sp,800001b8 <test_7+0x14>
800001c0 <test_8>:
800001c0: 00800193 li gp,8
800001c4: fff00093 li ra,-1
800001c8: fff00113 li sp,-1
800001cc: 00209463 bne ra,sp,800001d4 <test_8+0x14>
800001d0: 00301463 bne zero,gp,800001d8 <test_8+0x18>
800001d4: 1e301c63 bne zero,gp,800003cc <fail>
800001d8: fe209ee3 bne ra,sp,800001d4 <test_8+0x14>
800001dc <test_9>:
800001dc: 00900193 li gp,9
800001e0: 00000213 li tp,0
800001e4: 00000093 li ra,0
800001e8: 00000113 li sp,0
800001ec: 1e209063 bne ra,sp,800003cc <fail>
800001f0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800001f4: 00200293 li t0,2
800001f8: fe5216e3 bne tp,t0,800001e4 <test_9+0x8>
800001fc <test_10>:
800001fc: 00a00193 li gp,10
80000200: 00000213 li tp,0
80000204: 00000093 li ra,0
80000208: 00000113 li sp,0
8000020c: 00000013 nop
80000210: 1a209e63 bne ra,sp,800003cc <fail>
80000214: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000218: 00200293 li t0,2
8000021c: fe5214e3 bne tp,t0,80000204 <test_10+0x8>
80000220 <test_11>:
80000220: 00b00193 li gp,11
80000224: 00000213 li tp,0
80000228: 00000093 li ra,0
8000022c: 00000113 li sp,0
80000230: 00000013 nop
80000234: 00000013 nop
80000238: 18209a63 bne ra,sp,800003cc <fail>
8000023c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000240: 00200293 li t0,2
80000244: fe5212e3 bne tp,t0,80000228 <test_11+0x8>
80000248 <test_12>:
80000248: 00c00193 li gp,12
8000024c: 00000213 li tp,0
80000250: 00000093 li ra,0
80000254: 00000013 nop
80000258: 00000113 li sp,0
8000025c: 16209863 bne ra,sp,800003cc <fail>
80000260: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000264: 00200293 li t0,2
80000268: fe5214e3 bne tp,t0,80000250 <test_12+0x8>
8000026c <test_13>:
8000026c: 00d00193 li gp,13
80000270: 00000213 li tp,0
80000274: 00000093 li ra,0
80000278: 00000013 nop
8000027c: 00000113 li sp,0
80000280: 00000013 nop
80000284: 14209463 bne ra,sp,800003cc <fail>
80000288: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000028c: 00200293 li t0,2
80000290: fe5212e3 bne tp,t0,80000274 <test_13+0x8>
80000294 <test_14>:
80000294: 00e00193 li gp,14
80000298: 00000213 li tp,0
8000029c: 00000093 li ra,0
800002a0: 00000013 nop
800002a4: 00000013 nop
800002a8: 00000113 li sp,0
800002ac: 12209063 bne ra,sp,800003cc <fail>
800002b0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002b4: 00200293 li t0,2
800002b8: fe5212e3 bne tp,t0,8000029c <test_14+0x8>
800002bc <test_15>:
800002bc: 00f00193 li gp,15
800002c0: 00000213 li tp,0
800002c4: 00000093 li ra,0
800002c8: 00000113 li sp,0
800002cc: 10209063 bne ra,sp,800003cc <fail>
800002d0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002d4: 00200293 li t0,2
800002d8: fe5216e3 bne tp,t0,800002c4 <test_15+0x8>
800002dc <test_16>:
800002dc: 01000193 li gp,16
800002e0: 00000213 li tp,0
800002e4: 00000093 li ra,0
800002e8: 00000113 li sp,0
800002ec: 00000013 nop
800002f0: 0c209e63 bne ra,sp,800003cc <fail>
800002f4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002f8: 00200293 li t0,2
800002fc: fe5214e3 bne tp,t0,800002e4 <test_16+0x8>
80000300 <test_17>:
80000300: 01100193 li gp,17
80000304: 00000213 li tp,0
80000308: 00000093 li ra,0
8000030c: 00000113 li sp,0
80000310: 00000013 nop
80000314: 00000013 nop
80000318: 0a209a63 bne ra,sp,800003cc <fail>
8000031c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000320: 00200293 li t0,2
80000324: fe5212e3 bne tp,t0,80000308 <test_17+0x8>
80000328 <test_18>:
80000328: 01200193 li gp,18
8000032c: 00000213 li tp,0
80000330: 00000093 li ra,0
80000334: 00000013 nop
80000338: 00000113 li sp,0
8000033c: 08209863 bne ra,sp,800003cc <fail>
80000340: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000344: 00200293 li t0,2
80000348: fe5214e3 bne tp,t0,80000330 <test_18+0x8>
8000034c <test_19>:
8000034c: 01300193 li gp,19
80000350: 00000213 li tp,0
80000354: 00000093 li ra,0
80000358: 00000013 nop
8000035c: 00000113 li sp,0
80000360: 00000013 nop
80000364: 06209463 bne ra,sp,800003cc <fail>
80000368: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000036c: 00200293 li t0,2
80000370: fe5212e3 bne tp,t0,80000354 <test_19+0x8>
80000374 <test_20>:
80000374: 01400193 li gp,20
80000378: 00000213 li tp,0
8000037c: 00000093 li ra,0
80000380: 00000013 nop
80000384: 00000013 nop
80000388: 00000113 li sp,0
8000038c: 04209063 bne ra,sp,800003cc <fail>
80000390: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000394: 00200293 li t0,2
80000398: fe5212e3 bne tp,t0,8000037c <test_20+0x8>
8000039c <test_21>:
8000039c: 00100093 li ra,1
800003a0: 00009a63 bnez ra,800003b4 <test_21+0x18>
800003a4: 00108093 addi ra,ra,1
800003a8: 00108093 addi ra,ra,1
800003ac: 00108093 addi ra,ra,1
800003b0: 00108093 addi ra,ra,1
800003b4: 00108093 addi ra,ra,1
800003b8: 00108093 addi ra,ra,1
800003bc: 00300e93 li t4,3
800003c0: 01500193 li gp,21
800003c4: 01d09463 bne ra,t4,800003cc <fail>
800003c8: 02301063 bne zero,gp,800003e8 <pass>
800003cc <fail>:
800003cc: 0ff0000f fence
800003d0: 00018063 beqz gp,800003d0 <fail+0x4>
800003d4: 00119193 slli gp,gp,0x1
800003d8: 0011e193 ori gp,gp,1
800003dc: 05d00893 li a7,93
800003e0: 00018513 mv a0,gp
800003e4: 00000073 ecall
800003e8 <pass>:
800003e8: 0ff0000f fence
800003ec: 00100193 li gp,1
800003f0: 05d00893 li a7,93
800003f4: 00000513 li a0,0
800003f8: 00000073 ecall
800003fc: c0001073 unimp
80000400: 0000 unimp
80000402: 0000 unimp

View file

@ -0,0 +1,179 @@
rv32ui-p-fence_i: 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: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-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: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 02028293 addi t0,t0,32 # 80000084 <reset_vector+0x38>
8000006c: 30529073 csrw mtvec,t0
80000070: 800002b7 lui t0,0x80000
80000074: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdfef>
80000078: 3b029073 csrw pmpaddr0,t0
8000007c: 01f00293 li t0,31
80000080: 3a029073 csrw pmpcfg0,t0
80000084: 00000297 auipc t0,0x0
80000088: 01828293 addi t0,t0,24 # 8000009c <reset_vector+0x50>
8000008c: 30529073 csrw mtvec,t0
80000090: 30205073 csrwi medeleg,0
80000094: 30305073 csrwi mideleg,0
80000098: 30405073 csrwi mie,0
8000009c: 00000193 li gp,0
800000a0: 00000297 auipc t0,0x0
800000a4: f6428293 addi t0,t0,-156 # 80000004 <trap_vector>
800000a8: 30529073 csrw mtvec,t0
800000ac: 00100513 li a0,1
800000b0: 01f51513 slli a0,a0,0x1f
800000b4: 00054c63 bltz a0,800000cc <reset_vector+0x80>
800000b8: 0ff0000f fence
800000bc: 00100193 li gp,1
800000c0: 05d00893 li a7,93
800000c4: 00000513 li a0,0
800000c8: 00000073 ecall
800000cc: 80000297 auipc t0,0x80000
800000d0: f3428293 addi t0,t0,-204 # 0 <_start-0x80000000>
800000d4: 00028e63 beqz t0,800000f0 <reset_vector+0xa4>
800000d8: 10529073 csrw stvec,t0
800000dc: 0000b2b7 lui t0,0xb
800000e0: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000e4: 30229073 csrw medeleg,t0
800000e8: 30202373 csrr t1,medeleg
800000ec: f46298e3 bne t0,t1,8000003c <handle_exception>
800000f0: 30005073 csrwi mstatus,0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <reset_vector+0xbc>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108: 06f00693 li a3,111
8000010c: 00002517 auipc a0,0x2
80000110: ef451503 lh a0,-268(a0) # 80002000 <begin_signature>
80000114: 00002597 auipc a1,0x2
80000118: eee59583 lh a1,-274(a1) # 80002002 <begin_signature+0x2>
8000011c: 00000013 nop
80000120: 00000013 nop
80000124: 00000013 nop
80000128: 00000013 nop
8000012c: 00000013 nop
80000130: 00000013 nop
80000134: 00000013 nop
80000138: 00000013 nop
8000013c: 00000013 nop
80000140: 00000297 auipc t0,0x0
80000144: 00a29a23 sh a0,20(t0) # 80000154 <reset_vector+0x108>
80000148: 00000297 auipc t0,0x0
8000014c: 00b29723 sh a1,14(t0) # 80000156 <reset_vector+0x10a>
80000150: 0000100f fence.i
80000154: 0de68693 addi a3,a3,222
80000158 <test_2>:
80000158: 00000013 nop
8000015c: 1bc00e93 li t4,444
80000160: 00200193 li gp,2
80000164: 07d69a63 bne a3,t4,800001d8 <fail>
80000168: 06400713 li a4,100
8000016c: fff70713 addi a4,a4,-1
80000170: fe071ee3 bnez a4,8000016c <test_2+0x14>
80000174: 00000297 auipc t0,0x0
80000178: 04a29623 sh a0,76(t0) # 800001c0 <test_2+0x68>
8000017c: 00000297 auipc t0,0x0
80000180: 04b29323 sh a1,70(t0) # 800001c2 <test_2+0x6a>
80000184: 0000100f fence.i
80000188: 00000013 nop
8000018c: 00000013 nop
80000190: 00000013 nop
80000194: 00000013 nop
80000198: 00000013 nop
8000019c: 00000013 nop
800001a0: 00000013 nop
800001a4: 00000013 nop
800001a8: 00000013 nop
800001ac: 00000013 nop
800001b0: 00000013 nop
800001b4: 00000013 nop
800001b8: 00000013 nop
800001bc: 00000013 nop
800001c0: 22b68693 addi a3,a3,555
800001c4 <test_3>:
800001c4: 00000013 nop
800001c8: 30900e93 li t4,777
800001cc: 00300193 li gp,3
800001d0: 01d69463 bne a3,t4,800001d8 <fail>
800001d4: 02301063 bne zero,gp,800001f4 <pass>
800001d8 <fail>:
800001d8: 0ff0000f fence
800001dc: 00018063 beqz gp,800001dc <fail+0x4>
800001e0: 00119193 slli gp,gp,0x1
800001e4: 0011e193 ori gp,gp,1
800001e8: 05d00893 li a7,93
800001ec: 00018513 mv a0,gp
800001f0: 00000073 ecall
800001f4 <pass>:
800001f4: 0ff0000f fence
800001f8: 00100193 li gp,1
800001fc: 05d00893 li a7,93
80000200: 00000513 li a0,0
80000204: 00000073 ecall
80000208: c0001073 unimp
8000020c: 0000 unimp
8000020e: 0000 unimp
80000210: 0000 unimp
80000212: 0000 unimp
80000214: 0000 unimp
80000216: 0000 unimp
80000218: 0000 unimp
8000021a: 0000 unimp
8000021c: 0000 unimp
8000021e: 0000 unimp
80000220: 0000 unimp
80000222: 0000 unimp
80000224: 0000 unimp
80000226: 0000 unimp
Disassembly of section .data:
80002000 <begin_signature>:
80002000: 14d68693 addi a3,a3,333
80002004: 0000 unimp
80002006: 0000 unimp
80002008: 0000 unimp
8000200a: 0000 unimp
8000200c: 0000 unimp
8000200e: 0000 unimp

View file

@ -0,0 +1,153 @@
rv32ui-p-jal: 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: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-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: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 02028293 addi t0,t0,32 # 80000084 <reset_vector+0x38>
8000006c: 30529073 csrw mtvec,t0
80000070: 800002b7 lui t0,0x80000
80000074: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdfff>
80000078: 3b029073 csrw pmpaddr0,t0
8000007c: 01f00293 li t0,31
80000080: 3a029073 csrw pmpcfg0,t0
80000084: 00000297 auipc t0,0x0
80000088: 01828293 addi t0,t0,24 # 8000009c <reset_vector+0x50>
8000008c: 30529073 csrw mtvec,t0
80000090: 30205073 csrwi medeleg,0
80000094: 30305073 csrwi mideleg,0
80000098: 30405073 csrwi mie,0
8000009c: 00000193 li gp,0
800000a0: 00000297 auipc t0,0x0
800000a4: f6428293 addi t0,t0,-156 # 80000004 <trap_vector>
800000a8: 30529073 csrw mtvec,t0
800000ac: 00100513 li a0,1
800000b0: 01f51513 slli a0,a0,0x1f
800000b4: 00054c63 bltz a0,800000cc <reset_vector+0x80>
800000b8: 0ff0000f fence
800000bc: 00100193 li gp,1
800000c0: 05d00893 li a7,93
800000c4: 00000513 li a0,0
800000c8: 00000073 ecall
800000cc: 80000297 auipc t0,0x80000
800000d0: f3428293 addi t0,t0,-204 # 0 <_start-0x80000000>
800000d4: 00028e63 beqz t0,800000f0 <reset_vector+0xa4>
800000d8: 10529073 csrw stvec,t0
800000dc: 0000b2b7 lui t0,0xb
800000e0: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000e4: 30229073 csrw medeleg,t0
800000e8: 30202373 csrr t1,medeleg
800000ec: f46298e3 bne t0,t1,8000003c <handle_exception>
800000f0: 30005073 csrwi mstatus,0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <test_2>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108 <test_2>:
80000108: 00200193 li gp,2
8000010c: 00000093 li ra,0
80000110: 0100026f jal tp,80000120 <target_2>
80000114 <linkaddr_2>:
80000114: 00000013 nop
80000118: 00000013 nop
8000011c: 0400006f j 8000015c <fail>
80000120 <target_2>:
80000120: 00000117 auipc sp,0x0
80000124: ff410113 addi sp,sp,-12 # 80000114 <linkaddr_2>
80000128: 02411a63 bne sp,tp,8000015c <fail>
8000012c <test_3>:
8000012c: 00100093 li ra,1
80000130: 0140006f j 80000144 <test_3+0x18>
80000134: 00108093 addi ra,ra,1
80000138: 00108093 addi ra,ra,1
8000013c: 00108093 addi ra,ra,1
80000140: 00108093 addi ra,ra,1
80000144: 00108093 addi ra,ra,1
80000148: 00108093 addi ra,ra,1
8000014c: 00300e93 li t4,3
80000150: 00300193 li gp,3
80000154: 01d09463 bne ra,t4,8000015c <fail>
80000158: 02301063 bne zero,gp,80000178 <pass>
8000015c <fail>:
8000015c: 0ff0000f fence
80000160: 00018063 beqz gp,80000160 <fail+0x4>
80000164: 00119193 slli gp,gp,0x1
80000168: 0011e193 ori gp,gp,1
8000016c: 05d00893 li a7,93
80000170: 00018513 mv a0,gp
80000174: 00000073 ecall
80000178 <pass>:
80000178: 0ff0000f fence
8000017c: 00100193 li gp,1
80000180: 05d00893 li a7,93
80000184: 00000513 li a0,0
80000188: 00000073 ecall
8000018c: c0001073 unimp
80000190: 0000 unimp
80000192: 0000 unimp
80000194: 0000 unimp
80000196: 0000 unimp
80000198: 0000 unimp
8000019a: 0000 unimp
8000019c: 0000 unimp
8000019e: 0000 unimp
800001a0: 0000 unimp
800001a2: 0000 unimp
800001a4: 0000 unimp
800001a6: 0000 unimp
800001a8: 0000 unimp
800001aa: 0000 unimp
800001ac: 0000 unimp
800001ae: 0000 unimp
800001b0: 0000 unimp
800001b2: 0000 unimp
800001b4: 0000 unimp
800001b6: 0000 unimp
800001b8: 0000 unimp
800001ba: 0000 unimp
800001bc: 0000 unimp
800001be: 0000 unimp
800001c0: 0000 unimp
800001c2: 0000 unimp

View file

@ -0,0 +1,191 @@
rv32ui-p-jalr: 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: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-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: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 02028293 addi t0,t0,32 # 80000084 <reset_vector+0x38>
8000006c: 30529073 csrw mtvec,t0
80000070: 800002b7 lui t0,0x80000
80000074: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdfff>
80000078: 3b029073 csrw pmpaddr0,t0
8000007c: 01f00293 li t0,31
80000080: 3a029073 csrw pmpcfg0,t0
80000084: 00000297 auipc t0,0x0
80000088: 01828293 addi t0,t0,24 # 8000009c <reset_vector+0x50>
8000008c: 30529073 csrw mtvec,t0
80000090: 30205073 csrwi medeleg,0
80000094: 30305073 csrwi mideleg,0
80000098: 30405073 csrwi mie,0
8000009c: 00000193 li gp,0
800000a0: 00000297 auipc t0,0x0
800000a4: f6428293 addi t0,t0,-156 # 80000004 <trap_vector>
800000a8: 30529073 csrw mtvec,t0
800000ac: 00100513 li a0,1
800000b0: 01f51513 slli a0,a0,0x1f
800000b4: 00054c63 bltz a0,800000cc <reset_vector+0x80>
800000b8: 0ff0000f fence
800000bc: 00100193 li gp,1
800000c0: 05d00893 li a7,93
800000c4: 00000513 li a0,0
800000c8: 00000073 ecall
800000cc: 80000297 auipc t0,0x80000
800000d0: f3428293 addi t0,t0,-204 # 0 <_start-0x80000000>
800000d4: 00028e63 beqz t0,800000f0 <reset_vector+0xa4>
800000d8: 10529073 csrw stvec,t0
800000dc: 0000b2b7 lui t0,0xb
800000e0: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000e4: 30229073 csrw medeleg,t0
800000e8: 30202373 csrr t1,medeleg
800000ec: f46298e3 bne t0,t1,8000003c <handle_exception>
800000f0: 30005073 csrwi mstatus,0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <test_2>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108 <test_2>:
80000108: 00200193 li gp,2
8000010c: 00000293 li t0,0
80000110: 00000317 auipc t1,0x0
80000114: 01030313 addi t1,t1,16 # 80000120 <target_2>
80000118: 000302e7 jalr t0,t1
8000011c <linkaddr_2>:
8000011c: 0c00006f j 800001dc <fail>
80000120 <target_2>:
80000120: 00000317 auipc t1,0x0
80000124: ffc30313 addi t1,t1,-4 # 8000011c <linkaddr_2>
80000128: 0a629a63 bne t0,t1,800001dc <fail>
8000012c <test_4>:
8000012c: 00400193 li gp,4
80000130: 00000213 li tp,0
80000134: 00000317 auipc t1,0x0
80000138: 01030313 addi t1,t1,16 # 80000144 <test_4+0x18>
8000013c: 000306e7 jalr a3,t1
80000140: 08301e63 bne zero,gp,800001dc <fail>
80000144: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000148: 00200293 li t0,2
8000014c: fe5214e3 bne tp,t0,80000134 <test_4+0x8>
80000150 <test_5>:
80000150: 00500193 li gp,5
80000154: 00000213 li tp,0
80000158: 00000317 auipc t1,0x0
8000015c: 01430313 addi t1,t1,20 # 8000016c <test_5+0x1c>
80000160: 00000013 nop
80000164: 000306e7 jalr a3,t1
80000168: 06301a63 bne zero,gp,800001dc <fail>
8000016c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000170: 00200293 li t0,2
80000174: fe5212e3 bne tp,t0,80000158 <test_5+0x8>
80000178 <test_6>:
80000178: 00600193 li gp,6
8000017c: 00000213 li tp,0
80000180: 00000317 auipc t1,0x0
80000184: 01830313 addi t1,t1,24 # 80000198 <test_6+0x20>
80000188: 00000013 nop
8000018c: 00000013 nop
80000190: 000306e7 jalr a3,t1
80000194: 04301463 bne zero,gp,800001dc <fail>
80000198: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000019c: 00200293 li t0,2
800001a0: fe5210e3 bne tp,t0,80000180 <test_6+0x8>
800001a4 <test_7>:
800001a4: 00100293 li t0,1
800001a8: 00000317 auipc t1,0x0
800001ac: 01c30313 addi t1,t1,28 # 800001c4 <test_7+0x20>
800001b0: ffc30067 jr -4(t1)
800001b4: 00128293 addi t0,t0,1
800001b8: 00128293 addi t0,t0,1
800001bc: 00128293 addi t0,t0,1
800001c0: 00128293 addi t0,t0,1
800001c4: 00128293 addi t0,t0,1
800001c8: 00128293 addi t0,t0,1
800001cc: 00400e93 li t4,4
800001d0: 00700193 li gp,7
800001d4: 01d29463 bne t0,t4,800001dc <fail>
800001d8: 02301063 bne zero,gp,800001f8 <pass>
800001dc <fail>:
800001dc: 0ff0000f fence
800001e0: 00018063 beqz gp,800001e0 <fail+0x4>
800001e4: 00119193 slli gp,gp,0x1
800001e8: 0011e193 ori gp,gp,1
800001ec: 05d00893 li a7,93
800001f0: 00018513 mv a0,gp
800001f4: 00000073 ecall
800001f8 <pass>:
800001f8: 0ff0000f fence
800001fc: 00100193 li gp,1
80000200: 05d00893 li a7,93
80000204: 00000513 li a0,0
80000208: 00000073 ecall
8000020c: c0001073 unimp
80000210: 0000 unimp
80000212: 0000 unimp
80000214: 0000 unimp
80000216: 0000 unimp
80000218: 0000 unimp
8000021a: 0000 unimp
8000021c: 0000 unimp
8000021e: 0000 unimp
80000220: 0000 unimp
80000222: 0000 unimp
80000224: 0000 unimp
80000226: 0000 unimp
80000228: 0000 unimp
8000022a: 0000 unimp
8000022c: 0000 unimp
8000022e: 0000 unimp
80000230: 0000 unimp
80000232: 0000 unimp
80000234: 0000 unimp
80000236: 0000 unimp
80000238: 0000 unimp
8000023a: 0000 unimp
8000023c: 0000 unimp
8000023e: 0000 unimp
80000240: 0000 unimp
80000242: 0000 unimp

View file

@ -0,0 +1,331 @@
rv32ui-p-lb: 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: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-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: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 02028293 addi t0,t0,32 # 80000084 <reset_vector+0x38>
8000006c: 30529073 csrw mtvec,t0
80000070: 800002b7 lui t0,0x80000
80000074: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdfef>
80000078: 3b029073 csrw pmpaddr0,t0
8000007c: 01f00293 li t0,31
80000080: 3a029073 csrw pmpcfg0,t0
80000084: 00000297 auipc t0,0x0
80000088: 01828293 addi t0,t0,24 # 8000009c <reset_vector+0x50>
8000008c: 30529073 csrw mtvec,t0
80000090: 30205073 csrwi medeleg,0
80000094: 30305073 csrwi mideleg,0
80000098: 30405073 csrwi mie,0
8000009c: 00000193 li gp,0
800000a0: 00000297 auipc t0,0x0
800000a4: f6428293 addi t0,t0,-156 # 80000004 <trap_vector>
800000a8: 30529073 csrw mtvec,t0
800000ac: 00100513 li a0,1
800000b0: 01f51513 slli a0,a0,0x1f
800000b4: 00054c63 bltz a0,800000cc <reset_vector+0x80>
800000b8: 0ff0000f fence
800000bc: 00100193 li gp,1
800000c0: 05d00893 li a7,93
800000c4: 00000513 li a0,0
800000c8: 00000073 ecall
800000cc: 80000297 auipc t0,0x80000
800000d0: f3428293 addi t0,t0,-204 # 0 <_start-0x80000000>
800000d4: 00028e63 beqz t0,800000f0 <reset_vector+0xa4>
800000d8: 10529073 csrw stvec,t0
800000dc: 0000b2b7 lui t0,0xb
800000e0: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000e4: 30229073 csrw medeleg,t0
800000e8: 30202373 csrr t1,medeleg
800000ec: f46298e3 bne t0,t1,8000003c <handle_exception>
800000f0: 30005073 csrwi mstatus,0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <test_2>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108 <test_2>:
80000108: 00002097 auipc ra,0x2
8000010c: ef808093 addi ra,ra,-264 # 80002000 <begin_signature>
80000110: 00008703 lb a4,0(ra)
80000114: fff00e93 li t4,-1
80000118: 00200193 li gp,2
8000011c: 23d71c63 bne a4,t4,80000354 <fail>
80000120 <test_3>:
80000120: 00002097 auipc ra,0x2
80000124: ee008093 addi ra,ra,-288 # 80002000 <begin_signature>
80000128: 00108703 lb a4,1(ra)
8000012c: 00000e93 li t4,0
80000130: 00300193 li gp,3
80000134: 23d71063 bne a4,t4,80000354 <fail>
80000138 <test_4>:
80000138: 00002097 auipc ra,0x2
8000013c: ec808093 addi ra,ra,-312 # 80002000 <begin_signature>
80000140: 00208703 lb a4,2(ra)
80000144: ff000e93 li t4,-16
80000148: 00400193 li gp,4
8000014c: 21d71463 bne a4,t4,80000354 <fail>
80000150 <test_5>:
80000150: 00002097 auipc ra,0x2
80000154: eb008093 addi ra,ra,-336 # 80002000 <begin_signature>
80000158: 00308703 lb a4,3(ra)
8000015c: 00f00e93 li t4,15
80000160: 00500193 li gp,5
80000164: 1fd71863 bne a4,t4,80000354 <fail>
80000168 <test_6>:
80000168: 00002097 auipc ra,0x2
8000016c: e9b08093 addi ra,ra,-357 # 80002003 <tdat4>
80000170: ffd08703 lb a4,-3(ra)
80000174: fff00e93 li t4,-1
80000178: 00600193 li gp,6
8000017c: 1dd71c63 bne a4,t4,80000354 <fail>
80000180 <test_7>:
80000180: 00002097 auipc ra,0x2
80000184: e8308093 addi ra,ra,-381 # 80002003 <tdat4>
80000188: ffe08703 lb a4,-2(ra)
8000018c: 00000e93 li t4,0
80000190: 00700193 li gp,7
80000194: 1dd71063 bne a4,t4,80000354 <fail>
80000198 <test_8>:
80000198: 00002097 auipc ra,0x2
8000019c: e6b08093 addi ra,ra,-405 # 80002003 <tdat4>
800001a0: fff08703 lb a4,-1(ra)
800001a4: ff000e93 li t4,-16
800001a8: 00800193 li gp,8
800001ac: 1bd71463 bne a4,t4,80000354 <fail>
800001b0 <test_9>:
800001b0: 00002097 auipc ra,0x2
800001b4: e5308093 addi ra,ra,-429 # 80002003 <tdat4>
800001b8: 00008703 lb a4,0(ra)
800001bc: 00f00e93 li t4,15
800001c0: 00900193 li gp,9
800001c4: 19d71863 bne a4,t4,80000354 <fail>
800001c8 <test_10>:
800001c8: 00002097 auipc ra,0x2
800001cc: e3808093 addi ra,ra,-456 # 80002000 <begin_signature>
800001d0: fe008093 addi ra,ra,-32
800001d4: 02008283 lb t0,32(ra)
800001d8: fff00e93 li t4,-1
800001dc: 00a00193 li gp,10
800001e0: 17d29a63 bne t0,t4,80000354 <fail>
800001e4 <test_11>:
800001e4: 00002097 auipc ra,0x2
800001e8: e1c08093 addi ra,ra,-484 # 80002000 <begin_signature>
800001ec: ffa08093 addi ra,ra,-6
800001f0: 00708283 lb t0,7(ra)
800001f4: 00000e93 li t4,0
800001f8: 00b00193 li gp,11
800001fc: 15d29c63 bne t0,t4,80000354 <fail>
80000200 <test_12>:
80000200: 00c00193 li gp,12
80000204: 00000213 li tp,0
80000208: 00002097 auipc ra,0x2
8000020c: df908093 addi ra,ra,-519 # 80002001 <tdat2>
80000210: 00108703 lb a4,1(ra)
80000214: 00070313 mv t1,a4
80000218: ff000e93 li t4,-16
8000021c: 13d31c63 bne t1,t4,80000354 <fail>
80000220: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000224: 00200293 li t0,2
80000228: fe5210e3 bne tp,t0,80000208 <test_12+0x8>
8000022c <test_13>:
8000022c: 00d00193 li gp,13
80000230: 00000213 li tp,0
80000234: 00002097 auipc ra,0x2
80000238: dce08093 addi ra,ra,-562 # 80002002 <tdat3>
8000023c: 00108703 lb a4,1(ra)
80000240: 00000013 nop
80000244: 00070313 mv t1,a4
80000248: 00f00e93 li t4,15
8000024c: 11d31463 bne t1,t4,80000354 <fail>
80000250: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000254: 00200293 li t0,2
80000258: fc521ee3 bne tp,t0,80000234 <test_13+0x8>
8000025c <test_14>:
8000025c: 00e00193 li gp,14
80000260: 00000213 li tp,0
80000264: 00002097 auipc ra,0x2
80000268: d9c08093 addi ra,ra,-612 # 80002000 <begin_signature>
8000026c: 00108703 lb a4,1(ra)
80000270: 00000013 nop
80000274: 00000013 nop
80000278: 00070313 mv t1,a4
8000027c: 00000e93 li t4,0
80000280: 0dd31a63 bne t1,t4,80000354 <fail>
80000284: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000288: 00200293 li t0,2
8000028c: fc521ce3 bne tp,t0,80000264 <test_14+0x8>
80000290 <test_15>:
80000290: 00f00193 li gp,15
80000294: 00000213 li tp,0
80000298: 00002097 auipc ra,0x2
8000029c: d6908093 addi ra,ra,-663 # 80002001 <tdat2>
800002a0: 00108703 lb a4,1(ra)
800002a4: ff000e93 li t4,-16
800002a8: 0bd71663 bne a4,t4,80000354 <fail>
800002ac: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002b0: 00200293 li t0,2
800002b4: fe5212e3 bne tp,t0,80000298 <test_15+0x8>
800002b8 <test_16>:
800002b8: 01000193 li gp,16
800002bc: 00000213 li tp,0
800002c0: 00002097 auipc ra,0x2
800002c4: d4208093 addi ra,ra,-702 # 80002002 <tdat3>
800002c8: 00000013 nop
800002cc: 00108703 lb a4,1(ra)
800002d0: 00f00e93 li t4,15
800002d4: 09d71063 bne a4,t4,80000354 <fail>
800002d8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002dc: 00200293 li t0,2
800002e0: fe5210e3 bne tp,t0,800002c0 <test_16+0x8>
800002e4 <test_17>:
800002e4: 01100193 li gp,17
800002e8: 00000213 li tp,0
800002ec: 00002097 auipc ra,0x2
800002f0: d1408093 addi ra,ra,-748 # 80002000 <begin_signature>
800002f4: 00000013 nop
800002f8: 00000013 nop
800002fc: 00108703 lb a4,1(ra)
80000300: 00000e93 li t4,0
80000304: 05d71863 bne a4,t4,80000354 <fail>
80000308: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000030c: 00200293 li t0,2
80000310: fc521ee3 bne tp,t0,800002ec <test_17+0x8>
80000314 <test_18>:
80000314: 00002297 auipc t0,0x2
80000318: cec28293 addi t0,t0,-788 # 80002000 <begin_signature>
8000031c: 00028103 lb sp,0(t0)
80000320: 00200113 li sp,2
80000324: 00200e93 li t4,2
80000328: 01200193 li gp,18
8000032c: 03d11463 bne sp,t4,80000354 <fail>
80000330 <test_19>:
80000330: 00002297 auipc t0,0x2
80000334: cd028293 addi t0,t0,-816 # 80002000 <begin_signature>
80000338: 00028103 lb sp,0(t0)
8000033c: 00000013 nop
80000340: 00200113 li sp,2
80000344: 00200e93 li t4,2
80000348: 01300193 li gp,19
8000034c: 01d11463 bne sp,t4,80000354 <fail>
80000350: 02301063 bne zero,gp,80000370 <pass>
80000354 <fail>:
80000354: 0ff0000f fence
80000358: 00018063 beqz gp,80000358 <fail+0x4>
8000035c: 00119193 slli gp,gp,0x1
80000360: 0011e193 ori gp,gp,1
80000364: 05d00893 li a7,93
80000368: 00018513 mv a0,gp
8000036c: 00000073 ecall
80000370 <pass>:
80000370: 0ff0000f fence
80000374: 00100193 li gp,1
80000378: 05d00893 li a7,93
8000037c: 00000513 li a0,0
80000380: 00000073 ecall
80000384: c0001073 unimp
80000388: 0000 unimp
8000038a: 0000 unimp
8000038c: 0000 unimp
8000038e: 0000 unimp
80000390: 0000 unimp
80000392: 0000 unimp
80000394: 0000 unimp
80000396: 0000 unimp
80000398: 0000 unimp
8000039a: 0000 unimp
8000039c: 0000 unimp
8000039e: 0000 unimp
800003a0: 0000 unimp
800003a2: 0000 unimp
800003a4: 0000 unimp
800003a6: 0000 unimp
800003a8: 0000 unimp
800003aa: 0000 unimp
800003ac: 0000 unimp
800003ae: 0000 unimp
800003b0: 0000 unimp
800003b2: 0000 unimp
800003b4: 0000 unimp
800003b6: 0000 unimp
800003b8: 0000 unimp
800003ba: 0000 unimp
800003bc: 0000 unimp
800003be: 0000 unimp
800003c0: 0000 unimp
800003c2: 0000 unimp
Disassembly of section .data:
80002000 <begin_signature>:
80002000: 0xff
80002001 <tdat2>:
80002001: fsw fs0,32(s0)
80002002 <tdat3>:
80002002: addi a2,sp,988
80002003 <tdat4>:
80002003: 0000000f fence unknown,unknown
80002007: 0000 unimp
80002009: 0000 unimp
8000200b: 0000 unimp
8000200d: 0000 unimp
8000200f: 00 Address 0x000000008000200f is out of bounds.

View file

@ -0,0 +1,331 @@
rv32ui-p-lbu: 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: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-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: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 02028293 addi t0,t0,32 # 80000084 <reset_vector+0x38>
8000006c: 30529073 csrw mtvec,t0
80000070: 800002b7 lui t0,0x80000
80000074: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdfef>
80000078: 3b029073 csrw pmpaddr0,t0
8000007c: 01f00293 li t0,31
80000080: 3a029073 csrw pmpcfg0,t0
80000084: 00000297 auipc t0,0x0
80000088: 01828293 addi t0,t0,24 # 8000009c <reset_vector+0x50>
8000008c: 30529073 csrw mtvec,t0
80000090: 30205073 csrwi medeleg,0
80000094: 30305073 csrwi mideleg,0
80000098: 30405073 csrwi mie,0
8000009c: 00000193 li gp,0
800000a0: 00000297 auipc t0,0x0
800000a4: f6428293 addi t0,t0,-156 # 80000004 <trap_vector>
800000a8: 30529073 csrw mtvec,t0
800000ac: 00100513 li a0,1
800000b0: 01f51513 slli a0,a0,0x1f
800000b4: 00054c63 bltz a0,800000cc <reset_vector+0x80>
800000b8: 0ff0000f fence
800000bc: 00100193 li gp,1
800000c0: 05d00893 li a7,93
800000c4: 00000513 li a0,0
800000c8: 00000073 ecall
800000cc: 80000297 auipc t0,0x80000
800000d0: f3428293 addi t0,t0,-204 # 0 <_start-0x80000000>
800000d4: 00028e63 beqz t0,800000f0 <reset_vector+0xa4>
800000d8: 10529073 csrw stvec,t0
800000dc: 0000b2b7 lui t0,0xb
800000e0: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000e4: 30229073 csrw medeleg,t0
800000e8: 30202373 csrr t1,medeleg
800000ec: f46298e3 bne t0,t1,8000003c <handle_exception>
800000f0: 30005073 csrwi mstatus,0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <test_2>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108 <test_2>:
80000108: 00002097 auipc ra,0x2
8000010c: ef808093 addi ra,ra,-264 # 80002000 <begin_signature>
80000110: 0000c703 lbu a4,0(ra)
80000114: 0ff00e93 li t4,255
80000118: 00200193 li gp,2
8000011c: 23d71c63 bne a4,t4,80000354 <fail>
80000120 <test_3>:
80000120: 00002097 auipc ra,0x2
80000124: ee008093 addi ra,ra,-288 # 80002000 <begin_signature>
80000128: 0010c703 lbu a4,1(ra)
8000012c: 00000e93 li t4,0
80000130: 00300193 li gp,3
80000134: 23d71063 bne a4,t4,80000354 <fail>
80000138 <test_4>:
80000138: 00002097 auipc ra,0x2
8000013c: ec808093 addi ra,ra,-312 # 80002000 <begin_signature>
80000140: 0020c703 lbu a4,2(ra)
80000144: 0f000e93 li t4,240
80000148: 00400193 li gp,4
8000014c: 21d71463 bne a4,t4,80000354 <fail>
80000150 <test_5>:
80000150: 00002097 auipc ra,0x2
80000154: eb008093 addi ra,ra,-336 # 80002000 <begin_signature>
80000158: 0030c703 lbu a4,3(ra)
8000015c: 00f00e93 li t4,15
80000160: 00500193 li gp,5
80000164: 1fd71863 bne a4,t4,80000354 <fail>
80000168 <test_6>:
80000168: 00002097 auipc ra,0x2
8000016c: e9b08093 addi ra,ra,-357 # 80002003 <tdat4>
80000170: ffd0c703 lbu a4,-3(ra)
80000174: 0ff00e93 li t4,255
80000178: 00600193 li gp,6
8000017c: 1dd71c63 bne a4,t4,80000354 <fail>
80000180 <test_7>:
80000180: 00002097 auipc ra,0x2
80000184: e8308093 addi ra,ra,-381 # 80002003 <tdat4>
80000188: ffe0c703 lbu a4,-2(ra)
8000018c: 00000e93 li t4,0
80000190: 00700193 li gp,7
80000194: 1dd71063 bne a4,t4,80000354 <fail>
80000198 <test_8>:
80000198: 00002097 auipc ra,0x2
8000019c: e6b08093 addi ra,ra,-405 # 80002003 <tdat4>
800001a0: fff0c703 lbu a4,-1(ra)
800001a4: 0f000e93 li t4,240
800001a8: 00800193 li gp,8
800001ac: 1bd71463 bne a4,t4,80000354 <fail>
800001b0 <test_9>:
800001b0: 00002097 auipc ra,0x2
800001b4: e5308093 addi ra,ra,-429 # 80002003 <tdat4>
800001b8: 0000c703 lbu a4,0(ra)
800001bc: 00f00e93 li t4,15
800001c0: 00900193 li gp,9
800001c4: 19d71863 bne a4,t4,80000354 <fail>
800001c8 <test_10>:
800001c8: 00002097 auipc ra,0x2
800001cc: e3808093 addi ra,ra,-456 # 80002000 <begin_signature>
800001d0: fe008093 addi ra,ra,-32
800001d4: 0200c283 lbu t0,32(ra)
800001d8: 0ff00e93 li t4,255
800001dc: 00a00193 li gp,10
800001e0: 17d29a63 bne t0,t4,80000354 <fail>
800001e4 <test_11>:
800001e4: 00002097 auipc ra,0x2
800001e8: e1c08093 addi ra,ra,-484 # 80002000 <begin_signature>
800001ec: ffa08093 addi ra,ra,-6
800001f0: 0070c283 lbu t0,7(ra)
800001f4: 00000e93 li t4,0
800001f8: 00b00193 li gp,11
800001fc: 15d29c63 bne t0,t4,80000354 <fail>
80000200 <test_12>:
80000200: 00c00193 li gp,12
80000204: 00000213 li tp,0
80000208: 00002097 auipc ra,0x2
8000020c: df908093 addi ra,ra,-519 # 80002001 <tdat2>
80000210: 0010c703 lbu a4,1(ra)
80000214: 00070313 mv t1,a4
80000218: 0f000e93 li t4,240
8000021c: 13d31c63 bne t1,t4,80000354 <fail>
80000220: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000224: 00200293 li t0,2
80000228: fe5210e3 bne tp,t0,80000208 <test_12+0x8>
8000022c <test_13>:
8000022c: 00d00193 li gp,13
80000230: 00000213 li tp,0
80000234: 00002097 auipc ra,0x2
80000238: dce08093 addi ra,ra,-562 # 80002002 <tdat3>
8000023c: 0010c703 lbu a4,1(ra)
80000240: 00000013 nop
80000244: 00070313 mv t1,a4
80000248: 00f00e93 li t4,15
8000024c: 11d31463 bne t1,t4,80000354 <fail>
80000250: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000254: 00200293 li t0,2
80000258: fc521ee3 bne tp,t0,80000234 <test_13+0x8>
8000025c <test_14>:
8000025c: 00e00193 li gp,14
80000260: 00000213 li tp,0
80000264: 00002097 auipc ra,0x2
80000268: d9c08093 addi ra,ra,-612 # 80002000 <begin_signature>
8000026c: 0010c703 lbu a4,1(ra)
80000270: 00000013 nop
80000274: 00000013 nop
80000278: 00070313 mv t1,a4
8000027c: 00000e93 li t4,0
80000280: 0dd31a63 bne t1,t4,80000354 <fail>
80000284: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000288: 00200293 li t0,2
8000028c: fc521ce3 bne tp,t0,80000264 <test_14+0x8>
80000290 <test_15>:
80000290: 00f00193 li gp,15
80000294: 00000213 li tp,0
80000298: 00002097 auipc ra,0x2
8000029c: d6908093 addi ra,ra,-663 # 80002001 <tdat2>
800002a0: 0010c703 lbu a4,1(ra)
800002a4: 0f000e93 li t4,240
800002a8: 0bd71663 bne a4,t4,80000354 <fail>
800002ac: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002b0: 00200293 li t0,2
800002b4: fe5212e3 bne tp,t0,80000298 <test_15+0x8>
800002b8 <test_16>:
800002b8: 01000193 li gp,16
800002bc: 00000213 li tp,0
800002c0: 00002097 auipc ra,0x2
800002c4: d4208093 addi ra,ra,-702 # 80002002 <tdat3>
800002c8: 00000013 nop
800002cc: 0010c703 lbu a4,1(ra)
800002d0: 00f00e93 li t4,15
800002d4: 09d71063 bne a4,t4,80000354 <fail>
800002d8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002dc: 00200293 li t0,2
800002e0: fe5210e3 bne tp,t0,800002c0 <test_16+0x8>
800002e4 <test_17>:
800002e4: 01100193 li gp,17
800002e8: 00000213 li tp,0
800002ec: 00002097 auipc ra,0x2
800002f0: d1408093 addi ra,ra,-748 # 80002000 <begin_signature>
800002f4: 00000013 nop
800002f8: 00000013 nop
800002fc: 0010c703 lbu a4,1(ra)
80000300: 00000e93 li t4,0
80000304: 05d71863 bne a4,t4,80000354 <fail>
80000308: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000030c: 00200293 li t0,2
80000310: fc521ee3 bne tp,t0,800002ec <test_17+0x8>
80000314 <test_18>:
80000314: 00002297 auipc t0,0x2
80000318: cec28293 addi t0,t0,-788 # 80002000 <begin_signature>
8000031c: 0002c103 lbu sp,0(t0)
80000320: 00200113 li sp,2
80000324: 00200e93 li t4,2
80000328: 01200193 li gp,18
8000032c: 03d11463 bne sp,t4,80000354 <fail>
80000330 <test_19>:
80000330: 00002297 auipc t0,0x2
80000334: cd028293 addi t0,t0,-816 # 80002000 <begin_signature>
80000338: 0002c103 lbu sp,0(t0)
8000033c: 00000013 nop
80000340: 00200113 li sp,2
80000344: 00200e93 li t4,2
80000348: 01300193 li gp,19
8000034c: 01d11463 bne sp,t4,80000354 <fail>
80000350: 02301063 bne zero,gp,80000370 <pass>
80000354 <fail>:
80000354: 0ff0000f fence
80000358: 00018063 beqz gp,80000358 <fail+0x4>
8000035c: 00119193 slli gp,gp,0x1
80000360: 0011e193 ori gp,gp,1
80000364: 05d00893 li a7,93
80000368: 00018513 mv a0,gp
8000036c: 00000073 ecall
80000370 <pass>:
80000370: 0ff0000f fence
80000374: 00100193 li gp,1
80000378: 05d00893 li a7,93
8000037c: 00000513 li a0,0
80000380: 00000073 ecall
80000384: c0001073 unimp
80000388: 0000 unimp
8000038a: 0000 unimp
8000038c: 0000 unimp
8000038e: 0000 unimp
80000390: 0000 unimp
80000392: 0000 unimp
80000394: 0000 unimp
80000396: 0000 unimp
80000398: 0000 unimp
8000039a: 0000 unimp
8000039c: 0000 unimp
8000039e: 0000 unimp
800003a0: 0000 unimp
800003a2: 0000 unimp
800003a4: 0000 unimp
800003a6: 0000 unimp
800003a8: 0000 unimp
800003aa: 0000 unimp
800003ac: 0000 unimp
800003ae: 0000 unimp
800003b0: 0000 unimp
800003b2: 0000 unimp
800003b4: 0000 unimp
800003b6: 0000 unimp
800003b8: 0000 unimp
800003ba: 0000 unimp
800003bc: 0000 unimp
800003be: 0000 unimp
800003c0: 0000 unimp
800003c2: 0000 unimp
Disassembly of section .data:
80002000 <begin_signature>:
80002000: 0xff
80002001 <tdat2>:
80002001: fsw fs0,32(s0)
80002002 <tdat3>:
80002002: addi a2,sp,988
80002003 <tdat4>:
80002003: 0000000f fence unknown,unknown
80002007: 0000 unimp
80002009: 0000 unimp
8000200b: 0000 unimp
8000200d: 0000 unimp
8000200f: 00 Address 0x000000008000200f is out of bounds.

View file

@ -0,0 +1,320 @@
rv32ui-p-lh: 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: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-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: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 02028293 addi t0,t0,32 # 80000084 <reset_vector+0x38>
8000006c: 30529073 csrw mtvec,t0
80000070: 800002b7 lui t0,0x80000
80000074: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdfef>
80000078: 3b029073 csrw pmpaddr0,t0
8000007c: 01f00293 li t0,31
80000080: 3a029073 csrw pmpcfg0,t0
80000084: 00000297 auipc t0,0x0
80000088: 01828293 addi t0,t0,24 # 8000009c <reset_vector+0x50>
8000008c: 30529073 csrw mtvec,t0
80000090: 30205073 csrwi medeleg,0
80000094: 30305073 csrwi mideleg,0
80000098: 30405073 csrwi mie,0
8000009c: 00000193 li gp,0
800000a0: 00000297 auipc t0,0x0
800000a4: f6428293 addi t0,t0,-156 # 80000004 <trap_vector>
800000a8: 30529073 csrw mtvec,t0
800000ac: 00100513 li a0,1
800000b0: 01f51513 slli a0,a0,0x1f
800000b4: 00054c63 bltz a0,800000cc <reset_vector+0x80>
800000b8: 0ff0000f fence
800000bc: 00100193 li gp,1
800000c0: 05d00893 li a7,93
800000c4: 00000513 li a0,0
800000c8: 00000073 ecall
800000cc: 80000297 auipc t0,0x80000
800000d0: f3428293 addi t0,t0,-204 # 0 <_start-0x80000000>
800000d4: 00028e63 beqz t0,800000f0 <reset_vector+0xa4>
800000d8: 10529073 csrw stvec,t0
800000dc: 0000b2b7 lui t0,0xb
800000e0: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000e4: 30229073 csrw medeleg,t0
800000e8: 30202373 csrr t1,medeleg
800000ec: f46298e3 bne t0,t1,8000003c <handle_exception>
800000f0: 30005073 csrwi mstatus,0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <test_2>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108 <test_2>:
80000108: 00002097 auipc ra,0x2
8000010c: ef808093 addi ra,ra,-264 # 80002000 <begin_signature>
80000110: 00009703 lh a4,0(ra)
80000114: 0ff00e93 li t4,255
80000118: 00200193 li gp,2
8000011c: 25d71c63 bne a4,t4,80000374 <fail>
80000120 <test_3>:
80000120: 00002097 auipc ra,0x2
80000124: ee008093 addi ra,ra,-288 # 80002000 <begin_signature>
80000128: 00209703 lh a4,2(ra)
8000012c: f0000e93 li t4,-256
80000130: 00300193 li gp,3
80000134: 25d71063 bne a4,t4,80000374 <fail>
80000138 <test_4>:
80000138: 00002097 auipc ra,0x2
8000013c: ec808093 addi ra,ra,-312 # 80002000 <begin_signature>
80000140: 00409703 lh a4,4(ra)
80000144: 00001eb7 lui t4,0x1
80000148: ff0e8e93 addi t4,t4,-16 # ff0 <_start-0x7ffff010>
8000014c: 00400193 li gp,4
80000150: 23d71263 bne a4,t4,80000374 <fail>
80000154 <test_5>:
80000154: 00002097 auipc ra,0x2
80000158: eac08093 addi ra,ra,-340 # 80002000 <begin_signature>
8000015c: 00609703 lh a4,6(ra)
80000160: fffffeb7 lui t4,0xfffff
80000164: 00fe8e93 addi t4,t4,15 # fffff00f <_end+0x7fffcfff>
80000168: 00500193 li gp,5
8000016c: 21d71463 bne a4,t4,80000374 <fail>
80000170 <test_6>:
80000170: 00002097 auipc ra,0x2
80000174: e9608093 addi ra,ra,-362 # 80002006 <tdat4>
80000178: ffa09703 lh a4,-6(ra)
8000017c: 0ff00e93 li t4,255
80000180: 00600193 li gp,6
80000184: 1fd71863 bne a4,t4,80000374 <fail>
80000188 <test_7>:
80000188: 00002097 auipc ra,0x2
8000018c: e7e08093 addi ra,ra,-386 # 80002006 <tdat4>
80000190: ffc09703 lh a4,-4(ra)
80000194: f0000e93 li t4,-256
80000198: 00700193 li gp,7
8000019c: 1dd71c63 bne a4,t4,80000374 <fail>
800001a0 <test_8>:
800001a0: 00002097 auipc ra,0x2
800001a4: e6608093 addi ra,ra,-410 # 80002006 <tdat4>
800001a8: ffe09703 lh a4,-2(ra)
800001ac: 00001eb7 lui t4,0x1
800001b0: ff0e8e93 addi t4,t4,-16 # ff0 <_start-0x7ffff010>
800001b4: 00800193 li gp,8
800001b8: 1bd71e63 bne a4,t4,80000374 <fail>
800001bc <test_9>:
800001bc: 00002097 auipc ra,0x2
800001c0: e4a08093 addi ra,ra,-438 # 80002006 <tdat4>
800001c4: 00009703 lh a4,0(ra)
800001c8: fffffeb7 lui t4,0xfffff
800001cc: 00fe8e93 addi t4,t4,15 # fffff00f <_end+0x7fffcfff>
800001d0: 00900193 li gp,9
800001d4: 1bd71063 bne a4,t4,80000374 <fail>
800001d8 <test_10>:
800001d8: 00002097 auipc ra,0x2
800001dc: e2808093 addi ra,ra,-472 # 80002000 <begin_signature>
800001e0: fe008093 addi ra,ra,-32
800001e4: 02009283 lh t0,32(ra)
800001e8: 0ff00e93 li t4,255
800001ec: 00a00193 li gp,10
800001f0: 19d29263 bne t0,t4,80000374 <fail>
800001f4 <test_11>:
800001f4: 00002097 auipc ra,0x2
800001f8: e0c08093 addi ra,ra,-500 # 80002000 <begin_signature>
800001fc: ffb08093 addi ra,ra,-5
80000200: 00709283 lh t0,7(ra)
80000204: f0000e93 li t4,-256
80000208: 00b00193 li gp,11
8000020c: 17d29463 bne t0,t4,80000374 <fail>
80000210 <test_12>:
80000210: 00c00193 li gp,12
80000214: 00000213 li tp,0
80000218: 00002097 auipc ra,0x2
8000021c: dea08093 addi ra,ra,-534 # 80002002 <tdat2>
80000220: 00209703 lh a4,2(ra)
80000224: 00070313 mv t1,a4
80000228: 00001eb7 lui t4,0x1
8000022c: ff0e8e93 addi t4,t4,-16 # ff0 <_start-0x7ffff010>
80000230: 15d31263 bne t1,t4,80000374 <fail>
80000234: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000238: 00200293 li t0,2
8000023c: fc521ee3 bne tp,t0,80000218 <test_12+0x8>
80000240 <test_13>:
80000240: 00d00193 li gp,13
80000244: 00000213 li tp,0
80000248: 00002097 auipc ra,0x2
8000024c: dbc08093 addi ra,ra,-580 # 80002004 <tdat3>
80000250: 00209703 lh a4,2(ra)
80000254: 00000013 nop
80000258: 00070313 mv t1,a4
8000025c: fffffeb7 lui t4,0xfffff
80000260: 00fe8e93 addi t4,t4,15 # fffff00f <_end+0x7fffcfff>
80000264: 11d31863 bne t1,t4,80000374 <fail>
80000268: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000026c: 00200293 li t0,2
80000270: fc521ce3 bne tp,t0,80000248 <test_13+0x8>
80000274 <test_14>:
80000274: 00e00193 li gp,14
80000278: 00000213 li tp,0
8000027c: 00002097 auipc ra,0x2
80000280: d8408093 addi ra,ra,-636 # 80002000 <begin_signature>
80000284: 00209703 lh a4,2(ra)
80000288: 00000013 nop
8000028c: 00000013 nop
80000290: 00070313 mv t1,a4
80000294: f0000e93 li t4,-256
80000298: 0dd31e63 bne t1,t4,80000374 <fail>
8000029c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002a0: 00200293 li t0,2
800002a4: fc521ce3 bne tp,t0,8000027c <test_14+0x8>
800002a8 <test_15>:
800002a8: 00f00193 li gp,15
800002ac: 00000213 li tp,0
800002b0: 00002097 auipc ra,0x2
800002b4: d5208093 addi ra,ra,-686 # 80002002 <tdat2>
800002b8: 00209703 lh a4,2(ra)
800002bc: 00001eb7 lui t4,0x1
800002c0: ff0e8e93 addi t4,t4,-16 # ff0 <_start-0x7ffff010>
800002c4: 0bd71863 bne a4,t4,80000374 <fail>
800002c8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002cc: 00200293 li t0,2
800002d0: fe5210e3 bne tp,t0,800002b0 <test_15+0x8>
800002d4 <test_16>:
800002d4: 01000193 li gp,16
800002d8: 00000213 li tp,0
800002dc: 00002097 auipc ra,0x2
800002e0: d2808093 addi ra,ra,-728 # 80002004 <tdat3>
800002e4: 00000013 nop
800002e8: 00209703 lh a4,2(ra)
800002ec: fffffeb7 lui t4,0xfffff
800002f0: 00fe8e93 addi t4,t4,15 # fffff00f <_end+0x7fffcfff>
800002f4: 09d71063 bne a4,t4,80000374 <fail>
800002f8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002fc: 00200293 li t0,2
80000300: fc521ee3 bne tp,t0,800002dc <test_16+0x8>
80000304 <test_17>:
80000304: 01100193 li gp,17
80000308: 00000213 li tp,0
8000030c: 00002097 auipc ra,0x2
80000310: cf408093 addi ra,ra,-780 # 80002000 <begin_signature>
80000314: 00000013 nop
80000318: 00000013 nop
8000031c: 00209703 lh a4,2(ra)
80000320: f0000e93 li t4,-256
80000324: 05d71863 bne a4,t4,80000374 <fail>
80000328: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000032c: 00200293 li t0,2
80000330: fc521ee3 bne tp,t0,8000030c <test_17+0x8>
80000334 <test_18>:
80000334: 00002297 auipc t0,0x2
80000338: ccc28293 addi t0,t0,-820 # 80002000 <begin_signature>
8000033c: 00029103 lh sp,0(t0)
80000340: 00200113 li sp,2
80000344: 00200e93 li t4,2
80000348: 01200193 li gp,18
8000034c: 03d11463 bne sp,t4,80000374 <fail>
80000350 <test_19>:
80000350: 00002297 auipc t0,0x2
80000354: cb028293 addi t0,t0,-848 # 80002000 <begin_signature>
80000358: 00029103 lh sp,0(t0)
8000035c: 00000013 nop
80000360: 00200113 li sp,2
80000364: 00200e93 li t4,2
80000368: 01300193 li gp,19
8000036c: 01d11463 bne sp,t4,80000374 <fail>
80000370: 02301063 bne zero,gp,80000390 <pass>
80000374 <fail>:
80000374: 0ff0000f fence
80000378: 00018063 beqz gp,80000378 <fail+0x4>
8000037c: 00119193 slli gp,gp,0x1
80000380: 0011e193 ori gp,gp,1
80000384: 05d00893 li a7,93
80000388: 00018513 mv a0,gp
8000038c: 00000073 ecall
80000390 <pass>:
80000390: 0ff0000f fence
80000394: 00100193 li gp,1
80000398: 05d00893 li a7,93
8000039c: 00000513 li a0,0
800003a0: 00000073 ecall
800003a4: c0001073 unimp
800003a8: 0000 unimp
800003aa: 0000 unimp
800003ac: 0000 unimp
800003ae: 0000 unimp
800003b0: 0000 unimp
800003b2: 0000 unimp
800003b4: 0000 unimp
800003b6: 0000 unimp
800003b8: 0000 unimp
800003ba: 0000 unimp
800003bc: 0000 unimp
800003be: 0000 unimp
800003c0: 0000 unimp
800003c2: 0000 unimp
Disassembly of section .data:
80002000 <begin_signature>:
80002000: 00ff 0xff
80002002 <tdat2>:
80002002: ff00 fsw fs0,56(a4)
80002004 <tdat3>:
80002004: 0ff0 addi a2,sp,988
80002006 <tdat4>:
80002006: 0000f00f 0xf00f
8000200a: 0000 unimp
8000200c: 0000 unimp
8000200e: 0000 unimp

View file

@ -0,0 +1,315 @@
rv32ui-p-lhu: 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: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-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: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 02028293 addi t0,t0,32 # 80000084 <reset_vector+0x38>
8000006c: 30529073 csrw mtvec,t0
80000070: 800002b7 lui t0,0x80000
80000074: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdfef>
80000078: 3b029073 csrw pmpaddr0,t0
8000007c: 01f00293 li t0,31
80000080: 3a029073 csrw pmpcfg0,t0
80000084: 00000297 auipc t0,0x0
80000088: 01828293 addi t0,t0,24 # 8000009c <reset_vector+0x50>
8000008c: 30529073 csrw mtvec,t0
80000090: 30205073 csrwi medeleg,0
80000094: 30305073 csrwi mideleg,0
80000098: 30405073 csrwi mie,0
8000009c: 00000193 li gp,0
800000a0: 00000297 auipc t0,0x0
800000a4: f6428293 addi t0,t0,-156 # 80000004 <trap_vector>
800000a8: 30529073 csrw mtvec,t0
800000ac: 00100513 li a0,1
800000b0: 01f51513 slli a0,a0,0x1f
800000b4: 00054c63 bltz a0,800000cc <reset_vector+0x80>
800000b8: 0ff0000f fence
800000bc: 00100193 li gp,1
800000c0: 05d00893 li a7,93
800000c4: 00000513 li a0,0
800000c8: 00000073 ecall
800000cc: 80000297 auipc t0,0x80000
800000d0: f3428293 addi t0,t0,-204 # 0 <_start-0x80000000>
800000d4: 00028e63 beqz t0,800000f0 <reset_vector+0xa4>
800000d8: 10529073 csrw stvec,t0
800000dc: 0000b2b7 lui t0,0xb
800000e0: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000e4: 30229073 csrw medeleg,t0
800000e8: 30202373 csrr t1,medeleg
800000ec: f46298e3 bne t0,t1,8000003c <handle_exception>
800000f0: 30005073 csrwi mstatus,0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <test_2>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108 <test_2>:
80000108: 00002097 auipc ra,0x2
8000010c: ef808093 addi ra,ra,-264 # 80002000 <begin_signature>
80000110: 0000d703 lhu a4,0(ra)
80000114: 0ff00e93 li t4,255
80000118: 00200193 li gp,2
8000011c: 27d71663 bne a4,t4,80000388 <fail>
80000120 <test_3>:
80000120: 00002097 auipc ra,0x2
80000124: ee008093 addi ra,ra,-288 # 80002000 <begin_signature>
80000128: 0020d703 lhu a4,2(ra)
8000012c: 00010eb7 lui t4,0x10
80000130: f00e8e93 addi t4,t4,-256 # ff00 <_start-0x7fff0100>
80000134: 00300193 li gp,3
80000138: 25d71863 bne a4,t4,80000388 <fail>
8000013c <test_4>:
8000013c: 00002097 auipc ra,0x2
80000140: ec408093 addi ra,ra,-316 # 80002000 <begin_signature>
80000144: 0040d703 lhu a4,4(ra)
80000148: 00001eb7 lui t4,0x1
8000014c: ff0e8e93 addi t4,t4,-16 # ff0 <_start-0x7ffff010>
80000150: 00400193 li gp,4
80000154: 23d71a63 bne a4,t4,80000388 <fail>
80000158 <test_5>:
80000158: 00002097 auipc ra,0x2
8000015c: ea808093 addi ra,ra,-344 # 80002000 <begin_signature>
80000160: 0060d703 lhu a4,6(ra)
80000164: 0000feb7 lui t4,0xf
80000168: 00fe8e93 addi t4,t4,15 # f00f <_start-0x7fff0ff1>
8000016c: 00500193 li gp,5
80000170: 21d71c63 bne a4,t4,80000388 <fail>
80000174 <test_6>:
80000174: 00002097 auipc ra,0x2
80000178: e9208093 addi ra,ra,-366 # 80002006 <tdat4>
8000017c: ffa0d703 lhu a4,-6(ra)
80000180: 0ff00e93 li t4,255
80000184: 00600193 li gp,6
80000188: 21d71063 bne a4,t4,80000388 <fail>
8000018c <test_7>:
8000018c: 00002097 auipc ra,0x2
80000190: e7a08093 addi ra,ra,-390 # 80002006 <tdat4>
80000194: ffc0d703 lhu a4,-4(ra)
80000198: 00010eb7 lui t4,0x10
8000019c: f00e8e93 addi t4,t4,-256 # ff00 <_start-0x7fff0100>
800001a0: 00700193 li gp,7
800001a4: 1fd71263 bne a4,t4,80000388 <fail>
800001a8 <test_8>:
800001a8: 00002097 auipc ra,0x2
800001ac: e5e08093 addi ra,ra,-418 # 80002006 <tdat4>
800001b0: ffe0d703 lhu a4,-2(ra)
800001b4: 00001eb7 lui t4,0x1
800001b8: ff0e8e93 addi t4,t4,-16 # ff0 <_start-0x7ffff010>
800001bc: 00800193 li gp,8
800001c0: 1dd71463 bne a4,t4,80000388 <fail>
800001c4 <test_9>:
800001c4: 00002097 auipc ra,0x2
800001c8: e4208093 addi ra,ra,-446 # 80002006 <tdat4>
800001cc: 0000d703 lhu a4,0(ra)
800001d0: 0000feb7 lui t4,0xf
800001d4: 00fe8e93 addi t4,t4,15 # f00f <_start-0x7fff0ff1>
800001d8: 00900193 li gp,9
800001dc: 1bd71663 bne a4,t4,80000388 <fail>
800001e0 <test_10>:
800001e0: 00002097 auipc ra,0x2
800001e4: e2008093 addi ra,ra,-480 # 80002000 <begin_signature>
800001e8: fe008093 addi ra,ra,-32
800001ec: 0200d283 lhu t0,32(ra)
800001f0: 0ff00e93 li t4,255
800001f4: 00a00193 li gp,10
800001f8: 19d29863 bne t0,t4,80000388 <fail>
800001fc <test_11>:
800001fc: 00002097 auipc ra,0x2
80000200: e0408093 addi ra,ra,-508 # 80002000 <begin_signature>
80000204: ffb08093 addi ra,ra,-5
80000208: 0070d283 lhu t0,7(ra)
8000020c: 00010eb7 lui t4,0x10
80000210: f00e8e93 addi t4,t4,-256 # ff00 <_start-0x7fff0100>
80000214: 00b00193 li gp,11
80000218: 17d29863 bne t0,t4,80000388 <fail>
8000021c <test_12>:
8000021c: 00c00193 li gp,12
80000220: 00000213 li tp,0
80000224: 00002097 auipc ra,0x2
80000228: dde08093 addi ra,ra,-546 # 80002002 <tdat2>
8000022c: 0020d703 lhu a4,2(ra)
80000230: 00070313 mv t1,a4
80000234: 00001eb7 lui t4,0x1
80000238: ff0e8e93 addi t4,t4,-16 # ff0 <_start-0x7ffff010>
8000023c: 15d31663 bne t1,t4,80000388 <fail>
80000240: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000244: 00200293 li t0,2
80000248: fc521ee3 bne tp,t0,80000224 <test_12+0x8>
8000024c <test_13>:
8000024c: 00d00193 li gp,13
80000250: 00000213 li tp,0
80000254: 00002097 auipc ra,0x2
80000258: db008093 addi ra,ra,-592 # 80002004 <tdat3>
8000025c: 0020d703 lhu a4,2(ra)
80000260: 00000013 nop
80000264: 00070313 mv t1,a4
80000268: 0000feb7 lui t4,0xf
8000026c: 00fe8e93 addi t4,t4,15 # f00f <_start-0x7fff0ff1>
80000270: 11d31c63 bne t1,t4,80000388 <fail>
80000274: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000278: 00200293 li t0,2
8000027c: fc521ce3 bne tp,t0,80000254 <test_13+0x8>
80000280 <test_14>:
80000280: 00e00193 li gp,14
80000284: 00000213 li tp,0
80000288: 00002097 auipc ra,0x2
8000028c: d7808093 addi ra,ra,-648 # 80002000 <begin_signature>
80000290: 0020d703 lhu a4,2(ra)
80000294: 00000013 nop
80000298: 00000013 nop
8000029c: 00070313 mv t1,a4
800002a0: 00010eb7 lui t4,0x10
800002a4: f00e8e93 addi t4,t4,-256 # ff00 <_start-0x7fff0100>
800002a8: 0fd31063 bne t1,t4,80000388 <fail>
800002ac: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002b0: 00200293 li t0,2
800002b4: fc521ae3 bne tp,t0,80000288 <test_14+0x8>
800002b8 <test_15>:
800002b8: 00f00193 li gp,15
800002bc: 00000213 li tp,0
800002c0: 00002097 auipc ra,0x2
800002c4: d4208093 addi ra,ra,-702 # 80002002 <tdat2>
800002c8: 0020d703 lhu a4,2(ra)
800002cc: 00001eb7 lui t4,0x1
800002d0: ff0e8e93 addi t4,t4,-16 # ff0 <_start-0x7ffff010>
800002d4: 0bd71a63 bne a4,t4,80000388 <fail>
800002d8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002dc: 00200293 li t0,2
800002e0: fe5210e3 bne tp,t0,800002c0 <test_15+0x8>
800002e4 <test_16>:
800002e4: 01000193 li gp,16
800002e8: 00000213 li tp,0
800002ec: 00002097 auipc ra,0x2
800002f0: d1808093 addi ra,ra,-744 # 80002004 <tdat3>
800002f4: 00000013 nop
800002f8: 0020d703 lhu a4,2(ra)
800002fc: 0000feb7 lui t4,0xf
80000300: 00fe8e93 addi t4,t4,15 # f00f <_start-0x7fff0ff1>
80000304: 09d71263 bne a4,t4,80000388 <fail>
80000308: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000030c: 00200293 li t0,2
80000310: fc521ee3 bne tp,t0,800002ec <test_16+0x8>
80000314 <test_17>:
80000314: 01100193 li gp,17
80000318: 00000213 li tp,0
8000031c: 00002097 auipc ra,0x2
80000320: ce408093 addi ra,ra,-796 # 80002000 <begin_signature>
80000324: 00000013 nop
80000328: 00000013 nop
8000032c: 0020d703 lhu a4,2(ra)
80000330: 00010eb7 lui t4,0x10
80000334: f00e8e93 addi t4,t4,-256 # ff00 <_start-0x7fff0100>
80000338: 05d71863 bne a4,t4,80000388 <fail>
8000033c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000340: 00200293 li t0,2
80000344: fc521ce3 bne tp,t0,8000031c <test_17+0x8>
80000348 <test_18>:
80000348: 00002297 auipc t0,0x2
8000034c: cb828293 addi t0,t0,-840 # 80002000 <begin_signature>
80000350: 0002d103 lhu sp,0(t0)
80000354: 00200113 li sp,2
80000358: 00200e93 li t4,2
8000035c: 01200193 li gp,18
80000360: 03d11463 bne sp,t4,80000388 <fail>
80000364 <test_19>:
80000364: 00002297 auipc t0,0x2
80000368: c9c28293 addi t0,t0,-868 # 80002000 <begin_signature>
8000036c: 0002d103 lhu sp,0(t0)
80000370: 00000013 nop
80000374: 00200113 li sp,2
80000378: 00200e93 li t4,2
8000037c: 01300193 li gp,19
80000380: 01d11463 bne sp,t4,80000388 <fail>
80000384: 02301063 bne zero,gp,800003a4 <pass>
80000388 <fail>:
80000388: 0ff0000f fence
8000038c: 00018063 beqz gp,8000038c <fail+0x4>
80000390: 00119193 slli gp,gp,0x1
80000394: 0011e193 ori gp,gp,1
80000398: 05d00893 li a7,93
8000039c: 00018513 mv a0,gp
800003a0: 00000073 ecall
800003a4 <pass>:
800003a4: 0ff0000f fence
800003a8: 00100193 li gp,1
800003ac: 05d00893 li a7,93
800003b0: 00000513 li a0,0
800003b4: 00000073 ecall
800003b8: c0001073 unimp
800003bc: 0000 unimp
800003be: 0000 unimp
800003c0: 0000 unimp
800003c2: 0000 unimp
Disassembly of section .data:
80002000 <begin_signature>:
80002000: 00ff 0xff
80002002 <tdat2>:
80002002: ff00 fsw fs0,56(a4)
80002004 <tdat3>:
80002004: 0ff0 addi a2,sp,988
80002006 <tdat4>:
80002006: 0000f00f 0xf00f
8000200a: 0000 unimp
8000200c: 0000 unimp
8000200e: 0000 unimp

View file

@ -0,0 +1,152 @@
rv32ui-p-lui: 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: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-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: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 02028293 addi t0,t0,32 # 80000084 <reset_vector+0x38>
8000006c: 30529073 csrw mtvec,t0
80000070: 800002b7 lui t0,0x80000
80000074: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdfff>
80000078: 3b029073 csrw pmpaddr0,t0
8000007c: 01f00293 li t0,31
80000080: 3a029073 csrw pmpcfg0,t0
80000084: 00000297 auipc t0,0x0
80000088: 01828293 addi t0,t0,24 # 8000009c <reset_vector+0x50>
8000008c: 30529073 csrw mtvec,t0
80000090: 30205073 csrwi medeleg,0
80000094: 30305073 csrwi mideleg,0
80000098: 30405073 csrwi mie,0
8000009c: 00000193 li gp,0
800000a0: 00000297 auipc t0,0x0
800000a4: f6428293 addi t0,t0,-156 # 80000004 <trap_vector>
800000a8: 30529073 csrw mtvec,t0
800000ac: 00100513 li a0,1
800000b0: 01f51513 slli a0,a0,0x1f
800000b4: 00054c63 bltz a0,800000cc <reset_vector+0x80>
800000b8: 0ff0000f fence
800000bc: 00100193 li gp,1
800000c0: 05d00893 li a7,93
800000c4: 00000513 li a0,0
800000c8: 00000073 ecall
800000cc: 80000297 auipc t0,0x80000
800000d0: f3428293 addi t0,t0,-204 # 0 <_start-0x80000000>
800000d4: 00028e63 beqz t0,800000f0 <reset_vector+0xa4>
800000d8: 10529073 csrw stvec,t0
800000dc: 0000b2b7 lui t0,0xb
800000e0: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000e4: 30229073 csrw medeleg,t0
800000e8: 30202373 csrr t1,medeleg
800000ec: f46298e3 bne t0,t1,8000003c <handle_exception>
800000f0: 30005073 csrwi mstatus,0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <test_2>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108 <test_2>:
80000108: 000000b7 lui ra,0x0
8000010c: 00000e93 li t4,0
80000110: 00200193 li gp,2
80000114: 05d09a63 bne ra,t4,80000168 <fail>
80000118 <test_3>:
80000118: fffff0b7 lui ra,0xfffff
8000011c: 4010d093 srai ra,ra,0x1
80000120: 80000e93 li t4,-2048
80000124: 00300193 li gp,3
80000128: 05d09063 bne ra,t4,80000168 <fail>
8000012c <test_4>:
8000012c: 7ffff0b7 lui ra,0x7ffff
80000130: 4140d093 srai ra,ra,0x14
80000134: 7ff00e93 li t4,2047
80000138: 00400193 li gp,4
8000013c: 03d09663 bne ra,t4,80000168 <fail>
80000140 <test_5>:
80000140: 800000b7 lui ra,0x80000
80000144: 4140d093 srai ra,ra,0x14
80000148: 80000e93 li t4,-2048
8000014c: 00500193 li gp,5
80000150: 01d09c63 bne ra,t4,80000168 <fail>
80000154 <test_6>:
80000154: 80000037 lui zero,0x80000
80000158: 00000e93 li t4,0
8000015c: 00600193 li gp,6
80000160: 01d01463 bne zero,t4,80000168 <fail>
80000164: 02301063 bne zero,gp,80000184 <pass>
80000168 <fail>:
80000168: 0ff0000f fence
8000016c: 00018063 beqz gp,8000016c <fail+0x4>
80000170: 00119193 slli gp,gp,0x1
80000174: 0011e193 ori gp,gp,1
80000178: 05d00893 li a7,93
8000017c: 00018513 mv a0,gp
80000180: 00000073 ecall
80000184 <pass>:
80000184: 0ff0000f fence
80000188: 00100193 li gp,1
8000018c: 05d00893 li a7,93
80000190: 00000513 li a0,0
80000194: 00000073 ecall
80000198: c0001073 unimp
8000019c: 0000 unimp
8000019e: 0000 unimp
800001a0: 0000 unimp
800001a2: 0000 unimp
800001a4: 0000 unimp
800001a6: 0000 unimp
800001a8: 0000 unimp
800001aa: 0000 unimp
800001ac: 0000 unimp
800001ae: 0000 unimp
800001b0: 0000 unimp
800001b2: 0000 unimp
800001b4: 0000 unimp
800001b6: 0000 unimp
800001b8: 0000 unimp
800001ba: 0000 unimp
800001bc: 0000 unimp
800001be: 0000 unimp
800001c0: 0000 unimp
800001c2: 0000 unimp

View file

@ -0,0 +1,344 @@
rv32ui-p-lw: 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: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-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: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 02028293 addi t0,t0,32 # 80000084 <reset_vector+0x38>
8000006c: 30529073 csrw mtvec,t0
80000070: 800002b7 lui t0,0x80000
80000074: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdfef>
80000078: 3b029073 csrw pmpaddr0,t0
8000007c: 01f00293 li t0,31
80000080: 3a029073 csrw pmpcfg0,t0
80000084: 00000297 auipc t0,0x0
80000088: 01828293 addi t0,t0,24 # 8000009c <reset_vector+0x50>
8000008c: 30529073 csrw mtvec,t0
80000090: 30205073 csrwi medeleg,0
80000094: 30305073 csrwi mideleg,0
80000098: 30405073 csrwi mie,0
8000009c: 00000193 li gp,0
800000a0: 00000297 auipc t0,0x0
800000a4: f6428293 addi t0,t0,-156 # 80000004 <trap_vector>
800000a8: 30529073 csrw mtvec,t0
800000ac: 00100513 li a0,1
800000b0: 01f51513 slli a0,a0,0x1f
800000b4: 00054c63 bltz a0,800000cc <reset_vector+0x80>
800000b8: 0ff0000f fence
800000bc: 00100193 li gp,1
800000c0: 05d00893 li a7,93
800000c4: 00000513 li a0,0
800000c8: 00000073 ecall
800000cc: 80000297 auipc t0,0x80000
800000d0: f3428293 addi t0,t0,-204 # 0 <_start-0x80000000>
800000d4: 00028e63 beqz t0,800000f0 <reset_vector+0xa4>
800000d8: 10529073 csrw stvec,t0
800000dc: 0000b2b7 lui t0,0xb
800000e0: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000e4: 30229073 csrw medeleg,t0
800000e8: 30202373 csrr t1,medeleg
800000ec: f46298e3 bne t0,t1,8000003c <handle_exception>
800000f0: 30005073 csrwi mstatus,0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <test_2>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108 <test_2>:
80000108: 00002097 auipc ra,0x2
8000010c: ef808093 addi ra,ra,-264 # 80002000 <begin_signature>
80000110: 0000a703 lw a4,0(ra)
80000114: 00ff0eb7 lui t4,0xff0
80000118: 0ffe8e93 addi t4,t4,255 # ff00ff <_start-0x7f00ff01>
8000011c: 00200193 li gp,2
80000120: 27d71a63 bne a4,t4,80000394 <fail>
80000124 <test_3>:
80000124: 00002097 auipc ra,0x2
80000128: edc08093 addi ra,ra,-292 # 80002000 <begin_signature>
8000012c: 0040a703 lw a4,4(ra)
80000130: ff010eb7 lui t4,0xff010
80000134: f00e8e93 addi t4,t4,-256 # ff00ff00 <_end+0x7f00def0>
80000138: 00300193 li gp,3
8000013c: 25d71c63 bne a4,t4,80000394 <fail>
80000140 <test_4>:
80000140: 00002097 auipc ra,0x2
80000144: ec008093 addi ra,ra,-320 # 80002000 <begin_signature>
80000148: 0080a703 lw a4,8(ra)
8000014c: 0ff01eb7 lui t4,0xff01
80000150: ff0e8e93 addi t4,t4,-16 # ff00ff0 <_start-0x700ff010>
80000154: 00400193 li gp,4
80000158: 23d71e63 bne a4,t4,80000394 <fail>
8000015c <test_5>:
8000015c: 00002097 auipc ra,0x2
80000160: ea408093 addi ra,ra,-348 # 80002000 <begin_signature>
80000164: 00c0a703 lw a4,12(ra)
80000168: f00ffeb7 lui t4,0xf00ff
8000016c: 00fe8e93 addi t4,t4,15 # f00ff00f <_end+0x700fcfff>
80000170: 00500193 li gp,5
80000174: 23d71063 bne a4,t4,80000394 <fail>
80000178 <test_6>:
80000178: 00002097 auipc ra,0x2
8000017c: e9408093 addi ra,ra,-364 # 8000200c <tdat4>
80000180: ff40a703 lw a4,-12(ra)
80000184: 00ff0eb7 lui t4,0xff0
80000188: 0ffe8e93 addi t4,t4,255 # ff00ff <_start-0x7f00ff01>
8000018c: 00600193 li gp,6
80000190: 21d71263 bne a4,t4,80000394 <fail>
80000194 <test_7>:
80000194: 00002097 auipc ra,0x2
80000198: e7808093 addi ra,ra,-392 # 8000200c <tdat4>
8000019c: ff80a703 lw a4,-8(ra)
800001a0: ff010eb7 lui t4,0xff010
800001a4: f00e8e93 addi t4,t4,-256 # ff00ff00 <_end+0x7f00def0>
800001a8: 00700193 li gp,7
800001ac: 1fd71463 bne a4,t4,80000394 <fail>
800001b0 <test_8>:
800001b0: 00002097 auipc ra,0x2
800001b4: e5c08093 addi ra,ra,-420 # 8000200c <tdat4>
800001b8: ffc0a703 lw a4,-4(ra)
800001bc: 0ff01eb7 lui t4,0xff01
800001c0: ff0e8e93 addi t4,t4,-16 # ff00ff0 <_start-0x700ff010>
800001c4: 00800193 li gp,8
800001c8: 1dd71663 bne a4,t4,80000394 <fail>
800001cc <test_9>:
800001cc: 00002097 auipc ra,0x2
800001d0: e4008093 addi ra,ra,-448 # 8000200c <tdat4>
800001d4: 0000a703 lw a4,0(ra)
800001d8: f00ffeb7 lui t4,0xf00ff
800001dc: 00fe8e93 addi t4,t4,15 # f00ff00f <_end+0x700fcfff>
800001e0: 00900193 li gp,9
800001e4: 1bd71863 bne a4,t4,80000394 <fail>
800001e8 <test_10>:
800001e8: 00002097 auipc ra,0x2
800001ec: e1808093 addi ra,ra,-488 # 80002000 <begin_signature>
800001f0: fe008093 addi ra,ra,-32
800001f4: 0200a283 lw t0,32(ra)
800001f8: 00ff0eb7 lui t4,0xff0
800001fc: 0ffe8e93 addi t4,t4,255 # ff00ff <_start-0x7f00ff01>
80000200: 00a00193 li gp,10
80000204: 19d29863 bne t0,t4,80000394 <fail>
80000208 <test_11>:
80000208: 00002097 auipc ra,0x2
8000020c: df808093 addi ra,ra,-520 # 80002000 <begin_signature>
80000210: ffd08093 addi ra,ra,-3
80000214: 0070a283 lw t0,7(ra)
80000218: ff010eb7 lui t4,0xff010
8000021c: f00e8e93 addi t4,t4,-256 # ff00ff00 <_end+0x7f00def0>
80000220: 00b00193 li gp,11
80000224: 17d29863 bne t0,t4,80000394 <fail>
80000228 <test_12>:
80000228: 00c00193 li gp,12
8000022c: 00000213 li tp,0
80000230: 00002097 auipc ra,0x2
80000234: dd408093 addi ra,ra,-556 # 80002004 <tdat2>
80000238: 0040a703 lw a4,4(ra)
8000023c: 00070313 mv t1,a4
80000240: 0ff01eb7 lui t4,0xff01
80000244: ff0e8e93 addi t4,t4,-16 # ff00ff0 <_start-0x700ff010>
80000248: 15d31663 bne t1,t4,80000394 <fail>
8000024c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000250: 00200293 li t0,2
80000254: fc521ee3 bne tp,t0,80000230 <test_12+0x8>
80000258 <test_13>:
80000258: 00d00193 li gp,13
8000025c: 00000213 li tp,0
80000260: 00002097 auipc ra,0x2
80000264: da808093 addi ra,ra,-600 # 80002008 <tdat3>
80000268: 0040a703 lw a4,4(ra)
8000026c: 00000013 nop
80000270: 00070313 mv t1,a4
80000274: f00ffeb7 lui t4,0xf00ff
80000278: 00fe8e93 addi t4,t4,15 # f00ff00f <_end+0x700fcfff>
8000027c: 11d31c63 bne t1,t4,80000394 <fail>
80000280: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000284: 00200293 li t0,2
80000288: fc521ce3 bne tp,t0,80000260 <test_13+0x8>
8000028c <test_14>:
8000028c: 00e00193 li gp,14
80000290: 00000213 li tp,0
80000294: 00002097 auipc ra,0x2
80000298: d6c08093 addi ra,ra,-660 # 80002000 <begin_signature>
8000029c: 0040a703 lw a4,4(ra)
800002a0: 00000013 nop
800002a4: 00000013 nop
800002a8: 00070313 mv t1,a4
800002ac: ff010eb7 lui t4,0xff010
800002b0: f00e8e93 addi t4,t4,-256 # ff00ff00 <_end+0x7f00def0>
800002b4: 0fd31063 bne t1,t4,80000394 <fail>
800002b8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002bc: 00200293 li t0,2
800002c0: fc521ae3 bne tp,t0,80000294 <test_14+0x8>
800002c4 <test_15>:
800002c4: 00f00193 li gp,15
800002c8: 00000213 li tp,0
800002cc: 00002097 auipc ra,0x2
800002d0: d3808093 addi ra,ra,-712 # 80002004 <tdat2>
800002d4: 0040a703 lw a4,4(ra)
800002d8: 0ff01eb7 lui t4,0xff01
800002dc: ff0e8e93 addi t4,t4,-16 # ff00ff0 <_start-0x700ff010>
800002e0: 0bd71a63 bne a4,t4,80000394 <fail>
800002e4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002e8: 00200293 li t0,2
800002ec: fe5210e3 bne tp,t0,800002cc <test_15+0x8>
800002f0 <test_16>:
800002f0: 01000193 li gp,16
800002f4: 00000213 li tp,0
800002f8: 00002097 auipc ra,0x2
800002fc: d1008093 addi ra,ra,-752 # 80002008 <tdat3>
80000300: 00000013 nop
80000304: 0040a703 lw a4,4(ra)
80000308: f00ffeb7 lui t4,0xf00ff
8000030c: 00fe8e93 addi t4,t4,15 # f00ff00f <_end+0x700fcfff>
80000310: 09d71263 bne a4,t4,80000394 <fail>
80000314: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000318: 00200293 li t0,2
8000031c: fc521ee3 bne tp,t0,800002f8 <test_16+0x8>
80000320 <test_17>:
80000320: 01100193 li gp,17
80000324: 00000213 li tp,0
80000328: 00002097 auipc ra,0x2
8000032c: cd808093 addi ra,ra,-808 # 80002000 <begin_signature>
80000330: 00000013 nop
80000334: 00000013 nop
80000338: 0040a703 lw a4,4(ra)
8000033c: ff010eb7 lui t4,0xff010
80000340: f00e8e93 addi t4,t4,-256 # ff00ff00 <_end+0x7f00def0>
80000344: 05d71863 bne a4,t4,80000394 <fail>
80000348: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000034c: 00200293 li t0,2
80000350: fc521ce3 bne tp,t0,80000328 <test_17+0x8>
80000354 <test_18>:
80000354: 00002297 auipc t0,0x2
80000358: cac28293 addi t0,t0,-852 # 80002000 <begin_signature>
8000035c: 0002a103 lw sp,0(t0)
80000360: 00200113 li sp,2
80000364: 00200e93 li t4,2
80000368: 01200193 li gp,18
8000036c: 03d11463 bne sp,t4,80000394 <fail>
80000370 <test_19>:
80000370: 00002297 auipc t0,0x2
80000374: c9028293 addi t0,t0,-880 # 80002000 <begin_signature>
80000378: 0002a103 lw sp,0(t0)
8000037c: 00000013 nop
80000380: 00200113 li sp,2
80000384: 00200e93 li t4,2
80000388: 01300193 li gp,19
8000038c: 01d11463 bne sp,t4,80000394 <fail>
80000390: 02301063 bne zero,gp,800003b0 <pass>
80000394 <fail>:
80000394: 0ff0000f fence
80000398: 00018063 beqz gp,80000398 <fail+0x4>
8000039c: 00119193 slli gp,gp,0x1
800003a0: 0011e193 ori gp,gp,1
800003a4: 05d00893 li a7,93
800003a8: 00018513 mv a0,gp
800003ac: 00000073 ecall
800003b0 <pass>:
800003b0: 0ff0000f fence
800003b4: 00100193 li gp,1
800003b8: 05d00893 li a7,93
800003bc: 00000513 li a0,0
800003c0: 00000073 ecall
800003c4: c0001073 unimp
800003c8: 0000 unimp
800003ca: 0000 unimp
800003cc: 0000 unimp
800003ce: 0000 unimp
800003d0: 0000 unimp
800003d2: 0000 unimp
800003d4: 0000 unimp
800003d6: 0000 unimp
800003d8: 0000 unimp
800003da: 0000 unimp
800003dc: 0000 unimp
800003de: 0000 unimp
800003e0: 0000 unimp
800003e2: 0000 unimp
800003e4: 0000 unimp
800003e6: 0000 unimp
800003e8: 0000 unimp
800003ea: 0000 unimp
800003ec: 0000 unimp
800003ee: 0000 unimp
800003f0: 0000 unimp
800003f2: 0000 unimp
800003f4: 0000 unimp
800003f6: 0000 unimp
800003f8: 0000 unimp
800003fa: 0000 unimp
800003fc: 0000 unimp
800003fe: 0000 unimp
80000400: 0000 unimp
80000402: 0000 unimp
Disassembly of section .data:
80002000 <begin_signature>:
80002000: 00ff 0xff
80002002: 00ff 0xff
80002004 <tdat2>:
80002004: ff00 fsw fs0,56(a4)
80002006: ff00 fsw fs0,56(a4)
80002008 <tdat3>:
80002008: 0ff0 addi a2,sp,988
8000200a: 0ff0 addi a2,sp,988
8000200c <tdat4>:
8000200c: f00ff00f 0xf00ff00f

View file

@ -0,0 +1,457 @@
rv32ui-p-or: 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: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-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: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 02028293 addi t0,t0,32 # 80000084 <reset_vector+0x38>
8000006c: 30529073 csrw mtvec,t0
80000070: 800002b7 lui t0,0x80000
80000074: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdfff>
80000078: 3b029073 csrw pmpaddr0,t0
8000007c: 01f00293 li t0,31
80000080: 3a029073 csrw pmpcfg0,t0
80000084: 00000297 auipc t0,0x0
80000088: 01828293 addi t0,t0,24 # 8000009c <reset_vector+0x50>
8000008c: 30529073 csrw mtvec,t0
80000090: 30205073 csrwi medeleg,0
80000094: 30305073 csrwi mideleg,0
80000098: 30405073 csrwi mie,0
8000009c: 00000193 li gp,0
800000a0: 00000297 auipc t0,0x0
800000a4: f6428293 addi t0,t0,-156 # 80000004 <trap_vector>
800000a8: 30529073 csrw mtvec,t0
800000ac: 00100513 li a0,1
800000b0: 01f51513 slli a0,a0,0x1f
800000b4: 00054c63 bltz a0,800000cc <reset_vector+0x80>
800000b8: 0ff0000f fence
800000bc: 00100193 li gp,1
800000c0: 05d00893 li a7,93
800000c4: 00000513 li a0,0
800000c8: 00000073 ecall
800000cc: 80000297 auipc t0,0x80000
800000d0: f3428293 addi t0,t0,-204 # 0 <_start-0x80000000>
800000d4: 00028e63 beqz t0,800000f0 <reset_vector+0xa4>
800000d8: 10529073 csrw stvec,t0
800000dc: 0000b2b7 lui t0,0xb
800000e0: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000e4: 30229073 csrw medeleg,t0
800000e8: 30202373 csrr t1,medeleg
800000ec: f46298e3 bne t0,t1,8000003c <handle_exception>
800000f0: 30005073 csrwi mstatus,0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <test_2>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108 <test_2>:
80000108: ff0100b7 lui ra,0xff010
8000010c: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
80000110: 0f0f1137 lui sp,0xf0f1
80000114: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
80000118: 0020e733 or a4,ra,sp
8000011c: ff100eb7 lui t4,0xff100
80000120: f0fe8e93 addi t4,t4,-241 # ff0fff0f <_end+0x7f0fdf0f>
80000124: 00200193 li gp,2
80000128: 4bd71263 bne a4,t4,800005cc <fail>
8000012c <test_3>:
8000012c: 0ff010b7 lui ra,0xff01
80000130: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
80000134: f0f0f137 lui sp,0xf0f0f
80000138: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f0d0f0>
8000013c: 0020e733 or a4,ra,sp
80000140: fff10eb7 lui t4,0xfff10
80000144: ff0e8e93 addi t4,t4,-16 # fff0fff0 <_end+0x7ff0dff0>
80000148: 00300193 li gp,3
8000014c: 49d71063 bne a4,t4,800005cc <fail>
80000150 <test_4>:
80000150: 00ff00b7 lui ra,0xff0
80000154: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
80000158: 0f0f1137 lui sp,0xf0f1
8000015c: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
80000160: 0020e733 or a4,ra,sp
80000164: 0fff1eb7 lui t4,0xfff1
80000168: fffe8e93 addi t4,t4,-1 # fff0fff <_start-0x7000f001>
8000016c: 00400193 li gp,4
80000170: 45d71e63 bne a4,t4,800005cc <fail>
80000174 <test_5>:
80000174: f00ff0b7 lui ra,0xf00ff
80000178: 00f08093 addi ra,ra,15 # f00ff00f <_end+0x700fd00f>
8000017c: f0f0f137 lui sp,0xf0f0f
80000180: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f0d0f0>
80000184: 0020e733 or a4,ra,sp
80000188: f0fffeb7 lui t4,0xf0fff
8000018c: 0ffe8e93 addi t4,t4,255 # f0fff0ff <_end+0x70ffd0ff>
80000190: 00500193 li gp,5
80000194: 43d71c63 bne a4,t4,800005cc <fail>
80000198 <test_6>:
80000198: ff0100b7 lui ra,0xff010
8000019c: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
800001a0: 0f0f1137 lui sp,0xf0f1
800001a4: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
800001a8: 0020e0b3 or ra,ra,sp
800001ac: ff100eb7 lui t4,0xff100
800001b0: f0fe8e93 addi t4,t4,-241 # ff0fff0f <_end+0x7f0fdf0f>
800001b4: 00600193 li gp,6
800001b8: 41d09a63 bne ra,t4,800005cc <fail>
800001bc <test_7>:
800001bc: ff0100b7 lui ra,0xff010
800001c0: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
800001c4: 0f0f1137 lui sp,0xf0f1
800001c8: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
800001cc: 0020e133 or sp,ra,sp
800001d0: ff100eb7 lui t4,0xff100
800001d4: f0fe8e93 addi t4,t4,-241 # ff0fff0f <_end+0x7f0fdf0f>
800001d8: 00700193 li gp,7
800001dc: 3fd11863 bne sp,t4,800005cc <fail>
800001e0 <test_8>:
800001e0: ff0100b7 lui ra,0xff010
800001e4: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
800001e8: 0010e0b3 or ra,ra,ra
800001ec: ff010eb7 lui t4,0xff010
800001f0: f00e8e93 addi t4,t4,-256 # ff00ff00 <_end+0x7f00df00>
800001f4: 00800193 li gp,8
800001f8: 3dd09a63 bne ra,t4,800005cc <fail>
800001fc <test_9>:
800001fc: 00000213 li tp,0
80000200: ff0100b7 lui ra,0xff010
80000204: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
80000208: 0f0f1137 lui sp,0xf0f1
8000020c: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
80000210: 0020e733 or a4,ra,sp
80000214: 00070313 mv t1,a4
80000218: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000021c: 00200293 li t0,2
80000220: fe5210e3 bne tp,t0,80000200 <test_9+0x4>
80000224: ff100eb7 lui t4,0xff100
80000228: f0fe8e93 addi t4,t4,-241 # ff0fff0f <_end+0x7f0fdf0f>
8000022c: 00900193 li gp,9
80000230: 39d31e63 bne t1,t4,800005cc <fail>
80000234 <test_10>:
80000234: 00000213 li tp,0
80000238: 0ff010b7 lui ra,0xff01
8000023c: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
80000240: f0f0f137 lui sp,0xf0f0f
80000244: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f0d0f0>
80000248: 0020e733 or a4,ra,sp
8000024c: 00000013 nop
80000250: 00070313 mv t1,a4
80000254: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000258: 00200293 li t0,2
8000025c: fc521ee3 bne tp,t0,80000238 <test_10+0x4>
80000260: fff10eb7 lui t4,0xfff10
80000264: ff0e8e93 addi t4,t4,-16 # fff0fff0 <_end+0x7ff0dff0>
80000268: 00a00193 li gp,10
8000026c: 37d31063 bne t1,t4,800005cc <fail>
80000270 <test_11>:
80000270: 00000213 li tp,0
80000274: 00ff00b7 lui ra,0xff0
80000278: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
8000027c: 0f0f1137 lui sp,0xf0f1
80000280: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
80000284: 0020e733 or a4,ra,sp
80000288: 00000013 nop
8000028c: 00000013 nop
80000290: 00070313 mv t1,a4
80000294: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000298: 00200293 li t0,2
8000029c: fc521ce3 bne tp,t0,80000274 <test_11+0x4>
800002a0: 0fff1eb7 lui t4,0xfff1
800002a4: fffe8e93 addi t4,t4,-1 # fff0fff <_start-0x7000f001>
800002a8: 00b00193 li gp,11
800002ac: 33d31063 bne t1,t4,800005cc <fail>
800002b0 <test_12>:
800002b0: 00000213 li tp,0
800002b4: ff0100b7 lui ra,0xff010
800002b8: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
800002bc: 0f0f1137 lui sp,0xf0f1
800002c0: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
800002c4: 0020e733 or a4,ra,sp
800002c8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002cc: 00200293 li t0,2
800002d0: fe5212e3 bne tp,t0,800002b4 <test_12+0x4>
800002d4: ff100eb7 lui t4,0xff100
800002d8: f0fe8e93 addi t4,t4,-241 # ff0fff0f <_end+0x7f0fdf0f>
800002dc: 00c00193 li gp,12
800002e0: 2fd71663 bne a4,t4,800005cc <fail>
800002e4 <test_13>:
800002e4: 00000213 li tp,0
800002e8: 0ff010b7 lui ra,0xff01
800002ec: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
800002f0: f0f0f137 lui sp,0xf0f0f
800002f4: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f0d0f0>
800002f8: 00000013 nop
800002fc: 0020e733 or a4,ra,sp
80000300: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000304: 00200293 li t0,2
80000308: fe5210e3 bne tp,t0,800002e8 <test_13+0x4>
8000030c: fff10eb7 lui t4,0xfff10
80000310: ff0e8e93 addi t4,t4,-16 # fff0fff0 <_end+0x7ff0dff0>
80000314: 00d00193 li gp,13
80000318: 2bd71a63 bne a4,t4,800005cc <fail>
8000031c <test_14>:
8000031c: 00000213 li tp,0
80000320: 00ff00b7 lui ra,0xff0
80000324: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
80000328: 0f0f1137 lui sp,0xf0f1
8000032c: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
80000330: 00000013 nop
80000334: 00000013 nop
80000338: 0020e733 or a4,ra,sp
8000033c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000340: 00200293 li t0,2
80000344: fc521ee3 bne tp,t0,80000320 <test_14+0x4>
80000348: 0fff1eb7 lui t4,0xfff1
8000034c: fffe8e93 addi t4,t4,-1 # fff0fff <_start-0x7000f001>
80000350: 00e00193 li gp,14
80000354: 27d71c63 bne a4,t4,800005cc <fail>
80000358 <test_15>:
80000358: 00000213 li tp,0
8000035c: ff0100b7 lui ra,0xff010
80000360: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
80000364: 00000013 nop
80000368: 0f0f1137 lui sp,0xf0f1
8000036c: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
80000370: 0020e733 or a4,ra,sp
80000374: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000378: 00200293 li t0,2
8000037c: fe5210e3 bne tp,t0,8000035c <test_15+0x4>
80000380: ff100eb7 lui t4,0xff100
80000384: f0fe8e93 addi t4,t4,-241 # ff0fff0f <_end+0x7f0fdf0f>
80000388: 00f00193 li gp,15
8000038c: 25d71063 bne a4,t4,800005cc <fail>
80000390 <test_16>:
80000390: 00000213 li tp,0
80000394: 0ff010b7 lui ra,0xff01
80000398: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
8000039c: 00000013 nop
800003a0: f0f0f137 lui sp,0xf0f0f
800003a4: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f0d0f0>
800003a8: 00000013 nop
800003ac: 0020e733 or a4,ra,sp
800003b0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800003b4: 00200293 li t0,2
800003b8: fc521ee3 bne tp,t0,80000394 <test_16+0x4>
800003bc: fff10eb7 lui t4,0xfff10
800003c0: ff0e8e93 addi t4,t4,-16 # fff0fff0 <_end+0x7ff0dff0>
800003c4: 01000193 li gp,16
800003c8: 21d71263 bne a4,t4,800005cc <fail>
800003cc <test_17>:
800003cc: 00000213 li tp,0
800003d0: 00ff00b7 lui ra,0xff0
800003d4: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
800003d8: 00000013 nop
800003dc: 00000013 nop
800003e0: 0f0f1137 lui sp,0xf0f1
800003e4: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
800003e8: 0020e733 or a4,ra,sp
800003ec: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800003f0: 00200293 li t0,2
800003f4: fc521ee3 bne tp,t0,800003d0 <test_17+0x4>
800003f8: 0fff1eb7 lui t4,0xfff1
800003fc: fffe8e93 addi t4,t4,-1 # fff0fff <_start-0x7000f001>
80000400: 01100193 li gp,17
80000404: 1dd71463 bne a4,t4,800005cc <fail>
80000408 <test_18>:
80000408: 00000213 li tp,0
8000040c: 0f0f1137 lui sp,0xf0f1
80000410: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
80000414: ff0100b7 lui ra,0xff010
80000418: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
8000041c: 0020e733 or a4,ra,sp
80000420: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000424: 00200293 li t0,2
80000428: fe5212e3 bne tp,t0,8000040c <test_18+0x4>
8000042c: ff100eb7 lui t4,0xff100
80000430: f0fe8e93 addi t4,t4,-241 # ff0fff0f <_end+0x7f0fdf0f>
80000434: 01200193 li gp,18
80000438: 19d71a63 bne a4,t4,800005cc <fail>
8000043c <test_19>:
8000043c: 00000213 li tp,0
80000440: f0f0f137 lui sp,0xf0f0f
80000444: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f0d0f0>
80000448: 0ff010b7 lui ra,0xff01
8000044c: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
80000450: 00000013 nop
80000454: 0020e733 or a4,ra,sp
80000458: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000045c: 00200293 li t0,2
80000460: fe5210e3 bne tp,t0,80000440 <test_19+0x4>
80000464: fff10eb7 lui t4,0xfff10
80000468: ff0e8e93 addi t4,t4,-16 # fff0fff0 <_end+0x7ff0dff0>
8000046c: 01300193 li gp,19
80000470: 15d71e63 bne a4,t4,800005cc <fail>
80000474 <test_20>:
80000474: 00000213 li tp,0
80000478: 0f0f1137 lui sp,0xf0f1
8000047c: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
80000480: 00ff00b7 lui ra,0xff0
80000484: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
80000488: 00000013 nop
8000048c: 00000013 nop
80000490: 0020e733 or a4,ra,sp
80000494: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000498: 00200293 li t0,2
8000049c: fc521ee3 bne tp,t0,80000478 <test_20+0x4>
800004a0: 0fff1eb7 lui t4,0xfff1
800004a4: fffe8e93 addi t4,t4,-1 # fff0fff <_start-0x7000f001>
800004a8: 01400193 li gp,20
800004ac: 13d71063 bne a4,t4,800005cc <fail>
800004b0 <test_21>:
800004b0: 00000213 li tp,0
800004b4: 0f0f1137 lui sp,0xf0f1
800004b8: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
800004bc: 00000013 nop
800004c0: ff0100b7 lui ra,0xff010
800004c4: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
800004c8: 0020e733 or a4,ra,sp
800004cc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800004d0: 00200293 li t0,2
800004d4: fe5210e3 bne tp,t0,800004b4 <test_21+0x4>
800004d8: ff100eb7 lui t4,0xff100
800004dc: f0fe8e93 addi t4,t4,-241 # ff0fff0f <_end+0x7f0fdf0f>
800004e0: 01500193 li gp,21
800004e4: 0fd71463 bne a4,t4,800005cc <fail>
800004e8 <test_22>:
800004e8: 00000213 li tp,0
800004ec: f0f0f137 lui sp,0xf0f0f
800004f0: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f0d0f0>
800004f4: 00000013 nop
800004f8: 0ff010b7 lui ra,0xff01
800004fc: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
80000500: 00000013 nop
80000504: 0020e733 or a4,ra,sp
80000508: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000050c: 00200293 li t0,2
80000510: fc521ee3 bne tp,t0,800004ec <test_22+0x4>
80000514: fff10eb7 lui t4,0xfff10
80000518: ff0e8e93 addi t4,t4,-16 # fff0fff0 <_end+0x7ff0dff0>
8000051c: 01600193 li gp,22
80000520: 0bd71663 bne a4,t4,800005cc <fail>
80000524 <test_23>:
80000524: 00000213 li tp,0
80000528: 0f0f1137 lui sp,0xf0f1
8000052c: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
80000530: 00000013 nop
80000534: 00000013 nop
80000538: 00ff00b7 lui ra,0xff0
8000053c: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
80000540: 0020e733 or a4,ra,sp
80000544: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000548: 00200293 li t0,2
8000054c: fc521ee3 bne tp,t0,80000528 <test_23+0x4>
80000550: 0fff1eb7 lui t4,0xfff1
80000554: fffe8e93 addi t4,t4,-1 # fff0fff <_start-0x7000f001>
80000558: 01700193 li gp,23
8000055c: 07d71863 bne a4,t4,800005cc <fail>
80000560 <test_24>:
80000560: ff0100b7 lui ra,0xff010
80000564: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
80000568: 00106133 or sp,zero,ra
8000056c: ff010eb7 lui t4,0xff010
80000570: f00e8e93 addi t4,t4,-256 # ff00ff00 <_end+0x7f00df00>
80000574: 01800193 li gp,24
80000578: 05d11a63 bne sp,t4,800005cc <fail>
8000057c <test_25>:
8000057c: 00ff00b7 lui ra,0xff0
80000580: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
80000584: 0000e133 or sp,ra,zero
80000588: 00ff0eb7 lui t4,0xff0
8000058c: 0ffe8e93 addi t4,t4,255 # ff00ff <_start-0x7f00ff01>
80000590: 01900193 li gp,25
80000594: 03d11c63 bne sp,t4,800005cc <fail>
80000598 <test_26>:
80000598: 000060b3 or ra,zero,zero
8000059c: 00000e93 li t4,0
800005a0: 01a00193 li gp,26
800005a4: 03d09463 bne ra,t4,800005cc <fail>
800005a8 <test_27>:
800005a8: 111110b7 lui ra,0x11111
800005ac: 11108093 addi ra,ra,273 # 11111111 <_start-0x6eeeeeef>
800005b0: 22222137 lui sp,0x22222
800005b4: 22210113 addi sp,sp,546 # 22222222 <_start-0x5dddddde>
800005b8: 0020e033 or zero,ra,sp
800005bc: 00000e93 li t4,0
800005c0: 01b00193 li gp,27
800005c4: 01d01463 bne zero,t4,800005cc <fail>
800005c8: 02301063 bne zero,gp,800005e8 <pass>
800005cc <fail>:
800005cc: 0ff0000f fence
800005d0: 00018063 beqz gp,800005d0 <fail+0x4>
800005d4: 00119193 slli gp,gp,0x1
800005d8: 0011e193 ori gp,gp,1
800005dc: 05d00893 li a7,93
800005e0: 00018513 mv a0,gp
800005e4: 00000073 ecall
800005e8 <pass>:
800005e8: 0ff0000f fence
800005ec: 00100193 li gp,1
800005f0: 05d00893 li a7,93
800005f4: 00000513 li a0,0
800005f8: 00000073 ecall
800005fc: c0001073 unimp
80000600: 0000 unimp
80000602: 0000 unimp

View file

@ -0,0 +1,265 @@
rv32ui-p-ori: 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: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-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: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 02028293 addi t0,t0,32 # 80000084 <reset_vector+0x38>
8000006c: 30529073 csrw mtvec,t0
80000070: 800002b7 lui t0,0x80000
80000074: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdfff>
80000078: 3b029073 csrw pmpaddr0,t0
8000007c: 01f00293 li t0,31
80000080: 3a029073 csrw pmpcfg0,t0
80000084: 00000297 auipc t0,0x0
80000088: 01828293 addi t0,t0,24 # 8000009c <reset_vector+0x50>
8000008c: 30529073 csrw mtvec,t0
80000090: 30205073 csrwi medeleg,0
80000094: 30305073 csrwi mideleg,0
80000098: 30405073 csrwi mie,0
8000009c: 00000193 li gp,0
800000a0: 00000297 auipc t0,0x0
800000a4: f6428293 addi t0,t0,-156 # 80000004 <trap_vector>
800000a8: 30529073 csrw mtvec,t0
800000ac: 00100513 li a0,1
800000b0: 01f51513 slli a0,a0,0x1f
800000b4: 00054c63 bltz a0,800000cc <reset_vector+0x80>
800000b8: 0ff0000f fence
800000bc: 00100193 li gp,1
800000c0: 05d00893 li a7,93
800000c4: 00000513 li a0,0
800000c8: 00000073 ecall
800000cc: 80000297 auipc t0,0x80000
800000d0: f3428293 addi t0,t0,-204 # 0 <_start-0x80000000>
800000d4: 00028e63 beqz t0,800000f0 <reset_vector+0xa4>
800000d8: 10529073 csrw stvec,t0
800000dc: 0000b2b7 lui t0,0xb
800000e0: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000e4: 30229073 csrw medeleg,t0
800000e8: 30202373 csrr t1,medeleg
800000ec: f46298e3 bne t0,t1,8000003c <handle_exception>
800000f0: 30005073 csrwi mstatus,0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <test_2>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108 <test_2>:
80000108: ff0100b7 lui ra,0xff010
8000010c: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
80000110: f0f0e713 ori a4,ra,-241
80000114: f0f00e93 li t4,-241
80000118: 00200193 li gp,2
8000011c: 1dd71463 bne a4,t4,800002e4 <fail>
80000120 <test_3>:
80000120: 0ff010b7 lui ra,0xff01
80000124: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
80000128: 0f00e713 ori a4,ra,240
8000012c: 0ff01eb7 lui t4,0xff01
80000130: ff0e8e93 addi t4,t4,-16 # ff00ff0 <_start-0x700ff010>
80000134: 00300193 li gp,3
80000138: 1bd71663 bne a4,t4,800002e4 <fail>
8000013c <test_4>:
8000013c: 00ff00b7 lui ra,0xff0
80000140: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
80000144: 70f0e713 ori a4,ra,1807
80000148: 00ff0eb7 lui t4,0xff0
8000014c: 7ffe8e93 addi t4,t4,2047 # ff07ff <_start-0x7f00f801>
80000150: 00400193 li gp,4
80000154: 19d71863 bne a4,t4,800002e4 <fail>
80000158 <test_5>:
80000158: f00ff0b7 lui ra,0xf00ff
8000015c: 00f08093 addi ra,ra,15 # f00ff00f <_end+0x700fd00f>
80000160: 0f00e713 ori a4,ra,240
80000164: f00ffeb7 lui t4,0xf00ff
80000168: 0ffe8e93 addi t4,t4,255 # f00ff0ff <_end+0x700fd0ff>
8000016c: 00500193 li gp,5
80000170: 17d71a63 bne a4,t4,800002e4 <fail>
80000174 <test_6>:
80000174: ff0100b7 lui ra,0xff010
80000178: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
8000017c: 0f00e093 ori ra,ra,240
80000180: ff010eb7 lui t4,0xff010
80000184: ff0e8e93 addi t4,t4,-16 # ff00fff0 <_end+0x7f00dff0>
80000188: 00600193 li gp,6
8000018c: 15d09c63 bne ra,t4,800002e4 <fail>
80000190 <test_7>:
80000190: 00000213 li tp,0
80000194: 0ff010b7 lui ra,0xff01
80000198: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
8000019c: 0f00e713 ori a4,ra,240
800001a0: 00070313 mv t1,a4
800001a4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800001a8: 00200293 li t0,2
800001ac: fe5214e3 bne tp,t0,80000194 <test_7+0x4>
800001b0: 0ff01eb7 lui t4,0xff01
800001b4: ff0e8e93 addi t4,t4,-16 # ff00ff0 <_start-0x700ff010>
800001b8: 00700193 li gp,7
800001bc: 13d31463 bne t1,t4,800002e4 <fail>
800001c0 <test_8>:
800001c0: 00000213 li tp,0
800001c4: 00ff00b7 lui ra,0xff0
800001c8: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
800001cc: 70f0e713 ori a4,ra,1807
800001d0: 00000013 nop
800001d4: 00070313 mv t1,a4
800001d8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800001dc: 00200293 li t0,2
800001e0: fe5212e3 bne tp,t0,800001c4 <test_8+0x4>
800001e4: 00ff0eb7 lui t4,0xff0
800001e8: 7ffe8e93 addi t4,t4,2047 # ff07ff <_start-0x7f00f801>
800001ec: 00800193 li gp,8
800001f0: 0fd31a63 bne t1,t4,800002e4 <fail>
800001f4 <test_9>:
800001f4: 00000213 li tp,0
800001f8: f00ff0b7 lui ra,0xf00ff
800001fc: 00f08093 addi ra,ra,15 # f00ff00f <_end+0x700fd00f>
80000200: 0f00e713 ori a4,ra,240
80000204: 00000013 nop
80000208: 00000013 nop
8000020c: 00070313 mv t1,a4
80000210: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000214: 00200293 li t0,2
80000218: fe5210e3 bne tp,t0,800001f8 <test_9+0x4>
8000021c: f00ffeb7 lui t4,0xf00ff
80000220: 0ffe8e93 addi t4,t4,255 # f00ff0ff <_end+0x700fd0ff>
80000224: 00900193 li gp,9
80000228: 0bd31e63 bne t1,t4,800002e4 <fail>
8000022c <test_10>:
8000022c: 00000213 li tp,0
80000230: 0ff010b7 lui ra,0xff01
80000234: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
80000238: 0f00e713 ori a4,ra,240
8000023c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000240: 00200293 li t0,2
80000244: fe5216e3 bne tp,t0,80000230 <test_10+0x4>
80000248: 0ff01eb7 lui t4,0xff01
8000024c: ff0e8e93 addi t4,t4,-16 # ff00ff0 <_start-0x700ff010>
80000250: 00a00193 li gp,10
80000254: 09d71863 bne a4,t4,800002e4 <fail>
80000258 <test_11>:
80000258: 00000213 li tp,0
8000025c: 00ff00b7 lui ra,0xff0
80000260: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
80000264: 00000013 nop
80000268: f0f0e713 ori a4,ra,-241
8000026c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000270: 00200293 li t0,2
80000274: fe5214e3 bne tp,t0,8000025c <test_11+0x4>
80000278: fff00e93 li t4,-1
8000027c: 00b00193 li gp,11
80000280: 07d71263 bne a4,t4,800002e4 <fail>
80000284 <test_12>:
80000284: 00000213 li tp,0
80000288: f00ff0b7 lui ra,0xf00ff
8000028c: 00f08093 addi ra,ra,15 # f00ff00f <_end+0x700fd00f>
80000290: 00000013 nop
80000294: 00000013 nop
80000298: 0f00e713 ori a4,ra,240
8000029c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002a0: 00200293 li t0,2
800002a4: fe5212e3 bne tp,t0,80000288 <test_12+0x4>
800002a8: f00ffeb7 lui t4,0xf00ff
800002ac: 0ffe8e93 addi t4,t4,255 # f00ff0ff <_end+0x700fd0ff>
800002b0: 00c00193 li gp,12
800002b4: 03d71863 bne a4,t4,800002e4 <fail>
800002b8 <test_13>:
800002b8: 0f006093 ori ra,zero,240
800002bc: 0f000e93 li t4,240
800002c0: 00d00193 li gp,13
800002c4: 03d09063 bne ra,t4,800002e4 <fail>
800002c8 <test_14>:
800002c8: 00ff00b7 lui ra,0xff0
800002cc: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
800002d0: 70f0e013 ori zero,ra,1807
800002d4: 00000e93 li t4,0
800002d8: 00e00193 li gp,14
800002dc: 01d01463 bne zero,t4,800002e4 <fail>
800002e0: 02301063 bne zero,gp,80000300 <pass>
800002e4 <fail>:
800002e4: 0ff0000f fence
800002e8: 00018063 beqz gp,800002e8 <fail+0x4>
800002ec: 00119193 slli gp,gp,0x1
800002f0: 0011e193 ori gp,gp,1
800002f4: 05d00893 li a7,93
800002f8: 00018513 mv a0,gp
800002fc: 00000073 ecall
80000300 <pass>:
80000300: 0ff0000f fence
80000304: 00100193 li gp,1
80000308: 05d00893 li a7,93
8000030c: 00000513 li a0,0
80000310: 00000073 ecall
80000314: c0001073 unimp
80000318: 0000 unimp
8000031a: 0000 unimp
8000031c: 0000 unimp
8000031e: 0000 unimp
80000320: 0000 unimp
80000322: 0000 unimp
80000324: 0000 unimp
80000326: 0000 unimp
80000328: 0000 unimp
8000032a: 0000 unimp
8000032c: 0000 unimp
8000032e: 0000 unimp
80000330: 0000 unimp
80000332: 0000 unimp
80000334: 0000 unimp
80000336: 0000 unimp
80000338: 0000 unimp
8000033a: 0000 unimp
8000033c: 0000 unimp
8000033e: 0000 unimp
80000340: 0000 unimp
80000342: 0000 unimp

View file

@ -0,0 +1,440 @@
rv32ui-p-sb: 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: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-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: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 02028293 addi t0,t0,32 # 80000084 <reset_vector+0x38>
8000006c: 30529073 csrw mtvec,t0
80000070: 800002b7 lui t0,0x80000
80000074: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdfef>
80000078: 3b029073 csrw pmpaddr0,t0
8000007c: 01f00293 li t0,31
80000080: 3a029073 csrw pmpcfg0,t0
80000084: 00000297 auipc t0,0x0
80000088: 01828293 addi t0,t0,24 # 8000009c <reset_vector+0x50>
8000008c: 30529073 csrw mtvec,t0
80000090: 30205073 csrwi medeleg,0
80000094: 30305073 csrwi mideleg,0
80000098: 30405073 csrwi mie,0
8000009c: 00000193 li gp,0
800000a0: 00000297 auipc t0,0x0
800000a4: f6428293 addi t0,t0,-156 # 80000004 <trap_vector>
800000a8: 30529073 csrw mtvec,t0
800000ac: 00100513 li a0,1
800000b0: 01f51513 slli a0,a0,0x1f
800000b4: 00054c63 bltz a0,800000cc <reset_vector+0x80>
800000b8: 0ff0000f fence
800000bc: 00100193 li gp,1
800000c0: 05d00893 li a7,93
800000c4: 00000513 li a0,0
800000c8: 00000073 ecall
800000cc: 80000297 auipc t0,0x80000
800000d0: f3428293 addi t0,t0,-204 # 0 <_start-0x80000000>
800000d4: 00028e63 beqz t0,800000f0 <reset_vector+0xa4>
800000d8: 10529073 csrw stvec,t0
800000dc: 0000b2b7 lui t0,0xb
800000e0: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000e4: 30229073 csrw medeleg,t0
800000e8: 30202373 csrr t1,medeleg
800000ec: f46298e3 bne t0,t1,8000003c <handle_exception>
800000f0: 30005073 csrwi mstatus,0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <test_2>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108 <test_2>:
80000108: 00002097 auipc ra,0x2
8000010c: ef808093 addi ra,ra,-264 # 80002000 <begin_signature>
80000110: faa00113 li sp,-86
80000114: 00208023 sb sp,0(ra)
80000118: 00008703 lb a4,0(ra)
8000011c: faa00e93 li t4,-86
80000120: 00200193 li gp,2
80000124: 3dd71c63 bne a4,t4,800004fc <fail>
80000128 <test_3>:
80000128: 00002097 auipc ra,0x2
8000012c: ed808093 addi ra,ra,-296 # 80002000 <begin_signature>
80000130: 00000113 li sp,0
80000134: 002080a3 sb sp,1(ra)
80000138: 00108703 lb a4,1(ra)
8000013c: 00000e93 li t4,0
80000140: 00300193 li gp,3
80000144: 3bd71c63 bne a4,t4,800004fc <fail>
80000148 <test_4>:
80000148: 00002097 auipc ra,0x2
8000014c: eb808093 addi ra,ra,-328 # 80002000 <begin_signature>
80000150: fffff137 lui sp,0xfffff
80000154: fa010113 addi sp,sp,-96 # ffffefa0 <_end+0x7fffcf90>
80000158: 00208123 sb sp,2(ra)
8000015c: 00209703 lh a4,2(ra)
80000160: fffffeb7 lui t4,0xfffff
80000164: fa0e8e93 addi t4,t4,-96 # ffffefa0 <_end+0x7fffcf90>
80000168: 00400193 li gp,4
8000016c: 39d71863 bne a4,t4,800004fc <fail>
80000170 <test_5>:
80000170: 00002097 auipc ra,0x2
80000174: e9008093 addi ra,ra,-368 # 80002000 <begin_signature>
80000178: 00a00113 li sp,10
8000017c: 002081a3 sb sp,3(ra)
80000180: 00308703 lb a4,3(ra)
80000184: 00a00e93 li t4,10
80000188: 00500193 li gp,5
8000018c: 37d71863 bne a4,t4,800004fc <fail>
80000190 <test_6>:
80000190: 00002097 auipc ra,0x2
80000194: e7708093 addi ra,ra,-393 # 80002007 <tdat8>
80000198: faa00113 li sp,-86
8000019c: fe208ea3 sb sp,-3(ra)
800001a0: ffd08703 lb a4,-3(ra)
800001a4: faa00e93 li t4,-86
800001a8: 00600193 li gp,6
800001ac: 35d71863 bne a4,t4,800004fc <fail>
800001b0 <test_7>:
800001b0: 00002097 auipc ra,0x2
800001b4: e5708093 addi ra,ra,-425 # 80002007 <tdat8>
800001b8: 00000113 li sp,0
800001bc: fe208f23 sb sp,-2(ra)
800001c0: ffe08703 lb a4,-2(ra)
800001c4: 00000e93 li t4,0
800001c8: 00700193 li gp,7
800001cc: 33d71863 bne a4,t4,800004fc <fail>
800001d0 <test_8>:
800001d0: 00002097 auipc ra,0x2
800001d4: e3708093 addi ra,ra,-457 # 80002007 <tdat8>
800001d8: fa000113 li sp,-96
800001dc: fe208fa3 sb sp,-1(ra)
800001e0: fff08703 lb a4,-1(ra)
800001e4: fa000e93 li t4,-96
800001e8: 00800193 li gp,8
800001ec: 31d71863 bne a4,t4,800004fc <fail>
800001f0 <test_9>:
800001f0: 00002097 auipc ra,0x2
800001f4: e1708093 addi ra,ra,-489 # 80002007 <tdat8>
800001f8: 00a00113 li sp,10
800001fc: 00208023 sb sp,0(ra)
80000200: 00008703 lb a4,0(ra)
80000204: 00a00e93 li t4,10
80000208: 00900193 li gp,9
8000020c: 2fd71863 bne a4,t4,800004fc <fail>
80000210 <test_10>:
80000210: 00002097 auipc ra,0x2
80000214: df808093 addi ra,ra,-520 # 80002008 <tdat9>
80000218: 12345137 lui sp,0x12345
8000021c: 67810113 addi sp,sp,1656 # 12345678 <_start-0x6dcba988>
80000220: fe008213 addi tp,ra,-32
80000224: 02220023 sb sp,32(tp) # 20 <_start-0x7fffffe0>
80000228: 00008283 lb t0,0(ra)
8000022c: 07800e93 li t4,120
80000230: 00a00193 li gp,10
80000234: 2dd29463 bne t0,t4,800004fc <fail>
80000238 <test_11>:
80000238: 00002097 auipc ra,0x2
8000023c: dd008093 addi ra,ra,-560 # 80002008 <tdat9>
80000240: 00003137 lui sp,0x3
80000244: 09810113 addi sp,sp,152 # 3098 <_start-0x7fffcf68>
80000248: ffa08093 addi ra,ra,-6
8000024c: 002083a3 sb sp,7(ra)
80000250: 00002217 auipc tp,0x2
80000254: db920213 addi tp,tp,-583 # 80002009 <tdat10>
80000258: 00020283 lb t0,0(tp) # 0 <_start-0x80000000>
8000025c: f9800e93 li t4,-104
80000260: 00b00193 li gp,11
80000264: 29d29c63 bne t0,t4,800004fc <fail>
80000268 <test_12>:
80000268: 00c00193 li gp,12
8000026c: 00000213 li tp,0
80000270: fdd00093 li ra,-35
80000274: 00002117 auipc sp,0x2
80000278: d8c10113 addi sp,sp,-628 # 80002000 <begin_signature>
8000027c: 00110023 sb ra,0(sp)
80000280: 00010703 lb a4,0(sp)
80000284: fdd00e93 li t4,-35
80000288: 27d71a63 bne a4,t4,800004fc <fail>
8000028c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000290: 00200293 li t0,2
80000294: fc521ee3 bne tp,t0,80000270 <test_12+0x8>
80000298 <test_13>:
80000298: 00d00193 li gp,13
8000029c: 00000213 li tp,0
800002a0: fcd00093 li ra,-51
800002a4: 00002117 auipc sp,0x2
800002a8: d5c10113 addi sp,sp,-676 # 80002000 <begin_signature>
800002ac: 00000013 nop
800002b0: 001100a3 sb ra,1(sp)
800002b4: 00110703 lb a4,1(sp)
800002b8: fcd00e93 li t4,-51
800002bc: 25d71063 bne a4,t4,800004fc <fail>
800002c0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002c4: 00200293 li t0,2
800002c8: fc521ce3 bne tp,t0,800002a0 <test_13+0x8>
800002cc <test_14>:
800002cc: 00e00193 li gp,14
800002d0: 00000213 li tp,0
800002d4: fcc00093 li ra,-52
800002d8: 00002117 auipc sp,0x2
800002dc: d2810113 addi sp,sp,-728 # 80002000 <begin_signature>
800002e0: 00000013 nop
800002e4: 00000013 nop
800002e8: 00110123 sb ra,2(sp)
800002ec: 00210703 lb a4,2(sp)
800002f0: fcc00e93 li t4,-52
800002f4: 21d71463 bne a4,t4,800004fc <fail>
800002f8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002fc: 00200293 li t0,2
80000300: fc521ae3 bne tp,t0,800002d4 <test_14+0x8>
80000304 <test_15>:
80000304: 00f00193 li gp,15
80000308: 00000213 li tp,0
8000030c: fbc00093 li ra,-68
80000310: 00000013 nop
80000314: 00002117 auipc sp,0x2
80000318: cec10113 addi sp,sp,-788 # 80002000 <begin_signature>
8000031c: 001101a3 sb ra,3(sp)
80000320: 00310703 lb a4,3(sp)
80000324: fbc00e93 li t4,-68
80000328: 1dd71a63 bne a4,t4,800004fc <fail>
8000032c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000330: 00200293 li t0,2
80000334: fc521ce3 bne tp,t0,8000030c <test_15+0x8>
80000338 <test_16>:
80000338: 01000193 li gp,16
8000033c: 00000213 li tp,0
80000340: fbb00093 li ra,-69
80000344: 00000013 nop
80000348: 00002117 auipc sp,0x2
8000034c: cb810113 addi sp,sp,-840 # 80002000 <begin_signature>
80000350: 00000013 nop
80000354: 00110223 sb ra,4(sp)
80000358: 00410703 lb a4,4(sp)
8000035c: fbb00e93 li t4,-69
80000360: 19d71e63 bne a4,t4,800004fc <fail>
80000364: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000368: 00200293 li t0,2
8000036c: fc521ae3 bne tp,t0,80000340 <test_16+0x8>
80000370 <test_17>:
80000370: 01100193 li gp,17
80000374: 00000213 li tp,0
80000378: fab00093 li ra,-85
8000037c: 00000013 nop
80000380: 00000013 nop
80000384: 00002117 auipc sp,0x2
80000388: c7c10113 addi sp,sp,-900 # 80002000 <begin_signature>
8000038c: 001102a3 sb ra,5(sp)
80000390: 00510703 lb a4,5(sp)
80000394: fab00e93 li t4,-85
80000398: 17d71263 bne a4,t4,800004fc <fail>
8000039c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800003a0: 00200293 li t0,2
800003a4: fc521ae3 bne tp,t0,80000378 <test_17+0x8>
800003a8 <test_18>:
800003a8: 01200193 li gp,18
800003ac: 00000213 li tp,0
800003b0: 00002117 auipc sp,0x2
800003b4: c5010113 addi sp,sp,-944 # 80002000 <begin_signature>
800003b8: 03300093 li ra,51
800003bc: 00110023 sb ra,0(sp)
800003c0: 00010703 lb a4,0(sp)
800003c4: 03300e93 li t4,51
800003c8: 13d71a63 bne a4,t4,800004fc <fail>
800003cc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800003d0: 00200293 li t0,2
800003d4: fc521ee3 bne tp,t0,800003b0 <test_18+0x8>
800003d8 <test_19>:
800003d8: 01300193 li gp,19
800003dc: 00000213 li tp,0
800003e0: 00002117 auipc sp,0x2
800003e4: c2010113 addi sp,sp,-992 # 80002000 <begin_signature>
800003e8: 02300093 li ra,35
800003ec: 00000013 nop
800003f0: 001100a3 sb ra,1(sp)
800003f4: 00110703 lb a4,1(sp)
800003f8: 02300e93 li t4,35
800003fc: 11d71063 bne a4,t4,800004fc <fail>
80000400: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000404: 00200293 li t0,2
80000408: fc521ce3 bne tp,t0,800003e0 <test_19+0x8>
8000040c <test_20>:
8000040c: 01400193 li gp,20
80000410: 00000213 li tp,0
80000414: 00002117 auipc sp,0x2
80000418: bec10113 addi sp,sp,-1044 # 80002000 <begin_signature>
8000041c: 02200093 li ra,34
80000420: 00000013 nop
80000424: 00000013 nop
80000428: 00110123 sb ra,2(sp)
8000042c: 00210703 lb a4,2(sp)
80000430: 02200e93 li t4,34
80000434: 0dd71463 bne a4,t4,800004fc <fail>
80000438: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000043c: 00200293 li t0,2
80000440: fc521ae3 bne tp,t0,80000414 <test_20+0x8>
80000444 <test_21>:
80000444: 01500193 li gp,21
80000448: 00000213 li tp,0
8000044c: 00002117 auipc sp,0x2
80000450: bb410113 addi sp,sp,-1100 # 80002000 <begin_signature>
80000454: 00000013 nop
80000458: 01200093 li ra,18
8000045c: 001101a3 sb ra,3(sp)
80000460: 00310703 lb a4,3(sp)
80000464: 01200e93 li t4,18
80000468: 09d71a63 bne a4,t4,800004fc <fail>
8000046c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000470: 00200293 li t0,2
80000474: fc521ce3 bne tp,t0,8000044c <test_21+0x8>
80000478 <test_22>:
80000478: 01600193 li gp,22
8000047c: 00000213 li tp,0
80000480: 00002117 auipc sp,0x2
80000484: b8010113 addi sp,sp,-1152 # 80002000 <begin_signature>
80000488: 00000013 nop
8000048c: 01100093 li ra,17
80000490: 00000013 nop
80000494: 00110223 sb ra,4(sp)
80000498: 00410703 lb a4,4(sp)
8000049c: 01100e93 li t4,17
800004a0: 05d71e63 bne a4,t4,800004fc <fail>
800004a4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800004a8: 00200293 li t0,2
800004ac: fc521ae3 bne tp,t0,80000480 <test_22+0x8>
800004b0 <test_23>:
800004b0: 01700193 li gp,23
800004b4: 00000213 li tp,0
800004b8: 00002117 auipc sp,0x2
800004bc: b4810113 addi sp,sp,-1208 # 80002000 <begin_signature>
800004c0: 00000013 nop
800004c4: 00000013 nop
800004c8: 00100093 li ra,1
800004cc: 001102a3 sb ra,5(sp)
800004d0: 00510703 lb a4,5(sp)
800004d4: 00100e93 li t4,1
800004d8: 03d71263 bne a4,t4,800004fc <fail>
800004dc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800004e0: 00200293 li t0,2
800004e4: fc521ae3 bne tp,t0,800004b8 <test_23+0x8>
800004e8: 0ef00513 li a0,239
800004ec: 00002597 auipc a1,0x2
800004f0: b1458593 addi a1,a1,-1260 # 80002000 <begin_signature>
800004f4: 00a581a3 sb a0,3(a1)
800004f8: 02301063 bne zero,gp,80000518 <pass>
800004fc <fail>:
800004fc: 0ff0000f fence
80000500: 00018063 beqz gp,80000500 <fail+0x4>
80000504: 00119193 slli gp,gp,0x1
80000508: 0011e193 ori gp,gp,1
8000050c: 05d00893 li a7,93
80000510: 00018513 mv a0,gp
80000514: 00000073 ecall
80000518 <pass>:
80000518: 0ff0000f fence
8000051c: 00100193 li gp,1
80000520: 05d00893 li a7,93
80000524: 00000513 li a0,0
80000528: 00000073 ecall
8000052c: c0001073 unimp
80000530: 0000 unimp
80000532: 0000 unimp
80000534: 0000 unimp
80000536: 0000 unimp
80000538: 0000 unimp
8000053a: 0000 unimp
8000053c: 0000 unimp
8000053e: 0000 unimp
80000540: 0000 unimp
80000542: 0000 unimp
Disassembly of section .data:
80002000 <begin_signature>:
80002000: jal t6,800006fe <pass+0x1e6>
80002001 <tdat2>:
80002001: jal t6,800006ff <pass+0x1e7>
80002002 <tdat3>:
80002002: jal t6,80000700 <pass+0x1e8>
80002003 <tdat4>:
80002003: jal t6,80000701 <pass+0x1e9>
80002004 <tdat5>:
80002004: jal t6,80000702 <pass+0x1ea>
80002005 <tdat6>:
80002005: jal t6,80000703 <pass+0x1eb>
80002006 <tdat7>:
80002006: jal t6,80000704 <pass+0x1ec>
80002007 <tdat8>:
80002007: jal t6,80100015 <_end+0xfe005>
80002008 <tdat9>:
80002008: jal t6,80010008 <_end+0xdff8>
80002009 <tdat10>:
80002009: 000000ef jal ra,80002009 <tdat10>
8000200d: 0000 unimp
8000200f: 00 Address 0x000000008000200f is out of bounds.

View file

@ -0,0 +1,473 @@
rv32ui-p-sh: 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: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-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: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 02028293 addi t0,t0,32 # 80000084 <reset_vector+0x38>
8000006c: 30529073 csrw mtvec,t0
80000070: 800002b7 lui t0,0x80000
80000074: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdfdf>
80000078: 3b029073 csrw pmpaddr0,t0
8000007c: 01f00293 li t0,31
80000080: 3a029073 csrw pmpcfg0,t0
80000084: 00000297 auipc t0,0x0
80000088: 01828293 addi t0,t0,24 # 8000009c <reset_vector+0x50>
8000008c: 30529073 csrw mtvec,t0
80000090: 30205073 csrwi medeleg,0
80000094: 30305073 csrwi mideleg,0
80000098: 30405073 csrwi mie,0
8000009c: 00000193 li gp,0
800000a0: 00000297 auipc t0,0x0
800000a4: f6428293 addi t0,t0,-156 # 80000004 <trap_vector>
800000a8: 30529073 csrw mtvec,t0
800000ac: 00100513 li a0,1
800000b0: 01f51513 slli a0,a0,0x1f
800000b4: 00054c63 bltz a0,800000cc <reset_vector+0x80>
800000b8: 0ff0000f fence
800000bc: 00100193 li gp,1
800000c0: 05d00893 li a7,93
800000c4: 00000513 li a0,0
800000c8: 00000073 ecall
800000cc: 80000297 auipc t0,0x80000
800000d0: f3428293 addi t0,t0,-204 # 0 <_start-0x80000000>
800000d4: 00028e63 beqz t0,800000f0 <reset_vector+0xa4>
800000d8: 10529073 csrw stvec,t0
800000dc: 0000b2b7 lui t0,0xb
800000e0: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000e4: 30229073 csrw medeleg,t0
800000e8: 30202373 csrr t1,medeleg
800000ec: f46298e3 bne t0,t1,8000003c <handle_exception>
800000f0: 30005073 csrwi mstatus,0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <test_2>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108 <test_2>:
80000108: 00002097 auipc ra,0x2
8000010c: ef808093 addi ra,ra,-264 # 80002000 <begin_signature>
80000110: 0aa00113 li sp,170
80000114: 00209023 sh sp,0(ra)
80000118: 00009703 lh a4,0(ra)
8000011c: 0aa00e93 li t4,170
80000120: 00200193 li gp,2
80000124: 45d71e63 bne a4,t4,80000580 <fail>
80000128 <test_3>:
80000128: 00002097 auipc ra,0x2
8000012c: ed808093 addi ra,ra,-296 # 80002000 <begin_signature>
80000130: ffffb137 lui sp,0xffffb
80000134: a0010113 addi sp,sp,-1536 # ffffaa00 <_end+0x7fff89e0>
80000138: 00209123 sh sp,2(ra)
8000013c: 00209703 lh a4,2(ra)
80000140: ffffbeb7 lui t4,0xffffb
80000144: a00e8e93 addi t4,t4,-1536 # ffffaa00 <_end+0x7fff89e0>
80000148: 00300193 li gp,3
8000014c: 43d71a63 bne a4,t4,80000580 <fail>
80000150 <test_4>:
80000150: 00002097 auipc ra,0x2
80000154: eb008093 addi ra,ra,-336 # 80002000 <begin_signature>
80000158: beef1137 lui sp,0xbeef1
8000015c: aa010113 addi sp,sp,-1376 # beef0aa0 <_end+0x3eeeea80>
80000160: 00209223 sh sp,4(ra)
80000164: 0040a703 lw a4,4(ra)
80000168: beef1eb7 lui t4,0xbeef1
8000016c: aa0e8e93 addi t4,t4,-1376 # beef0aa0 <_end+0x3eeeea80>
80000170: 00400193 li gp,4
80000174: 41d71663 bne a4,t4,80000580 <fail>
80000178 <test_5>:
80000178: 00002097 auipc ra,0x2
8000017c: e8808093 addi ra,ra,-376 # 80002000 <begin_signature>
80000180: ffffa137 lui sp,0xffffa
80000184: 00a10113 addi sp,sp,10 # ffffa00a <_end+0x7fff7fea>
80000188: 00209323 sh sp,6(ra)
8000018c: 00609703 lh a4,6(ra)
80000190: ffffaeb7 lui t4,0xffffa
80000194: 00ae8e93 addi t4,t4,10 # ffffa00a <_end+0x7fff7fea>
80000198: 00500193 li gp,5
8000019c: 3fd71263 bne a4,t4,80000580 <fail>
800001a0 <test_6>:
800001a0: 00002097 auipc ra,0x2
800001a4: e6e08093 addi ra,ra,-402 # 8000200e <tdat8>
800001a8: 0aa00113 li sp,170
800001ac: fe209d23 sh sp,-6(ra)
800001b0: ffa09703 lh a4,-6(ra)
800001b4: 0aa00e93 li t4,170
800001b8: 00600193 li gp,6
800001bc: 3dd71263 bne a4,t4,80000580 <fail>
800001c0 <test_7>:
800001c0: 00002097 auipc ra,0x2
800001c4: e4e08093 addi ra,ra,-434 # 8000200e <tdat8>
800001c8: ffffb137 lui sp,0xffffb
800001cc: a0010113 addi sp,sp,-1536 # ffffaa00 <_end+0x7fff89e0>
800001d0: fe209e23 sh sp,-4(ra)
800001d4: ffc09703 lh a4,-4(ra)
800001d8: ffffbeb7 lui t4,0xffffb
800001dc: a00e8e93 addi t4,t4,-1536 # ffffaa00 <_end+0x7fff89e0>
800001e0: 00700193 li gp,7
800001e4: 39d71e63 bne a4,t4,80000580 <fail>
800001e8 <test_8>:
800001e8: 00002097 auipc ra,0x2
800001ec: e2608093 addi ra,ra,-474 # 8000200e <tdat8>
800001f0: 00001137 lui sp,0x1
800001f4: aa010113 addi sp,sp,-1376 # aa0 <_start-0x7ffff560>
800001f8: fe209f23 sh sp,-2(ra)
800001fc: ffe09703 lh a4,-2(ra)
80000200: 00001eb7 lui t4,0x1
80000204: aa0e8e93 addi t4,t4,-1376 # aa0 <_start-0x7ffff560>
80000208: 00800193 li gp,8
8000020c: 37d71a63 bne a4,t4,80000580 <fail>
80000210 <test_9>:
80000210: 00002097 auipc ra,0x2
80000214: dfe08093 addi ra,ra,-514 # 8000200e <tdat8>
80000218: ffffa137 lui sp,0xffffa
8000021c: 00a10113 addi sp,sp,10 # ffffa00a <_end+0x7fff7fea>
80000220: 00209023 sh sp,0(ra)
80000224: 00009703 lh a4,0(ra)
80000228: ffffaeb7 lui t4,0xffffa
8000022c: 00ae8e93 addi t4,t4,10 # ffffa00a <_end+0x7fff7fea>
80000230: 00900193 li gp,9
80000234: 35d71663 bne a4,t4,80000580 <fail>
80000238 <test_10>:
80000238: 00002097 auipc ra,0x2
8000023c: dd808093 addi ra,ra,-552 # 80002010 <tdat9>
80000240: 12345137 lui sp,0x12345
80000244: 67810113 addi sp,sp,1656 # 12345678 <_start-0x6dcba988>
80000248: fe008213 addi tp,ra,-32
8000024c: 02221023 sh sp,32(tp) # 20 <_start-0x7fffffe0>
80000250: 00009283 lh t0,0(ra)
80000254: 00005eb7 lui t4,0x5
80000258: 678e8e93 addi t4,t4,1656 # 5678 <_start-0x7fffa988>
8000025c: 00a00193 li gp,10
80000260: 33d29063 bne t0,t4,80000580 <fail>
80000264 <test_11>:
80000264: 00002097 auipc ra,0x2
80000268: dac08093 addi ra,ra,-596 # 80002010 <tdat9>
8000026c: 00003137 lui sp,0x3
80000270: 09810113 addi sp,sp,152 # 3098 <_start-0x7fffcf68>
80000274: ffb08093 addi ra,ra,-5
80000278: 002093a3 sh sp,7(ra)
8000027c: 00002217 auipc tp,0x2
80000280: d9620213 addi tp,tp,-618 # 80002012 <tdat10>
80000284: 00021283 lh t0,0(tp) # 0 <_start-0x80000000>
80000288: 00003eb7 lui t4,0x3
8000028c: 098e8e93 addi t4,t4,152 # 3098 <_start-0x7fffcf68>
80000290: 00b00193 li gp,11
80000294: 2fd29663 bne t0,t4,80000580 <fail>
80000298 <test_12>:
80000298: 00c00193 li gp,12
8000029c: 00000213 li tp,0
800002a0: ffffd0b7 lui ra,0xffffd
800002a4: cdd08093 addi ra,ra,-803 # ffffccdd <_end+0x7fffacbd>
800002a8: 00002117 auipc sp,0x2
800002ac: d5810113 addi sp,sp,-680 # 80002000 <begin_signature>
800002b0: 00111023 sh ra,0(sp)
800002b4: 00011703 lh a4,0(sp)
800002b8: ffffdeb7 lui t4,0xffffd
800002bc: cdde8e93 addi t4,t4,-803 # ffffccdd <_end+0x7fffacbd>
800002c0: 2dd71063 bne a4,t4,80000580 <fail>
800002c4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002c8: 00200293 li t0,2
800002cc: fc521ae3 bne tp,t0,800002a0 <test_12+0x8>
800002d0 <test_13>:
800002d0: 00d00193 li gp,13
800002d4: 00000213 li tp,0
800002d8: ffffc0b7 lui ra,0xffffc
800002dc: ccd08093 addi ra,ra,-819 # ffffbccd <_end+0x7fff9cad>
800002e0: 00002117 auipc sp,0x2
800002e4: d2010113 addi sp,sp,-736 # 80002000 <begin_signature>
800002e8: 00000013 nop
800002ec: 00111123 sh ra,2(sp)
800002f0: 00211703 lh a4,2(sp)
800002f4: ffffceb7 lui t4,0xffffc
800002f8: ccde8e93 addi t4,t4,-819 # ffffbccd <_end+0x7fff9cad>
800002fc: 29d71263 bne a4,t4,80000580 <fail>
80000300: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000304: 00200293 li t0,2
80000308: fc5218e3 bne tp,t0,800002d8 <test_13+0x8>
8000030c <test_14>:
8000030c: 00e00193 li gp,14
80000310: 00000213 li tp,0
80000314: ffffc0b7 lui ra,0xffffc
80000318: bcc08093 addi ra,ra,-1076 # ffffbbcc <_end+0x7fff9bac>
8000031c: 00002117 auipc sp,0x2
80000320: ce410113 addi sp,sp,-796 # 80002000 <begin_signature>
80000324: 00000013 nop
80000328: 00000013 nop
8000032c: 00111223 sh ra,4(sp)
80000330: 00411703 lh a4,4(sp)
80000334: ffffceb7 lui t4,0xffffc
80000338: bcce8e93 addi t4,t4,-1076 # ffffbbcc <_end+0x7fff9bac>
8000033c: 25d71263 bne a4,t4,80000580 <fail>
80000340: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000344: 00200293 li t0,2
80000348: fc5216e3 bne tp,t0,80000314 <test_14+0x8>
8000034c <test_15>:
8000034c: 00f00193 li gp,15
80000350: 00000213 li tp,0
80000354: ffffb0b7 lui ra,0xffffb
80000358: bbc08093 addi ra,ra,-1092 # ffffabbc <_end+0x7fff8b9c>
8000035c: 00000013 nop
80000360: 00002117 auipc sp,0x2
80000364: ca010113 addi sp,sp,-864 # 80002000 <begin_signature>
80000368: 00111323 sh ra,6(sp)
8000036c: 00611703 lh a4,6(sp)
80000370: ffffbeb7 lui t4,0xffffb
80000374: bbce8e93 addi t4,t4,-1092 # ffffabbc <_end+0x7fff8b9c>
80000378: 21d71463 bne a4,t4,80000580 <fail>
8000037c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000380: 00200293 li t0,2
80000384: fc5218e3 bne tp,t0,80000354 <test_15+0x8>
80000388 <test_16>:
80000388: 01000193 li gp,16
8000038c: 00000213 li tp,0
80000390: ffffb0b7 lui ra,0xffffb
80000394: abb08093 addi ra,ra,-1349 # ffffaabb <_end+0x7fff8a9b>
80000398: 00000013 nop
8000039c: 00002117 auipc sp,0x2
800003a0: c6410113 addi sp,sp,-924 # 80002000 <begin_signature>
800003a4: 00000013 nop
800003a8: 00111423 sh ra,8(sp)
800003ac: 00811703 lh a4,8(sp)
800003b0: ffffbeb7 lui t4,0xffffb
800003b4: abbe8e93 addi t4,t4,-1349 # ffffaabb <_end+0x7fff8a9b>
800003b8: 1dd71463 bne a4,t4,80000580 <fail>
800003bc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800003c0: 00200293 li t0,2
800003c4: fc5216e3 bne tp,t0,80000390 <test_16+0x8>
800003c8 <test_17>:
800003c8: 01100193 li gp,17
800003cc: 00000213 li tp,0
800003d0: ffffe0b7 lui ra,0xffffe
800003d4: aab08093 addi ra,ra,-1365 # ffffdaab <_end+0x7fffba8b>
800003d8: 00000013 nop
800003dc: 00000013 nop
800003e0: 00002117 auipc sp,0x2
800003e4: c2010113 addi sp,sp,-992 # 80002000 <begin_signature>
800003e8: 00111523 sh ra,10(sp)
800003ec: 00a11703 lh a4,10(sp)
800003f0: ffffeeb7 lui t4,0xffffe
800003f4: aabe8e93 addi t4,t4,-1365 # ffffdaab <_end+0x7fffba8b>
800003f8: 19d71463 bne a4,t4,80000580 <fail>
800003fc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000400: 00200293 li t0,2
80000404: fc5216e3 bne tp,t0,800003d0 <test_17+0x8>
80000408 <test_18>:
80000408: 01200193 li gp,18
8000040c: 00000213 li tp,0
80000410: 00002117 auipc sp,0x2
80000414: bf010113 addi sp,sp,-1040 # 80002000 <begin_signature>
80000418: 000020b7 lui ra,0x2
8000041c: 23308093 addi ra,ra,563 # 2233 <_start-0x7fffddcd>
80000420: 00111023 sh ra,0(sp)
80000424: 00011703 lh a4,0(sp)
80000428: 00002eb7 lui t4,0x2
8000042c: 233e8e93 addi t4,t4,563 # 2233 <_start-0x7fffddcd>
80000430: 15d71863 bne a4,t4,80000580 <fail>
80000434: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000438: 00200293 li t0,2
8000043c: fc521ae3 bne tp,t0,80000410 <test_18+0x8>
80000440 <test_19>:
80000440: 01300193 li gp,19
80000444: 00000213 li tp,0
80000448: 00002117 auipc sp,0x2
8000044c: bb810113 addi sp,sp,-1096 # 80002000 <begin_signature>
80000450: 000010b7 lui ra,0x1
80000454: 22308093 addi ra,ra,547 # 1223 <_start-0x7fffeddd>
80000458: 00000013 nop
8000045c: 00111123 sh ra,2(sp)
80000460: 00211703 lh a4,2(sp)
80000464: 00001eb7 lui t4,0x1
80000468: 223e8e93 addi t4,t4,547 # 1223 <_start-0x7fffeddd>
8000046c: 11d71a63 bne a4,t4,80000580 <fail>
80000470: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000474: 00200293 li t0,2
80000478: fc5218e3 bne tp,t0,80000448 <test_19+0x8>
8000047c <test_20>:
8000047c: 01400193 li gp,20
80000480: 00000213 li tp,0
80000484: 00002117 auipc sp,0x2
80000488: b7c10113 addi sp,sp,-1156 # 80002000 <begin_signature>
8000048c: 000010b7 lui ra,0x1
80000490: 12208093 addi ra,ra,290 # 1122 <_start-0x7fffeede>
80000494: 00000013 nop
80000498: 00000013 nop
8000049c: 00111223 sh ra,4(sp)
800004a0: 00411703 lh a4,4(sp)
800004a4: 00001eb7 lui t4,0x1
800004a8: 122e8e93 addi t4,t4,290 # 1122 <_start-0x7fffeede>
800004ac: 0dd71a63 bne a4,t4,80000580 <fail>
800004b0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800004b4: 00200293 li t0,2
800004b8: fc5216e3 bne tp,t0,80000484 <test_20+0x8>
800004bc <test_21>:
800004bc: 01500193 li gp,21
800004c0: 00000213 li tp,0
800004c4: 00002117 auipc sp,0x2
800004c8: b3c10113 addi sp,sp,-1220 # 80002000 <begin_signature>
800004cc: 00000013 nop
800004d0: 11200093 li ra,274
800004d4: 00111323 sh ra,6(sp)
800004d8: 00611703 lh a4,6(sp)
800004dc: 11200e93 li t4,274
800004e0: 0bd71063 bne a4,t4,80000580 <fail>
800004e4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800004e8: 00200293 li t0,2
800004ec: fc521ce3 bne tp,t0,800004c4 <test_21+0x8>
800004f0 <test_22>:
800004f0: 01600193 li gp,22
800004f4: 00000213 li tp,0
800004f8: 00002117 auipc sp,0x2
800004fc: b0810113 addi sp,sp,-1272 # 80002000 <begin_signature>
80000500: 00000013 nop
80000504: 01100093 li ra,17
80000508: 00000013 nop
8000050c: 00111423 sh ra,8(sp)
80000510: 00811703 lh a4,8(sp)
80000514: 01100e93 li t4,17
80000518: 07d71463 bne a4,t4,80000580 <fail>
8000051c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000520: 00200293 li t0,2
80000524: fc521ae3 bne tp,t0,800004f8 <test_22+0x8>
80000528 <test_23>:
80000528: 01700193 li gp,23
8000052c: 00000213 li tp,0
80000530: 00002117 auipc sp,0x2
80000534: ad010113 addi sp,sp,-1328 # 80002000 <begin_signature>
80000538: 00000013 nop
8000053c: 00000013 nop
80000540: 000030b7 lui ra,0x3
80000544: 00108093 addi ra,ra,1 # 3001 <_start-0x7fffcfff>
80000548: 00111523 sh ra,10(sp)
8000054c: 00a11703 lh a4,10(sp)
80000550: 00003eb7 lui t4,0x3
80000554: 001e8e93 addi t4,t4,1 # 3001 <_start-0x7fffcfff>
80000558: 03d71463 bne a4,t4,80000580 <fail>
8000055c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000560: 00200293 li t0,2
80000564: fc5216e3 bne tp,t0,80000530 <test_23+0x8>
80000568: 0000c537 lui a0,0xc
8000056c: eef50513 addi a0,a0,-273 # beef <_start-0x7fff4111>
80000570: 00002597 auipc a1,0x2
80000574: a9058593 addi a1,a1,-1392 # 80002000 <begin_signature>
80000578: 00a59323 sh a0,6(a1)
8000057c: 02301063 bne zero,gp,8000059c <pass>
80000580 <fail>:
80000580: 0ff0000f fence
80000584: 00018063 beqz gp,80000584 <fail+0x4>
80000588: 00119193 slli gp,gp,0x1
8000058c: 0011e193 ori gp,gp,1
80000590: 05d00893 li a7,93
80000594: 00018513 mv a0,gp
80000598: 00000073 ecall
8000059c <pass>:
8000059c: 0ff0000f fence
800005a0: 00100193 li gp,1
800005a4: 05d00893 li a7,93
800005a8: 00000513 li a0,0
800005ac: 00000073 ecall
800005b0: c0001073 unimp
800005b4: 0000 unimp
800005b6: 0000 unimp
800005b8: 0000 unimp
800005ba: 0000 unimp
800005bc: 0000 unimp
800005be: 0000 unimp
800005c0: 0000 unimp
800005c2: 0000 unimp
Disassembly of section .data:
80002000 <begin_signature>:
80002000: jal t4,7fffd3ee <_start-0x2c12>
80002002 <tdat2>:
80002002: jal t4,7fffd3f0 <_start-0x2c10>
80002004 <tdat3>:
80002004: jal t4,7fffd3f2 <_start-0x2c0e>
80002006 <tdat4>:
80002006: jal t4,7fffd3f4 <_start-0x2c0c>
80002008 <tdat5>:
80002008: jal t4,7fffd3f6 <_start-0x2c0a>
8000200a <tdat6>:
8000200a: jal t4,7fffd3f8 <_start-0x2c08>
8000200c <tdat7>:
8000200c: jal t4,7fffd3fa <_start-0x2c06>
8000200e <tdat8>:
8000200e: jal t4,7fffd3fc <_start-0x2c04>
80002010 <tdat9>:
80002010: jal t4,7fffd3fe <_start-0x2c02>
80002012 <tdat10>:
80002012: 0000beef jal t4,8000d012 <_end+0xaff2>
80002016: 0000 unimp
80002018: 0000 unimp
8000201a: 0000 unimp
8000201c: 0000 unimp
8000201e: 0000 unimp

View file

@ -0,0 +1,105 @@
rv32ui-p-simple: 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: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-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: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 02028293 addi t0,t0,32 # 80000084 <reset_vector+0x38>
8000006c: 30529073 csrw mtvec,t0
80000070: 800002b7 lui t0,0x80000
80000074: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdfff>
80000078: 3b029073 csrw pmpaddr0,t0
8000007c: 01f00293 li t0,31
80000080: 3a029073 csrw pmpcfg0,t0
80000084: 00000297 auipc t0,0x0
80000088: 01828293 addi t0,t0,24 # 8000009c <reset_vector+0x50>
8000008c: 30529073 csrw mtvec,t0
80000090: 30205073 csrwi medeleg,0
80000094: 30305073 csrwi mideleg,0
80000098: 30405073 csrwi mie,0
8000009c: 00000193 li gp,0
800000a0: 00000297 auipc t0,0x0
800000a4: f6428293 addi t0,t0,-156 # 80000004 <trap_vector>
800000a8: 30529073 csrw mtvec,t0
800000ac: 00100513 li a0,1
800000b0: 01f51513 slli a0,a0,0x1f
800000b4: 00054c63 bltz a0,800000cc <reset_vector+0x80>
800000b8: 0ff0000f fence
800000bc: 00100193 li gp,1
800000c0: 05d00893 li a7,93
800000c4: 00000513 li a0,0
800000c8: 00000073 ecall
800000cc: 80000297 auipc t0,0x80000
800000d0: f3428293 addi t0,t0,-204 # 0 <_start-0x80000000>
800000d4: 00028e63 beqz t0,800000f0 <reset_vector+0xa4>
800000d8: 10529073 csrw stvec,t0
800000dc: 0000b2b7 lui t0,0xb
800000e0: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000e4: 30229073 csrw medeleg,t0
800000e8: 30202373 csrr t1,medeleg
800000ec: f46298e3 bne t0,t1,8000003c <handle_exception>
800000f0: 30005073 csrwi mstatus,0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <reset_vector+0xbc>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108: 0ff0000f fence
8000010c: 00100193 li gp,1
80000110: 05d00893 li a7,93
80000114: 00000513 li a0,0
80000118: 00000073 ecall
8000011c: c0001073 unimp
80000120: 0000 unimp
80000122: 0000 unimp
80000124: 0000 unimp
80000126: 0000 unimp
80000128: 0000 unimp
8000012a: 0000 unimp
8000012c: 0000 unimp
8000012e: 0000 unimp
80000130: 0000 unimp
80000132: 0000 unimp
80000134: 0000 unimp
80000136: 0000 unimp
80000138: 0000 unimp
8000013a: 0000 unimp
8000013c: 0000 unimp
8000013e: 0000 unimp
80000140: 0000 unimp
80000142: 0000 unimp

View file

@ -0,0 +1,548 @@
rv32ui-p-sll: 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: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-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: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 02028293 addi t0,t0,32 # 80000084 <reset_vector+0x38>
8000006c: 30529073 csrw mtvec,t0
80000070: 800002b7 lui t0,0x80000
80000074: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdfff>
80000078: 3b029073 csrw pmpaddr0,t0
8000007c: 01f00293 li t0,31
80000080: 3a029073 csrw pmpcfg0,t0
80000084: 00000297 auipc t0,0x0
80000088: 01828293 addi t0,t0,24 # 8000009c <reset_vector+0x50>
8000008c: 30529073 csrw mtvec,t0
80000090: 30205073 csrwi medeleg,0
80000094: 30305073 csrwi mideleg,0
80000098: 30405073 csrwi mie,0
8000009c: 00000193 li gp,0
800000a0: 00000297 auipc t0,0x0
800000a4: f6428293 addi t0,t0,-156 # 80000004 <trap_vector>
800000a8: 30529073 csrw mtvec,t0
800000ac: 00100513 li a0,1
800000b0: 01f51513 slli a0,a0,0x1f
800000b4: 00054c63 bltz a0,800000cc <reset_vector+0x80>
800000b8: 0ff0000f fence
800000bc: 00100193 li gp,1
800000c0: 05d00893 li a7,93
800000c4: 00000513 li a0,0
800000c8: 00000073 ecall
800000cc: 80000297 auipc t0,0x80000
800000d0: f3428293 addi t0,t0,-204 # 0 <_start-0x80000000>
800000d4: 00028e63 beqz t0,800000f0 <reset_vector+0xa4>
800000d8: 10529073 csrw stvec,t0
800000dc: 0000b2b7 lui t0,0xb
800000e0: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000e4: 30229073 csrw medeleg,t0
800000e8: 30202373 csrr t1,medeleg
800000ec: f46298e3 bne t0,t1,8000003c <handle_exception>
800000f0: 30005073 csrwi mstatus,0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <test_2>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108 <test_2>:
80000108: 00100093 li ra,1
8000010c: 00000113 li sp,0
80000110: 00209733 sll a4,ra,sp
80000114: 00100e93 li t4,1
80000118: 00200193 li gp,2
8000011c: 53d71e63 bne a4,t4,80000658 <fail>
80000120 <test_3>:
80000120: 00100093 li ra,1
80000124: 00100113 li sp,1
80000128: 00209733 sll a4,ra,sp
8000012c: 00200e93 li t4,2
80000130: 00300193 li gp,3
80000134: 53d71263 bne a4,t4,80000658 <fail>
80000138 <test_4>:
80000138: 00100093 li ra,1
8000013c: 00700113 li sp,7
80000140: 00209733 sll a4,ra,sp
80000144: 08000e93 li t4,128
80000148: 00400193 li gp,4
8000014c: 51d71663 bne a4,t4,80000658 <fail>
80000150 <test_5>:
80000150: 00100093 li ra,1
80000154: 00e00113 li sp,14
80000158: 00209733 sll a4,ra,sp
8000015c: 00004eb7 lui t4,0x4
80000160: 00500193 li gp,5
80000164: 4fd71a63 bne a4,t4,80000658 <fail>
80000168 <test_6>:
80000168: 00100093 li ra,1
8000016c: 01f00113 li sp,31
80000170: 00209733 sll a4,ra,sp
80000174: 80000eb7 lui t4,0x80000
80000178: 00600193 li gp,6
8000017c: 4dd71e63 bne a4,t4,80000658 <fail>
80000180 <test_7>:
80000180: fff00093 li ra,-1
80000184: 00000113 li sp,0
80000188: 00209733 sll a4,ra,sp
8000018c: fff00e93 li t4,-1
80000190: 00700193 li gp,7
80000194: 4dd71263 bne a4,t4,80000658 <fail>
80000198 <test_8>:
80000198: fff00093 li ra,-1
8000019c: 00100113 li sp,1
800001a0: 00209733 sll a4,ra,sp
800001a4: ffe00e93 li t4,-2
800001a8: 00800193 li gp,8
800001ac: 4bd71663 bne a4,t4,80000658 <fail>
800001b0 <test_9>:
800001b0: fff00093 li ra,-1
800001b4: 00700113 li sp,7
800001b8: 00209733 sll a4,ra,sp
800001bc: f8000e93 li t4,-128
800001c0: 00900193 li gp,9
800001c4: 49d71a63 bne a4,t4,80000658 <fail>
800001c8 <test_10>:
800001c8: fff00093 li ra,-1
800001cc: 00e00113 li sp,14
800001d0: 00209733 sll a4,ra,sp
800001d4: ffffceb7 lui t4,0xffffc
800001d8: 00a00193 li gp,10
800001dc: 47d71e63 bne a4,t4,80000658 <fail>
800001e0 <test_11>:
800001e0: fff00093 li ra,-1
800001e4: 01f00113 li sp,31
800001e8: 00209733 sll a4,ra,sp
800001ec: 80000eb7 lui t4,0x80000
800001f0: 00b00193 li gp,11
800001f4: 47d71263 bne a4,t4,80000658 <fail>
800001f8 <test_12>:
800001f8: 212120b7 lui ra,0x21212
800001fc: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
80000200: 00000113 li sp,0
80000204: 00209733 sll a4,ra,sp
80000208: 21212eb7 lui t4,0x21212
8000020c: 121e8e93 addi t4,t4,289 # 21212121 <_start-0x5edededf>
80000210: 00c00193 li gp,12
80000214: 45d71263 bne a4,t4,80000658 <fail>
80000218 <test_13>:
80000218: 212120b7 lui ra,0x21212
8000021c: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
80000220: 00100113 li sp,1
80000224: 00209733 sll a4,ra,sp
80000228: 42424eb7 lui t4,0x42424
8000022c: 242e8e93 addi t4,t4,578 # 42424242 <_start-0x3dbdbdbe>
80000230: 00d00193 li gp,13
80000234: 43d71263 bne a4,t4,80000658 <fail>
80000238 <test_14>:
80000238: 212120b7 lui ra,0x21212
8000023c: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
80000240: 00700113 li sp,7
80000244: 00209733 sll a4,ra,sp
80000248: 90909eb7 lui t4,0x90909
8000024c: 080e8e93 addi t4,t4,128 # 90909080 <_end+0x10907080>
80000250: 00e00193 li gp,14
80000254: 41d71263 bne a4,t4,80000658 <fail>
80000258 <test_15>:
80000258: 212120b7 lui ra,0x21212
8000025c: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
80000260: 00e00113 li sp,14
80000264: 00209733 sll a4,ra,sp
80000268: 48484eb7 lui t4,0x48484
8000026c: 00f00193 li gp,15
80000270: 3fd71463 bne a4,t4,80000658 <fail>
80000274 <test_16>:
80000274: 212120b7 lui ra,0x21212
80000278: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
8000027c: 01f00113 li sp,31
80000280: 00209733 sll a4,ra,sp
80000284: 80000eb7 lui t4,0x80000
80000288: 01000193 li gp,16
8000028c: 3dd71663 bne a4,t4,80000658 <fail>
80000290 <test_17>:
80000290: 212120b7 lui ra,0x21212
80000294: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
80000298: fc000113 li sp,-64
8000029c: 00209733 sll a4,ra,sp
800002a0: 21212eb7 lui t4,0x21212
800002a4: 121e8e93 addi t4,t4,289 # 21212121 <_start-0x5edededf>
800002a8: 01100193 li gp,17
800002ac: 3bd71663 bne a4,t4,80000658 <fail>
800002b0 <test_18>:
800002b0: 212120b7 lui ra,0x21212
800002b4: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
800002b8: fc100113 li sp,-63
800002bc: 00209733 sll a4,ra,sp
800002c0: 42424eb7 lui t4,0x42424
800002c4: 242e8e93 addi t4,t4,578 # 42424242 <_start-0x3dbdbdbe>
800002c8: 01200193 li gp,18
800002cc: 39d71663 bne a4,t4,80000658 <fail>
800002d0 <test_19>:
800002d0: 212120b7 lui ra,0x21212
800002d4: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
800002d8: fc700113 li sp,-57
800002dc: 00209733 sll a4,ra,sp
800002e0: 90909eb7 lui t4,0x90909
800002e4: 080e8e93 addi t4,t4,128 # 90909080 <_end+0x10907080>
800002e8: 01300193 li gp,19
800002ec: 37d71663 bne a4,t4,80000658 <fail>
800002f0 <test_20>:
800002f0: 212120b7 lui ra,0x21212
800002f4: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
800002f8: fce00113 li sp,-50
800002fc: 00209733 sll a4,ra,sp
80000300: 48484eb7 lui t4,0x48484
80000304: 01400193 li gp,20
80000308: 35d71863 bne a4,t4,80000658 <fail>
8000030c <test_22>:
8000030c: 00100093 li ra,1
80000310: 00700113 li sp,7
80000314: 002090b3 sll ra,ra,sp
80000318: 08000e93 li t4,128
8000031c: 01600193 li gp,22
80000320: 33d09c63 bne ra,t4,80000658 <fail>
80000324 <test_23>:
80000324: 00100093 li ra,1
80000328: 00e00113 li sp,14
8000032c: 00209133 sll sp,ra,sp
80000330: 00004eb7 lui t4,0x4
80000334: 01700193 li gp,23
80000338: 33d11063 bne sp,t4,80000658 <fail>
8000033c <test_24>:
8000033c: 00300093 li ra,3
80000340: 001090b3 sll ra,ra,ra
80000344: 01800e93 li t4,24
80000348: 01800193 li gp,24
8000034c: 31d09663 bne ra,t4,80000658 <fail>
80000350 <test_25>:
80000350: 00000213 li tp,0
80000354: 00100093 li ra,1
80000358: 00700113 li sp,7
8000035c: 00209733 sll a4,ra,sp
80000360: 00070313 mv t1,a4
80000364: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000368: 00200293 li t0,2
8000036c: fe5214e3 bne tp,t0,80000354 <test_25+0x4>
80000370: 08000e93 li t4,128
80000374: 01900193 li gp,25
80000378: 2fd31063 bne t1,t4,80000658 <fail>
8000037c <test_26>:
8000037c: 00000213 li tp,0
80000380: 00100093 li ra,1
80000384: 00e00113 li sp,14
80000388: 00209733 sll a4,ra,sp
8000038c: 00000013 nop
80000390: 00070313 mv t1,a4
80000394: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000398: 00200293 li t0,2
8000039c: fe5212e3 bne tp,t0,80000380 <test_26+0x4>
800003a0: 00004eb7 lui t4,0x4
800003a4: 01a00193 li gp,26
800003a8: 2bd31863 bne t1,t4,80000658 <fail>
800003ac <test_27>:
800003ac: 00000213 li tp,0
800003b0: 00100093 li ra,1
800003b4: 01f00113 li sp,31
800003b8: 00209733 sll a4,ra,sp
800003bc: 00000013 nop
800003c0: 00000013 nop
800003c4: 00070313 mv t1,a4
800003c8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800003cc: 00200293 li t0,2
800003d0: fe5210e3 bne tp,t0,800003b0 <test_27+0x4>
800003d4: 80000eb7 lui t4,0x80000
800003d8: 01b00193 li gp,27
800003dc: 27d31e63 bne t1,t4,80000658 <fail>
800003e0 <test_28>:
800003e0: 00000213 li tp,0
800003e4: 00100093 li ra,1
800003e8: 00700113 li sp,7
800003ec: 00209733 sll a4,ra,sp
800003f0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800003f4: 00200293 li t0,2
800003f8: fe5216e3 bne tp,t0,800003e4 <test_28+0x4>
800003fc: 08000e93 li t4,128
80000400: 01c00193 li gp,28
80000404: 25d71a63 bne a4,t4,80000658 <fail>
80000408 <test_29>:
80000408: 00000213 li tp,0
8000040c: 00100093 li ra,1
80000410: 00e00113 li sp,14
80000414: 00000013 nop
80000418: 00209733 sll a4,ra,sp
8000041c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000420: 00200293 li t0,2
80000424: fe5214e3 bne tp,t0,8000040c <test_29+0x4>
80000428: 00004eb7 lui t4,0x4
8000042c: 01d00193 li gp,29
80000430: 23d71463 bne a4,t4,80000658 <fail>
80000434 <test_30>:
80000434: 00000213 li tp,0
80000438: 00100093 li ra,1
8000043c: 01f00113 li sp,31
80000440: 00000013 nop
80000444: 00000013 nop
80000448: 00209733 sll a4,ra,sp
8000044c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000450: 00200293 li t0,2
80000454: fe5212e3 bne tp,t0,80000438 <test_30+0x4>
80000458: 80000eb7 lui t4,0x80000
8000045c: 01e00193 li gp,30
80000460: 1fd71c63 bne a4,t4,80000658 <fail>
80000464 <test_31>:
80000464: 00000213 li tp,0
80000468: 00100093 li ra,1
8000046c: 00000013 nop
80000470: 00700113 li sp,7
80000474: 00209733 sll a4,ra,sp
80000478: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000047c: 00200293 li t0,2
80000480: fe5214e3 bne tp,t0,80000468 <test_31+0x4>
80000484: 08000e93 li t4,128
80000488: 01f00193 li gp,31
8000048c: 1dd71663 bne a4,t4,80000658 <fail>
80000490 <test_32>:
80000490: 00000213 li tp,0
80000494: 00100093 li ra,1
80000498: 00000013 nop
8000049c: 00e00113 li sp,14
800004a0: 00000013 nop
800004a4: 00209733 sll a4,ra,sp
800004a8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800004ac: 00200293 li t0,2
800004b0: fe5212e3 bne tp,t0,80000494 <test_32+0x4>
800004b4: 00004eb7 lui t4,0x4
800004b8: 02000193 li gp,32
800004bc: 19d71e63 bne a4,t4,80000658 <fail>
800004c0 <test_33>:
800004c0: 00000213 li tp,0
800004c4: 00100093 li ra,1
800004c8: 00000013 nop
800004cc: 00000013 nop
800004d0: 01f00113 li sp,31
800004d4: 00209733 sll a4,ra,sp
800004d8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800004dc: 00200293 li t0,2
800004e0: fe5212e3 bne tp,t0,800004c4 <test_33+0x4>
800004e4: 80000eb7 lui t4,0x80000
800004e8: 02100193 li gp,33
800004ec: 17d71663 bne a4,t4,80000658 <fail>
800004f0 <test_34>:
800004f0: 00000213 li tp,0
800004f4: 00700113 li sp,7
800004f8: 00100093 li ra,1
800004fc: 00209733 sll a4,ra,sp
80000500: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000504: 00200293 li t0,2
80000508: fe5216e3 bne tp,t0,800004f4 <test_34+0x4>
8000050c: 08000e93 li t4,128
80000510: 02200193 li gp,34
80000514: 15d71263 bne a4,t4,80000658 <fail>
80000518 <test_35>:
80000518: 00000213 li tp,0
8000051c: 00e00113 li sp,14
80000520: 00100093 li ra,1
80000524: 00000013 nop
80000528: 00209733 sll a4,ra,sp
8000052c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000530: 00200293 li t0,2
80000534: fe5214e3 bne tp,t0,8000051c <test_35+0x4>
80000538: 00004eb7 lui t4,0x4
8000053c: 02300193 li gp,35
80000540: 11d71c63 bne a4,t4,80000658 <fail>
80000544 <test_36>:
80000544: 00000213 li tp,0
80000548: 01f00113 li sp,31
8000054c: 00100093 li ra,1
80000550: 00000013 nop
80000554: 00000013 nop
80000558: 00209733 sll a4,ra,sp
8000055c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000560: 00200293 li t0,2
80000564: fe5212e3 bne tp,t0,80000548 <test_36+0x4>
80000568: 80000eb7 lui t4,0x80000
8000056c: 02400193 li gp,36
80000570: 0fd71463 bne a4,t4,80000658 <fail>
80000574 <test_37>:
80000574: 00000213 li tp,0
80000578: 00700113 li sp,7
8000057c: 00000013 nop
80000580: 00100093 li ra,1
80000584: 00209733 sll a4,ra,sp
80000588: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000058c: 00200293 li t0,2
80000590: fe5214e3 bne tp,t0,80000578 <test_37+0x4>
80000594: 08000e93 li t4,128
80000598: 02500193 li gp,37
8000059c: 0bd71e63 bne a4,t4,80000658 <fail>
800005a0 <test_38>:
800005a0: 00000213 li tp,0
800005a4: 00e00113 li sp,14
800005a8: 00000013 nop
800005ac: 00100093 li ra,1
800005b0: 00000013 nop
800005b4: 00209733 sll a4,ra,sp
800005b8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800005bc: 00200293 li t0,2
800005c0: fe5212e3 bne tp,t0,800005a4 <test_38+0x4>
800005c4: 00004eb7 lui t4,0x4
800005c8: 02600193 li gp,38
800005cc: 09d71663 bne a4,t4,80000658 <fail>
800005d0 <test_39>:
800005d0: 00000213 li tp,0
800005d4: 01f00113 li sp,31
800005d8: 00000013 nop
800005dc: 00000013 nop
800005e0: 00100093 li ra,1
800005e4: 00209733 sll a4,ra,sp
800005e8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800005ec: 00200293 li t0,2
800005f0: fe5212e3 bne tp,t0,800005d4 <test_39+0x4>
800005f4: 80000eb7 lui t4,0x80000
800005f8: 02700193 li gp,39
800005fc: 05d71e63 bne a4,t4,80000658 <fail>
80000600 <test_40>:
80000600: 00f00093 li ra,15
80000604: 00101133 sll sp,zero,ra
80000608: 00000e93 li t4,0
8000060c: 02800193 li gp,40
80000610: 05d11463 bne sp,t4,80000658 <fail>
80000614 <test_41>:
80000614: 02000093 li ra,32
80000618: 00009133 sll sp,ra,zero
8000061c: 02000e93 li t4,32
80000620: 02900193 li gp,41
80000624: 03d11a63 bne sp,t4,80000658 <fail>
80000628 <test_42>:
80000628: 000010b3 sll ra,zero,zero
8000062c: 00000e93 li t4,0
80000630: 02a00193 li gp,42
80000634: 03d09263 bne ra,t4,80000658 <fail>
80000638 <test_43>:
80000638: 40000093 li ra,1024
8000063c: 00001137 lui sp,0x1
80000640: 80010113 addi sp,sp,-2048 # 800 <_start-0x7ffff800>
80000644: 00209033 sll zero,ra,sp
80000648: 00000e93 li t4,0
8000064c: 02b00193 li gp,43
80000650: 01d01463 bne zero,t4,80000658 <fail>
80000654: 02301063 bne zero,gp,80000674 <pass>
80000658 <fail>:
80000658: 0ff0000f fence
8000065c: 00018063 beqz gp,8000065c <fail+0x4>
80000660: 00119193 slli gp,gp,0x1
80000664: 0011e193 ori gp,gp,1
80000668: 05d00893 li a7,93
8000066c: 00018513 mv a0,gp
80000670: 00000073 ecall
80000674 <pass>:
80000674: 0ff0000f fence
80000678: 00100193 li gp,1
8000067c: 05d00893 li a7,93
80000680: 00000513 li a0,0
80000684: 00000073 ecall
80000688: c0001073 unimp
8000068c: 0000 unimp
8000068e: 0000 unimp
80000690: 0000 unimp
80000692: 0000 unimp
80000694: 0000 unimp
80000696: 0000 unimp
80000698: 0000 unimp
8000069a: 0000 unimp
8000069c: 0000 unimp
8000069e: 0000 unimp
800006a0: 0000 unimp
800006a2: 0000 unimp
800006a4: 0000 unimp
800006a6: 0000 unimp
800006a8: 0000 unimp
800006aa: 0000 unimp
800006ac: 0000 unimp
800006ae: 0000 unimp
800006b0: 0000 unimp
800006b2: 0000 unimp
800006b4: 0000 unimp
800006b6: 0000 unimp
800006b8: 0000 unimp
800006ba: 0000 unimp
800006bc: 0000 unimp
800006be: 0000 unimp
800006c0: 0000 unimp
800006c2: 0000 unimp

View file

@ -0,0 +1,309 @@
rv32ui-p-slli: 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: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-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: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 02028293 addi t0,t0,32 # 80000084 <reset_vector+0x38>
8000006c: 30529073 csrw mtvec,t0
80000070: 800002b7 lui t0,0x80000
80000074: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdfff>
80000078: 3b029073 csrw pmpaddr0,t0
8000007c: 01f00293 li t0,31
80000080: 3a029073 csrw pmpcfg0,t0
80000084: 00000297 auipc t0,0x0
80000088: 01828293 addi t0,t0,24 # 8000009c <reset_vector+0x50>
8000008c: 30529073 csrw mtvec,t0
80000090: 30205073 csrwi medeleg,0
80000094: 30305073 csrwi mideleg,0
80000098: 30405073 csrwi mie,0
8000009c: 00000193 li gp,0
800000a0: 00000297 auipc t0,0x0
800000a4: f6428293 addi t0,t0,-156 # 80000004 <trap_vector>
800000a8: 30529073 csrw mtvec,t0
800000ac: 00100513 li a0,1
800000b0: 01f51513 slli a0,a0,0x1f
800000b4: 00054c63 bltz a0,800000cc <reset_vector+0x80>
800000b8: 0ff0000f fence
800000bc: 00100193 li gp,1
800000c0: 05d00893 li a7,93
800000c4: 00000513 li a0,0
800000c8: 00000073 ecall
800000cc: 80000297 auipc t0,0x80000
800000d0: f3428293 addi t0,t0,-204 # 0 <_start-0x80000000>
800000d4: 00028e63 beqz t0,800000f0 <reset_vector+0xa4>
800000d8: 10529073 csrw stvec,t0
800000dc: 0000b2b7 lui t0,0xb
800000e0: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000e4: 30229073 csrw medeleg,t0
800000e8: 30202373 csrr t1,medeleg
800000ec: f46298e3 bne t0,t1,8000003c <handle_exception>
800000f0: 30005073 csrwi mstatus,0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <test_2>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108 <test_2>:
80000108: 00100093 li ra,1
8000010c: 00009713 slli a4,ra,0x0
80000110: 00100e93 li t4,1
80000114: 00200193 li gp,2
80000118: 27d71a63 bne a4,t4,8000038c <fail>
8000011c <test_3>:
8000011c: 00100093 li ra,1
80000120: 00109713 slli a4,ra,0x1
80000124: 00200e93 li t4,2
80000128: 00300193 li gp,3
8000012c: 27d71063 bne a4,t4,8000038c <fail>
80000130 <test_4>:
80000130: 00100093 li ra,1
80000134: 00709713 slli a4,ra,0x7
80000138: 08000e93 li t4,128
8000013c: 00400193 li gp,4
80000140: 25d71663 bne a4,t4,8000038c <fail>
80000144 <test_5>:
80000144: 00100093 li ra,1
80000148: 00e09713 slli a4,ra,0xe
8000014c: 00004eb7 lui t4,0x4
80000150: 00500193 li gp,5
80000154: 23d71c63 bne a4,t4,8000038c <fail>
80000158 <test_6>:
80000158: 00100093 li ra,1
8000015c: 01f09713 slli a4,ra,0x1f
80000160: 80000eb7 lui t4,0x80000
80000164: 00600193 li gp,6
80000168: 23d71263 bne a4,t4,8000038c <fail>
8000016c <test_7>:
8000016c: fff00093 li ra,-1
80000170: 00009713 slli a4,ra,0x0
80000174: fff00e93 li t4,-1
80000178: 00700193 li gp,7
8000017c: 21d71863 bne a4,t4,8000038c <fail>
80000180 <test_8>:
80000180: fff00093 li ra,-1
80000184: 00109713 slli a4,ra,0x1
80000188: ffe00e93 li t4,-2
8000018c: 00800193 li gp,8
80000190: 1fd71e63 bne a4,t4,8000038c <fail>
80000194 <test_9>:
80000194: fff00093 li ra,-1
80000198: 00709713 slli a4,ra,0x7
8000019c: f8000e93 li t4,-128
800001a0: 00900193 li gp,9
800001a4: 1fd71463 bne a4,t4,8000038c <fail>
800001a8 <test_10>:
800001a8: fff00093 li ra,-1
800001ac: 00e09713 slli a4,ra,0xe
800001b0: ffffceb7 lui t4,0xffffc
800001b4: 00a00193 li gp,10
800001b8: 1dd71a63 bne a4,t4,8000038c <fail>
800001bc <test_11>:
800001bc: fff00093 li ra,-1
800001c0: 01f09713 slli a4,ra,0x1f
800001c4: 80000eb7 lui t4,0x80000
800001c8: 00b00193 li gp,11
800001cc: 1dd71063 bne a4,t4,8000038c <fail>
800001d0 <test_12>:
800001d0: 212120b7 lui ra,0x21212
800001d4: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
800001d8: 00009713 slli a4,ra,0x0
800001dc: 21212eb7 lui t4,0x21212
800001e0: 121e8e93 addi t4,t4,289 # 21212121 <_start-0x5edededf>
800001e4: 00c00193 li gp,12
800001e8: 1bd71263 bne a4,t4,8000038c <fail>
800001ec <test_13>:
800001ec: 212120b7 lui ra,0x21212
800001f0: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
800001f4: 00109713 slli a4,ra,0x1
800001f8: 42424eb7 lui t4,0x42424
800001fc: 242e8e93 addi t4,t4,578 # 42424242 <_start-0x3dbdbdbe>
80000200: 00d00193 li gp,13
80000204: 19d71463 bne a4,t4,8000038c <fail>
80000208 <test_14>:
80000208: 212120b7 lui ra,0x21212
8000020c: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
80000210: 00709713 slli a4,ra,0x7
80000214: 90909eb7 lui t4,0x90909
80000218: 080e8e93 addi t4,t4,128 # 90909080 <_end+0x10907080>
8000021c: 00e00193 li gp,14
80000220: 17d71663 bne a4,t4,8000038c <fail>
80000224 <test_15>:
80000224: 212120b7 lui ra,0x21212
80000228: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
8000022c: 00e09713 slli a4,ra,0xe
80000230: 48484eb7 lui t4,0x48484
80000234: 00f00193 li gp,15
80000238: 15d71a63 bne a4,t4,8000038c <fail>
8000023c <test_16>:
8000023c: 212120b7 lui ra,0x21212
80000240: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
80000244: 01f09713 slli a4,ra,0x1f
80000248: 80000eb7 lui t4,0x80000
8000024c: 01000193 li gp,16
80000250: 13d71e63 bne a4,t4,8000038c <fail>
80000254 <test_17>:
80000254: 00100093 li ra,1
80000258: 00709093 slli ra,ra,0x7
8000025c: 08000e93 li t4,128
80000260: 01100193 li gp,17
80000264: 13d09463 bne ra,t4,8000038c <fail>
80000268 <test_18>:
80000268: 00000213 li tp,0
8000026c: 00100093 li ra,1
80000270: 00709713 slli a4,ra,0x7
80000274: 00070313 mv t1,a4
80000278: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000027c: 00200293 li t0,2
80000280: fe5216e3 bne tp,t0,8000026c <test_18+0x4>
80000284: 08000e93 li t4,128
80000288: 01200193 li gp,18
8000028c: 11d31063 bne t1,t4,8000038c <fail>
80000290 <test_19>:
80000290: 00000213 li tp,0
80000294: 00100093 li ra,1
80000298: 00e09713 slli a4,ra,0xe
8000029c: 00000013 nop
800002a0: 00070313 mv t1,a4
800002a4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002a8: 00200293 li t0,2
800002ac: fe5214e3 bne tp,t0,80000294 <test_19+0x4>
800002b0: 00004eb7 lui t4,0x4
800002b4: 01300193 li gp,19
800002b8: 0dd31a63 bne t1,t4,8000038c <fail>
800002bc <test_20>:
800002bc: 00000213 li tp,0
800002c0: 00100093 li ra,1
800002c4: 01f09713 slli a4,ra,0x1f
800002c8: 00000013 nop
800002cc: 00000013 nop
800002d0: 00070313 mv t1,a4
800002d4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002d8: 00200293 li t0,2
800002dc: fe5212e3 bne tp,t0,800002c0 <test_20+0x4>
800002e0: 80000eb7 lui t4,0x80000
800002e4: 01400193 li gp,20
800002e8: 0bd31263 bne t1,t4,8000038c <fail>
800002ec <test_21>:
800002ec: 00000213 li tp,0
800002f0: 00100093 li ra,1
800002f4: 00709713 slli a4,ra,0x7
800002f8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002fc: 00200293 li t0,2
80000300: fe5218e3 bne tp,t0,800002f0 <test_21+0x4>
80000304: 08000e93 li t4,128
80000308: 01500193 li gp,21
8000030c: 09d71063 bne a4,t4,8000038c <fail>
80000310 <test_22>:
80000310: 00000213 li tp,0
80000314: 00100093 li ra,1
80000318: 00000013 nop
8000031c: 00e09713 slli a4,ra,0xe
80000320: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000324: 00200293 li t0,2
80000328: fe5216e3 bne tp,t0,80000314 <test_22+0x4>
8000032c: 00004eb7 lui t4,0x4
80000330: 01600193 li gp,22
80000334: 05d71c63 bne a4,t4,8000038c <fail>
80000338 <test_23>:
80000338: 00000213 li tp,0
8000033c: 00100093 li ra,1
80000340: 00000013 nop
80000344: 00000013 nop
80000348: 01f09713 slli a4,ra,0x1f
8000034c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000350: 00200293 li t0,2
80000354: fe5214e3 bne tp,t0,8000033c <test_23+0x4>
80000358: 80000eb7 lui t4,0x80000
8000035c: 01700193 li gp,23
80000360: 03d71663 bne a4,t4,8000038c <fail>
80000364 <test_24>:
80000364: 01f01093 slli ra,zero,0x1f
80000368: 00000e93 li t4,0
8000036c: 01800193 li gp,24
80000370: 01d09e63 bne ra,t4,8000038c <fail>
80000374 <test_25>:
80000374: 02100093 li ra,33
80000378: 01409013 slli zero,ra,0x14
8000037c: 00000e93 li t4,0
80000380: 01900193 li gp,25
80000384: 01d01463 bne zero,t4,8000038c <fail>
80000388: 02301063 bne zero,gp,800003a8 <pass>
8000038c <fail>:
8000038c: 0ff0000f fence
80000390: 00018063 beqz gp,80000390 <fail+0x4>
80000394: 00119193 slli gp,gp,0x1
80000398: 0011e193 ori gp,gp,1
8000039c: 05d00893 li a7,93
800003a0: 00018513 mv a0,gp
800003a4: 00000073 ecall
800003a8 <pass>:
800003a8: 0ff0000f fence
800003ac: 00100193 li gp,1
800003b0: 05d00893 li a7,93
800003b4: 00000513 li a0,0
800003b8: 00000073 ecall
800003bc: c0001073 unimp
800003c0: 0000 unimp
800003c2: 0000 unimp

View file

@ -0,0 +1,478 @@
rv32ui-p-slt: 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: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-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: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 02028293 addi t0,t0,32 # 80000084 <reset_vector+0x38>
8000006c: 30529073 csrw mtvec,t0
80000070: 800002b7 lui t0,0x80000
80000074: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdfff>
80000078: 3b029073 csrw pmpaddr0,t0
8000007c: 01f00293 li t0,31
80000080: 3a029073 csrw pmpcfg0,t0
80000084: 00000297 auipc t0,0x0
80000088: 01828293 addi t0,t0,24 # 8000009c <reset_vector+0x50>
8000008c: 30529073 csrw mtvec,t0
80000090: 30205073 csrwi medeleg,0
80000094: 30305073 csrwi mideleg,0
80000098: 30405073 csrwi mie,0
8000009c: 00000193 li gp,0
800000a0: 00000297 auipc t0,0x0
800000a4: f6428293 addi t0,t0,-156 # 80000004 <trap_vector>
800000a8: 30529073 csrw mtvec,t0
800000ac: 00100513 li a0,1
800000b0: 01f51513 slli a0,a0,0x1f
800000b4: 00054c63 bltz a0,800000cc <reset_vector+0x80>
800000b8: 0ff0000f fence
800000bc: 00100193 li gp,1
800000c0: 05d00893 li a7,93
800000c4: 00000513 li a0,0
800000c8: 00000073 ecall
800000cc: 80000297 auipc t0,0x80000
800000d0: f3428293 addi t0,t0,-204 # 0 <_start-0x80000000>
800000d4: 00028e63 beqz t0,800000f0 <reset_vector+0xa4>
800000d8: 10529073 csrw stvec,t0
800000dc: 0000b2b7 lui t0,0xb
800000e0: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000e4: 30229073 csrw medeleg,t0
800000e8: 30202373 csrr t1,medeleg
800000ec: f46298e3 bne t0,t1,8000003c <handle_exception>
800000f0: 30005073 csrwi mstatus,0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <test_2>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108 <test_2>:
80000108: 00000093 li ra,0
8000010c: 00000113 li sp,0
80000110: 0020a733 slt a4,ra,sp
80000114: 00000e93 li t4,0
80000118: 00200193 li gp,2
8000011c: 4bd71a63 bne a4,t4,800005d0 <fail>
80000120 <test_3>:
80000120: 00100093 li ra,1
80000124: 00100113 li sp,1
80000128: 0020a733 slt a4,ra,sp
8000012c: 00000e93 li t4,0
80000130: 00300193 li gp,3
80000134: 49d71e63 bne a4,t4,800005d0 <fail>
80000138 <test_4>:
80000138: 00300093 li ra,3
8000013c: 00700113 li sp,7
80000140: 0020a733 slt a4,ra,sp
80000144: 00100e93 li t4,1
80000148: 00400193 li gp,4
8000014c: 49d71263 bne a4,t4,800005d0 <fail>
80000150 <test_5>:
80000150: 00700093 li ra,7
80000154: 00300113 li sp,3
80000158: 0020a733 slt a4,ra,sp
8000015c: 00000e93 li t4,0
80000160: 00500193 li gp,5
80000164: 47d71663 bne a4,t4,800005d0 <fail>
80000168 <test_6>:
80000168: 00000093 li ra,0
8000016c: ffff8137 lui sp,0xffff8
80000170: 0020a733 slt a4,ra,sp
80000174: 00000e93 li t4,0
80000178: 00600193 li gp,6
8000017c: 45d71a63 bne a4,t4,800005d0 <fail>
80000180 <test_7>:
80000180: 800000b7 lui ra,0x80000
80000184: 00000113 li sp,0
80000188: 0020a733 slt a4,ra,sp
8000018c: 00100e93 li t4,1
80000190: 00700193 li gp,7
80000194: 43d71e63 bne a4,t4,800005d0 <fail>
80000198 <test_8>:
80000198: 800000b7 lui ra,0x80000
8000019c: ffff8137 lui sp,0xffff8
800001a0: 0020a733 slt a4,ra,sp
800001a4: 00100e93 li t4,1
800001a8: 00800193 li gp,8
800001ac: 43d71263 bne a4,t4,800005d0 <fail>
800001b0 <test_9>:
800001b0: 00000093 li ra,0
800001b4: 00008137 lui sp,0x8
800001b8: fff10113 addi sp,sp,-1 # 7fff <_start-0x7fff8001>
800001bc: 0020a733 slt a4,ra,sp
800001c0: 00100e93 li t4,1
800001c4: 00900193 li gp,9
800001c8: 41d71463 bne a4,t4,800005d0 <fail>
800001cc <test_10>:
800001cc: 800000b7 lui ra,0x80000
800001d0: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffffdfff>
800001d4: 00000113 li sp,0
800001d8: 0020a733 slt a4,ra,sp
800001dc: 00000e93 li t4,0
800001e0: 00a00193 li gp,10
800001e4: 3fd71663 bne a4,t4,800005d0 <fail>
800001e8 <test_11>:
800001e8: 800000b7 lui ra,0x80000
800001ec: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffffdfff>
800001f0: 00008137 lui sp,0x8
800001f4: fff10113 addi sp,sp,-1 # 7fff <_start-0x7fff8001>
800001f8: 0020a733 slt a4,ra,sp
800001fc: 00000e93 li t4,0
80000200: 00b00193 li gp,11
80000204: 3dd71663 bne a4,t4,800005d0 <fail>
80000208 <test_12>:
80000208: 800000b7 lui ra,0x80000
8000020c: 00008137 lui sp,0x8
80000210: fff10113 addi sp,sp,-1 # 7fff <_start-0x7fff8001>
80000214: 0020a733 slt a4,ra,sp
80000218: 00100e93 li t4,1
8000021c: 00c00193 li gp,12
80000220: 3bd71863 bne a4,t4,800005d0 <fail>
80000224 <test_13>:
80000224: 800000b7 lui ra,0x80000
80000228: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffffdfff>
8000022c: ffff8137 lui sp,0xffff8
80000230: 0020a733 slt a4,ra,sp
80000234: 00000e93 li t4,0
80000238: 00d00193 li gp,13
8000023c: 39d71a63 bne a4,t4,800005d0 <fail>
80000240 <test_14>:
80000240: 00000093 li ra,0
80000244: fff00113 li sp,-1
80000248: 0020a733 slt a4,ra,sp
8000024c: 00000e93 li t4,0
80000250: 00e00193 li gp,14
80000254: 37d71e63 bne a4,t4,800005d0 <fail>
80000258 <test_15>:
80000258: fff00093 li ra,-1
8000025c: 00100113 li sp,1
80000260: 0020a733 slt a4,ra,sp
80000264: 00100e93 li t4,1
80000268: 00f00193 li gp,15
8000026c: 37d71263 bne a4,t4,800005d0 <fail>
80000270 <test_16>:
80000270: fff00093 li ra,-1
80000274: fff00113 li sp,-1
80000278: 0020a733 slt a4,ra,sp
8000027c: 00000e93 li t4,0
80000280: 01000193 li gp,16
80000284: 35d71663 bne a4,t4,800005d0 <fail>
80000288 <test_17>:
80000288: 00e00093 li ra,14
8000028c: 00d00113 li sp,13
80000290: 0020a0b3 slt ra,ra,sp
80000294: 00000e93 li t4,0
80000298: 01100193 li gp,17
8000029c: 33d09a63 bne ra,t4,800005d0 <fail>
800002a0 <test_18>:
800002a0: 00b00093 li ra,11
800002a4: 00d00113 li sp,13
800002a8: 0020a133 slt sp,ra,sp
800002ac: 00100e93 li t4,1
800002b0: 01200193 li gp,18
800002b4: 31d11e63 bne sp,t4,800005d0 <fail>
800002b8 <test_19>:
800002b8: 00d00093 li ra,13
800002bc: 0010a0b3 slt ra,ra,ra
800002c0: 00000e93 li t4,0
800002c4: 01300193 li gp,19
800002c8: 31d09463 bne ra,t4,800005d0 <fail>
800002cc <test_20>:
800002cc: 00000213 li tp,0
800002d0: 00b00093 li ra,11
800002d4: 00d00113 li sp,13
800002d8: 0020a733 slt a4,ra,sp
800002dc: 00070313 mv t1,a4
800002e0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002e4: 00200293 li t0,2
800002e8: fe5214e3 bne tp,t0,800002d0 <test_20+0x4>
800002ec: 00100e93 li t4,1
800002f0: 01400193 li gp,20
800002f4: 2dd31e63 bne t1,t4,800005d0 <fail>
800002f8 <test_21>:
800002f8: 00000213 li tp,0
800002fc: 00e00093 li ra,14
80000300: 00d00113 li sp,13
80000304: 0020a733 slt a4,ra,sp
80000308: 00000013 nop
8000030c: 00070313 mv t1,a4
80000310: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000314: 00200293 li t0,2
80000318: fe5212e3 bne tp,t0,800002fc <test_21+0x4>
8000031c: 00000e93 li t4,0
80000320: 01500193 li gp,21
80000324: 2bd31663 bne t1,t4,800005d0 <fail>
80000328 <test_22>:
80000328: 00000213 li tp,0
8000032c: 00c00093 li ra,12
80000330: 00d00113 li sp,13
80000334: 0020a733 slt a4,ra,sp
80000338: 00000013 nop
8000033c: 00000013 nop
80000340: 00070313 mv t1,a4
80000344: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000348: 00200293 li t0,2
8000034c: fe5210e3 bne tp,t0,8000032c <test_22+0x4>
80000350: 00100e93 li t4,1
80000354: 01600193 li gp,22
80000358: 27d31c63 bne t1,t4,800005d0 <fail>
8000035c <test_23>:
8000035c: 00000213 li tp,0
80000360: 00e00093 li ra,14
80000364: 00d00113 li sp,13
80000368: 0020a733 slt a4,ra,sp
8000036c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000370: 00200293 li t0,2
80000374: fe5216e3 bne tp,t0,80000360 <test_23+0x4>
80000378: 00000e93 li t4,0
8000037c: 01700193 li gp,23
80000380: 25d71863 bne a4,t4,800005d0 <fail>
80000384 <test_24>:
80000384: 00000213 li tp,0
80000388: 00b00093 li ra,11
8000038c: 00d00113 li sp,13
80000390: 00000013 nop
80000394: 0020a733 slt a4,ra,sp
80000398: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000039c: 00200293 li t0,2
800003a0: fe5214e3 bne tp,t0,80000388 <test_24+0x4>
800003a4: 00100e93 li t4,1
800003a8: 01800193 li gp,24
800003ac: 23d71263 bne a4,t4,800005d0 <fail>
800003b0 <test_25>:
800003b0: 00000213 li tp,0
800003b4: 00f00093 li ra,15
800003b8: 00d00113 li sp,13
800003bc: 00000013 nop
800003c0: 00000013 nop
800003c4: 0020a733 slt a4,ra,sp
800003c8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800003cc: 00200293 li t0,2
800003d0: fe5212e3 bne tp,t0,800003b4 <test_25+0x4>
800003d4: 00000e93 li t4,0
800003d8: 01900193 li gp,25
800003dc: 1fd71a63 bne a4,t4,800005d0 <fail>
800003e0 <test_26>:
800003e0: 00000213 li tp,0
800003e4: 00a00093 li ra,10
800003e8: 00000013 nop
800003ec: 00d00113 li sp,13
800003f0: 0020a733 slt a4,ra,sp
800003f4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800003f8: 00200293 li t0,2
800003fc: fe5214e3 bne tp,t0,800003e4 <test_26+0x4>
80000400: 00100e93 li t4,1
80000404: 01a00193 li gp,26
80000408: 1dd71463 bne a4,t4,800005d0 <fail>
8000040c <test_27>:
8000040c: 00000213 li tp,0
80000410: 01000093 li ra,16
80000414: 00000013 nop
80000418: 00d00113 li sp,13
8000041c: 00000013 nop
80000420: 0020a733 slt a4,ra,sp
80000424: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000428: 00200293 li t0,2
8000042c: fe5212e3 bne tp,t0,80000410 <test_27+0x4>
80000430: 00000e93 li t4,0
80000434: 01b00193 li gp,27
80000438: 19d71c63 bne a4,t4,800005d0 <fail>
8000043c <test_28>:
8000043c: 00000213 li tp,0
80000440: 00900093 li ra,9
80000444: 00000013 nop
80000448: 00000013 nop
8000044c: 00d00113 li sp,13
80000450: 0020a733 slt a4,ra,sp
80000454: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000458: 00200293 li t0,2
8000045c: fe5212e3 bne tp,t0,80000440 <test_28+0x4>
80000460: 00100e93 li t4,1
80000464: 01c00193 li gp,28
80000468: 17d71463 bne a4,t4,800005d0 <fail>
8000046c <test_29>:
8000046c: 00000213 li tp,0
80000470: 00d00113 li sp,13
80000474: 01100093 li ra,17
80000478: 0020a733 slt a4,ra,sp
8000047c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000480: 00200293 li t0,2
80000484: fe5216e3 bne tp,t0,80000470 <test_29+0x4>
80000488: 00000e93 li t4,0
8000048c: 01d00193 li gp,29
80000490: 15d71063 bne a4,t4,800005d0 <fail>
80000494 <test_30>:
80000494: 00000213 li tp,0
80000498: 00d00113 li sp,13
8000049c: 00800093 li ra,8
800004a0: 00000013 nop
800004a4: 0020a733 slt a4,ra,sp
800004a8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800004ac: 00200293 li t0,2
800004b0: fe5214e3 bne tp,t0,80000498 <test_30+0x4>
800004b4: 00100e93 li t4,1
800004b8: 01e00193 li gp,30
800004bc: 11d71a63 bne a4,t4,800005d0 <fail>
800004c0 <test_31>:
800004c0: 00000213 li tp,0
800004c4: 00d00113 li sp,13
800004c8: 01200093 li ra,18
800004cc: 00000013 nop
800004d0: 00000013 nop
800004d4: 0020a733 slt a4,ra,sp
800004d8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800004dc: 00200293 li t0,2
800004e0: fe5212e3 bne tp,t0,800004c4 <test_31+0x4>
800004e4: 00000e93 li t4,0
800004e8: 01f00193 li gp,31
800004ec: 0fd71263 bne a4,t4,800005d0 <fail>
800004f0 <test_32>:
800004f0: 00000213 li tp,0
800004f4: 00d00113 li sp,13
800004f8: 00000013 nop
800004fc: 00700093 li ra,7
80000500: 0020a733 slt a4,ra,sp
80000504: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000508: 00200293 li t0,2
8000050c: fe5214e3 bne tp,t0,800004f4 <test_32+0x4>
80000510: 00100e93 li t4,1
80000514: 02000193 li gp,32
80000518: 0bd71c63 bne a4,t4,800005d0 <fail>
8000051c <test_33>:
8000051c: 00000213 li tp,0
80000520: 00d00113 li sp,13
80000524: 00000013 nop
80000528: 01300093 li ra,19
8000052c: 00000013 nop
80000530: 0020a733 slt a4,ra,sp
80000534: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000538: 00200293 li t0,2
8000053c: fe5212e3 bne tp,t0,80000520 <test_33+0x4>
80000540: 00000e93 li t4,0
80000544: 02100193 li gp,33
80000548: 09d71463 bne a4,t4,800005d0 <fail>
8000054c <test_34>:
8000054c: 00000213 li tp,0
80000550: 00d00113 li sp,13
80000554: 00000013 nop
80000558: 00000013 nop
8000055c: 00600093 li ra,6
80000560: 0020a733 slt a4,ra,sp
80000564: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000568: 00200293 li t0,2
8000056c: fe5212e3 bne tp,t0,80000550 <test_34+0x4>
80000570: 00100e93 li t4,1
80000574: 02200193 li gp,34
80000578: 05d71c63 bne a4,t4,800005d0 <fail>
8000057c <test_35>:
8000057c: fff00093 li ra,-1
80000580: 00102133 sgtz sp,ra
80000584: 00000e93 li t4,0
80000588: 02300193 li gp,35
8000058c: 05d11263 bne sp,t4,800005d0 <fail>
80000590 <test_36>:
80000590: fff00093 li ra,-1
80000594: 0000a133 sltz sp,ra
80000598: 00100e93 li t4,1
8000059c: 02400193 li gp,36
800005a0: 03d11863 bne sp,t4,800005d0 <fail>
800005a4 <test_37>:
800005a4: 000020b3 sltz ra,zero
800005a8: 00000e93 li t4,0
800005ac: 02500193 li gp,37
800005b0: 03d09063 bne ra,t4,800005d0 <fail>
800005b4 <test_38>:
800005b4: 01000093 li ra,16
800005b8: 01e00113 li sp,30
800005bc: 0020a033 slt zero,ra,sp
800005c0: 00000e93 li t4,0
800005c4: 02600193 li gp,38
800005c8: 01d01463 bne zero,t4,800005d0 <fail>
800005cc: 02301063 bne zero,gp,800005ec <pass>
800005d0 <fail>:
800005d0: 0ff0000f fence
800005d4: 00018063 beqz gp,800005d4 <fail+0x4>
800005d8: 00119193 slli gp,gp,0x1
800005dc: 0011e193 ori gp,gp,1
800005e0: 05d00893 li a7,93
800005e4: 00018513 mv a0,gp
800005e8: 00000073 ecall
800005ec <pass>:
800005ec: 0ff0000f fence
800005f0: 00100193 li gp,1
800005f4: 05d00893 li a7,93
800005f8: 00000513 li a0,0
800005fc: 00000073 ecall
80000600: c0001073 unimp

View file

@ -0,0 +1,313 @@
rv32ui-p-slti: 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: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-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: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 02028293 addi t0,t0,32 # 80000084 <reset_vector+0x38>
8000006c: 30529073 csrw mtvec,t0
80000070: 800002b7 lui t0,0x80000
80000074: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdfff>
80000078: 3b029073 csrw pmpaddr0,t0
8000007c: 01f00293 li t0,31
80000080: 3a029073 csrw pmpcfg0,t0
80000084: 00000297 auipc t0,0x0
80000088: 01828293 addi t0,t0,24 # 8000009c <reset_vector+0x50>
8000008c: 30529073 csrw mtvec,t0
80000090: 30205073 csrwi medeleg,0
80000094: 30305073 csrwi mideleg,0
80000098: 30405073 csrwi mie,0
8000009c: 00000193 li gp,0
800000a0: 00000297 auipc t0,0x0
800000a4: f6428293 addi t0,t0,-156 # 80000004 <trap_vector>
800000a8: 30529073 csrw mtvec,t0
800000ac: 00100513 li a0,1
800000b0: 01f51513 slli a0,a0,0x1f
800000b4: 00054c63 bltz a0,800000cc <reset_vector+0x80>
800000b8: 0ff0000f fence
800000bc: 00100193 li gp,1
800000c0: 05d00893 li a7,93
800000c4: 00000513 li a0,0
800000c8: 00000073 ecall
800000cc: 80000297 auipc t0,0x80000
800000d0: f3428293 addi t0,t0,-204 # 0 <_start-0x80000000>
800000d4: 00028e63 beqz t0,800000f0 <reset_vector+0xa4>
800000d8: 10529073 csrw stvec,t0
800000dc: 0000b2b7 lui t0,0xb
800000e0: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000e4: 30229073 csrw medeleg,t0
800000e8: 30202373 csrr t1,medeleg
800000ec: f46298e3 bne t0,t1,8000003c <handle_exception>
800000f0: 30005073 csrwi mstatus,0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <test_2>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108 <test_2>:
80000108: 00000093 li ra,0
8000010c: 0000a713 slti a4,ra,0
80000110: 00000e93 li t4,0
80000114: 00200193 li gp,2
80000118: 27d71263 bne a4,t4,8000037c <fail>
8000011c <test_3>:
8000011c: 00100093 li ra,1
80000120: 0010a713 slti a4,ra,1
80000124: 00000e93 li t4,0
80000128: 00300193 li gp,3
8000012c: 25d71863 bne a4,t4,8000037c <fail>
80000130 <test_4>:
80000130: 00300093 li ra,3
80000134: 0070a713 slti a4,ra,7
80000138: 00100e93 li t4,1
8000013c: 00400193 li gp,4
80000140: 23d71e63 bne a4,t4,8000037c <fail>
80000144 <test_5>:
80000144: 00700093 li ra,7
80000148: 0030a713 slti a4,ra,3
8000014c: 00000e93 li t4,0
80000150: 00500193 li gp,5
80000154: 23d71463 bne a4,t4,8000037c <fail>
80000158 <test_6>:
80000158: 00000093 li ra,0
8000015c: 8000a713 slti a4,ra,-2048
80000160: 00000e93 li t4,0
80000164: 00600193 li gp,6
80000168: 21d71a63 bne a4,t4,8000037c <fail>
8000016c <test_7>:
8000016c: 800000b7 lui ra,0x80000
80000170: 0000a713 slti a4,ra,0
80000174: 00100e93 li t4,1
80000178: 00700193 li gp,7
8000017c: 21d71063 bne a4,t4,8000037c <fail>
80000180 <test_8>:
80000180: 800000b7 lui ra,0x80000
80000184: 8000a713 slti a4,ra,-2048
80000188: 00100e93 li t4,1
8000018c: 00800193 li gp,8
80000190: 1fd71663 bne a4,t4,8000037c <fail>
80000194 <test_9>:
80000194: 00000093 li ra,0
80000198: 7ff0a713 slti a4,ra,2047
8000019c: 00100e93 li t4,1
800001a0: 00900193 li gp,9
800001a4: 1dd71c63 bne a4,t4,8000037c <fail>
800001a8 <test_10>:
800001a8: 800000b7 lui ra,0x80000
800001ac: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffffdfff>
800001b0: 0000a713 slti a4,ra,0
800001b4: 00000e93 li t4,0
800001b8: 00a00193 li gp,10
800001bc: 1dd71063 bne a4,t4,8000037c <fail>
800001c0 <test_11>:
800001c0: 800000b7 lui ra,0x80000
800001c4: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffffdfff>
800001c8: 7ff0a713 slti a4,ra,2047
800001cc: 00000e93 li t4,0
800001d0: 00b00193 li gp,11
800001d4: 1bd71463 bne a4,t4,8000037c <fail>
800001d8 <test_12>:
800001d8: 800000b7 lui ra,0x80000
800001dc: 7ff0a713 slti a4,ra,2047
800001e0: 00100e93 li t4,1
800001e4: 00c00193 li gp,12
800001e8: 19d71a63 bne a4,t4,8000037c <fail>
800001ec <test_13>:
800001ec: 800000b7 lui ra,0x80000
800001f0: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffffdfff>
800001f4: 8000a713 slti a4,ra,-2048
800001f8: 00000e93 li t4,0
800001fc: 00d00193 li gp,13
80000200: 17d71e63 bne a4,t4,8000037c <fail>
80000204 <test_14>:
80000204: 00000093 li ra,0
80000208: fff0a713 slti a4,ra,-1
8000020c: 00000e93 li t4,0
80000210: 00e00193 li gp,14
80000214: 17d71463 bne a4,t4,8000037c <fail>
80000218 <test_15>:
80000218: fff00093 li ra,-1
8000021c: 0010a713 slti a4,ra,1
80000220: 00100e93 li t4,1
80000224: 00f00193 li gp,15
80000228: 15d71a63 bne a4,t4,8000037c <fail>
8000022c <test_16>:
8000022c: fff00093 li ra,-1
80000230: fff0a713 slti a4,ra,-1
80000234: 00000e93 li t4,0
80000238: 01000193 li gp,16
8000023c: 15d71063 bne a4,t4,8000037c <fail>
80000240 <test_17>:
80000240: 00b00093 li ra,11
80000244: 00d0a093 slti ra,ra,13
80000248: 00100e93 li t4,1
8000024c: 01100193 li gp,17
80000250: 13d09663 bne ra,t4,8000037c <fail>
80000254 <test_18>:
80000254: 00000213 li tp,0
80000258: 00f00093 li ra,15
8000025c: 00a0a713 slti a4,ra,10
80000260: 00070313 mv t1,a4
80000264: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000268: 00200293 li t0,2
8000026c: fe5216e3 bne tp,t0,80000258 <test_18+0x4>
80000270: 00000e93 li t4,0
80000274: 01200193 li gp,18
80000278: 11d31263 bne t1,t4,8000037c <fail>
8000027c <test_19>:
8000027c: 00000213 li tp,0
80000280: 00a00093 li ra,10
80000284: 0100a713 slti a4,ra,16
80000288: 00000013 nop
8000028c: 00070313 mv t1,a4
80000290: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000294: 00200293 li t0,2
80000298: fe5214e3 bne tp,t0,80000280 <test_19+0x4>
8000029c: 00100e93 li t4,1
800002a0: 01300193 li gp,19
800002a4: 0dd31c63 bne t1,t4,8000037c <fail>
800002a8 <test_20>:
800002a8: 00000213 li tp,0
800002ac: 01000093 li ra,16
800002b0: 0090a713 slti a4,ra,9
800002b4: 00000013 nop
800002b8: 00000013 nop
800002bc: 00070313 mv t1,a4
800002c0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002c4: 00200293 li t0,2
800002c8: fe5212e3 bne tp,t0,800002ac <test_20+0x4>
800002cc: 00000e93 li t4,0
800002d0: 01400193 li gp,20
800002d4: 0bd31463 bne t1,t4,8000037c <fail>
800002d8 <test_21>:
800002d8: 00000213 li tp,0
800002dc: 00b00093 li ra,11
800002e0: 00f0a713 slti a4,ra,15
800002e4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002e8: 00200293 li t0,2
800002ec: fe5218e3 bne tp,t0,800002dc <test_21+0x4>
800002f0: 00100e93 li t4,1
800002f4: 01500193 li gp,21
800002f8: 09d71263 bne a4,t4,8000037c <fail>
800002fc <test_22>:
800002fc: 00000213 li tp,0
80000300: 01100093 li ra,17
80000304: 00000013 nop
80000308: 0080a713 slti a4,ra,8
8000030c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000310: 00200293 li t0,2
80000314: fe5216e3 bne tp,t0,80000300 <test_22+0x4>
80000318: 00000e93 li t4,0
8000031c: 01600193 li gp,22
80000320: 05d71e63 bne a4,t4,8000037c <fail>
80000324 <test_23>:
80000324: 00000213 li tp,0
80000328: 00c00093 li ra,12
8000032c: 00000013 nop
80000330: 00000013 nop
80000334: 00e0a713 slti a4,ra,14
80000338: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000033c: 00200293 li t0,2
80000340: fe5214e3 bne tp,t0,80000328 <test_23+0x4>
80000344: 00100e93 li t4,1
80000348: 01700193 li gp,23
8000034c: 03d71863 bne a4,t4,8000037c <fail>
80000350 <test_24>:
80000350: fff02093 slti ra,zero,-1
80000354: 00000e93 li t4,0
80000358: 01800193 li gp,24
8000035c: 03d09063 bne ra,t4,8000037c <fail>
80000360 <test_25>:
80000360: 00ff00b7 lui ra,0xff0
80000364: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
80000368: fff0a013 slti zero,ra,-1
8000036c: 00000e93 li t4,0
80000370: 01900193 li gp,25
80000374: 01d01463 bne zero,t4,8000037c <fail>
80000378: 02301063 bne zero,gp,80000398 <pass>
8000037c <fail>:
8000037c: 0ff0000f fence
80000380: 00018063 beqz gp,80000380 <fail+0x4>
80000384: 00119193 slli gp,gp,0x1
80000388: 0011e193 ori gp,gp,1
8000038c: 05d00893 li a7,93
80000390: 00018513 mv a0,gp
80000394: 00000073 ecall
80000398 <pass>:
80000398: 0ff0000f fence
8000039c: 00100193 li gp,1
800003a0: 05d00893 li a7,93
800003a4: 00000513 li a0,0
800003a8: 00000073 ecall
800003ac: c0001073 unimp
800003b0: 0000 unimp
800003b2: 0000 unimp
800003b4: 0000 unimp
800003b6: 0000 unimp
800003b8: 0000 unimp
800003ba: 0000 unimp
800003bc: 0000 unimp
800003be: 0000 unimp
800003c0: 0000 unimp
800003c2: 0000 unimp

View file

@ -0,0 +1,320 @@
rv32ui-p-sltiu: 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: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-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: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi sptbr,0
80000064: 00000297 auipc t0,0x0
80000068: 01c28293 addi t0,t0,28 # 80000080 <reset_vector+0x34>
8000006c: 30529073 csrw mtvec,t0
80000070: fff00293 li t0,-1
80000074: 3b029073 csrw pmpaddr0,t0
80000078: 01f00293 li t0,31
8000007c: 3a029073 csrw pmpcfg0,t0
80000080: 00000297 auipc t0,0x0
80000084: 01828293 addi t0,t0,24 # 80000098 <reset_vector+0x4c>
80000088: 30529073 csrw mtvec,t0
8000008c: 30205073 csrwi medeleg,0
80000090: 30305073 csrwi mideleg,0
80000094: 30405073 csrwi mie,0
80000098: 00000193 li gp,0
8000009c: 00000297 auipc t0,0x0
800000a0: f6828293 addi t0,t0,-152 # 80000004 <trap_vector>
800000a4: 30529073 csrw mtvec,t0
800000a8: 00100513 li a0,1
800000ac: 01f51513 slli a0,a0,0x1f
800000b0: 00054863 bltz a0,800000c0 <reset_vector+0x74>
800000b4: 0ff0000f fence
800000b8: 00100193 li gp,1
800000bc: 00000073 ecall
800000c0: 80000297 auipc t0,0x80000
800000c4: f4028293 addi t0,t0,-192 # 0 <_start-0x80000000>
800000c8: 00028e63 beqz t0,800000e4 <reset_vector+0x98>
800000cc: 10529073 csrw stvec,t0
800000d0: 0000b2b7 lui t0,0xb
800000d4: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000d8: 30229073 csrw medeleg,t0
800000dc: 30202373 csrr t1,medeleg
800000e0: f4629ee3 bne t0,t1,8000003c <handle_exception>
800000e4: 30005073 csrwi mstatus,0
800000e8: 00000297 auipc t0,0x0
800000ec: 01428293 addi t0,t0,20 # 800000fc <test_2>
800000f0: 34129073 csrw mepc,t0
800000f4: f1402573 csrr a0,mhartid
800000f8: 30200073 mret
800000fc <test_2>:
800000fc: 00000093 li ra,0
80000100: 0000bf13 sltiu t5,ra,0
80000104: 00000e93 li t4,0
80000108: 00200193 li gp,2
8000010c: 27df1263 bne t5,t4,80000370 <fail>
80000110 <test_3>:
80000110: 00100093 li ra,1
80000114: 0010bf13 seqz t5,ra
80000118: 00000e93 li t4,0
8000011c: 00300193 li gp,3
80000120: 25df1863 bne t5,t4,80000370 <fail>
80000124 <test_4>:
80000124: 00300093 li ra,3
80000128: 0070bf13 sltiu t5,ra,7
8000012c: 00100e93 li t4,1
80000130: 00400193 li gp,4
80000134: 23df1e63 bne t5,t4,80000370 <fail>
80000138 <test_5>:
80000138: 00700093 li ra,7
8000013c: 0030bf13 sltiu t5,ra,3
80000140: 00000e93 li t4,0
80000144: 00500193 li gp,5
80000148: 23df1463 bne t5,t4,80000370 <fail>
8000014c <test_6>:
8000014c: 00000093 li ra,0
80000150: 8000bf13 sltiu t5,ra,-2048
80000154: 00100e93 li t4,1
80000158: 00600193 li gp,6
8000015c: 21df1a63 bne t5,t4,80000370 <fail>
80000160 <test_7>:
80000160: 800000b7 lui ra,0x80000
80000164: 0000bf13 sltiu t5,ra,0
80000168: 00000e93 li t4,0
8000016c: 00700193 li gp,7
80000170: 21df1063 bne t5,t4,80000370 <fail>
80000174 <test_8>:
80000174: 800000b7 lui ra,0x80000
80000178: 8000bf13 sltiu t5,ra,-2048
8000017c: 00100e93 li t4,1
80000180: 00800193 li gp,8
80000184: 1fdf1663 bne t5,t4,80000370 <fail>
80000188 <test_9>:
80000188: 00000093 li ra,0
8000018c: 7ff0bf13 sltiu t5,ra,2047
80000190: 00100e93 li t4,1
80000194: 00900193 li gp,9
80000198: 1ddf1c63 bne t5,t4,80000370 <fail>
8000019c <test_10>:
8000019c: 800000b7 lui ra,0x80000
800001a0: fff08093 addi ra,ra,-1 # 7fffffff <begin_signature+0xffffdfff>
800001a4: 0000bf13 sltiu t5,ra,0
800001a8: 00000e93 li t4,0
800001ac: 00a00193 li gp,10
800001b0: 1ddf1063 bne t5,t4,80000370 <fail>
800001b4 <test_11>:
800001b4: 800000b7 lui ra,0x80000
800001b8: fff08093 addi ra,ra,-1 # 7fffffff <begin_signature+0xffffdfff>
800001bc: 7ff0bf13 sltiu t5,ra,2047
800001c0: 00000e93 li t4,0
800001c4: 00b00193 li gp,11
800001c8: 1bdf1463 bne t5,t4,80000370 <fail>
800001cc <test_12>:
800001cc: 800000b7 lui ra,0x80000
800001d0: 7ff0bf13 sltiu t5,ra,2047
800001d4: 00000e93 li t4,0
800001d8: 00c00193 li gp,12
800001dc: 19df1a63 bne t5,t4,80000370 <fail>
800001e0 <test_13>:
800001e0: 800000b7 lui ra,0x80000
800001e4: fff08093 addi ra,ra,-1 # 7fffffff <begin_signature+0xffffdfff>
800001e8: 8000bf13 sltiu t5,ra,-2048
800001ec: 00100e93 li t4,1
800001f0: 00d00193 li gp,13
800001f4: 17df1e63 bne t5,t4,80000370 <fail>
800001f8 <test_14>:
800001f8: 00000093 li ra,0
800001fc: fff0bf13 sltiu t5,ra,-1
80000200: 00100e93 li t4,1
80000204: 00e00193 li gp,14
80000208: 17df1463 bne t5,t4,80000370 <fail>
8000020c <test_15>:
8000020c: fff00093 li ra,-1
80000210: 0010bf13 seqz t5,ra
80000214: 00000e93 li t4,0
80000218: 00f00193 li gp,15
8000021c: 15df1a63 bne t5,t4,80000370 <fail>
80000220 <test_16>:
80000220: fff00093 li ra,-1
80000224: fff0bf13 sltiu t5,ra,-1
80000228: 00000e93 li t4,0
8000022c: 01000193 li gp,16
80000230: 15df1063 bne t5,t4,80000370 <fail>
80000234 <test_17>:
80000234: 00b00093 li ra,11
80000238: 00d0b093 sltiu ra,ra,13
8000023c: 00100e93 li t4,1
80000240: 01100193 li gp,17
80000244: 13d09663 bne ra,t4,80000370 <fail>
80000248 <test_18>:
80000248: 00000213 li tp,0
8000024c: 00f00093 li ra,15
80000250: 00a0bf13 sltiu t5,ra,10
80000254: 000f0313 mv t1,t5
80000258: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000025c: 00200293 li t0,2
80000260: fe5216e3 bne tp,t0,8000024c <test_18+0x4>
80000264: 00000e93 li t4,0
80000268: 01200193 li gp,18
8000026c: 11d31263 bne t1,t4,80000370 <fail>
80000270 <test_19>:
80000270: 00000213 li tp,0
80000274: 00a00093 li ra,10
80000278: 0100bf13 sltiu t5,ra,16
8000027c: 00000013 nop
80000280: 000f0313 mv t1,t5
80000284: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000288: 00200293 li t0,2
8000028c: fe5214e3 bne tp,t0,80000274 <test_19+0x4>
80000290: 00100e93 li t4,1
80000294: 01300193 li gp,19
80000298: 0dd31c63 bne t1,t4,80000370 <fail>
8000029c <test_20>:
8000029c: 00000213 li tp,0
800002a0: 01000093 li ra,16
800002a4: 0090bf13 sltiu t5,ra,9
800002a8: 00000013 nop
800002ac: 00000013 nop
800002b0: 000f0313 mv t1,t5
800002b4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002b8: 00200293 li t0,2
800002bc: fe5212e3 bne tp,t0,800002a0 <test_20+0x4>
800002c0: 00000e93 li t4,0
800002c4: 01400193 li gp,20
800002c8: 0bd31463 bne t1,t4,80000370 <fail>
800002cc <test_21>:
800002cc: 00000213 li tp,0
800002d0: 00b00093 li ra,11
800002d4: 00f0bf13 sltiu t5,ra,15
800002d8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002dc: 00200293 li t0,2
800002e0: fe5218e3 bne tp,t0,800002d0 <test_21+0x4>
800002e4: 00100e93 li t4,1
800002e8: 01500193 li gp,21
800002ec: 09df1263 bne t5,t4,80000370 <fail>
800002f0 <test_22>:
800002f0: 00000213 li tp,0
800002f4: 01100093 li ra,17
800002f8: 00000013 nop
800002fc: 0080bf13 sltiu t5,ra,8
80000300: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000304: 00200293 li t0,2
80000308: fe5216e3 bne tp,t0,800002f4 <test_22+0x4>
8000030c: 00000e93 li t4,0
80000310: 01600193 li gp,22
80000314: 05df1e63 bne t5,t4,80000370 <fail>
80000318 <test_23>:
80000318: 00000213 li tp,0
8000031c: 00c00093 li ra,12
80000320: 00000013 nop
80000324: 00000013 nop
80000328: 00e0bf13 sltiu t5,ra,14
8000032c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000330: 00200293 li t0,2
80000334: fe5214e3 bne tp,t0,8000031c <test_23+0x4>
80000338: 00100e93 li t4,1
8000033c: 01700193 li gp,23
80000340: 03df1863 bne t5,t4,80000370 <fail>
80000344 <test_24>:
80000344: fff03093 sltiu ra,zero,-1
80000348: 00100e93 li t4,1
8000034c: 01800193 li gp,24
80000350: 03d09063 bne ra,t4,80000370 <fail>
80000354 <test_25>:
80000354: 00ff00b7 lui ra,0xff0
80000358: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
8000035c: fff0b013 sltiu zero,ra,-1
80000360: 00000e93 li t4,0
80000364: 01900193 li gp,25
80000368: 01d01463 bne zero,t4,80000370 <fail>
8000036c: 00301c63 bne zero,gp,80000384 <pass>
80000370 <fail>:
80000370: 0ff0000f fence
80000374: 00018063 beqz gp,80000374 <fail+0x4>
80000378: 00119193 slli gp,gp,0x1
8000037c: 0011e193 ori gp,gp,1
80000380: 00000073 ecall
80000384 <pass>:
80000384: 0ff0000f fence
80000388: 00100193 li gp,1
8000038c: 00000073 ecall
80000390: c0001073 unimp
80000394: 0000 unimp
80000396: 0000 unimp
80000398: 0000 unimp
8000039a: 0000 unimp
8000039c: 0000 unimp
8000039e: 0000 unimp
800003a0: 0000 unimp
800003a2: 0000 unimp
800003a4: 0000 unimp
800003a6: 0000 unimp
800003a8: 0000 unimp
800003aa: 0000 unimp
800003ac: 0000 unimp
800003ae: 0000 unimp
800003b0: 0000 unimp
800003b2: 0000 unimp
800003b4: 0000 unimp
800003b6: 0000 unimp
800003b8: 0000 unimp
800003ba: 0000 unimp
800003bc: 0000 unimp
800003be: 0000 unimp
800003c0: 0000 unimp
800003c2: 0000 unimp

View file

@ -0,0 +1,485 @@
rv32ui-p-sltu: 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: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-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: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi sptbr,0
80000064: 00000297 auipc t0,0x0
80000068: 01c28293 addi t0,t0,28 # 80000080 <reset_vector+0x34>
8000006c: 30529073 csrw mtvec,t0
80000070: fff00293 li t0,-1
80000074: 3b029073 csrw pmpaddr0,t0
80000078: 01f00293 li t0,31
8000007c: 3a029073 csrw pmpcfg0,t0
80000080: 00000297 auipc t0,0x0
80000084: 01828293 addi t0,t0,24 # 80000098 <reset_vector+0x4c>
80000088: 30529073 csrw mtvec,t0
8000008c: 30205073 csrwi medeleg,0
80000090: 30305073 csrwi mideleg,0
80000094: 30405073 csrwi mie,0
80000098: 00000193 li gp,0
8000009c: 00000297 auipc t0,0x0
800000a0: f6828293 addi t0,t0,-152 # 80000004 <trap_vector>
800000a4: 30529073 csrw mtvec,t0
800000a8: 00100513 li a0,1
800000ac: 01f51513 slli a0,a0,0x1f
800000b0: 00054863 bltz a0,800000c0 <reset_vector+0x74>
800000b4: 0ff0000f fence
800000b8: 00100193 li gp,1
800000bc: 00000073 ecall
800000c0: 80000297 auipc t0,0x80000
800000c4: f4028293 addi t0,t0,-192 # 0 <_start-0x80000000>
800000c8: 00028e63 beqz t0,800000e4 <reset_vector+0x98>
800000cc: 10529073 csrw stvec,t0
800000d0: 0000b2b7 lui t0,0xb
800000d4: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000d8: 30229073 csrw medeleg,t0
800000dc: 30202373 csrr t1,medeleg
800000e0: f4629ee3 bne t0,t1,8000003c <handle_exception>
800000e4: 30005073 csrwi mstatus,0
800000e8: 00000297 auipc t0,0x0
800000ec: 01428293 addi t0,t0,20 # 800000fc <test_2>
800000f0: 34129073 csrw mepc,t0
800000f4: f1402573 csrr a0,mhartid
800000f8: 30200073 mret
800000fc <test_2>:
800000fc: 00000093 li ra,0
80000100: 00000113 li sp,0
80000104: 0020bf33 sltu t5,ra,sp
80000108: 00000e93 li t4,0
8000010c: 00200193 li gp,2
80000110: 4bdf1a63 bne t5,t4,800005c4 <fail>
80000114 <test_3>:
80000114: 00100093 li ra,1
80000118: 00100113 li sp,1
8000011c: 0020bf33 sltu t5,ra,sp
80000120: 00000e93 li t4,0
80000124: 00300193 li gp,3
80000128: 49df1e63 bne t5,t4,800005c4 <fail>
8000012c <test_4>:
8000012c: 00300093 li ra,3
80000130: 00700113 li sp,7
80000134: 0020bf33 sltu t5,ra,sp
80000138: 00100e93 li t4,1
8000013c: 00400193 li gp,4
80000140: 49df1263 bne t5,t4,800005c4 <fail>
80000144 <test_5>:
80000144: 00700093 li ra,7
80000148: 00300113 li sp,3
8000014c: 0020bf33 sltu t5,ra,sp
80000150: 00000e93 li t4,0
80000154: 00500193 li gp,5
80000158: 47df1663 bne t5,t4,800005c4 <fail>
8000015c <test_6>:
8000015c: 00000093 li ra,0
80000160: ffff8137 lui sp,0xffff8
80000164: 0020bf33 sltu t5,ra,sp
80000168: 00100e93 li t4,1
8000016c: 00600193 li gp,6
80000170: 45df1a63 bne t5,t4,800005c4 <fail>
80000174 <test_7>:
80000174: 800000b7 lui ra,0x80000
80000178: 00000113 li sp,0
8000017c: 0020bf33 sltu t5,ra,sp
80000180: 00000e93 li t4,0
80000184: 00700193 li gp,7
80000188: 43df1e63 bne t5,t4,800005c4 <fail>
8000018c <test_8>:
8000018c: 800000b7 lui ra,0x80000
80000190: ffff8137 lui sp,0xffff8
80000194: 0020bf33 sltu t5,ra,sp
80000198: 00100e93 li t4,1
8000019c: 00800193 li gp,8
800001a0: 43df1263 bne t5,t4,800005c4 <fail>
800001a4 <test_9>:
800001a4: 00000093 li ra,0
800001a8: 00008137 lui sp,0x8
800001ac: fff10113 addi sp,sp,-1 # 7fff <_start-0x7fff8001>
800001b0: 0020bf33 sltu t5,ra,sp
800001b4: 00100e93 li t4,1
800001b8: 00900193 li gp,9
800001bc: 41df1463 bne t5,t4,800005c4 <fail>
800001c0 <test_10>:
800001c0: 800000b7 lui ra,0x80000
800001c4: fff08093 addi ra,ra,-1 # 7fffffff <begin_signature+0xffffdfff>
800001c8: 00000113 li sp,0
800001cc: 0020bf33 sltu t5,ra,sp
800001d0: 00000e93 li t4,0
800001d4: 00a00193 li gp,10
800001d8: 3fdf1663 bne t5,t4,800005c4 <fail>
800001dc <test_11>:
800001dc: 800000b7 lui ra,0x80000
800001e0: fff08093 addi ra,ra,-1 # 7fffffff <begin_signature+0xffffdfff>
800001e4: 00008137 lui sp,0x8
800001e8: fff10113 addi sp,sp,-1 # 7fff <_start-0x7fff8001>
800001ec: 0020bf33 sltu t5,ra,sp
800001f0: 00000e93 li t4,0
800001f4: 00b00193 li gp,11
800001f8: 3ddf1663 bne t5,t4,800005c4 <fail>
800001fc <test_12>:
800001fc: 800000b7 lui ra,0x80000
80000200: 00008137 lui sp,0x8
80000204: fff10113 addi sp,sp,-1 # 7fff <_start-0x7fff8001>
80000208: 0020bf33 sltu t5,ra,sp
8000020c: 00000e93 li t4,0
80000210: 00c00193 li gp,12
80000214: 3bdf1863 bne t5,t4,800005c4 <fail>
80000218 <test_13>:
80000218: 800000b7 lui ra,0x80000
8000021c: fff08093 addi ra,ra,-1 # 7fffffff <begin_signature+0xffffdfff>
80000220: ffff8137 lui sp,0xffff8
80000224: 0020bf33 sltu t5,ra,sp
80000228: 00100e93 li t4,1
8000022c: 00d00193 li gp,13
80000230: 39df1a63 bne t5,t4,800005c4 <fail>
80000234 <test_14>:
80000234: 00000093 li ra,0
80000238: fff00113 li sp,-1
8000023c: 0020bf33 sltu t5,ra,sp
80000240: 00100e93 li t4,1
80000244: 00e00193 li gp,14
80000248: 37df1e63 bne t5,t4,800005c4 <fail>
8000024c <test_15>:
8000024c: fff00093 li ra,-1
80000250: 00100113 li sp,1
80000254: 0020bf33 sltu t5,ra,sp
80000258: 00000e93 li t4,0
8000025c: 00f00193 li gp,15
80000260: 37df1263 bne t5,t4,800005c4 <fail>
80000264 <test_16>:
80000264: fff00093 li ra,-1
80000268: fff00113 li sp,-1
8000026c: 0020bf33 sltu t5,ra,sp
80000270: 00000e93 li t4,0
80000274: 01000193 li gp,16
80000278: 35df1663 bne t5,t4,800005c4 <fail>
8000027c <test_17>:
8000027c: 00e00093 li ra,14
80000280: 00d00113 li sp,13
80000284: 0020b0b3 sltu ra,ra,sp
80000288: 00000e93 li t4,0
8000028c: 01100193 li gp,17
80000290: 33d09a63 bne ra,t4,800005c4 <fail>
80000294 <test_18>:
80000294: 00b00093 li ra,11
80000298: 00d00113 li sp,13
8000029c: 0020b133 sltu sp,ra,sp
800002a0: 00100e93 li t4,1
800002a4: 01200193 li gp,18
800002a8: 31d11e63 bne sp,t4,800005c4 <fail>
800002ac <test_19>:
800002ac: 00d00093 li ra,13
800002b0: 0010b0b3 sltu ra,ra,ra
800002b4: 00000e93 li t4,0
800002b8: 01300193 li gp,19
800002bc: 31d09463 bne ra,t4,800005c4 <fail>
800002c0 <test_20>:
800002c0: 00000213 li tp,0
800002c4: 00b00093 li ra,11
800002c8: 00d00113 li sp,13
800002cc: 0020bf33 sltu t5,ra,sp
800002d0: 000f0313 mv t1,t5
800002d4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002d8: 00200293 li t0,2
800002dc: fe5214e3 bne tp,t0,800002c4 <test_20+0x4>
800002e0: 00100e93 li t4,1
800002e4: 01400193 li gp,20
800002e8: 2dd31e63 bne t1,t4,800005c4 <fail>
800002ec <test_21>:
800002ec: 00000213 li tp,0
800002f0: 00e00093 li ra,14
800002f4: 00d00113 li sp,13
800002f8: 0020bf33 sltu t5,ra,sp
800002fc: 00000013 nop
80000300: 000f0313 mv t1,t5
80000304: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000308: 00200293 li t0,2
8000030c: fe5212e3 bne tp,t0,800002f0 <test_21+0x4>
80000310: 00000e93 li t4,0
80000314: 01500193 li gp,21
80000318: 2bd31663 bne t1,t4,800005c4 <fail>
8000031c <test_22>:
8000031c: 00000213 li tp,0
80000320: 00c00093 li ra,12
80000324: 00d00113 li sp,13
80000328: 0020bf33 sltu t5,ra,sp
8000032c: 00000013 nop
80000330: 00000013 nop
80000334: 000f0313 mv t1,t5
80000338: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000033c: 00200293 li t0,2
80000340: fe5210e3 bne tp,t0,80000320 <test_22+0x4>
80000344: 00100e93 li t4,1
80000348: 01600193 li gp,22
8000034c: 27d31c63 bne t1,t4,800005c4 <fail>
80000350 <test_23>:
80000350: 00000213 li tp,0
80000354: 00e00093 li ra,14
80000358: 00d00113 li sp,13
8000035c: 0020bf33 sltu t5,ra,sp
80000360: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000364: 00200293 li t0,2
80000368: fe5216e3 bne tp,t0,80000354 <test_23+0x4>
8000036c: 00000e93 li t4,0
80000370: 01700193 li gp,23
80000374: 25df1863 bne t5,t4,800005c4 <fail>
80000378 <test_24>:
80000378: 00000213 li tp,0
8000037c: 00b00093 li ra,11
80000380: 00d00113 li sp,13
80000384: 00000013 nop
80000388: 0020bf33 sltu t5,ra,sp
8000038c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000390: 00200293 li t0,2
80000394: fe5214e3 bne tp,t0,8000037c <test_24+0x4>
80000398: 00100e93 li t4,1
8000039c: 01800193 li gp,24
800003a0: 23df1263 bne t5,t4,800005c4 <fail>
800003a4 <test_25>:
800003a4: 00000213 li tp,0
800003a8: 00f00093 li ra,15
800003ac: 00d00113 li sp,13
800003b0: 00000013 nop
800003b4: 00000013 nop
800003b8: 0020bf33 sltu t5,ra,sp
800003bc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800003c0: 00200293 li t0,2
800003c4: fe5212e3 bne tp,t0,800003a8 <test_25+0x4>
800003c8: 00000e93 li t4,0
800003cc: 01900193 li gp,25
800003d0: 1fdf1a63 bne t5,t4,800005c4 <fail>
800003d4 <test_26>:
800003d4: 00000213 li tp,0
800003d8: 00a00093 li ra,10
800003dc: 00000013 nop
800003e0: 00d00113 li sp,13
800003e4: 0020bf33 sltu t5,ra,sp
800003e8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800003ec: 00200293 li t0,2
800003f0: fe5214e3 bne tp,t0,800003d8 <test_26+0x4>
800003f4: 00100e93 li t4,1
800003f8: 01a00193 li gp,26
800003fc: 1ddf1463 bne t5,t4,800005c4 <fail>
80000400 <test_27>:
80000400: 00000213 li tp,0
80000404: 01000093 li ra,16
80000408: 00000013 nop
8000040c: 00d00113 li sp,13
80000410: 00000013 nop
80000414: 0020bf33 sltu t5,ra,sp
80000418: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000041c: 00200293 li t0,2
80000420: fe5212e3 bne tp,t0,80000404 <test_27+0x4>
80000424: 00000e93 li t4,0
80000428: 01b00193 li gp,27
8000042c: 19df1c63 bne t5,t4,800005c4 <fail>
80000430 <test_28>:
80000430: 00000213 li tp,0
80000434: 00900093 li ra,9
80000438: 00000013 nop
8000043c: 00000013 nop
80000440: 00d00113 li sp,13
80000444: 0020bf33 sltu t5,ra,sp
80000448: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000044c: 00200293 li t0,2
80000450: fe5212e3 bne tp,t0,80000434 <test_28+0x4>
80000454: 00100e93 li t4,1
80000458: 01c00193 li gp,28
8000045c: 17df1463 bne t5,t4,800005c4 <fail>
80000460 <test_29>:
80000460: 00000213 li tp,0
80000464: 00d00113 li sp,13
80000468: 01100093 li ra,17
8000046c: 0020bf33 sltu t5,ra,sp
80000470: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000474: 00200293 li t0,2
80000478: fe5216e3 bne tp,t0,80000464 <test_29+0x4>
8000047c: 00000e93 li t4,0
80000480: 01d00193 li gp,29
80000484: 15df1063 bne t5,t4,800005c4 <fail>
80000488 <test_30>:
80000488: 00000213 li tp,0
8000048c: 00d00113 li sp,13
80000490: 00800093 li ra,8
80000494: 00000013 nop
80000498: 0020bf33 sltu t5,ra,sp
8000049c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800004a0: 00200293 li t0,2
800004a4: fe5214e3 bne tp,t0,8000048c <test_30+0x4>
800004a8: 00100e93 li t4,1
800004ac: 01e00193 li gp,30
800004b0: 11df1a63 bne t5,t4,800005c4 <fail>
800004b4 <test_31>:
800004b4: 00000213 li tp,0
800004b8: 00d00113 li sp,13
800004bc: 01200093 li ra,18
800004c0: 00000013 nop
800004c4: 00000013 nop
800004c8: 0020bf33 sltu t5,ra,sp
800004cc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800004d0: 00200293 li t0,2
800004d4: fe5212e3 bne tp,t0,800004b8 <test_31+0x4>
800004d8: 00000e93 li t4,0
800004dc: 01f00193 li gp,31
800004e0: 0fdf1263 bne t5,t4,800005c4 <fail>
800004e4 <test_32>:
800004e4: 00000213 li tp,0
800004e8: 00d00113 li sp,13
800004ec: 00000013 nop
800004f0: 00700093 li ra,7
800004f4: 0020bf33 sltu t5,ra,sp
800004f8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800004fc: 00200293 li t0,2
80000500: fe5214e3 bne tp,t0,800004e8 <test_32+0x4>
80000504: 00100e93 li t4,1
80000508: 02000193 li gp,32
8000050c: 0bdf1c63 bne t5,t4,800005c4 <fail>
80000510 <test_33>:
80000510: 00000213 li tp,0
80000514: 00d00113 li sp,13
80000518: 00000013 nop
8000051c: 01300093 li ra,19
80000520: 00000013 nop
80000524: 0020bf33 sltu t5,ra,sp
80000528: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000052c: 00200293 li t0,2
80000530: fe5212e3 bne tp,t0,80000514 <test_33+0x4>
80000534: 00000e93 li t4,0
80000538: 02100193 li gp,33
8000053c: 09df1463 bne t5,t4,800005c4 <fail>
80000540 <test_34>:
80000540: 00000213 li tp,0
80000544: 00d00113 li sp,13
80000548: 00000013 nop
8000054c: 00000013 nop
80000550: 00600093 li ra,6
80000554: 0020bf33 sltu t5,ra,sp
80000558: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000055c: 00200293 li t0,2
80000560: fe5212e3 bne tp,t0,80000544 <test_34+0x4>
80000564: 00100e93 li t4,1
80000568: 02200193 li gp,34
8000056c: 05df1c63 bne t5,t4,800005c4 <fail>
80000570 <test_35>:
80000570: fff00093 li ra,-1
80000574: 00103133 snez sp,ra
80000578: 00100e93 li t4,1
8000057c: 02300193 li gp,35
80000580: 05d11263 bne sp,t4,800005c4 <fail>
80000584 <test_36>:
80000584: fff00093 li ra,-1
80000588: 0000b133 sltu sp,ra,zero
8000058c: 00000e93 li t4,0
80000590: 02400193 li gp,36
80000594: 03d11863 bne sp,t4,800005c4 <fail>
80000598 <test_37>:
80000598: 000030b3 snez ra,zero
8000059c: 00000e93 li t4,0
800005a0: 02500193 li gp,37
800005a4: 03d09063 bne ra,t4,800005c4 <fail>
800005a8 <test_38>:
800005a8: 01000093 li ra,16
800005ac: 01e00113 li sp,30
800005b0: 0020b033 sltu zero,ra,sp
800005b4: 00000e93 li t4,0
800005b8: 02600193 li gp,38
800005bc: 01d01463 bne zero,t4,800005c4 <fail>
800005c0: 00301c63 bne zero,gp,800005d8 <pass>
800005c4 <fail>:
800005c4: 0ff0000f fence
800005c8: 00018063 beqz gp,800005c8 <fail+0x4>
800005cc: 00119193 slli gp,gp,0x1
800005d0: 0011e193 ori gp,gp,1
800005d4: 00000073 ecall
800005d8 <pass>:
800005d8: 0ff0000f fence
800005dc: 00100193 li gp,1
800005e0: 00000073 ecall
800005e4: c0001073 unimp
800005e8: 0000 unimp
800005ea: 0000 unimp
800005ec: 0000 unimp
800005ee: 0000 unimp
800005f0: 0000 unimp
800005f2: 0000 unimp
800005f4: 0000 unimp
800005f6: 0000 unimp
800005f8: 0000 unimp
800005fa: 0000 unimp
800005fc: 0000 unimp
800005fe: 0000 unimp
80000600: 0000 unimp
80000602: 0000 unimp

View file

@ -0,0 +1,563 @@
rv32ui-p-sra: 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: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-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: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 02028293 addi t0,t0,32 # 80000084 <reset_vector+0x38>
8000006c: 30529073 csrw mtvec,t0
80000070: 800002b7 lui t0,0x80000
80000074: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdfff>
80000078: 3b029073 csrw pmpaddr0,t0
8000007c: 01f00293 li t0,31
80000080: 3a029073 csrw pmpcfg0,t0
80000084: 00000297 auipc t0,0x0
80000088: 01828293 addi t0,t0,24 # 8000009c <reset_vector+0x50>
8000008c: 30529073 csrw mtvec,t0
80000090: 30205073 csrwi medeleg,0
80000094: 30305073 csrwi mideleg,0
80000098: 30405073 csrwi mie,0
8000009c: 00000193 li gp,0
800000a0: 00000297 auipc t0,0x0
800000a4: f6428293 addi t0,t0,-156 # 80000004 <trap_vector>
800000a8: 30529073 csrw mtvec,t0
800000ac: 00100513 li a0,1
800000b0: 01f51513 slli a0,a0,0x1f
800000b4: 00054c63 bltz a0,800000cc <reset_vector+0x80>
800000b8: 0ff0000f fence
800000bc: 00100193 li gp,1
800000c0: 05d00893 li a7,93
800000c4: 00000513 li a0,0
800000c8: 00000073 ecall
800000cc: 80000297 auipc t0,0x80000
800000d0: f3428293 addi t0,t0,-204 # 0 <_start-0x80000000>
800000d4: 00028e63 beqz t0,800000f0 <reset_vector+0xa4>
800000d8: 10529073 csrw stvec,t0
800000dc: 0000b2b7 lui t0,0xb
800000e0: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000e4: 30229073 csrw medeleg,t0
800000e8: 30202373 csrr t1,medeleg
800000ec: f46298e3 bne t0,t1,8000003c <handle_exception>
800000f0: 30005073 csrwi mstatus,0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <test_2>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108 <test_2>:
80000108: 800000b7 lui ra,0x80000
8000010c: 00000113 li sp,0
80000110: 4020d733 sra a4,ra,sp
80000114: 80000eb7 lui t4,0x80000
80000118: 00200193 li gp,2
8000011c: 59d71463 bne a4,t4,800006a4 <fail>
80000120 <test_3>:
80000120: 800000b7 lui ra,0x80000
80000124: 00100113 li sp,1
80000128: 4020d733 sra a4,ra,sp
8000012c: c0000eb7 lui t4,0xc0000
80000130: 00300193 li gp,3
80000134: 57d71863 bne a4,t4,800006a4 <fail>
80000138 <test_4>:
80000138: 800000b7 lui ra,0x80000
8000013c: 00700113 li sp,7
80000140: 4020d733 sra a4,ra,sp
80000144: ff000eb7 lui t4,0xff000
80000148: 00400193 li gp,4
8000014c: 55d71c63 bne a4,t4,800006a4 <fail>
80000150 <test_5>:
80000150: 800000b7 lui ra,0x80000
80000154: 00e00113 li sp,14
80000158: 4020d733 sra a4,ra,sp
8000015c: fffe0eb7 lui t4,0xfffe0
80000160: 00500193 li gp,5
80000164: 55d71063 bne a4,t4,800006a4 <fail>
80000168 <test_6>:
80000168: 800000b7 lui ra,0x80000
8000016c: 00108093 addi ra,ra,1 # 80000001 <_end+0xffffe001>
80000170: 01f00113 li sp,31
80000174: 4020d733 sra a4,ra,sp
80000178: fff00e93 li t4,-1
8000017c: 00600193 li gp,6
80000180: 53d71263 bne a4,t4,800006a4 <fail>
80000184 <test_7>:
80000184: 800000b7 lui ra,0x80000
80000188: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffffdfff>
8000018c: 00000113 li sp,0
80000190: 4020d733 sra a4,ra,sp
80000194: 80000eb7 lui t4,0x80000
80000198: fffe8e93 addi t4,t4,-1 # 7fffffff <_end+0xffffdfff>
8000019c: 00700193 li gp,7
800001a0: 51d71263 bne a4,t4,800006a4 <fail>
800001a4 <test_8>:
800001a4: 800000b7 lui ra,0x80000
800001a8: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffffdfff>
800001ac: 00100113 li sp,1
800001b0: 4020d733 sra a4,ra,sp
800001b4: 40000eb7 lui t4,0x40000
800001b8: fffe8e93 addi t4,t4,-1 # 3fffffff <_start-0x40000001>
800001bc: 00800193 li gp,8
800001c0: 4fd71263 bne a4,t4,800006a4 <fail>
800001c4 <test_9>:
800001c4: 800000b7 lui ra,0x80000
800001c8: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffffdfff>
800001cc: 00700113 li sp,7
800001d0: 4020d733 sra a4,ra,sp
800001d4: 01000eb7 lui t4,0x1000
800001d8: fffe8e93 addi t4,t4,-1 # ffffff <_start-0x7f000001>
800001dc: 00900193 li gp,9
800001e0: 4dd71263 bne a4,t4,800006a4 <fail>
800001e4 <test_10>:
800001e4: 800000b7 lui ra,0x80000
800001e8: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffffdfff>
800001ec: 00e00113 li sp,14
800001f0: 4020d733 sra a4,ra,sp
800001f4: 00020eb7 lui t4,0x20
800001f8: fffe8e93 addi t4,t4,-1 # 1ffff <_start-0x7ffe0001>
800001fc: 00a00193 li gp,10
80000200: 4bd71263 bne a4,t4,800006a4 <fail>
80000204 <test_11>:
80000204: 800000b7 lui ra,0x80000
80000208: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffffdfff>
8000020c: 01f00113 li sp,31
80000210: 4020d733 sra a4,ra,sp
80000214: 00000e93 li t4,0
80000218: 00b00193 li gp,11
8000021c: 49d71463 bne a4,t4,800006a4 <fail>
80000220 <test_12>:
80000220: 818180b7 lui ra,0x81818
80000224: 18108093 addi ra,ra,385 # 81818181 <_end+0x1816181>
80000228: 00000113 li sp,0
8000022c: 4020d733 sra a4,ra,sp
80000230: 81818eb7 lui t4,0x81818
80000234: 181e8e93 addi t4,t4,385 # 81818181 <_end+0x1816181>
80000238: 00c00193 li gp,12
8000023c: 47d71463 bne a4,t4,800006a4 <fail>
80000240 <test_13>:
80000240: 818180b7 lui ra,0x81818
80000244: 18108093 addi ra,ra,385 # 81818181 <_end+0x1816181>
80000248: 00100113 li sp,1
8000024c: 4020d733 sra a4,ra,sp
80000250: c0c0ceb7 lui t4,0xc0c0c
80000254: 0c0e8e93 addi t4,t4,192 # c0c0c0c0 <_end+0x40c0a0c0>
80000258: 00d00193 li gp,13
8000025c: 45d71463 bne a4,t4,800006a4 <fail>
80000260 <test_14>:
80000260: 818180b7 lui ra,0x81818
80000264: 18108093 addi ra,ra,385 # 81818181 <_end+0x1816181>
80000268: 00700113 li sp,7
8000026c: 4020d733 sra a4,ra,sp
80000270: ff030eb7 lui t4,0xff030
80000274: 303e8e93 addi t4,t4,771 # ff030303 <_end+0x7f02e303>
80000278: 00e00193 li gp,14
8000027c: 43d71463 bne a4,t4,800006a4 <fail>
80000280 <test_15>:
80000280: 818180b7 lui ra,0x81818
80000284: 18108093 addi ra,ra,385 # 81818181 <_end+0x1816181>
80000288: 00e00113 li sp,14
8000028c: 4020d733 sra a4,ra,sp
80000290: fffe0eb7 lui t4,0xfffe0
80000294: 606e8e93 addi t4,t4,1542 # fffe0606 <_end+0x7ffde606>
80000298: 00f00193 li gp,15
8000029c: 41d71463 bne a4,t4,800006a4 <fail>
800002a0 <test_16>:
800002a0: 818180b7 lui ra,0x81818
800002a4: 18108093 addi ra,ra,385 # 81818181 <_end+0x1816181>
800002a8: 01f00113 li sp,31
800002ac: 4020d733 sra a4,ra,sp
800002b0: fff00e93 li t4,-1
800002b4: 01000193 li gp,16
800002b8: 3fd71663 bne a4,t4,800006a4 <fail>
800002bc <test_17>:
800002bc: 818180b7 lui ra,0x81818
800002c0: 18108093 addi ra,ra,385 # 81818181 <_end+0x1816181>
800002c4: fc000113 li sp,-64
800002c8: 4020d733 sra a4,ra,sp
800002cc: 81818eb7 lui t4,0x81818
800002d0: 181e8e93 addi t4,t4,385 # 81818181 <_end+0x1816181>
800002d4: 01100193 li gp,17
800002d8: 3dd71663 bne a4,t4,800006a4 <fail>
800002dc <test_18>:
800002dc: 818180b7 lui ra,0x81818
800002e0: 18108093 addi ra,ra,385 # 81818181 <_end+0x1816181>
800002e4: fc100113 li sp,-63
800002e8: 4020d733 sra a4,ra,sp
800002ec: c0c0ceb7 lui t4,0xc0c0c
800002f0: 0c0e8e93 addi t4,t4,192 # c0c0c0c0 <_end+0x40c0a0c0>
800002f4: 01200193 li gp,18
800002f8: 3bd71663 bne a4,t4,800006a4 <fail>
800002fc <test_19>:
800002fc: 818180b7 lui ra,0x81818
80000300: 18108093 addi ra,ra,385 # 81818181 <_end+0x1816181>
80000304: fc700113 li sp,-57
80000308: 4020d733 sra a4,ra,sp
8000030c: ff030eb7 lui t4,0xff030
80000310: 303e8e93 addi t4,t4,771 # ff030303 <_end+0x7f02e303>
80000314: 01300193 li gp,19
80000318: 39d71663 bne a4,t4,800006a4 <fail>
8000031c <test_20>:
8000031c: 818180b7 lui ra,0x81818
80000320: 18108093 addi ra,ra,385 # 81818181 <_end+0x1816181>
80000324: fce00113 li sp,-50
80000328: 4020d733 sra a4,ra,sp
8000032c: fffe0eb7 lui t4,0xfffe0
80000330: 606e8e93 addi t4,t4,1542 # fffe0606 <_end+0x7ffde606>
80000334: 01400193 li gp,20
80000338: 37d71663 bne a4,t4,800006a4 <fail>
8000033c <test_21>:
8000033c: 818180b7 lui ra,0x81818
80000340: 18108093 addi ra,ra,385 # 81818181 <_end+0x1816181>
80000344: fff00113 li sp,-1
80000348: 4020d733 sra a4,ra,sp
8000034c: fff00e93 li t4,-1
80000350: 01500193 li gp,21
80000354: 35d71863 bne a4,t4,800006a4 <fail>
80000358 <test_22>:
80000358: 800000b7 lui ra,0x80000
8000035c: 00700113 li sp,7
80000360: 4020d0b3 sra ra,ra,sp
80000364: ff000eb7 lui t4,0xff000
80000368: 01600193 li gp,22
8000036c: 33d09c63 bne ra,t4,800006a4 <fail>
80000370 <test_23>:
80000370: 800000b7 lui ra,0x80000
80000374: 00e00113 li sp,14
80000378: 4020d133 sra sp,ra,sp
8000037c: fffe0eb7 lui t4,0xfffe0
80000380: 01700193 li gp,23
80000384: 33d11063 bne sp,t4,800006a4 <fail>
80000388 <test_24>:
80000388: 00700093 li ra,7
8000038c: 4010d0b3 sra ra,ra,ra
80000390: 00000e93 li t4,0
80000394: 01800193 li gp,24
80000398: 31d09663 bne ra,t4,800006a4 <fail>
8000039c <test_25>:
8000039c: 00000213 li tp,0
800003a0: 800000b7 lui ra,0x80000
800003a4: 00700113 li sp,7
800003a8: 4020d733 sra a4,ra,sp
800003ac: 00070313 mv t1,a4
800003b0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800003b4: 00200293 li t0,2
800003b8: fe5214e3 bne tp,t0,800003a0 <test_25+0x4>
800003bc: ff000eb7 lui t4,0xff000
800003c0: 01900193 li gp,25
800003c4: 2fd31063 bne t1,t4,800006a4 <fail>
800003c8 <test_26>:
800003c8: 00000213 li tp,0
800003cc: 800000b7 lui ra,0x80000
800003d0: 00e00113 li sp,14
800003d4: 4020d733 sra a4,ra,sp
800003d8: 00000013 nop
800003dc: 00070313 mv t1,a4
800003e0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800003e4: 00200293 li t0,2
800003e8: fe5212e3 bne tp,t0,800003cc <test_26+0x4>
800003ec: fffe0eb7 lui t4,0xfffe0
800003f0: 01a00193 li gp,26
800003f4: 2bd31863 bne t1,t4,800006a4 <fail>
800003f8 <test_27>:
800003f8: 00000213 li tp,0
800003fc: 800000b7 lui ra,0x80000
80000400: 01f00113 li sp,31
80000404: 4020d733 sra a4,ra,sp
80000408: 00000013 nop
8000040c: 00000013 nop
80000410: 00070313 mv t1,a4
80000414: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000418: 00200293 li t0,2
8000041c: fe5210e3 bne tp,t0,800003fc <test_27+0x4>
80000420: fff00e93 li t4,-1
80000424: 01b00193 li gp,27
80000428: 27d31e63 bne t1,t4,800006a4 <fail>
8000042c <test_28>:
8000042c: 00000213 li tp,0
80000430: 800000b7 lui ra,0x80000
80000434: 00700113 li sp,7
80000438: 4020d733 sra a4,ra,sp
8000043c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000440: 00200293 li t0,2
80000444: fe5216e3 bne tp,t0,80000430 <test_28+0x4>
80000448: ff000eb7 lui t4,0xff000
8000044c: 01c00193 li gp,28
80000450: 25d71a63 bne a4,t4,800006a4 <fail>
80000454 <test_29>:
80000454: 00000213 li tp,0
80000458: 800000b7 lui ra,0x80000
8000045c: 00e00113 li sp,14
80000460: 00000013 nop
80000464: 4020d733 sra a4,ra,sp
80000468: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000046c: 00200293 li t0,2
80000470: fe5214e3 bne tp,t0,80000458 <test_29+0x4>
80000474: fffe0eb7 lui t4,0xfffe0
80000478: 01d00193 li gp,29
8000047c: 23d71463 bne a4,t4,800006a4 <fail>
80000480 <test_30>:
80000480: 00000213 li tp,0
80000484: 800000b7 lui ra,0x80000
80000488: 01f00113 li sp,31
8000048c: 00000013 nop
80000490: 00000013 nop
80000494: 4020d733 sra a4,ra,sp
80000498: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000049c: 00200293 li t0,2
800004a0: fe5212e3 bne tp,t0,80000484 <test_30+0x4>
800004a4: fff00e93 li t4,-1
800004a8: 01e00193 li gp,30
800004ac: 1fd71c63 bne a4,t4,800006a4 <fail>
800004b0 <test_31>:
800004b0: 00000213 li tp,0
800004b4: 800000b7 lui ra,0x80000
800004b8: 00000013 nop
800004bc: 00700113 li sp,7
800004c0: 4020d733 sra a4,ra,sp
800004c4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800004c8: 00200293 li t0,2
800004cc: fe5214e3 bne tp,t0,800004b4 <test_31+0x4>
800004d0: ff000eb7 lui t4,0xff000
800004d4: 01f00193 li gp,31
800004d8: 1dd71663 bne a4,t4,800006a4 <fail>
800004dc <test_32>:
800004dc: 00000213 li tp,0
800004e0: 800000b7 lui ra,0x80000
800004e4: 00000013 nop
800004e8: 00e00113 li sp,14
800004ec: 00000013 nop
800004f0: 4020d733 sra a4,ra,sp
800004f4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800004f8: 00200293 li t0,2
800004fc: fe5212e3 bne tp,t0,800004e0 <test_32+0x4>
80000500: fffe0eb7 lui t4,0xfffe0
80000504: 02000193 li gp,32
80000508: 19d71e63 bne a4,t4,800006a4 <fail>
8000050c <test_33>:
8000050c: 00000213 li tp,0
80000510: 800000b7 lui ra,0x80000
80000514: 00000013 nop
80000518: 00000013 nop
8000051c: 01f00113 li sp,31
80000520: 4020d733 sra a4,ra,sp
80000524: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000528: 00200293 li t0,2
8000052c: fe5212e3 bne tp,t0,80000510 <test_33+0x4>
80000530: fff00e93 li t4,-1
80000534: 02100193 li gp,33
80000538: 17d71663 bne a4,t4,800006a4 <fail>
8000053c <test_34>:
8000053c: 00000213 li tp,0
80000540: 00700113 li sp,7
80000544: 800000b7 lui ra,0x80000
80000548: 4020d733 sra a4,ra,sp
8000054c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000550: 00200293 li t0,2
80000554: fe5216e3 bne tp,t0,80000540 <test_34+0x4>
80000558: ff000eb7 lui t4,0xff000
8000055c: 02200193 li gp,34
80000560: 15d71263 bne a4,t4,800006a4 <fail>
80000564 <test_35>:
80000564: 00000213 li tp,0
80000568: 00e00113 li sp,14
8000056c: 800000b7 lui ra,0x80000
80000570: 00000013 nop
80000574: 4020d733 sra a4,ra,sp
80000578: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000057c: 00200293 li t0,2
80000580: fe5214e3 bne tp,t0,80000568 <test_35+0x4>
80000584: fffe0eb7 lui t4,0xfffe0
80000588: 02300193 li gp,35
8000058c: 11d71c63 bne a4,t4,800006a4 <fail>
80000590 <test_36>:
80000590: 00000213 li tp,0
80000594: 01f00113 li sp,31
80000598: 800000b7 lui ra,0x80000
8000059c: 00000013 nop
800005a0: 00000013 nop
800005a4: 4020d733 sra a4,ra,sp
800005a8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800005ac: 00200293 li t0,2
800005b0: fe5212e3 bne tp,t0,80000594 <test_36+0x4>
800005b4: fff00e93 li t4,-1
800005b8: 02400193 li gp,36
800005bc: 0fd71463 bne a4,t4,800006a4 <fail>
800005c0 <test_37>:
800005c0: 00000213 li tp,0
800005c4: 00700113 li sp,7
800005c8: 00000013 nop
800005cc: 800000b7 lui ra,0x80000
800005d0: 4020d733 sra a4,ra,sp
800005d4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800005d8: 00200293 li t0,2
800005dc: fe5214e3 bne tp,t0,800005c4 <test_37+0x4>
800005e0: ff000eb7 lui t4,0xff000
800005e4: 02500193 li gp,37
800005e8: 0bd71e63 bne a4,t4,800006a4 <fail>
800005ec <test_38>:
800005ec: 00000213 li tp,0
800005f0: 00e00113 li sp,14
800005f4: 00000013 nop
800005f8: 800000b7 lui ra,0x80000
800005fc: 00000013 nop
80000600: 4020d733 sra a4,ra,sp
80000604: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000608: 00200293 li t0,2
8000060c: fe5212e3 bne tp,t0,800005f0 <test_38+0x4>
80000610: fffe0eb7 lui t4,0xfffe0
80000614: 02600193 li gp,38
80000618: 09d71663 bne a4,t4,800006a4 <fail>
8000061c <test_39>:
8000061c: 00000213 li tp,0
80000620: 01f00113 li sp,31
80000624: 00000013 nop
80000628: 00000013 nop
8000062c: 800000b7 lui ra,0x80000
80000630: 4020d733 sra a4,ra,sp
80000634: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000638: 00200293 li t0,2
8000063c: fe5212e3 bne tp,t0,80000620 <test_39+0x4>
80000640: fff00e93 li t4,-1
80000644: 02700193 li gp,39
80000648: 05d71e63 bne a4,t4,800006a4 <fail>
8000064c <test_40>:
8000064c: 00f00093 li ra,15
80000650: 40105133 sra sp,zero,ra
80000654: 00000e93 li t4,0
80000658: 02800193 li gp,40
8000065c: 05d11463 bne sp,t4,800006a4 <fail>
80000660 <test_41>:
80000660: 02000093 li ra,32
80000664: 4000d133 sra sp,ra,zero
80000668: 02000e93 li t4,32
8000066c: 02900193 li gp,41
80000670: 03d11a63 bne sp,t4,800006a4 <fail>
80000674 <test_42>:
80000674: 400050b3 sra ra,zero,zero
80000678: 00000e93 li t4,0
8000067c: 02a00193 li gp,42
80000680: 03d09263 bne ra,t4,800006a4 <fail>
80000684 <test_43>:
80000684: 40000093 li ra,1024
80000688: 00001137 lui sp,0x1
8000068c: 80010113 addi sp,sp,-2048 # 800 <_start-0x7ffff800>
80000690: 4020d033 sra zero,ra,sp
80000694: 00000e93 li t4,0
80000698: 02b00193 li gp,43
8000069c: 01d01463 bne zero,t4,800006a4 <fail>
800006a0: 02301063 bne zero,gp,800006c0 <pass>
800006a4 <fail>:
800006a4: 0ff0000f fence
800006a8: 00018063 beqz gp,800006a8 <fail+0x4>
800006ac: 00119193 slli gp,gp,0x1
800006b0: 0011e193 ori gp,gp,1
800006b4: 05d00893 li a7,93
800006b8: 00018513 mv a0,gp
800006bc: 00000073 ecall
800006c0 <pass>:
800006c0: 0ff0000f fence
800006c4: 00100193 li gp,1
800006c8: 05d00893 li a7,93
800006cc: 00000513 li a0,0
800006d0: 00000073 ecall
800006d4: c0001073 unimp
800006d8: 0000 unimp
800006da: 0000 unimp
800006dc: 0000 unimp
800006de: 0000 unimp
800006e0: 0000 unimp
800006e2: 0000 unimp
800006e4: 0000 unimp
800006e6: 0000 unimp
800006e8: 0000 unimp
800006ea: 0000 unimp
800006ec: 0000 unimp
800006ee: 0000 unimp
800006f0: 0000 unimp
800006f2: 0000 unimp
800006f4: 0000 unimp
800006f6: 0000 unimp
800006f8: 0000 unimp
800006fa: 0000 unimp
800006fc: 0000 unimp
800006fe: 0000 unimp
80000700: 0000 unimp
80000702: 0000 unimp

View file

@ -0,0 +1,328 @@
rv32ui-p-srai: 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: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-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: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 02028293 addi t0,t0,32 # 80000084 <reset_vector+0x38>
8000006c: 30529073 csrw mtvec,t0
80000070: 800002b7 lui t0,0x80000
80000074: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdfff>
80000078: 3b029073 csrw pmpaddr0,t0
8000007c: 01f00293 li t0,31
80000080: 3a029073 csrw pmpcfg0,t0
80000084: 00000297 auipc t0,0x0
80000088: 01828293 addi t0,t0,24 # 8000009c <reset_vector+0x50>
8000008c: 30529073 csrw mtvec,t0
80000090: 30205073 csrwi medeleg,0
80000094: 30305073 csrwi mideleg,0
80000098: 30405073 csrwi mie,0
8000009c: 00000193 li gp,0
800000a0: 00000297 auipc t0,0x0
800000a4: f6428293 addi t0,t0,-156 # 80000004 <trap_vector>
800000a8: 30529073 csrw mtvec,t0
800000ac: 00100513 li a0,1
800000b0: 01f51513 slli a0,a0,0x1f
800000b4: 00054c63 bltz a0,800000cc <reset_vector+0x80>
800000b8: 0ff0000f fence
800000bc: 00100193 li gp,1
800000c0: 05d00893 li a7,93
800000c4: 00000513 li a0,0
800000c8: 00000073 ecall
800000cc: 80000297 auipc t0,0x80000
800000d0: f3428293 addi t0,t0,-204 # 0 <_start-0x80000000>
800000d4: 00028e63 beqz t0,800000f0 <reset_vector+0xa4>
800000d8: 10529073 csrw stvec,t0
800000dc: 0000b2b7 lui t0,0xb
800000e0: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000e4: 30229073 csrw medeleg,t0
800000e8: 30202373 csrr t1,medeleg
800000ec: f46298e3 bne t0,t1,8000003c <handle_exception>
800000f0: 30005073 csrwi mstatus,0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <test_2>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108 <test_2>:
80000108: 00000093 li ra,0
8000010c: 4000d713 srai a4,ra,0x0
80000110: 00000e93 li t4,0
80000114: 00200193 li gp,2
80000118: 2bd71463 bne a4,t4,800003c0 <fail>
8000011c <test_3>:
8000011c: 800000b7 lui ra,0x80000
80000120: 4010d713 srai a4,ra,0x1
80000124: c0000eb7 lui t4,0xc0000
80000128: 00300193 li gp,3
8000012c: 29d71a63 bne a4,t4,800003c0 <fail>
80000130 <test_4>:
80000130: 800000b7 lui ra,0x80000
80000134: 4070d713 srai a4,ra,0x7
80000138: ff000eb7 lui t4,0xff000
8000013c: 00400193 li gp,4
80000140: 29d71063 bne a4,t4,800003c0 <fail>
80000144 <test_5>:
80000144: 800000b7 lui ra,0x80000
80000148: 40e0d713 srai a4,ra,0xe
8000014c: fffe0eb7 lui t4,0xfffe0
80000150: 00500193 li gp,5
80000154: 27d71663 bne a4,t4,800003c0 <fail>
80000158 <test_6>:
80000158: 800000b7 lui ra,0x80000
8000015c: 00108093 addi ra,ra,1 # 80000001 <_end+0xffffe001>
80000160: 41f0d713 srai a4,ra,0x1f
80000164: fff00e93 li t4,-1
80000168: 00600193 li gp,6
8000016c: 25d71a63 bne a4,t4,800003c0 <fail>
80000170 <test_7>:
80000170: 800000b7 lui ra,0x80000
80000174: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffffdfff>
80000178: 4000d713 srai a4,ra,0x0
8000017c: 80000eb7 lui t4,0x80000
80000180: fffe8e93 addi t4,t4,-1 # 7fffffff <_end+0xffffdfff>
80000184: 00700193 li gp,7
80000188: 23d71c63 bne a4,t4,800003c0 <fail>
8000018c <test_8>:
8000018c: 800000b7 lui ra,0x80000
80000190: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffffdfff>
80000194: 4010d713 srai a4,ra,0x1
80000198: 40000eb7 lui t4,0x40000
8000019c: fffe8e93 addi t4,t4,-1 # 3fffffff <_start-0x40000001>
800001a0: 00800193 li gp,8
800001a4: 21d71e63 bne a4,t4,800003c0 <fail>
800001a8 <test_9>:
800001a8: 800000b7 lui ra,0x80000
800001ac: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffffdfff>
800001b0: 4070d713 srai a4,ra,0x7
800001b4: 01000eb7 lui t4,0x1000
800001b8: fffe8e93 addi t4,t4,-1 # ffffff <_start-0x7f000001>
800001bc: 00900193 li gp,9
800001c0: 21d71063 bne a4,t4,800003c0 <fail>
800001c4 <test_10>:
800001c4: 800000b7 lui ra,0x80000
800001c8: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffffdfff>
800001cc: 40e0d713 srai a4,ra,0xe
800001d0: 00020eb7 lui t4,0x20
800001d4: fffe8e93 addi t4,t4,-1 # 1ffff <_start-0x7ffe0001>
800001d8: 00a00193 li gp,10
800001dc: 1fd71263 bne a4,t4,800003c0 <fail>
800001e0 <test_11>:
800001e0: 800000b7 lui ra,0x80000
800001e4: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffffdfff>
800001e8: 41f0d713 srai a4,ra,0x1f
800001ec: 00000e93 li t4,0
800001f0: 00b00193 li gp,11
800001f4: 1dd71663 bne a4,t4,800003c0 <fail>
800001f8 <test_12>:
800001f8: 818180b7 lui ra,0x81818
800001fc: 18108093 addi ra,ra,385 # 81818181 <_end+0x1816181>
80000200: 4000d713 srai a4,ra,0x0
80000204: 81818eb7 lui t4,0x81818
80000208: 181e8e93 addi t4,t4,385 # 81818181 <_end+0x1816181>
8000020c: 00c00193 li gp,12
80000210: 1bd71863 bne a4,t4,800003c0 <fail>
80000214 <test_13>:
80000214: 818180b7 lui ra,0x81818
80000218: 18108093 addi ra,ra,385 # 81818181 <_end+0x1816181>
8000021c: 4010d713 srai a4,ra,0x1
80000220: c0c0ceb7 lui t4,0xc0c0c
80000224: 0c0e8e93 addi t4,t4,192 # c0c0c0c0 <_end+0x40c0a0c0>
80000228: 00d00193 li gp,13
8000022c: 19d71a63 bne a4,t4,800003c0 <fail>
80000230 <test_14>:
80000230: 818180b7 lui ra,0x81818
80000234: 18108093 addi ra,ra,385 # 81818181 <_end+0x1816181>
80000238: 4070d713 srai a4,ra,0x7
8000023c: ff030eb7 lui t4,0xff030
80000240: 303e8e93 addi t4,t4,771 # ff030303 <_end+0x7f02e303>
80000244: 00e00193 li gp,14
80000248: 17d71c63 bne a4,t4,800003c0 <fail>
8000024c <test_15>:
8000024c: 818180b7 lui ra,0x81818
80000250: 18108093 addi ra,ra,385 # 81818181 <_end+0x1816181>
80000254: 40e0d713 srai a4,ra,0xe
80000258: fffe0eb7 lui t4,0xfffe0
8000025c: 606e8e93 addi t4,t4,1542 # fffe0606 <_end+0x7ffde606>
80000260: 00f00193 li gp,15
80000264: 15d71e63 bne a4,t4,800003c0 <fail>
80000268 <test_16>:
80000268: 818180b7 lui ra,0x81818
8000026c: 18108093 addi ra,ra,385 # 81818181 <_end+0x1816181>
80000270: 41f0d713 srai a4,ra,0x1f
80000274: fff00e93 li t4,-1
80000278: 01000193 li gp,16
8000027c: 15d71263 bne a4,t4,800003c0 <fail>
80000280 <test_17>:
80000280: 800000b7 lui ra,0x80000
80000284: 4070d093 srai ra,ra,0x7
80000288: ff000eb7 lui t4,0xff000
8000028c: 01100193 li gp,17
80000290: 13d09863 bne ra,t4,800003c0 <fail>
80000294 <test_18>:
80000294: 00000213 li tp,0
80000298: 800000b7 lui ra,0x80000
8000029c: 4070d713 srai a4,ra,0x7
800002a0: 00070313 mv t1,a4
800002a4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002a8: 00200293 li t0,2
800002ac: fe5216e3 bne tp,t0,80000298 <test_18+0x4>
800002b0: ff000eb7 lui t4,0xff000
800002b4: 01200193 li gp,18
800002b8: 11d31463 bne t1,t4,800003c0 <fail>
800002bc <test_19>:
800002bc: 00000213 li tp,0
800002c0: 800000b7 lui ra,0x80000
800002c4: 40e0d713 srai a4,ra,0xe
800002c8: 00000013 nop
800002cc: 00070313 mv t1,a4
800002d0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002d4: 00200293 li t0,2
800002d8: fe5214e3 bne tp,t0,800002c0 <test_19+0x4>
800002dc: fffe0eb7 lui t4,0xfffe0
800002e0: 01300193 li gp,19
800002e4: 0dd31e63 bne t1,t4,800003c0 <fail>
800002e8 <test_20>:
800002e8: 00000213 li tp,0
800002ec: 800000b7 lui ra,0x80000
800002f0: 00108093 addi ra,ra,1 # 80000001 <_end+0xffffe001>
800002f4: 41f0d713 srai a4,ra,0x1f
800002f8: 00000013 nop
800002fc: 00000013 nop
80000300: 00070313 mv t1,a4
80000304: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000308: 00200293 li t0,2
8000030c: fe5210e3 bne tp,t0,800002ec <test_20+0x4>
80000310: fff00e93 li t4,-1
80000314: 01400193 li gp,20
80000318: 0bd31463 bne t1,t4,800003c0 <fail>
8000031c <test_21>:
8000031c: 00000213 li tp,0
80000320: 800000b7 lui ra,0x80000
80000324: 4070d713 srai a4,ra,0x7
80000328: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000032c: 00200293 li t0,2
80000330: fe5218e3 bne tp,t0,80000320 <test_21+0x4>
80000334: ff000eb7 lui t4,0xff000
80000338: 01500193 li gp,21
8000033c: 09d71263 bne a4,t4,800003c0 <fail>
80000340 <test_22>:
80000340: 00000213 li tp,0
80000344: 800000b7 lui ra,0x80000
80000348: 00000013 nop
8000034c: 40e0d713 srai a4,ra,0xe
80000350: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000354: 00200293 li t0,2
80000358: fe5216e3 bne tp,t0,80000344 <test_22+0x4>
8000035c: fffe0eb7 lui t4,0xfffe0
80000360: 01600193 li gp,22
80000364: 05d71e63 bne a4,t4,800003c0 <fail>
80000368 <test_23>:
80000368: 00000213 li tp,0
8000036c: 800000b7 lui ra,0x80000
80000370: 00108093 addi ra,ra,1 # 80000001 <_end+0xffffe001>
80000374: 00000013 nop
80000378: 00000013 nop
8000037c: 41f0d713 srai a4,ra,0x1f
80000380: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000384: 00200293 li t0,2
80000388: fe5212e3 bne tp,t0,8000036c <test_23+0x4>
8000038c: fff00e93 li t4,-1
80000390: 01700193 li gp,23
80000394: 03d71663 bne a4,t4,800003c0 <fail>
80000398 <test_24>:
80000398: 40405093 srai ra,zero,0x4
8000039c: 00000e93 li t4,0
800003a0: 01800193 li gp,24
800003a4: 01d09e63 bne ra,t4,800003c0 <fail>
800003a8 <test_25>:
800003a8: 02100093 li ra,33
800003ac: 40a0d013 srai zero,ra,0xa
800003b0: 00000e93 li t4,0
800003b4: 01900193 li gp,25
800003b8: 01d01463 bne zero,t4,800003c0 <fail>
800003bc: 02301063 bne zero,gp,800003dc <pass>
800003c0 <fail>:
800003c0: 0ff0000f fence
800003c4: 00018063 beqz gp,800003c4 <fail+0x4>
800003c8: 00119193 slli gp,gp,0x1
800003cc: 0011e193 ori gp,gp,1
800003d0: 05d00893 li a7,93
800003d4: 00018513 mv a0,gp
800003d8: 00000073 ecall
800003dc <pass>:
800003dc: 0ff0000f fence
800003e0: 00100193 li gp,1
800003e4: 05d00893 li a7,93
800003e8: 00000513 li a0,0
800003ec: 00000073 ecall
800003f0: c0001073 unimp
800003f4: 0000 unimp
800003f6: 0000 unimp
800003f8: 0000 unimp
800003fa: 0000 unimp
800003fc: 0000 unimp
800003fe: 0000 unimp
80000400: 0000 unimp
80000402: 0000 unimp

View file

@ -0,0 +1,544 @@
rv32ui-p-srl: 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: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-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: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi sptbr,0
80000064: 00000297 auipc t0,0x0
80000068: 01c28293 addi t0,t0,28 # 80000080 <reset_vector+0x34>
8000006c: 30529073 csrw mtvec,t0
80000070: fff00293 li t0,-1
80000074: 3b029073 csrw pmpaddr0,t0
80000078: 01f00293 li t0,31
8000007c: 3a029073 csrw pmpcfg0,t0
80000080: 00000297 auipc t0,0x0
80000084: 01828293 addi t0,t0,24 # 80000098 <reset_vector+0x4c>
80000088: 30529073 csrw mtvec,t0
8000008c: 30205073 csrwi medeleg,0
80000090: 30305073 csrwi mideleg,0
80000094: 30405073 csrwi mie,0
80000098: 00000193 li gp,0
8000009c: 00000297 auipc t0,0x0
800000a0: f6828293 addi t0,t0,-152 # 80000004 <trap_vector>
800000a4: 30529073 csrw mtvec,t0
800000a8: 00100513 li a0,1
800000ac: 01f51513 slli a0,a0,0x1f
800000b0: 00054863 bltz a0,800000c0 <reset_vector+0x74>
800000b4: 0ff0000f fence
800000b8: 00100193 li gp,1
800000bc: 00000073 ecall
800000c0: 80000297 auipc t0,0x80000
800000c4: f4028293 addi t0,t0,-192 # 0 <_start-0x80000000>
800000c8: 00028e63 beqz t0,800000e4 <reset_vector+0x98>
800000cc: 10529073 csrw stvec,t0
800000d0: 0000b2b7 lui t0,0xb
800000d4: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000d8: 30229073 csrw medeleg,t0
800000dc: 30202373 csrr t1,medeleg
800000e0: f4629ee3 bne t0,t1,8000003c <handle_exception>
800000e4: 30005073 csrwi mstatus,0
800000e8: 00000297 auipc t0,0x0
800000ec: 01428293 addi t0,t0,20 # 800000fc <test_2>
800000f0: 34129073 csrw mepc,t0
800000f4: f1402573 csrr a0,mhartid
800000f8: 30200073 mret
800000fc <test_2>:
800000fc: 800000b7 lui ra,0x80000
80000100: 00000113 li sp,0
80000104: 0020df33 srl t5,ra,sp
80000108: 80000eb7 lui t4,0x80000
8000010c: 00200193 li gp,2
80000110: 57df1863 bne t5,t4,80000680 <fail>
80000114 <test_3>:
80000114: 800000b7 lui ra,0x80000
80000118: 00100113 li sp,1
8000011c: 0020df33 srl t5,ra,sp
80000120: 40000eb7 lui t4,0x40000
80000124: 00300193 li gp,3
80000128: 55df1c63 bne t5,t4,80000680 <fail>
8000012c <test_4>:
8000012c: 800000b7 lui ra,0x80000
80000130: 00700113 li sp,7
80000134: 0020df33 srl t5,ra,sp
80000138: 01000eb7 lui t4,0x1000
8000013c: 00400193 li gp,4
80000140: 55df1063 bne t5,t4,80000680 <fail>
80000144 <test_5>:
80000144: 800000b7 lui ra,0x80000
80000148: 00e00113 li sp,14
8000014c: 0020df33 srl t5,ra,sp
80000150: 00020eb7 lui t4,0x20
80000154: 00500193 li gp,5
80000158: 53df1463 bne t5,t4,80000680 <fail>
8000015c <test_6>:
8000015c: 800000b7 lui ra,0x80000
80000160: 00108093 addi ra,ra,1 # 80000001 <begin_signature+0xffffe001>
80000164: 01f00113 li sp,31
80000168: 0020df33 srl t5,ra,sp
8000016c: 00100e93 li t4,1
80000170: 00600193 li gp,6
80000174: 51df1663 bne t5,t4,80000680 <fail>
80000178 <test_7>:
80000178: fff00093 li ra,-1
8000017c: 00000113 li sp,0
80000180: 0020df33 srl t5,ra,sp
80000184: fff00e93 li t4,-1
80000188: 00700193 li gp,7
8000018c: 4fdf1a63 bne t5,t4,80000680 <fail>
80000190 <test_8>:
80000190: fff00093 li ra,-1
80000194: 00100113 li sp,1
80000198: 0020df33 srl t5,ra,sp
8000019c: 80000eb7 lui t4,0x80000
800001a0: fffe8e93 addi t4,t4,-1 # 7fffffff <begin_signature+0xffffdfff>
800001a4: 00800193 li gp,8
800001a8: 4ddf1c63 bne t5,t4,80000680 <fail>
800001ac <test_9>:
800001ac: fff00093 li ra,-1
800001b0: 00700113 li sp,7
800001b4: 0020df33 srl t5,ra,sp
800001b8: 02000eb7 lui t4,0x2000
800001bc: fffe8e93 addi t4,t4,-1 # 1ffffff <_start-0x7e000001>
800001c0: 00900193 li gp,9
800001c4: 4bdf1e63 bne t5,t4,80000680 <fail>
800001c8 <test_10>:
800001c8: fff00093 li ra,-1
800001cc: 00e00113 li sp,14
800001d0: 0020df33 srl t5,ra,sp
800001d4: 00040eb7 lui t4,0x40
800001d8: fffe8e93 addi t4,t4,-1 # 3ffff <_start-0x7ffc0001>
800001dc: 00a00193 li gp,10
800001e0: 4bdf1063 bne t5,t4,80000680 <fail>
800001e4 <test_11>:
800001e4: fff00093 li ra,-1
800001e8: 01f00113 li sp,31
800001ec: 0020df33 srl t5,ra,sp
800001f0: 00100e93 li t4,1
800001f4: 00b00193 li gp,11
800001f8: 49df1463 bne t5,t4,80000680 <fail>
800001fc <test_12>:
800001fc: 212120b7 lui ra,0x21212
80000200: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
80000204: 00000113 li sp,0
80000208: 0020df33 srl t5,ra,sp
8000020c: 21212eb7 lui t4,0x21212
80000210: 121e8e93 addi t4,t4,289 # 21212121 <_start-0x5edededf>
80000214: 00c00193 li gp,12
80000218: 47df1463 bne t5,t4,80000680 <fail>
8000021c <test_13>:
8000021c: 212120b7 lui ra,0x21212
80000220: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
80000224: 00100113 li sp,1
80000228: 0020df33 srl t5,ra,sp
8000022c: 10909eb7 lui t4,0x10909
80000230: 090e8e93 addi t4,t4,144 # 10909090 <_start-0x6f6f6f70>
80000234: 00d00193 li gp,13
80000238: 45df1463 bne t5,t4,80000680 <fail>
8000023c <test_14>:
8000023c: 212120b7 lui ra,0x21212
80000240: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
80000244: 00700113 li sp,7
80000248: 0020df33 srl t5,ra,sp
8000024c: 00424eb7 lui t4,0x424
80000250: 242e8e93 addi t4,t4,578 # 424242 <_start-0x7fbdbdbe>
80000254: 00e00193 li gp,14
80000258: 43df1463 bne t5,t4,80000680 <fail>
8000025c <test_15>:
8000025c: 212120b7 lui ra,0x21212
80000260: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
80000264: 00e00113 li sp,14
80000268: 0020df33 srl t5,ra,sp
8000026c: 00008eb7 lui t4,0x8
80000270: 484e8e93 addi t4,t4,1156 # 8484 <_start-0x7fff7b7c>
80000274: 00f00193 li gp,15
80000278: 41df1463 bne t5,t4,80000680 <fail>
8000027c <test_16>:
8000027c: 212120b7 lui ra,0x21212
80000280: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
80000284: 01f00113 li sp,31
80000288: 0020df33 srl t5,ra,sp
8000028c: 00000e93 li t4,0
80000290: 01000193 li gp,16
80000294: 3fdf1663 bne t5,t4,80000680 <fail>
80000298 <test_17>:
80000298: 212120b7 lui ra,0x21212
8000029c: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
800002a0: fc000113 li sp,-64
800002a4: 0020df33 srl t5,ra,sp
800002a8: 21212eb7 lui t4,0x21212
800002ac: 121e8e93 addi t4,t4,289 # 21212121 <_start-0x5edededf>
800002b0: 01100193 li gp,17
800002b4: 3ddf1663 bne t5,t4,80000680 <fail>
800002b8 <test_18>:
800002b8: 212120b7 lui ra,0x21212
800002bc: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
800002c0: fc100113 li sp,-63
800002c4: 0020df33 srl t5,ra,sp
800002c8: 10909eb7 lui t4,0x10909
800002cc: 090e8e93 addi t4,t4,144 # 10909090 <_start-0x6f6f6f70>
800002d0: 01200193 li gp,18
800002d4: 3bdf1663 bne t5,t4,80000680 <fail>
800002d8 <test_19>:
800002d8: 212120b7 lui ra,0x21212
800002dc: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
800002e0: fc700113 li sp,-57
800002e4: 0020df33 srl t5,ra,sp
800002e8: 00424eb7 lui t4,0x424
800002ec: 242e8e93 addi t4,t4,578 # 424242 <_start-0x7fbdbdbe>
800002f0: 01300193 li gp,19
800002f4: 39df1663 bne t5,t4,80000680 <fail>
800002f8 <test_20>:
800002f8: 212120b7 lui ra,0x21212
800002fc: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
80000300: fce00113 li sp,-50
80000304: 0020df33 srl t5,ra,sp
80000308: 00008eb7 lui t4,0x8
8000030c: 484e8e93 addi t4,t4,1156 # 8484 <_start-0x7fff7b7c>
80000310: 01400193 li gp,20
80000314: 37df1663 bne t5,t4,80000680 <fail>
80000318 <test_21>:
80000318: 212120b7 lui ra,0x21212
8000031c: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
80000320: fff00113 li sp,-1
80000324: 0020df33 srl t5,ra,sp
80000328: 00000e93 li t4,0
8000032c: 01500193 li gp,21
80000330: 35df1863 bne t5,t4,80000680 <fail>
80000334 <test_22>:
80000334: 800000b7 lui ra,0x80000
80000338: 00700113 li sp,7
8000033c: 0020d0b3 srl ra,ra,sp
80000340: 01000eb7 lui t4,0x1000
80000344: 01600193 li gp,22
80000348: 33d09c63 bne ra,t4,80000680 <fail>
8000034c <test_23>:
8000034c: 800000b7 lui ra,0x80000
80000350: 00e00113 li sp,14
80000354: 0020d133 srl sp,ra,sp
80000358: 00020eb7 lui t4,0x20
8000035c: 01700193 li gp,23
80000360: 33d11063 bne sp,t4,80000680 <fail>
80000364 <test_24>:
80000364: 00700093 li ra,7
80000368: 0010d0b3 srl ra,ra,ra
8000036c: 00000e93 li t4,0
80000370: 01800193 li gp,24
80000374: 31d09663 bne ra,t4,80000680 <fail>
80000378 <test_25>:
80000378: 00000213 li tp,0
8000037c: 800000b7 lui ra,0x80000
80000380: 00700113 li sp,7
80000384: 0020df33 srl t5,ra,sp
80000388: 000f0313 mv t1,t5
8000038c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000390: 00200293 li t0,2
80000394: fe5214e3 bne tp,t0,8000037c <test_25+0x4>
80000398: 01000eb7 lui t4,0x1000
8000039c: 01900193 li gp,25
800003a0: 2fd31063 bne t1,t4,80000680 <fail>
800003a4 <test_26>:
800003a4: 00000213 li tp,0
800003a8: 800000b7 lui ra,0x80000
800003ac: 00e00113 li sp,14
800003b0: 0020df33 srl t5,ra,sp
800003b4: 00000013 nop
800003b8: 000f0313 mv t1,t5
800003bc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800003c0: 00200293 li t0,2
800003c4: fe5212e3 bne tp,t0,800003a8 <test_26+0x4>
800003c8: 00020eb7 lui t4,0x20
800003cc: 01a00193 li gp,26
800003d0: 2bd31863 bne t1,t4,80000680 <fail>
800003d4 <test_27>:
800003d4: 00000213 li tp,0
800003d8: 800000b7 lui ra,0x80000
800003dc: 01f00113 li sp,31
800003e0: 0020df33 srl t5,ra,sp
800003e4: 00000013 nop
800003e8: 00000013 nop
800003ec: 000f0313 mv t1,t5
800003f0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800003f4: 00200293 li t0,2
800003f8: fe5210e3 bne tp,t0,800003d8 <test_27+0x4>
800003fc: 00100e93 li t4,1
80000400: 01b00193 li gp,27
80000404: 27d31e63 bne t1,t4,80000680 <fail>
80000408 <test_28>:
80000408: 00000213 li tp,0
8000040c: 800000b7 lui ra,0x80000
80000410: 00700113 li sp,7
80000414: 0020df33 srl t5,ra,sp
80000418: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000041c: 00200293 li t0,2
80000420: fe5216e3 bne tp,t0,8000040c <test_28+0x4>
80000424: 01000eb7 lui t4,0x1000
80000428: 01c00193 li gp,28
8000042c: 25df1a63 bne t5,t4,80000680 <fail>
80000430 <test_29>:
80000430: 00000213 li tp,0
80000434: 800000b7 lui ra,0x80000
80000438: 00e00113 li sp,14
8000043c: 00000013 nop
80000440: 0020df33 srl t5,ra,sp
80000444: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000448: 00200293 li t0,2
8000044c: fe5214e3 bne tp,t0,80000434 <test_29+0x4>
80000450: 00020eb7 lui t4,0x20
80000454: 01d00193 li gp,29
80000458: 23df1463 bne t5,t4,80000680 <fail>
8000045c <test_30>:
8000045c: 00000213 li tp,0
80000460: 800000b7 lui ra,0x80000
80000464: 01f00113 li sp,31
80000468: 00000013 nop
8000046c: 00000013 nop
80000470: 0020df33 srl t5,ra,sp
80000474: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000478: 00200293 li t0,2
8000047c: fe5212e3 bne tp,t0,80000460 <test_30+0x4>
80000480: 00100e93 li t4,1
80000484: 01e00193 li gp,30
80000488: 1fdf1c63 bne t5,t4,80000680 <fail>
8000048c <test_31>:
8000048c: 00000213 li tp,0
80000490: 800000b7 lui ra,0x80000
80000494: 00000013 nop
80000498: 00700113 li sp,7
8000049c: 0020df33 srl t5,ra,sp
800004a0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800004a4: 00200293 li t0,2
800004a8: fe5214e3 bne tp,t0,80000490 <test_31+0x4>
800004ac: 01000eb7 lui t4,0x1000
800004b0: 01f00193 li gp,31
800004b4: 1ddf1663 bne t5,t4,80000680 <fail>
800004b8 <test_32>:
800004b8: 00000213 li tp,0
800004bc: 800000b7 lui ra,0x80000
800004c0: 00000013 nop
800004c4: 00e00113 li sp,14
800004c8: 00000013 nop
800004cc: 0020df33 srl t5,ra,sp
800004d0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800004d4: 00200293 li t0,2
800004d8: fe5212e3 bne tp,t0,800004bc <test_32+0x4>
800004dc: 00020eb7 lui t4,0x20
800004e0: 02000193 li gp,32
800004e4: 19df1e63 bne t5,t4,80000680 <fail>
800004e8 <test_33>:
800004e8: 00000213 li tp,0
800004ec: 800000b7 lui ra,0x80000
800004f0: 00000013 nop
800004f4: 00000013 nop
800004f8: 01f00113 li sp,31
800004fc: 0020df33 srl t5,ra,sp
80000500: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000504: 00200293 li t0,2
80000508: fe5212e3 bne tp,t0,800004ec <test_33+0x4>
8000050c: 00100e93 li t4,1
80000510: 02100193 li gp,33
80000514: 17df1663 bne t5,t4,80000680 <fail>
80000518 <test_34>:
80000518: 00000213 li tp,0
8000051c: 00700113 li sp,7
80000520: 800000b7 lui ra,0x80000
80000524: 0020df33 srl t5,ra,sp
80000528: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000052c: 00200293 li t0,2
80000530: fe5216e3 bne tp,t0,8000051c <test_34+0x4>
80000534: 01000eb7 lui t4,0x1000
80000538: 02200193 li gp,34
8000053c: 15df1263 bne t5,t4,80000680 <fail>
80000540 <test_35>:
80000540: 00000213 li tp,0
80000544: 00e00113 li sp,14
80000548: 800000b7 lui ra,0x80000
8000054c: 00000013 nop
80000550: 0020df33 srl t5,ra,sp
80000554: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000558: 00200293 li t0,2
8000055c: fe5214e3 bne tp,t0,80000544 <test_35+0x4>
80000560: 00020eb7 lui t4,0x20
80000564: 02300193 li gp,35
80000568: 11df1c63 bne t5,t4,80000680 <fail>
8000056c <test_36>:
8000056c: 00000213 li tp,0
80000570: 01f00113 li sp,31
80000574: 800000b7 lui ra,0x80000
80000578: 00000013 nop
8000057c: 00000013 nop
80000580: 0020df33 srl t5,ra,sp
80000584: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000588: 00200293 li t0,2
8000058c: fe5212e3 bne tp,t0,80000570 <test_36+0x4>
80000590: 00100e93 li t4,1
80000594: 02400193 li gp,36
80000598: 0fdf1463 bne t5,t4,80000680 <fail>
8000059c <test_37>:
8000059c: 00000213 li tp,0
800005a0: 00700113 li sp,7
800005a4: 00000013 nop
800005a8: 800000b7 lui ra,0x80000
800005ac: 0020df33 srl t5,ra,sp
800005b0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800005b4: 00200293 li t0,2
800005b8: fe5214e3 bne tp,t0,800005a0 <test_37+0x4>
800005bc: 01000eb7 lui t4,0x1000
800005c0: 02500193 li gp,37
800005c4: 0bdf1e63 bne t5,t4,80000680 <fail>
800005c8 <test_38>:
800005c8: 00000213 li tp,0
800005cc: 00e00113 li sp,14
800005d0: 00000013 nop
800005d4: 800000b7 lui ra,0x80000
800005d8: 00000013 nop
800005dc: 0020df33 srl t5,ra,sp
800005e0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800005e4: 00200293 li t0,2
800005e8: fe5212e3 bne tp,t0,800005cc <test_38+0x4>
800005ec: 00020eb7 lui t4,0x20
800005f0: 02600193 li gp,38
800005f4: 09df1663 bne t5,t4,80000680 <fail>
800005f8 <test_39>:
800005f8: 00000213 li tp,0
800005fc: 01f00113 li sp,31
80000600: 00000013 nop
80000604: 00000013 nop
80000608: 800000b7 lui ra,0x80000
8000060c: 0020df33 srl t5,ra,sp
80000610: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000614: 00200293 li t0,2
80000618: fe5212e3 bne tp,t0,800005fc <test_39+0x4>
8000061c: 00100e93 li t4,1
80000620: 02700193 li gp,39
80000624: 05df1e63 bne t5,t4,80000680 <fail>
80000628 <test_40>:
80000628: 00f00093 li ra,15
8000062c: 00105133 srl sp,zero,ra
80000630: 00000e93 li t4,0
80000634: 02800193 li gp,40
80000638: 05d11463 bne sp,t4,80000680 <fail>
8000063c <test_41>:
8000063c: 02000093 li ra,32
80000640: 0000d133 srl sp,ra,zero
80000644: 02000e93 li t4,32
80000648: 02900193 li gp,41
8000064c: 03d11a63 bne sp,t4,80000680 <fail>
80000650 <test_42>:
80000650: 000050b3 srl ra,zero,zero
80000654: 00000e93 li t4,0
80000658: 02a00193 li gp,42
8000065c: 03d09263 bne ra,t4,80000680 <fail>
80000660 <test_43>:
80000660: 40000093 li ra,1024
80000664: 00001137 lui sp,0x1
80000668: 80010113 addi sp,sp,-2048 # 800 <_start-0x7ffff800>
8000066c: 0020d033 srl zero,ra,sp
80000670: 00000e93 li t4,0
80000674: 02b00193 li gp,43
80000678: 01d01463 bne zero,t4,80000680 <fail>
8000067c: 00301c63 bne zero,gp,80000694 <pass>
80000680 <fail>:
80000680: 0ff0000f fence
80000684: 00018063 beqz gp,80000684 <fail+0x4>
80000688: 00119193 slli gp,gp,0x1
8000068c: 0011e193 ori gp,gp,1
80000690: 00000073 ecall
80000694 <pass>:
80000694: 0ff0000f fence
80000698: 00100193 li gp,1
8000069c: 00000073 ecall
800006a0: c0001073 unimp
800006a4: 0000 unimp
800006a6: 0000 unimp
800006a8: 0000 unimp
800006aa: 0000 unimp
800006ac: 0000 unimp
800006ae: 0000 unimp
800006b0: 0000 unimp
800006b2: 0000 unimp
800006b4: 0000 unimp
800006b6: 0000 unimp
800006b8: 0000 unimp
800006ba: 0000 unimp
800006bc: 0000 unimp
800006be: 0000 unimp
800006c0: 0000 unimp
800006c2: 0000 unimp

View file

@ -0,0 +1,309 @@
rv32ui-p-srli: 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: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-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: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi sptbr,0
80000064: 00000297 auipc t0,0x0
80000068: 01c28293 addi t0,t0,28 # 80000080 <reset_vector+0x34>
8000006c: 30529073 csrw mtvec,t0
80000070: fff00293 li t0,-1
80000074: 3b029073 csrw pmpaddr0,t0
80000078: 01f00293 li t0,31
8000007c: 3a029073 csrw pmpcfg0,t0
80000080: 00000297 auipc t0,0x0
80000084: 01828293 addi t0,t0,24 # 80000098 <reset_vector+0x4c>
80000088: 30529073 csrw mtvec,t0
8000008c: 30205073 csrwi medeleg,0
80000090: 30305073 csrwi mideleg,0
80000094: 30405073 csrwi mie,0
80000098: 00000193 li gp,0
8000009c: 00000297 auipc t0,0x0
800000a0: f6828293 addi t0,t0,-152 # 80000004 <trap_vector>
800000a4: 30529073 csrw mtvec,t0
800000a8: 00100513 li a0,1
800000ac: 01f51513 slli a0,a0,0x1f
800000b0: 00054863 bltz a0,800000c0 <reset_vector+0x74>
800000b4: 0ff0000f fence
800000b8: 00100193 li gp,1
800000bc: 00000073 ecall
800000c0: 80000297 auipc t0,0x80000
800000c4: f4028293 addi t0,t0,-192 # 0 <_start-0x80000000>
800000c8: 00028e63 beqz t0,800000e4 <reset_vector+0x98>
800000cc: 10529073 csrw stvec,t0
800000d0: 0000b2b7 lui t0,0xb
800000d4: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000d8: 30229073 csrw medeleg,t0
800000dc: 30202373 csrr t1,medeleg
800000e0: f4629ee3 bne t0,t1,8000003c <handle_exception>
800000e4: 30005073 csrwi mstatus,0
800000e8: 00000297 auipc t0,0x0
800000ec: 01428293 addi t0,t0,20 # 800000fc <test_2>
800000f0: 34129073 csrw mepc,t0
800000f4: f1402573 csrr a0,mhartid
800000f8: 30200073 mret
800000fc <test_2>:
800000fc: 800000b7 lui ra,0x80000
80000100: 0000df13 srli t5,ra,0x0
80000104: 80000eb7 lui t4,0x80000
80000108: 00200193 li gp,2
8000010c: 29df1863 bne t5,t4,8000039c <fail>
80000110 <test_3>:
80000110: 800000b7 lui ra,0x80000
80000114: 0010df13 srli t5,ra,0x1
80000118: 40000eb7 lui t4,0x40000
8000011c: 00300193 li gp,3
80000120: 27df1e63 bne t5,t4,8000039c <fail>
80000124 <test_4>:
80000124: 800000b7 lui ra,0x80000
80000128: 0070df13 srli t5,ra,0x7
8000012c: 01000eb7 lui t4,0x1000
80000130: 00400193 li gp,4
80000134: 27df1463 bne t5,t4,8000039c <fail>
80000138 <test_5>:
80000138: 800000b7 lui ra,0x80000
8000013c: 00e0df13 srli t5,ra,0xe
80000140: 00020eb7 lui t4,0x20
80000144: 00500193 li gp,5
80000148: 25df1a63 bne t5,t4,8000039c <fail>
8000014c <test_6>:
8000014c: 800000b7 lui ra,0x80000
80000150: 00108093 addi ra,ra,1 # 80000001 <begin_signature+0xffffe001>
80000154: 01f0df13 srli t5,ra,0x1f
80000158: 00100e93 li t4,1
8000015c: 00600193 li gp,6
80000160: 23df1e63 bne t5,t4,8000039c <fail>
80000164 <test_7>:
80000164: fff00093 li ra,-1
80000168: 0000df13 srli t5,ra,0x0
8000016c: fff00e93 li t4,-1
80000170: 00700193 li gp,7
80000174: 23df1463 bne t5,t4,8000039c <fail>
80000178 <test_8>:
80000178: fff00093 li ra,-1
8000017c: 0010df13 srli t5,ra,0x1
80000180: 80000eb7 lui t4,0x80000
80000184: fffe8e93 addi t4,t4,-1 # 7fffffff <begin_signature+0xffffdfff>
80000188: 00800193 li gp,8
8000018c: 21df1863 bne t5,t4,8000039c <fail>
80000190 <test_9>:
80000190: fff00093 li ra,-1
80000194: 0070df13 srli t5,ra,0x7
80000198: 02000eb7 lui t4,0x2000
8000019c: fffe8e93 addi t4,t4,-1 # 1ffffff <_start-0x7e000001>
800001a0: 00900193 li gp,9
800001a4: 1fdf1c63 bne t5,t4,8000039c <fail>
800001a8 <test_10>:
800001a8: fff00093 li ra,-1
800001ac: 00e0df13 srli t5,ra,0xe
800001b0: 00040eb7 lui t4,0x40
800001b4: fffe8e93 addi t4,t4,-1 # 3ffff <_start-0x7ffc0001>
800001b8: 00a00193 li gp,10
800001bc: 1fdf1063 bne t5,t4,8000039c <fail>
800001c0 <test_11>:
800001c0: fff00093 li ra,-1
800001c4: 01f0df13 srli t5,ra,0x1f
800001c8: 00100e93 li t4,1
800001cc: 00b00193 li gp,11
800001d0: 1ddf1663 bne t5,t4,8000039c <fail>
800001d4 <test_12>:
800001d4: 212120b7 lui ra,0x21212
800001d8: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
800001dc: 0000df13 srli t5,ra,0x0
800001e0: 21212eb7 lui t4,0x21212
800001e4: 121e8e93 addi t4,t4,289 # 21212121 <_start-0x5edededf>
800001e8: 00c00193 li gp,12
800001ec: 1bdf1863 bne t5,t4,8000039c <fail>
800001f0 <test_13>:
800001f0: 212120b7 lui ra,0x21212
800001f4: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
800001f8: 0010df13 srli t5,ra,0x1
800001fc: 10909eb7 lui t4,0x10909
80000200: 090e8e93 addi t4,t4,144 # 10909090 <_start-0x6f6f6f70>
80000204: 00d00193 li gp,13
80000208: 19df1a63 bne t5,t4,8000039c <fail>
8000020c <test_14>:
8000020c: 212120b7 lui ra,0x21212
80000210: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
80000214: 0070df13 srli t5,ra,0x7
80000218: 00424eb7 lui t4,0x424
8000021c: 242e8e93 addi t4,t4,578 # 424242 <_start-0x7fbdbdbe>
80000220: 00e00193 li gp,14
80000224: 17df1c63 bne t5,t4,8000039c <fail>
80000228 <test_15>:
80000228: 212120b7 lui ra,0x21212
8000022c: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
80000230: 00e0df13 srli t5,ra,0xe
80000234: 00008eb7 lui t4,0x8
80000238: 484e8e93 addi t4,t4,1156 # 8484 <_start-0x7fff7b7c>
8000023c: 00f00193 li gp,15
80000240: 15df1e63 bne t5,t4,8000039c <fail>
80000244 <test_16>:
80000244: 212120b7 lui ra,0x21212
80000248: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
8000024c: 01f0df13 srli t5,ra,0x1f
80000250: 00000e93 li t4,0
80000254: 01000193 li gp,16
80000258: 15df1263 bne t5,t4,8000039c <fail>
8000025c <test_17>:
8000025c: 800000b7 lui ra,0x80000
80000260: 0070d093 srli ra,ra,0x7
80000264: 01000eb7 lui t4,0x1000
80000268: 01100193 li gp,17
8000026c: 13d09863 bne ra,t4,8000039c <fail>
80000270 <test_18>:
80000270: 00000213 li tp,0
80000274: 800000b7 lui ra,0x80000
80000278: 0070df13 srli t5,ra,0x7
8000027c: 000f0313 mv t1,t5
80000280: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000284: 00200293 li t0,2
80000288: fe5216e3 bne tp,t0,80000274 <test_18+0x4>
8000028c: 01000eb7 lui t4,0x1000
80000290: 01200193 li gp,18
80000294: 11d31463 bne t1,t4,8000039c <fail>
80000298 <test_19>:
80000298: 00000213 li tp,0
8000029c: 800000b7 lui ra,0x80000
800002a0: 00e0df13 srli t5,ra,0xe
800002a4: 00000013 nop
800002a8: 000f0313 mv t1,t5
800002ac: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002b0: 00200293 li t0,2
800002b4: fe5214e3 bne tp,t0,8000029c <test_19+0x4>
800002b8: 00020eb7 lui t4,0x20
800002bc: 01300193 li gp,19
800002c0: 0dd31e63 bne t1,t4,8000039c <fail>
800002c4 <test_20>:
800002c4: 00000213 li tp,0
800002c8: 800000b7 lui ra,0x80000
800002cc: 00108093 addi ra,ra,1 # 80000001 <begin_signature+0xffffe001>
800002d0: 01f0df13 srli t5,ra,0x1f
800002d4: 00000013 nop
800002d8: 00000013 nop
800002dc: 000f0313 mv t1,t5
800002e0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002e4: 00200293 li t0,2
800002e8: fe5210e3 bne tp,t0,800002c8 <test_20+0x4>
800002ec: 00100e93 li t4,1
800002f0: 01400193 li gp,20
800002f4: 0bd31463 bne t1,t4,8000039c <fail>
800002f8 <test_21>:
800002f8: 00000213 li tp,0
800002fc: 800000b7 lui ra,0x80000
80000300: 0070df13 srli t5,ra,0x7
80000304: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000308: 00200293 li t0,2
8000030c: fe5218e3 bne tp,t0,800002fc <test_21+0x4>
80000310: 01000eb7 lui t4,0x1000
80000314: 01500193 li gp,21
80000318: 09df1263 bne t5,t4,8000039c <fail>
8000031c <test_22>:
8000031c: 00000213 li tp,0
80000320: 800000b7 lui ra,0x80000
80000324: 00000013 nop
80000328: 00e0df13 srli t5,ra,0xe
8000032c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000330: 00200293 li t0,2
80000334: fe5216e3 bne tp,t0,80000320 <test_22+0x4>
80000338: 00020eb7 lui t4,0x20
8000033c: 01600193 li gp,22
80000340: 05df1e63 bne t5,t4,8000039c <fail>
80000344 <test_23>:
80000344: 00000213 li tp,0
80000348: 800000b7 lui ra,0x80000
8000034c: 00108093 addi ra,ra,1 # 80000001 <begin_signature+0xffffe001>
80000350: 00000013 nop
80000354: 00000013 nop
80000358: 01f0df13 srli t5,ra,0x1f
8000035c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000360: 00200293 li t0,2
80000364: fe5212e3 bne tp,t0,80000348 <test_23+0x4>
80000368: 00100e93 li t4,1
8000036c: 01700193 li gp,23
80000370: 03df1663 bne t5,t4,8000039c <fail>
80000374 <test_24>:
80000374: 00405093 srli ra,zero,0x4
80000378: 00000e93 li t4,0
8000037c: 01800193 li gp,24
80000380: 01d09e63 bne ra,t4,8000039c <fail>
80000384 <test_25>:
80000384: 02100093 li ra,33
80000388: 00a0d013 srli zero,ra,0xa
8000038c: 00000e93 li t4,0
80000390: 01900193 li gp,25
80000394: 01d01463 bne zero,t4,8000039c <fail>
80000398: 00301c63 bne zero,gp,800003b0 <pass>
8000039c <fail>:
8000039c: 0ff0000f fence
800003a0: 00018063 beqz gp,800003a0 <fail+0x4>
800003a4: 00119193 slli gp,gp,0x1
800003a8: 0011e193 ori gp,gp,1
800003ac: 00000073 ecall
800003b0 <pass>:
800003b0: 0ff0000f fence
800003b4: 00100193 li gp,1
800003b8: 00000073 ecall
800003bc: c0001073 unimp
800003c0: 0000 unimp
800003c2: 0000 unimp

View file

@ -0,0 +1,478 @@
rv32ui-p-sub: 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: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-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: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 02028293 addi t0,t0,32 # 80000084 <reset_vector+0x38>
8000006c: 30529073 csrw mtvec,t0
80000070: 800002b7 lui t0,0x80000
80000074: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdfff>
80000078: 3b029073 csrw pmpaddr0,t0
8000007c: 01f00293 li t0,31
80000080: 3a029073 csrw pmpcfg0,t0
80000084: 00000297 auipc t0,0x0
80000088: 01828293 addi t0,t0,24 # 8000009c <reset_vector+0x50>
8000008c: 30529073 csrw mtvec,t0
80000090: 30205073 csrwi medeleg,0
80000094: 30305073 csrwi mideleg,0
80000098: 30405073 csrwi mie,0
8000009c: 00000193 li gp,0
800000a0: 00000297 auipc t0,0x0
800000a4: f6428293 addi t0,t0,-156 # 80000004 <trap_vector>
800000a8: 30529073 csrw mtvec,t0
800000ac: 00100513 li a0,1
800000b0: 01f51513 slli a0,a0,0x1f
800000b4: 00054c63 bltz a0,800000cc <reset_vector+0x80>
800000b8: 0ff0000f fence
800000bc: 00100193 li gp,1
800000c0: 05d00893 li a7,93
800000c4: 00000513 li a0,0
800000c8: 00000073 ecall
800000cc: 80000297 auipc t0,0x80000
800000d0: f3428293 addi t0,t0,-204 # 0 <_start-0x80000000>
800000d4: 00028e63 beqz t0,800000f0 <reset_vector+0xa4>
800000d8: 10529073 csrw stvec,t0
800000dc: 0000b2b7 lui t0,0xb
800000e0: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000e4: 30229073 csrw medeleg,t0
800000e8: 30202373 csrr t1,medeleg
800000ec: f46298e3 bne t0,t1,8000003c <handle_exception>
800000f0: 30005073 csrwi mstatus,0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <test_2>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108 <test_2>:
80000108: 00000093 li ra,0
8000010c: 00000113 li sp,0
80000110: 40208733 sub a4,ra,sp
80000114: 00000e93 li t4,0
80000118: 00200193 li gp,2
8000011c: 4bd71663 bne a4,t4,800005c8 <fail>
80000120 <test_3>:
80000120: 00100093 li ra,1
80000124: 00100113 li sp,1
80000128: 40208733 sub a4,ra,sp
8000012c: 00000e93 li t4,0
80000130: 00300193 li gp,3
80000134: 49d71a63 bne a4,t4,800005c8 <fail>
80000138 <test_4>:
80000138: 00300093 li ra,3
8000013c: 00700113 li sp,7
80000140: 40208733 sub a4,ra,sp
80000144: ffc00e93 li t4,-4
80000148: 00400193 li gp,4
8000014c: 47d71e63 bne a4,t4,800005c8 <fail>
80000150 <test_5>:
80000150: 00000093 li ra,0
80000154: ffff8137 lui sp,0xffff8
80000158: 40208733 sub a4,ra,sp
8000015c: 00008eb7 lui t4,0x8
80000160: 00500193 li gp,5
80000164: 47d71263 bne a4,t4,800005c8 <fail>
80000168 <test_6>:
80000168: 800000b7 lui ra,0x80000
8000016c: 00000113 li sp,0
80000170: 40208733 sub a4,ra,sp
80000174: 80000eb7 lui t4,0x80000
80000178: 00600193 li gp,6
8000017c: 45d71663 bne a4,t4,800005c8 <fail>
80000180 <test_7>:
80000180: 800000b7 lui ra,0x80000
80000184: ffff8137 lui sp,0xffff8
80000188: 40208733 sub a4,ra,sp
8000018c: 80008eb7 lui t4,0x80008
80000190: 00700193 li gp,7
80000194: 43d71a63 bne a4,t4,800005c8 <fail>
80000198 <test_8>:
80000198: 00000093 li ra,0
8000019c: 00008137 lui sp,0x8
800001a0: fff10113 addi sp,sp,-1 # 7fff <_start-0x7fff8001>
800001a4: 40208733 sub a4,ra,sp
800001a8: ffff8eb7 lui t4,0xffff8
800001ac: 001e8e93 addi t4,t4,1 # ffff8001 <_end+0x7fff6001>
800001b0: 00800193 li gp,8
800001b4: 41d71a63 bne a4,t4,800005c8 <fail>
800001b8 <test_9>:
800001b8: 800000b7 lui ra,0x80000
800001bc: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffffdfff>
800001c0: 00000113 li sp,0
800001c4: 40208733 sub a4,ra,sp
800001c8: 80000eb7 lui t4,0x80000
800001cc: fffe8e93 addi t4,t4,-1 # 7fffffff <_end+0xffffdfff>
800001d0: 00900193 li gp,9
800001d4: 3fd71a63 bne a4,t4,800005c8 <fail>
800001d8 <test_10>:
800001d8: 800000b7 lui ra,0x80000
800001dc: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffffdfff>
800001e0: 00008137 lui sp,0x8
800001e4: fff10113 addi sp,sp,-1 # 7fff <_start-0x7fff8001>
800001e8: 40208733 sub a4,ra,sp
800001ec: 7fff8eb7 lui t4,0x7fff8
800001f0: 00a00193 li gp,10
800001f4: 3dd71a63 bne a4,t4,800005c8 <fail>
800001f8 <test_11>:
800001f8: 800000b7 lui ra,0x80000
800001fc: 00008137 lui sp,0x8
80000200: fff10113 addi sp,sp,-1 # 7fff <_start-0x7fff8001>
80000204: 40208733 sub a4,ra,sp
80000208: 7fff8eb7 lui t4,0x7fff8
8000020c: 001e8e93 addi t4,t4,1 # 7fff8001 <_start-0x7fff>
80000210: 00b00193 li gp,11
80000214: 3bd71a63 bne a4,t4,800005c8 <fail>
80000218 <test_12>:
80000218: 800000b7 lui ra,0x80000
8000021c: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffffdfff>
80000220: ffff8137 lui sp,0xffff8
80000224: 40208733 sub a4,ra,sp
80000228: 80008eb7 lui t4,0x80008
8000022c: fffe8e93 addi t4,t4,-1 # 80007fff <_end+0x5fff>
80000230: 00c00193 li gp,12
80000234: 39d71a63 bne a4,t4,800005c8 <fail>
80000238 <test_13>:
80000238: 00000093 li ra,0
8000023c: fff00113 li sp,-1
80000240: 40208733 sub a4,ra,sp
80000244: 00100e93 li t4,1
80000248: 00d00193 li gp,13
8000024c: 37d71e63 bne a4,t4,800005c8 <fail>
80000250 <test_14>:
80000250: fff00093 li ra,-1
80000254: 00100113 li sp,1
80000258: 40208733 sub a4,ra,sp
8000025c: ffe00e93 li t4,-2
80000260: 00e00193 li gp,14
80000264: 37d71263 bne a4,t4,800005c8 <fail>
80000268 <test_15>:
80000268: fff00093 li ra,-1
8000026c: fff00113 li sp,-1
80000270: 40208733 sub a4,ra,sp
80000274: 00000e93 li t4,0
80000278: 00f00193 li gp,15
8000027c: 35d71663 bne a4,t4,800005c8 <fail>
80000280 <test_16>:
80000280: 00d00093 li ra,13
80000284: 00b00113 li sp,11
80000288: 402080b3 sub ra,ra,sp
8000028c: 00200e93 li t4,2
80000290: 01000193 li gp,16
80000294: 33d09a63 bne ra,t4,800005c8 <fail>
80000298 <test_17>:
80000298: 00e00093 li ra,14
8000029c: 00b00113 li sp,11
800002a0: 40208133 sub sp,ra,sp
800002a4: 00300e93 li t4,3
800002a8: 01100193 li gp,17
800002ac: 31d11e63 bne sp,t4,800005c8 <fail>
800002b0 <test_18>:
800002b0: 00d00093 li ra,13
800002b4: 401080b3 sub ra,ra,ra
800002b8: 00000e93 li t4,0
800002bc: 01200193 li gp,18
800002c0: 31d09463 bne ra,t4,800005c8 <fail>
800002c4 <test_19>:
800002c4: 00000213 li tp,0
800002c8: 00d00093 li ra,13
800002cc: 00b00113 li sp,11
800002d0: 40208733 sub a4,ra,sp
800002d4: 00070313 mv t1,a4
800002d8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002dc: 00200293 li t0,2
800002e0: fe5214e3 bne tp,t0,800002c8 <test_19+0x4>
800002e4: 00200e93 li t4,2
800002e8: 01300193 li gp,19
800002ec: 2dd31e63 bne t1,t4,800005c8 <fail>
800002f0 <test_20>:
800002f0: 00000213 li tp,0
800002f4: 00e00093 li ra,14
800002f8: 00b00113 li sp,11
800002fc: 40208733 sub a4,ra,sp
80000300: 00000013 nop
80000304: 00070313 mv t1,a4
80000308: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000030c: 00200293 li t0,2
80000310: fe5212e3 bne tp,t0,800002f4 <test_20+0x4>
80000314: 00300e93 li t4,3
80000318: 01400193 li gp,20
8000031c: 2bd31663 bne t1,t4,800005c8 <fail>
80000320 <test_21>:
80000320: 00000213 li tp,0
80000324: 00f00093 li ra,15
80000328: 00b00113 li sp,11
8000032c: 40208733 sub a4,ra,sp
80000330: 00000013 nop
80000334: 00000013 nop
80000338: 00070313 mv t1,a4
8000033c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000340: 00200293 li t0,2
80000344: fe5210e3 bne tp,t0,80000324 <test_21+0x4>
80000348: 00400e93 li t4,4
8000034c: 01500193 li gp,21
80000350: 27d31c63 bne t1,t4,800005c8 <fail>
80000354 <test_22>:
80000354: 00000213 li tp,0
80000358: 00d00093 li ra,13
8000035c: 00b00113 li sp,11
80000360: 40208733 sub a4,ra,sp
80000364: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000368: 00200293 li t0,2
8000036c: fe5216e3 bne tp,t0,80000358 <test_22+0x4>
80000370: 00200e93 li t4,2
80000374: 01600193 li gp,22
80000378: 25d71863 bne a4,t4,800005c8 <fail>
8000037c <test_23>:
8000037c: 00000213 li tp,0
80000380: 00e00093 li ra,14
80000384: 00b00113 li sp,11
80000388: 00000013 nop
8000038c: 40208733 sub a4,ra,sp
80000390: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000394: 00200293 li t0,2
80000398: fe5214e3 bne tp,t0,80000380 <test_23+0x4>
8000039c: 00300e93 li t4,3
800003a0: 01700193 li gp,23
800003a4: 23d71263 bne a4,t4,800005c8 <fail>
800003a8 <test_24>:
800003a8: 00000213 li tp,0
800003ac: 00f00093 li ra,15
800003b0: 00b00113 li sp,11
800003b4: 00000013 nop
800003b8: 00000013 nop
800003bc: 40208733 sub a4,ra,sp
800003c0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800003c4: 00200293 li t0,2
800003c8: fe5212e3 bne tp,t0,800003ac <test_24+0x4>
800003cc: 00400e93 li t4,4
800003d0: 01800193 li gp,24
800003d4: 1fd71a63 bne a4,t4,800005c8 <fail>
800003d8 <test_25>:
800003d8: 00000213 li tp,0
800003dc: 00d00093 li ra,13
800003e0: 00000013 nop
800003e4: 00b00113 li sp,11
800003e8: 40208733 sub a4,ra,sp
800003ec: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800003f0: 00200293 li t0,2
800003f4: fe5214e3 bne tp,t0,800003dc <test_25+0x4>
800003f8: 00200e93 li t4,2
800003fc: 01900193 li gp,25
80000400: 1dd71463 bne a4,t4,800005c8 <fail>
80000404 <test_26>:
80000404: 00000213 li tp,0
80000408: 00e00093 li ra,14
8000040c: 00000013 nop
80000410: 00b00113 li sp,11
80000414: 00000013 nop
80000418: 40208733 sub a4,ra,sp
8000041c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000420: 00200293 li t0,2
80000424: fe5212e3 bne tp,t0,80000408 <test_26+0x4>
80000428: 00300e93 li t4,3
8000042c: 01a00193 li gp,26
80000430: 19d71c63 bne a4,t4,800005c8 <fail>
80000434 <test_27>:
80000434: 00000213 li tp,0
80000438: 00f00093 li ra,15
8000043c: 00000013 nop
80000440: 00000013 nop
80000444: 00b00113 li sp,11
80000448: 40208733 sub a4,ra,sp
8000044c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000450: 00200293 li t0,2
80000454: fe5212e3 bne tp,t0,80000438 <test_27+0x4>
80000458: 00400e93 li t4,4
8000045c: 01b00193 li gp,27
80000460: 17d71463 bne a4,t4,800005c8 <fail>
80000464 <test_28>:
80000464: 00000213 li tp,0
80000468: 00b00113 li sp,11
8000046c: 00d00093 li ra,13
80000470: 40208733 sub a4,ra,sp
80000474: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000478: 00200293 li t0,2
8000047c: fe5216e3 bne tp,t0,80000468 <test_28+0x4>
80000480: 00200e93 li t4,2
80000484: 01c00193 li gp,28
80000488: 15d71063 bne a4,t4,800005c8 <fail>
8000048c <test_29>:
8000048c: 00000213 li tp,0
80000490: 00b00113 li sp,11
80000494: 00e00093 li ra,14
80000498: 00000013 nop
8000049c: 40208733 sub a4,ra,sp
800004a0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800004a4: 00200293 li t0,2
800004a8: fe5214e3 bne tp,t0,80000490 <test_29+0x4>
800004ac: 00300e93 li t4,3
800004b0: 01d00193 li gp,29
800004b4: 11d71a63 bne a4,t4,800005c8 <fail>
800004b8 <test_30>:
800004b8: 00000213 li tp,0
800004bc: 00b00113 li sp,11
800004c0: 00f00093 li ra,15
800004c4: 00000013 nop
800004c8: 00000013 nop
800004cc: 40208733 sub a4,ra,sp
800004d0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800004d4: 00200293 li t0,2
800004d8: fe5212e3 bne tp,t0,800004bc <test_30+0x4>
800004dc: 00400e93 li t4,4
800004e0: 01e00193 li gp,30
800004e4: 0fd71263 bne a4,t4,800005c8 <fail>
800004e8 <test_31>:
800004e8: 00000213 li tp,0
800004ec: 00b00113 li sp,11
800004f0: 00000013 nop
800004f4: 00d00093 li ra,13
800004f8: 40208733 sub a4,ra,sp
800004fc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000500: 00200293 li t0,2
80000504: fe5214e3 bne tp,t0,800004ec <test_31+0x4>
80000508: 00200e93 li t4,2
8000050c: 01f00193 li gp,31
80000510: 0bd71c63 bne a4,t4,800005c8 <fail>
80000514 <test_32>:
80000514: 00000213 li tp,0
80000518: 00b00113 li sp,11
8000051c: 00000013 nop
80000520: 00e00093 li ra,14
80000524: 00000013 nop
80000528: 40208733 sub a4,ra,sp
8000052c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000530: 00200293 li t0,2
80000534: fe5212e3 bne tp,t0,80000518 <test_32+0x4>
80000538: 00300e93 li t4,3
8000053c: 02000193 li gp,32
80000540: 09d71463 bne a4,t4,800005c8 <fail>
80000544 <test_33>:
80000544: 00000213 li tp,0
80000548: 00b00113 li sp,11
8000054c: 00000013 nop
80000550: 00000013 nop
80000554: 00f00093 li ra,15
80000558: 40208733 sub a4,ra,sp
8000055c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000560: 00200293 li t0,2
80000564: fe5212e3 bne tp,t0,80000548 <test_33+0x4>
80000568: 00400e93 li t4,4
8000056c: 02100193 li gp,33
80000570: 05d71c63 bne a4,t4,800005c8 <fail>
80000574 <test_34>:
80000574: ff100093 li ra,-15
80000578: 40100133 neg sp,ra
8000057c: 00f00e93 li t4,15
80000580: 02200193 li gp,34
80000584: 05d11263 bne sp,t4,800005c8 <fail>
80000588 <test_35>:
80000588: 02000093 li ra,32
8000058c: 40008133 sub sp,ra,zero
80000590: 02000e93 li t4,32
80000594: 02300193 li gp,35
80000598: 03d11863 bne sp,t4,800005c8 <fail>
8000059c <test_36>:
8000059c: 400000b3 neg ra,zero
800005a0: 00000e93 li t4,0
800005a4: 02400193 li gp,36
800005a8: 03d09063 bne ra,t4,800005c8 <fail>
800005ac <test_37>:
800005ac: 01000093 li ra,16
800005b0: 01e00113 li sp,30
800005b4: 40208033 sub zero,ra,sp
800005b8: 00000e93 li t4,0
800005bc: 02500193 li gp,37
800005c0: 01d01463 bne zero,t4,800005c8 <fail>
800005c4: 02301063 bne zero,gp,800005e4 <pass>
800005c8 <fail>:
800005c8: 0ff0000f fence
800005cc: 00018063 beqz gp,800005cc <fail+0x4>
800005d0: 00119193 slli gp,gp,0x1
800005d4: 0011e193 ori gp,gp,1
800005d8: 05d00893 li a7,93
800005dc: 00018513 mv a0,gp
800005e0: 00000073 ecall
800005e4 <pass>:
800005e4: 0ff0000f fence
800005e8: 00100193 li gp,1
800005ec: 05d00893 li a7,93
800005f0: 00000513 li a0,0
800005f4: 00000073 ecall
800005f8: c0001073 unimp
800005fc: 0000 unimp
800005fe: 0000 unimp
80000600: 0000 unimp
80000602: 0000 unimp

View file

@ -0,0 +1,469 @@
rv32ui-p-sw: 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: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-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: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 02028293 addi t0,t0,32 # 80000084 <reset_vector+0x38>
8000006c: 30529073 csrw mtvec,t0
80000070: 800002b7 lui t0,0x80000
80000074: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdfcf>
80000078: 3b029073 csrw pmpaddr0,t0
8000007c: 01f00293 li t0,31
80000080: 3a029073 csrw pmpcfg0,t0
80000084: 00000297 auipc t0,0x0
80000088: 01828293 addi t0,t0,24 # 8000009c <reset_vector+0x50>
8000008c: 30529073 csrw mtvec,t0
80000090: 30205073 csrwi medeleg,0
80000094: 30305073 csrwi mideleg,0
80000098: 30405073 csrwi mie,0
8000009c: 00000193 li gp,0
800000a0: 00000297 auipc t0,0x0
800000a4: f6428293 addi t0,t0,-156 # 80000004 <trap_vector>
800000a8: 30529073 csrw mtvec,t0
800000ac: 00100513 li a0,1
800000b0: 01f51513 slli a0,a0,0x1f
800000b4: 00054c63 bltz a0,800000cc <reset_vector+0x80>
800000b8: 0ff0000f fence
800000bc: 00100193 li gp,1
800000c0: 05d00893 li a7,93
800000c4: 00000513 li a0,0
800000c8: 00000073 ecall
800000cc: 80000297 auipc t0,0x80000
800000d0: f3428293 addi t0,t0,-204 # 0 <_start-0x80000000>
800000d4: 00028e63 beqz t0,800000f0 <reset_vector+0xa4>
800000d8: 10529073 csrw stvec,t0
800000dc: 0000b2b7 lui t0,0xb
800000e0: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000e4: 30229073 csrw medeleg,t0
800000e8: 30202373 csrr t1,medeleg
800000ec: f46298e3 bne t0,t1,8000003c <handle_exception>
800000f0: 30005073 csrwi mstatus,0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <test_2>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108 <test_2>:
80000108: 00002097 auipc ra,0x2
8000010c: ef808093 addi ra,ra,-264 # 80002000 <begin_signature>
80000110: 00aa0137 lui sp,0xaa0
80000114: 0aa10113 addi sp,sp,170 # aa00aa <_start-0x7f55ff56>
80000118: 0020a023 sw sp,0(ra)
8000011c: 0000a703 lw a4,0(ra)
80000120: 00aa0eb7 lui t4,0xaa0
80000124: 0aae8e93 addi t4,t4,170 # aa00aa <_start-0x7f55ff56>
80000128: 00200193 li gp,2
8000012c: 47d71063 bne a4,t4,8000058c <fail>
80000130 <test_3>:
80000130: 00002097 auipc ra,0x2
80000134: ed008093 addi ra,ra,-304 # 80002000 <begin_signature>
80000138: aa00b137 lui sp,0xaa00b
8000013c: a0010113 addi sp,sp,-1536 # aa00aa00 <_end+0x2a0089d0>
80000140: 0020a223 sw sp,4(ra)
80000144: 0040a703 lw a4,4(ra)
80000148: aa00beb7 lui t4,0xaa00b
8000014c: a00e8e93 addi t4,t4,-1536 # aa00aa00 <_end+0x2a0089d0>
80000150: 00300193 li gp,3
80000154: 43d71c63 bne a4,t4,8000058c <fail>
80000158 <test_4>:
80000158: 00002097 auipc ra,0x2
8000015c: ea808093 addi ra,ra,-344 # 80002000 <begin_signature>
80000160: 0aa01137 lui sp,0xaa01
80000164: aa010113 addi sp,sp,-1376 # aa00aa0 <_start-0x755ff560>
80000168: 0020a423 sw sp,8(ra)
8000016c: 0080a703 lw a4,8(ra)
80000170: 0aa01eb7 lui t4,0xaa01
80000174: aa0e8e93 addi t4,t4,-1376 # aa00aa0 <_start-0x755ff560>
80000178: 00400193 li gp,4
8000017c: 41d71863 bne a4,t4,8000058c <fail>
80000180 <test_5>:
80000180: 00002097 auipc ra,0x2
80000184: e8008093 addi ra,ra,-384 # 80002000 <begin_signature>
80000188: a00aa137 lui sp,0xa00aa
8000018c: 00a10113 addi sp,sp,10 # a00aa00a <_end+0x200a7fda>
80000190: 0020a623 sw sp,12(ra)
80000194: 00c0a703 lw a4,12(ra)
80000198: a00aaeb7 lui t4,0xa00aa
8000019c: 00ae8e93 addi t4,t4,10 # a00aa00a <_end+0x200a7fda>
800001a0: 00500193 li gp,5
800001a4: 3fd71463 bne a4,t4,8000058c <fail>
800001a8 <test_6>:
800001a8: 00002097 auipc ra,0x2
800001ac: e7408093 addi ra,ra,-396 # 8000201c <tdat8>
800001b0: 00aa0137 lui sp,0xaa0
800001b4: 0aa10113 addi sp,sp,170 # aa00aa <_start-0x7f55ff56>
800001b8: fe20aa23 sw sp,-12(ra)
800001bc: ff40a703 lw a4,-12(ra)
800001c0: 00aa0eb7 lui t4,0xaa0
800001c4: 0aae8e93 addi t4,t4,170 # aa00aa <_start-0x7f55ff56>
800001c8: 00600193 li gp,6
800001cc: 3dd71063 bne a4,t4,8000058c <fail>
800001d0 <test_7>:
800001d0: 00002097 auipc ra,0x2
800001d4: e4c08093 addi ra,ra,-436 # 8000201c <tdat8>
800001d8: aa00b137 lui sp,0xaa00b
800001dc: a0010113 addi sp,sp,-1536 # aa00aa00 <_end+0x2a0089d0>
800001e0: fe20ac23 sw sp,-8(ra)
800001e4: ff80a703 lw a4,-8(ra)
800001e8: aa00beb7 lui t4,0xaa00b
800001ec: a00e8e93 addi t4,t4,-1536 # aa00aa00 <_end+0x2a0089d0>
800001f0: 00700193 li gp,7
800001f4: 39d71c63 bne a4,t4,8000058c <fail>
800001f8 <test_8>:
800001f8: 00002097 auipc ra,0x2
800001fc: e2408093 addi ra,ra,-476 # 8000201c <tdat8>
80000200: 0aa01137 lui sp,0xaa01
80000204: aa010113 addi sp,sp,-1376 # aa00aa0 <_start-0x755ff560>
80000208: fe20ae23 sw sp,-4(ra)
8000020c: ffc0a703 lw a4,-4(ra)
80000210: 0aa01eb7 lui t4,0xaa01
80000214: aa0e8e93 addi t4,t4,-1376 # aa00aa0 <_start-0x755ff560>
80000218: 00800193 li gp,8
8000021c: 37d71863 bne a4,t4,8000058c <fail>
80000220 <test_9>:
80000220: 00002097 auipc ra,0x2
80000224: dfc08093 addi ra,ra,-516 # 8000201c <tdat8>
80000228: a00aa137 lui sp,0xa00aa
8000022c: 00a10113 addi sp,sp,10 # a00aa00a <_end+0x200a7fda>
80000230: 0020a023 sw sp,0(ra)
80000234: 0000a703 lw a4,0(ra)
80000238: a00aaeb7 lui t4,0xa00aa
8000023c: 00ae8e93 addi t4,t4,10 # a00aa00a <_end+0x200a7fda>
80000240: 00900193 li gp,9
80000244: 35d71463 bne a4,t4,8000058c <fail>
80000248 <test_10>:
80000248: 00002097 auipc ra,0x2
8000024c: dd808093 addi ra,ra,-552 # 80002020 <tdat9>
80000250: 12345137 lui sp,0x12345
80000254: 67810113 addi sp,sp,1656 # 12345678 <_start-0x6dcba988>
80000258: fe008213 addi tp,ra,-32
8000025c: 02222023 sw sp,32(tp) # 20 <_start-0x7fffffe0>
80000260: 0000a283 lw t0,0(ra)
80000264: 12345eb7 lui t4,0x12345
80000268: 678e8e93 addi t4,t4,1656 # 12345678 <_start-0x6dcba988>
8000026c: 00a00193 li gp,10
80000270: 31d29e63 bne t0,t4,8000058c <fail>
80000274 <test_11>:
80000274: 00002097 auipc ra,0x2
80000278: dac08093 addi ra,ra,-596 # 80002020 <tdat9>
8000027c: 58213137 lui sp,0x58213
80000280: 09810113 addi sp,sp,152 # 58213098 <_start-0x27decf68>
80000284: ffd08093 addi ra,ra,-3
80000288: 0020a3a3 sw sp,7(ra)
8000028c: 00002217 auipc tp,0x2
80000290: d9820213 addi tp,tp,-616 # 80002024 <tdat10>
80000294: 00022283 lw t0,0(tp) # 0 <_start-0x80000000>
80000298: 58213eb7 lui t4,0x58213
8000029c: 098e8e93 addi t4,t4,152 # 58213098 <_start-0x27decf68>
800002a0: 00b00193 li gp,11
800002a4: 2fd29463 bne t0,t4,8000058c <fail>
800002a8 <test_12>:
800002a8: 00c00193 li gp,12
800002ac: 00000213 li tp,0
800002b0: aabbd0b7 lui ra,0xaabbd
800002b4: cdd08093 addi ra,ra,-803 # aabbccdd <_end+0x2abbacad>
800002b8: 00002117 auipc sp,0x2
800002bc: d4810113 addi sp,sp,-696 # 80002000 <begin_signature>
800002c0: 00112023 sw ra,0(sp)
800002c4: 00012703 lw a4,0(sp)
800002c8: aabbdeb7 lui t4,0xaabbd
800002cc: cdde8e93 addi t4,t4,-803 # aabbccdd <_end+0x2abbacad>
800002d0: 2bd71e63 bne a4,t4,8000058c <fail>
800002d4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002d8: 00200293 li t0,2
800002dc: fc521ae3 bne tp,t0,800002b0 <test_12+0x8>
800002e0 <test_13>:
800002e0: 00d00193 li gp,13
800002e4: 00000213 li tp,0
800002e8: daabc0b7 lui ra,0xdaabc
800002ec: ccd08093 addi ra,ra,-819 # daabbccd <_end+0x5aab9c9d>
800002f0: 00002117 auipc sp,0x2
800002f4: d1010113 addi sp,sp,-752 # 80002000 <begin_signature>
800002f8: 00000013 nop
800002fc: 00112223 sw ra,4(sp)
80000300: 00412703 lw a4,4(sp)
80000304: daabceb7 lui t4,0xdaabc
80000308: ccde8e93 addi t4,t4,-819 # daabbccd <_end+0x5aab9c9d>
8000030c: 29d71063 bne a4,t4,8000058c <fail>
80000310: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000314: 00200293 li t0,2
80000318: fc5218e3 bne tp,t0,800002e8 <test_13+0x8>
8000031c <test_14>:
8000031c: 00e00193 li gp,14
80000320: 00000213 li tp,0
80000324: ddaac0b7 lui ra,0xddaac
80000328: bcc08093 addi ra,ra,-1076 # ddaabbcc <_end+0x5daa9b9c>
8000032c: 00002117 auipc sp,0x2
80000330: cd410113 addi sp,sp,-812 # 80002000 <begin_signature>
80000334: 00000013 nop
80000338: 00000013 nop
8000033c: 00112423 sw ra,8(sp)
80000340: 00812703 lw a4,8(sp)
80000344: ddaaceb7 lui t4,0xddaac
80000348: bcce8e93 addi t4,t4,-1076 # ddaabbcc <_end+0x5daa9b9c>
8000034c: 25d71063 bne a4,t4,8000058c <fail>
80000350: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000354: 00200293 li t0,2
80000358: fc5216e3 bne tp,t0,80000324 <test_14+0x8>
8000035c <test_15>:
8000035c: 00f00193 li gp,15
80000360: 00000213 li tp,0
80000364: cddab0b7 lui ra,0xcddab
80000368: bbc08093 addi ra,ra,-1092 # cddaabbc <_end+0x4dda8b8c>
8000036c: 00000013 nop
80000370: 00002117 auipc sp,0x2
80000374: c9010113 addi sp,sp,-880 # 80002000 <begin_signature>
80000378: 00112623 sw ra,12(sp)
8000037c: 00c12703 lw a4,12(sp)
80000380: cddabeb7 lui t4,0xcddab
80000384: bbce8e93 addi t4,t4,-1092 # cddaabbc <_end+0x4dda8b8c>
80000388: 21d71263 bne a4,t4,8000058c <fail>
8000038c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000390: 00200293 li t0,2
80000394: fc5218e3 bne tp,t0,80000364 <test_15+0x8>
80000398 <test_16>:
80000398: 01000193 li gp,16
8000039c: 00000213 li tp,0
800003a0: ccddb0b7 lui ra,0xccddb
800003a4: abb08093 addi ra,ra,-1349 # ccddaabb <_end+0x4cdd8a8b>
800003a8: 00000013 nop
800003ac: 00002117 auipc sp,0x2
800003b0: c5410113 addi sp,sp,-940 # 80002000 <begin_signature>
800003b4: 00000013 nop
800003b8: 00112823 sw ra,16(sp)
800003bc: 01012703 lw a4,16(sp)
800003c0: ccddbeb7 lui t4,0xccddb
800003c4: abbe8e93 addi t4,t4,-1349 # ccddaabb <_end+0x4cdd8a8b>
800003c8: 1dd71263 bne a4,t4,8000058c <fail>
800003cc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800003d0: 00200293 li t0,2
800003d4: fc5216e3 bne tp,t0,800003a0 <test_16+0x8>
800003d8 <test_17>:
800003d8: 01100193 li gp,17
800003dc: 00000213 li tp,0
800003e0: bccde0b7 lui ra,0xbccde
800003e4: aab08093 addi ra,ra,-1365 # bccddaab <_end+0x3ccdba7b>
800003e8: 00000013 nop
800003ec: 00000013 nop
800003f0: 00002117 auipc sp,0x2
800003f4: c1010113 addi sp,sp,-1008 # 80002000 <begin_signature>
800003f8: 00112a23 sw ra,20(sp)
800003fc: 01412703 lw a4,20(sp)
80000400: bccdeeb7 lui t4,0xbccde
80000404: aabe8e93 addi t4,t4,-1365 # bccddaab <_end+0x3ccdba7b>
80000408: 19d71263 bne a4,t4,8000058c <fail>
8000040c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000410: 00200293 li t0,2
80000414: fc5216e3 bne tp,t0,800003e0 <test_17+0x8>
80000418 <test_18>:
80000418: 01200193 li gp,18
8000041c: 00000213 li tp,0
80000420: 00002117 auipc sp,0x2
80000424: be010113 addi sp,sp,-1056 # 80002000 <begin_signature>
80000428: 001120b7 lui ra,0x112
8000042c: 23308093 addi ra,ra,563 # 112233 <_start-0x7feeddcd>
80000430: 00112023 sw ra,0(sp)
80000434: 00012703 lw a4,0(sp)
80000438: 00112eb7 lui t4,0x112
8000043c: 233e8e93 addi t4,t4,563 # 112233 <_start-0x7feeddcd>
80000440: 15d71663 bne a4,t4,8000058c <fail>
80000444: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000448: 00200293 li t0,2
8000044c: fc521ae3 bne tp,t0,80000420 <test_18+0x8>
80000450 <test_19>:
80000450: 01300193 li gp,19
80000454: 00000213 li tp,0
80000458: 00002117 auipc sp,0x2
8000045c: ba810113 addi sp,sp,-1112 # 80002000 <begin_signature>
80000460: 300110b7 lui ra,0x30011
80000464: 22308093 addi ra,ra,547 # 30011223 <_start-0x4ffeeddd>
80000468: 00000013 nop
8000046c: 00112223 sw ra,4(sp)
80000470: 00412703 lw a4,4(sp)
80000474: 30011eb7 lui t4,0x30011
80000478: 223e8e93 addi t4,t4,547 # 30011223 <_start-0x4ffeeddd>
8000047c: 11d71863 bne a4,t4,8000058c <fail>
80000480: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000484: 00200293 li t0,2
80000488: fc5218e3 bne tp,t0,80000458 <test_19+0x8>
8000048c <test_20>:
8000048c: 01400193 li gp,20
80000490: 00000213 li tp,0
80000494: 00002117 auipc sp,0x2
80000498: b6c10113 addi sp,sp,-1172 # 80002000 <begin_signature>
8000049c: 330010b7 lui ra,0x33001
800004a0: 12208093 addi ra,ra,290 # 33001122 <_start-0x4cffeede>
800004a4: 00000013 nop
800004a8: 00000013 nop
800004ac: 00112423 sw ra,8(sp)
800004b0: 00812703 lw a4,8(sp)
800004b4: 33001eb7 lui t4,0x33001
800004b8: 122e8e93 addi t4,t4,290 # 33001122 <_start-0x4cffeede>
800004bc: 0dd71863 bne a4,t4,8000058c <fail>
800004c0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800004c4: 00200293 li t0,2
800004c8: fc5216e3 bne tp,t0,80000494 <test_20+0x8>
800004cc <test_21>:
800004cc: 01500193 li gp,21
800004d0: 00000213 li tp,0
800004d4: 00002117 auipc sp,0x2
800004d8: b2c10113 addi sp,sp,-1236 # 80002000 <begin_signature>
800004dc: 00000013 nop
800004e0: 233000b7 lui ra,0x23300
800004e4: 11208093 addi ra,ra,274 # 23300112 <_start-0x5ccffeee>
800004e8: 00112623 sw ra,12(sp)
800004ec: 00c12703 lw a4,12(sp)
800004f0: 23300eb7 lui t4,0x23300
800004f4: 112e8e93 addi t4,t4,274 # 23300112 <_start-0x5ccffeee>
800004f8: 09d71a63 bne a4,t4,8000058c <fail>
800004fc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000500: 00200293 li t0,2
80000504: fc5218e3 bne tp,t0,800004d4 <test_21+0x8>
80000508 <test_22>:
80000508: 01600193 li gp,22
8000050c: 00000213 li tp,0
80000510: 00002117 auipc sp,0x2
80000514: af010113 addi sp,sp,-1296 # 80002000 <begin_signature>
80000518: 00000013 nop
8000051c: 223300b7 lui ra,0x22330
80000520: 01108093 addi ra,ra,17 # 22330011 <_start-0x5dccffef>
80000524: 00000013 nop
80000528: 00112823 sw ra,16(sp)
8000052c: 01012703 lw a4,16(sp)
80000530: 22330eb7 lui t4,0x22330
80000534: 011e8e93 addi t4,t4,17 # 22330011 <_start-0x5dccffef>
80000538: 05d71a63 bne a4,t4,8000058c <fail>
8000053c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000540: 00200293 li t0,2
80000544: fc5216e3 bne tp,t0,80000510 <test_22+0x8>
80000548 <test_23>:
80000548: 01700193 li gp,23
8000054c: 00000213 li tp,0
80000550: 00002117 auipc sp,0x2
80000554: ab010113 addi sp,sp,-1360 # 80002000 <begin_signature>
80000558: 00000013 nop
8000055c: 00000013 nop
80000560: 122330b7 lui ra,0x12233
80000564: 00108093 addi ra,ra,1 # 12233001 <_start-0x6ddccfff>
80000568: 00112a23 sw ra,20(sp)
8000056c: 01412703 lw a4,20(sp)
80000570: 12233eb7 lui t4,0x12233
80000574: 001e8e93 addi t4,t4,1 # 12233001 <_start-0x6ddccfff>
80000578: 01d71a63 bne a4,t4,8000058c <fail>
8000057c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000580: 00200293 li t0,2
80000584: fc5216e3 bne tp,t0,80000550 <test_23+0x8>
80000588: 02301063 bne zero,gp,800005a8 <pass>
8000058c <fail>:
8000058c: 0ff0000f fence
80000590: 00018063 beqz gp,80000590 <fail+0x4>
80000594: 00119193 slli gp,gp,0x1
80000598: 0011e193 ori gp,gp,1
8000059c: 05d00893 li a7,93
800005a0: 00018513 mv a0,gp
800005a4: 00000073 ecall
800005a8 <pass>:
800005a8: 0ff0000f fence
800005ac: 00100193 li gp,1
800005b0: 05d00893 li a7,93
800005b4: 00000513 li a0,0
800005b8: 00000073 ecall
800005bc: c0001073 unimp
800005c0: 0000 unimp
800005c2: 0000 unimp
Disassembly of section .data:
80002000 <begin_signature>:
80002000: deadbeef jal t4,7ffdd5ea <_start-0x22a16>
80002004 <tdat2>:
80002004: deadbeef jal t4,7ffdd5ee <_start-0x22a12>
80002008 <tdat3>:
80002008: deadbeef jal t4,7ffdd5f2 <_start-0x22a0e>
8000200c <tdat4>:
8000200c: deadbeef jal t4,7ffdd5f6 <_start-0x22a0a>
80002010 <tdat5>:
80002010: deadbeef jal t4,7ffdd5fa <_start-0x22a06>
80002014 <tdat6>:
80002014: deadbeef jal t4,7ffdd5fe <_start-0x22a02>
80002018 <tdat7>:
80002018: deadbeef jal t4,7ffdd602 <_start-0x229fe>
8000201c <tdat8>:
8000201c: deadbeef jal t4,7ffdd606 <_start-0x229fa>
80002020 <tdat9>:
80002020: deadbeef jal t4,7ffdd60a <_start-0x229f6>
80002024 <tdat10>:
80002024: deadbeef jal t4,7ffdd60e <_start-0x229f2>
80002028: 0000 unimp
8000202a: 0000 unimp
8000202c: 0000 unimp
8000202e: 0000 unimp

View file

@ -0,0 +1,458 @@
rv32ui-p-xor: 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: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-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: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 02028293 addi t0,t0,32 # 80000084 <reset_vector+0x38>
8000006c: 30529073 csrw mtvec,t0
80000070: 800002b7 lui t0,0x80000
80000074: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdfff>
80000078: 3b029073 csrw pmpaddr0,t0
8000007c: 01f00293 li t0,31
80000080: 3a029073 csrw pmpcfg0,t0
80000084: 00000297 auipc t0,0x0
80000088: 01828293 addi t0,t0,24 # 8000009c <reset_vector+0x50>
8000008c: 30529073 csrw mtvec,t0
80000090: 30205073 csrwi medeleg,0
80000094: 30305073 csrwi mideleg,0
80000098: 30405073 csrwi mie,0
8000009c: 00000193 li gp,0
800000a0: 00000297 auipc t0,0x0
800000a4: f6428293 addi t0,t0,-156 # 80000004 <trap_vector>
800000a8: 30529073 csrw mtvec,t0
800000ac: 00100513 li a0,1
800000b0: 01f51513 slli a0,a0,0x1f
800000b4: 00054c63 bltz a0,800000cc <reset_vector+0x80>
800000b8: 0ff0000f fence
800000bc: 00100193 li gp,1
800000c0: 05d00893 li a7,93
800000c4: 00000513 li a0,0
800000c8: 00000073 ecall
800000cc: 80000297 auipc t0,0x80000
800000d0: f3428293 addi t0,t0,-204 # 0 <_start-0x80000000>
800000d4: 00028e63 beqz t0,800000f0 <reset_vector+0xa4>
800000d8: 10529073 csrw stvec,t0
800000dc: 0000b2b7 lui t0,0xb
800000e0: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000e4: 30229073 csrw medeleg,t0
800000e8: 30202373 csrr t1,medeleg
800000ec: f46298e3 bne t0,t1,8000003c <handle_exception>
800000f0: 30005073 csrwi mstatus,0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <test_2>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108 <test_2>:
80000108: ff0100b7 lui ra,0xff010
8000010c: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
80000110: 0f0f1137 lui sp,0xf0f1
80000114: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
80000118: 0020c733 xor a4,ra,sp
8000011c: f00ffeb7 lui t4,0xf00ff
80000120: 00fe8e93 addi t4,t4,15 # f00ff00f <_end+0x700fd00f>
80000124: 00200193 li gp,2
80000128: 4bd71063 bne a4,t4,800005c8 <fail>
8000012c <test_3>:
8000012c: 0ff010b7 lui ra,0xff01
80000130: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
80000134: f0f0f137 lui sp,0xf0f0f
80000138: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f0d0f0>
8000013c: 0020c733 xor a4,ra,sp
80000140: ff010eb7 lui t4,0xff010
80000144: f00e8e93 addi t4,t4,-256 # ff00ff00 <_end+0x7f00df00>
80000148: 00300193 li gp,3
8000014c: 47d71e63 bne a4,t4,800005c8 <fail>
80000150 <test_4>:
80000150: 00ff00b7 lui ra,0xff0
80000154: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
80000158: 0f0f1137 lui sp,0xf0f1
8000015c: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
80000160: 0020c733 xor a4,ra,sp
80000164: 0ff01eb7 lui t4,0xff01
80000168: ff0e8e93 addi t4,t4,-16 # ff00ff0 <_start-0x700ff010>
8000016c: 00400193 li gp,4
80000170: 45d71c63 bne a4,t4,800005c8 <fail>
80000174 <test_5>:
80000174: f00ff0b7 lui ra,0xf00ff
80000178: 00f08093 addi ra,ra,15 # f00ff00f <_end+0x700fd00f>
8000017c: f0f0f137 lui sp,0xf0f0f
80000180: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f0d0f0>
80000184: 0020c733 xor a4,ra,sp
80000188: 00ff0eb7 lui t4,0xff0
8000018c: 0ffe8e93 addi t4,t4,255 # ff00ff <_start-0x7f00ff01>
80000190: 00500193 li gp,5
80000194: 43d71a63 bne a4,t4,800005c8 <fail>
80000198 <test_6>:
80000198: ff0100b7 lui ra,0xff010
8000019c: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
800001a0: 0f0f1137 lui sp,0xf0f1
800001a4: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
800001a8: 0020c0b3 xor ra,ra,sp
800001ac: f00ffeb7 lui t4,0xf00ff
800001b0: 00fe8e93 addi t4,t4,15 # f00ff00f <_end+0x700fd00f>
800001b4: 00600193 li gp,6
800001b8: 41d09863 bne ra,t4,800005c8 <fail>
800001bc <test_7>:
800001bc: ff0100b7 lui ra,0xff010
800001c0: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
800001c4: 0f0f1137 lui sp,0xf0f1
800001c8: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
800001cc: 0020c133 xor sp,ra,sp
800001d0: f00ffeb7 lui t4,0xf00ff
800001d4: 00fe8e93 addi t4,t4,15 # f00ff00f <_end+0x700fd00f>
800001d8: 00700193 li gp,7
800001dc: 3fd11663 bne sp,t4,800005c8 <fail>
800001e0 <test_8>:
800001e0: ff0100b7 lui ra,0xff010
800001e4: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
800001e8: 0010c0b3 xor ra,ra,ra
800001ec: 00000e93 li t4,0
800001f0: 00800193 li gp,8
800001f4: 3dd09a63 bne ra,t4,800005c8 <fail>
800001f8 <test_9>:
800001f8: 00000213 li tp,0
800001fc: ff0100b7 lui ra,0xff010
80000200: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
80000204: 0f0f1137 lui sp,0xf0f1
80000208: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
8000020c: 0020c733 xor a4,ra,sp
80000210: 00070313 mv t1,a4
80000214: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000218: 00200293 li t0,2
8000021c: fe5210e3 bne tp,t0,800001fc <test_9+0x4>
80000220: f00ffeb7 lui t4,0xf00ff
80000224: 00fe8e93 addi t4,t4,15 # f00ff00f <_end+0x700fd00f>
80000228: 00900193 li gp,9
8000022c: 39d31e63 bne t1,t4,800005c8 <fail>
80000230 <test_10>:
80000230: 00000213 li tp,0
80000234: 0ff010b7 lui ra,0xff01
80000238: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
8000023c: f0f0f137 lui sp,0xf0f0f
80000240: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f0d0f0>
80000244: 0020c733 xor a4,ra,sp
80000248: 00000013 nop
8000024c: 00070313 mv t1,a4
80000250: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000254: 00200293 li t0,2
80000258: fc521ee3 bne tp,t0,80000234 <test_10+0x4>
8000025c: ff010eb7 lui t4,0xff010
80000260: f00e8e93 addi t4,t4,-256 # ff00ff00 <_end+0x7f00df00>
80000264: 00a00193 li gp,10
80000268: 37d31063 bne t1,t4,800005c8 <fail>
8000026c <test_11>:
8000026c: 00000213 li tp,0
80000270: 00ff00b7 lui ra,0xff0
80000274: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
80000278: 0f0f1137 lui sp,0xf0f1
8000027c: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
80000280: 0020c733 xor a4,ra,sp
80000284: 00000013 nop
80000288: 00000013 nop
8000028c: 00070313 mv t1,a4
80000290: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000294: 00200293 li t0,2
80000298: fc521ce3 bne tp,t0,80000270 <test_11+0x4>
8000029c: 0ff01eb7 lui t4,0xff01
800002a0: ff0e8e93 addi t4,t4,-16 # ff00ff0 <_start-0x700ff010>
800002a4: 00b00193 li gp,11
800002a8: 33d31063 bne t1,t4,800005c8 <fail>
800002ac <test_12>:
800002ac: 00000213 li tp,0
800002b0: ff0100b7 lui ra,0xff010
800002b4: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
800002b8: 0f0f1137 lui sp,0xf0f1
800002bc: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
800002c0: 0020c733 xor a4,ra,sp
800002c4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002c8: 00200293 li t0,2
800002cc: fe5212e3 bne tp,t0,800002b0 <test_12+0x4>
800002d0: f00ffeb7 lui t4,0xf00ff
800002d4: 00fe8e93 addi t4,t4,15 # f00ff00f <_end+0x700fd00f>
800002d8: 00c00193 li gp,12
800002dc: 2fd71663 bne a4,t4,800005c8 <fail>
800002e0 <test_13>:
800002e0: 00000213 li tp,0
800002e4: 0ff010b7 lui ra,0xff01
800002e8: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
800002ec: f0f0f137 lui sp,0xf0f0f
800002f0: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f0d0f0>
800002f4: 00000013 nop
800002f8: 0020c733 xor a4,ra,sp
800002fc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000300: 00200293 li t0,2
80000304: fe5210e3 bne tp,t0,800002e4 <test_13+0x4>
80000308: ff010eb7 lui t4,0xff010
8000030c: f00e8e93 addi t4,t4,-256 # ff00ff00 <_end+0x7f00df00>
80000310: 00d00193 li gp,13
80000314: 2bd71a63 bne a4,t4,800005c8 <fail>
80000318 <test_14>:
80000318: 00000213 li tp,0
8000031c: 00ff00b7 lui ra,0xff0
80000320: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
80000324: 0f0f1137 lui sp,0xf0f1
80000328: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
8000032c: 00000013 nop
80000330: 00000013 nop
80000334: 0020c733 xor a4,ra,sp
80000338: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000033c: 00200293 li t0,2
80000340: fc521ee3 bne tp,t0,8000031c <test_14+0x4>
80000344: 0ff01eb7 lui t4,0xff01
80000348: ff0e8e93 addi t4,t4,-16 # ff00ff0 <_start-0x700ff010>
8000034c: 00e00193 li gp,14
80000350: 27d71c63 bne a4,t4,800005c8 <fail>
80000354 <test_15>:
80000354: 00000213 li tp,0
80000358: ff0100b7 lui ra,0xff010
8000035c: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
80000360: 00000013 nop
80000364: 0f0f1137 lui sp,0xf0f1
80000368: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
8000036c: 0020c733 xor a4,ra,sp
80000370: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000374: 00200293 li t0,2
80000378: fe5210e3 bne tp,t0,80000358 <test_15+0x4>
8000037c: f00ffeb7 lui t4,0xf00ff
80000380: 00fe8e93 addi t4,t4,15 # f00ff00f <_end+0x700fd00f>
80000384: 00f00193 li gp,15
80000388: 25d71063 bne a4,t4,800005c8 <fail>
8000038c <test_16>:
8000038c: 00000213 li tp,0
80000390: 0ff010b7 lui ra,0xff01
80000394: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
80000398: 00000013 nop
8000039c: f0f0f137 lui sp,0xf0f0f
800003a0: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f0d0f0>
800003a4: 00000013 nop
800003a8: 0020c733 xor a4,ra,sp
800003ac: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800003b0: 00200293 li t0,2
800003b4: fc521ee3 bne tp,t0,80000390 <test_16+0x4>
800003b8: ff010eb7 lui t4,0xff010
800003bc: f00e8e93 addi t4,t4,-256 # ff00ff00 <_end+0x7f00df00>
800003c0: 01000193 li gp,16
800003c4: 21d71263 bne a4,t4,800005c8 <fail>
800003c8 <test_17>:
800003c8: 00000213 li tp,0
800003cc: 00ff00b7 lui ra,0xff0
800003d0: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
800003d4: 00000013 nop
800003d8: 00000013 nop
800003dc: 0f0f1137 lui sp,0xf0f1
800003e0: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
800003e4: 0020c733 xor a4,ra,sp
800003e8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800003ec: 00200293 li t0,2
800003f0: fc521ee3 bne tp,t0,800003cc <test_17+0x4>
800003f4: 0ff01eb7 lui t4,0xff01
800003f8: ff0e8e93 addi t4,t4,-16 # ff00ff0 <_start-0x700ff010>
800003fc: 01100193 li gp,17
80000400: 1dd71463 bne a4,t4,800005c8 <fail>
80000404 <test_18>:
80000404: 00000213 li tp,0
80000408: 0f0f1137 lui sp,0xf0f1
8000040c: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
80000410: ff0100b7 lui ra,0xff010
80000414: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
80000418: 0020c733 xor a4,ra,sp
8000041c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000420: 00200293 li t0,2
80000424: fe5212e3 bne tp,t0,80000408 <test_18+0x4>
80000428: f00ffeb7 lui t4,0xf00ff
8000042c: 00fe8e93 addi t4,t4,15 # f00ff00f <_end+0x700fd00f>
80000430: 01200193 li gp,18
80000434: 19d71a63 bne a4,t4,800005c8 <fail>
80000438 <test_19>:
80000438: 00000213 li tp,0
8000043c: f0f0f137 lui sp,0xf0f0f
80000440: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f0d0f0>
80000444: 0ff010b7 lui ra,0xff01
80000448: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
8000044c: 00000013 nop
80000450: 0020c733 xor a4,ra,sp
80000454: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000458: 00200293 li t0,2
8000045c: fe5210e3 bne tp,t0,8000043c <test_19+0x4>
80000460: ff010eb7 lui t4,0xff010
80000464: f00e8e93 addi t4,t4,-256 # ff00ff00 <_end+0x7f00df00>
80000468: 01300193 li gp,19
8000046c: 15d71e63 bne a4,t4,800005c8 <fail>
80000470 <test_20>:
80000470: 00000213 li tp,0
80000474: 0f0f1137 lui sp,0xf0f1
80000478: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
8000047c: 00ff00b7 lui ra,0xff0
80000480: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
80000484: 00000013 nop
80000488: 00000013 nop
8000048c: 0020c733 xor a4,ra,sp
80000490: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000494: 00200293 li t0,2
80000498: fc521ee3 bne tp,t0,80000474 <test_20+0x4>
8000049c: 0ff01eb7 lui t4,0xff01
800004a0: ff0e8e93 addi t4,t4,-16 # ff00ff0 <_start-0x700ff010>
800004a4: 01400193 li gp,20
800004a8: 13d71063 bne a4,t4,800005c8 <fail>
800004ac <test_21>:
800004ac: 00000213 li tp,0
800004b0: 0f0f1137 lui sp,0xf0f1
800004b4: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
800004b8: 00000013 nop
800004bc: ff0100b7 lui ra,0xff010
800004c0: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
800004c4: 0020c733 xor a4,ra,sp
800004c8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800004cc: 00200293 li t0,2
800004d0: fe5210e3 bne tp,t0,800004b0 <test_21+0x4>
800004d4: f00ffeb7 lui t4,0xf00ff
800004d8: 00fe8e93 addi t4,t4,15 # f00ff00f <_end+0x700fd00f>
800004dc: 01500193 li gp,21
800004e0: 0fd71463 bne a4,t4,800005c8 <fail>
800004e4 <test_22>:
800004e4: 00000213 li tp,0
800004e8: f0f0f137 lui sp,0xf0f0f
800004ec: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f0d0f0>
800004f0: 00000013 nop
800004f4: 0ff010b7 lui ra,0xff01
800004f8: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
800004fc: 00000013 nop
80000500: 0020c733 xor a4,ra,sp
80000504: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000508: 00200293 li t0,2
8000050c: fc521ee3 bne tp,t0,800004e8 <test_22+0x4>
80000510: ff010eb7 lui t4,0xff010
80000514: f00e8e93 addi t4,t4,-256 # ff00ff00 <_end+0x7f00df00>
80000518: 01600193 li gp,22
8000051c: 0bd71663 bne a4,t4,800005c8 <fail>
80000520 <test_23>:
80000520: 00000213 li tp,0
80000524: 0f0f1137 lui sp,0xf0f1
80000528: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
8000052c: 00000013 nop
80000530: 00000013 nop
80000534: 00ff00b7 lui ra,0xff0
80000538: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
8000053c: 0020c733 xor a4,ra,sp
80000540: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000544: 00200293 li t0,2
80000548: fc521ee3 bne tp,t0,80000524 <test_23+0x4>
8000054c: 0ff01eb7 lui t4,0xff01
80000550: ff0e8e93 addi t4,t4,-16 # ff00ff0 <_start-0x700ff010>
80000554: 01700193 li gp,23
80000558: 07d71863 bne a4,t4,800005c8 <fail>
8000055c <test_24>:
8000055c: ff0100b7 lui ra,0xff010
80000560: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
80000564: 00104133 xor sp,zero,ra
80000568: ff010eb7 lui t4,0xff010
8000056c: f00e8e93 addi t4,t4,-256 # ff00ff00 <_end+0x7f00df00>
80000570: 01800193 li gp,24
80000574: 05d11a63 bne sp,t4,800005c8 <fail>
80000578 <test_25>:
80000578: 00ff00b7 lui ra,0xff0
8000057c: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
80000580: 0000c133 xor sp,ra,zero
80000584: 00ff0eb7 lui t4,0xff0
80000588: 0ffe8e93 addi t4,t4,255 # ff00ff <_start-0x7f00ff01>
8000058c: 01900193 li gp,25
80000590: 03d11c63 bne sp,t4,800005c8 <fail>
80000594 <test_26>:
80000594: 000040b3 xor ra,zero,zero
80000598: 00000e93 li t4,0
8000059c: 01a00193 li gp,26
800005a0: 03d09463 bne ra,t4,800005c8 <fail>
800005a4 <test_27>:
800005a4: 111110b7 lui ra,0x11111
800005a8: 11108093 addi ra,ra,273 # 11111111 <_start-0x6eeeeeef>
800005ac: 22222137 lui sp,0x22222
800005b0: 22210113 addi sp,sp,546 # 22222222 <_start-0x5dddddde>
800005b4: 0020c033 xor zero,ra,sp
800005b8: 00000e93 li t4,0
800005bc: 01b00193 li gp,27
800005c0: 01d01463 bne zero,t4,800005c8 <fail>
800005c4: 02301063 bne zero,gp,800005e4 <pass>
800005c8 <fail>:
800005c8: 0ff0000f fence
800005cc: 00018063 beqz gp,800005cc <fail+0x4>
800005d0: 00119193 slli gp,gp,0x1
800005d4: 0011e193 ori gp,gp,1
800005d8: 05d00893 li a7,93
800005dc: 00018513 mv a0,gp
800005e0: 00000073 ecall
800005e4 <pass>:
800005e4: 0ff0000f fence
800005e8: 00100193 li gp,1
800005ec: 05d00893 li a7,93
800005f0: 00000513 li a0,0
800005f4: 00000073 ecall
800005f8: c0001073 unimp
800005fc: 0000 unimp
800005fe: 0000 unimp
80000600: 0000 unimp
80000602: 0000 unimp

View file

@ -0,0 +1,263 @@
rv32ui-p-xori: 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: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-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: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 02028293 addi t0,t0,32 # 80000084 <reset_vector+0x38>
8000006c: 30529073 csrw mtvec,t0
80000070: 800002b7 lui t0,0x80000
80000074: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdfff>
80000078: 3b029073 csrw pmpaddr0,t0
8000007c: 01f00293 li t0,31
80000080: 3a029073 csrw pmpcfg0,t0
80000084: 00000297 auipc t0,0x0
80000088: 01828293 addi t0,t0,24 # 8000009c <reset_vector+0x50>
8000008c: 30529073 csrw mtvec,t0
80000090: 30205073 csrwi medeleg,0
80000094: 30305073 csrwi mideleg,0
80000098: 30405073 csrwi mie,0
8000009c: 00000193 li gp,0
800000a0: 00000297 auipc t0,0x0
800000a4: f6428293 addi t0,t0,-156 # 80000004 <trap_vector>
800000a8: 30529073 csrw mtvec,t0
800000ac: 00100513 li a0,1
800000b0: 01f51513 slli a0,a0,0x1f
800000b4: 00054c63 bltz a0,800000cc <reset_vector+0x80>
800000b8: 0ff0000f fence
800000bc: 00100193 li gp,1
800000c0: 05d00893 li a7,93
800000c4: 00000513 li a0,0
800000c8: 00000073 ecall
800000cc: 80000297 auipc t0,0x80000
800000d0: f3428293 addi t0,t0,-204 # 0 <_start-0x80000000>
800000d4: 00028e63 beqz t0,800000f0 <reset_vector+0xa4>
800000d8: 10529073 csrw stvec,t0
800000dc: 0000b2b7 lui t0,0xb
800000e0: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000e4: 30229073 csrw medeleg,t0
800000e8: 30202373 csrr t1,medeleg
800000ec: f46298e3 bne t0,t1,8000003c <handle_exception>
800000f0: 30005073 csrwi mstatus,0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <test_2>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108 <test_2>:
80000108: 00ff10b7 lui ra,0xff1
8000010c: f0008093 addi ra,ra,-256 # ff0f00 <_start-0x7f00f100>
80000110: f0f0c713 xori a4,ra,-241
80000114: ff00feb7 lui t4,0xff00f
80000118: 00fe8e93 addi t4,t4,15 # ff00f00f <_end+0x7f00d00f>
8000011c: 00200193 li gp,2
80000120: 1dd71663 bne a4,t4,800002ec <fail>
80000124 <test_3>:
80000124: 0ff010b7 lui ra,0xff01
80000128: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
8000012c: 0f00c713 xori a4,ra,240
80000130: 0ff01eb7 lui t4,0xff01
80000134: f00e8e93 addi t4,t4,-256 # ff00f00 <_start-0x700ff100>
80000138: 00300193 li gp,3
8000013c: 1bd71863 bne a4,t4,800002ec <fail>
80000140 <test_4>:
80000140: 00ff10b7 lui ra,0xff1
80000144: 8ff08093 addi ra,ra,-1793 # ff08ff <_start-0x7f00f701>
80000148: 70f0c713 xori a4,ra,1807
8000014c: 00ff1eb7 lui t4,0xff1
80000150: ff0e8e93 addi t4,t4,-16 # ff0ff0 <_start-0x7f00f010>
80000154: 00400193 li gp,4
80000158: 19d71a63 bne a4,t4,800002ec <fail>
8000015c <test_5>:
8000015c: f00ff0b7 lui ra,0xf00ff
80000160: 00f08093 addi ra,ra,15 # f00ff00f <_end+0x700fd00f>
80000164: 0f00c713 xori a4,ra,240
80000168: f00ffeb7 lui t4,0xf00ff
8000016c: 0ffe8e93 addi t4,t4,255 # f00ff0ff <_end+0x700fd0ff>
80000170: 00500193 li gp,5
80000174: 17d71c63 bne a4,t4,800002ec <fail>
80000178 <test_6>:
80000178: ff00f0b7 lui ra,0xff00f
8000017c: 70008093 addi ra,ra,1792 # ff00f700 <_end+0x7f00d700>
80000180: 70f0c093 xori ra,ra,1807
80000184: ff00feb7 lui t4,0xff00f
80000188: 00fe8e93 addi t4,t4,15 # ff00f00f <_end+0x7f00d00f>
8000018c: 00600193 li gp,6
80000190: 15d09e63 bne ra,t4,800002ec <fail>
80000194 <test_7>:
80000194: 00000213 li tp,0
80000198: 0ff010b7 lui ra,0xff01
8000019c: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
800001a0: 0f00c713 xori a4,ra,240
800001a4: 00070313 mv t1,a4
800001a8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800001ac: 00200293 li t0,2
800001b0: fe5214e3 bne tp,t0,80000198 <test_7+0x4>
800001b4: 0ff01eb7 lui t4,0xff01
800001b8: f00e8e93 addi t4,t4,-256 # ff00f00 <_start-0x700ff100>
800001bc: 00700193 li gp,7
800001c0: 13d31663 bne t1,t4,800002ec <fail>
800001c4 <test_8>:
800001c4: 00000213 li tp,0
800001c8: 00ff10b7 lui ra,0xff1
800001cc: 8ff08093 addi ra,ra,-1793 # ff08ff <_start-0x7f00f701>
800001d0: 70f0c713 xori a4,ra,1807
800001d4: 00000013 nop
800001d8: 00070313 mv t1,a4
800001dc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800001e0: 00200293 li t0,2
800001e4: fe5212e3 bne tp,t0,800001c8 <test_8+0x4>
800001e8: 00ff1eb7 lui t4,0xff1
800001ec: ff0e8e93 addi t4,t4,-16 # ff0ff0 <_start-0x7f00f010>
800001f0: 00800193 li gp,8
800001f4: 0fd31c63 bne t1,t4,800002ec <fail>
800001f8 <test_9>:
800001f8: 00000213 li tp,0
800001fc: f00ff0b7 lui ra,0xf00ff
80000200: 00f08093 addi ra,ra,15 # f00ff00f <_end+0x700fd00f>
80000204: 0f00c713 xori a4,ra,240
80000208: 00000013 nop
8000020c: 00000013 nop
80000210: 00070313 mv t1,a4
80000214: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000218: 00200293 li t0,2
8000021c: fe5210e3 bne tp,t0,800001fc <test_9+0x4>
80000220: f00ffeb7 lui t4,0xf00ff
80000224: 0ffe8e93 addi t4,t4,255 # f00ff0ff <_end+0x700fd0ff>
80000228: 00900193 li gp,9
8000022c: 0dd31063 bne t1,t4,800002ec <fail>
80000230 <test_10>:
80000230: 00000213 li tp,0
80000234: 0ff010b7 lui ra,0xff01
80000238: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
8000023c: 0f00c713 xori a4,ra,240
80000240: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000244: 00200293 li t0,2
80000248: fe5216e3 bne tp,t0,80000234 <test_10+0x4>
8000024c: 0ff01eb7 lui t4,0xff01
80000250: f00e8e93 addi t4,t4,-256 # ff00f00 <_start-0x700ff100>
80000254: 00a00193 li gp,10
80000258: 09d71a63 bne a4,t4,800002ec <fail>
8000025c <test_11>:
8000025c: 00000213 li tp,0
80000260: 00ff10b7 lui ra,0xff1
80000264: fff08093 addi ra,ra,-1 # ff0fff <_start-0x7f00f001>
80000268: 00000013 nop
8000026c: 00f0c713 xori a4,ra,15
80000270: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000274: 00200293 li t0,2
80000278: fe5214e3 bne tp,t0,80000260 <test_11+0x4>
8000027c: 00ff1eb7 lui t4,0xff1
80000280: ff0e8e93 addi t4,t4,-16 # ff0ff0 <_start-0x7f00f010>
80000284: 00b00193 li gp,11
80000288: 07d71263 bne a4,t4,800002ec <fail>
8000028c <test_12>:
8000028c: 00000213 li tp,0
80000290: f00ff0b7 lui ra,0xf00ff
80000294: 00f08093 addi ra,ra,15 # f00ff00f <_end+0x700fd00f>
80000298: 00000013 nop
8000029c: 00000013 nop
800002a0: 0f00c713 xori a4,ra,240
800002a4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002a8: 00200293 li t0,2
800002ac: fe5212e3 bne tp,t0,80000290 <test_12+0x4>
800002b0: f00ffeb7 lui t4,0xf00ff
800002b4: 0ffe8e93 addi t4,t4,255 # f00ff0ff <_end+0x700fd0ff>
800002b8: 00c00193 li gp,12
800002bc: 03d71863 bne a4,t4,800002ec <fail>
800002c0 <test_13>:
800002c0: 0f004093 xori ra,zero,240
800002c4: 0f000e93 li t4,240
800002c8: 00d00193 li gp,13
800002cc: 03d09063 bne ra,t4,800002ec <fail>
800002d0 <test_14>:
800002d0: 00ff00b7 lui ra,0xff0
800002d4: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
800002d8: 70f0c013 xori zero,ra,1807
800002dc: 00000e93 li t4,0
800002e0: 00e00193 li gp,14
800002e4: 01d01463 bne zero,t4,800002ec <fail>
800002e8: 02301063 bne zero,gp,80000308 <pass>
800002ec <fail>:
800002ec: 0ff0000f fence
800002f0: 00018063 beqz gp,800002f0 <fail+0x4>
800002f4: 00119193 slli gp,gp,0x1
800002f8: 0011e193 ori gp,gp,1
800002fc: 05d00893 li a7,93
80000300: 00018513 mv a0,gp
80000304: 00000073 ecall
80000308 <pass>:
80000308: 0ff0000f fence
8000030c: 00100193 li gp,1
80000310: 05d00893 li a7,93
80000314: 00000513 li a0,0
80000318: 00000073 ecall
8000031c: c0001073 unimp
80000320: 0000 unimp
80000322: 0000 unimp
80000324: 0000 unimp
80000326: 0000 unimp
80000328: 0000 unimp
8000032a: 0000 unimp
8000032c: 0000 unimp
8000032e: 0000 unimp
80000330: 0000 unimp
80000332: 0000 unimp
80000334: 0000 unimp
80000336: 0000 unimp
80000338: 0000 unimp
8000033a: 0000 unimp
8000033c: 0000 unimp
8000033e: 0000 unimp
80000340: 0000 unimp
80000342: 0000 unimp

View file

@ -0,0 +1,167 @@
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: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-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: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 02028293 addi t0,t0,32 # 80000084 <reset_vector+0x38>
8000006c: 30529073 csrw mtvec,t0
80000070: 800002b7 lui t0,0x80000
80000074: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdfff>
80000078: 3b029073 csrw pmpaddr0,t0
8000007c: 01f00293 li t0,31
80000080: 3a029073 csrw pmpcfg0,t0
80000084: 00000297 auipc t0,0x0
80000088: 01828293 addi t0,t0,24 # 8000009c <reset_vector+0x50>
8000008c: 30529073 csrw mtvec,t0
80000090: 30205073 csrwi medeleg,0
80000094: 30305073 csrwi mideleg,0
80000098: 30405073 csrwi mie,0
8000009c: 00000193 li gp,0
800000a0: 00000297 auipc t0,0x0
800000a4: f6428293 addi t0,t0,-156 # 80000004 <trap_vector>
800000a8: 30529073 csrw mtvec,t0
800000ac: 00100513 li a0,1
800000b0: 01f51513 slli a0,a0,0x1f
800000b4: 00054863 bltz a0,800000c4 <reset_vector+0x78>
800000b8: 0ff0000f fence
800000bc: 00100193 li gp,1
800000c0: 00000073 ecall
800000c4: 80000297 auipc t0,0x80000
800000c8: f3c28293 addi t0,t0,-196 # 0 <_start-0x80000000>
800000cc: 00028e63 beqz t0,800000e8 <reset_vector+0x9c>
800000d0: 10529073 csrw stvec,t0
800000d4: 0000b2b7 lui t0,0xb
800000d8: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000dc: 30229073 csrw medeleg,t0
800000e0: 30202373 csrr t1,medeleg
800000e4: f4629ce3 bne t0,t1,8000003c <handle_exception>
800000e8: 30005073 csrwi mstatus,0
800000ec: 00000297 auipc t0,0x0
800000f0: 01428293 addi t0,t0,20 # 80000100 <test_2>
800000f4: 34129073 csrw mepc,t0
800000f8: f1402573 csrr a0,mhartid
800000fc: 30200073 mret
80000100 <test_2>:
80000100: 01400093 li ra,20
80000104: 00600113 li sp,6
80000108: 0220cf33 div t5,ra,sp
8000010c: 00300e93 li t4,3
80000110: 00200193 li gp,2
80000114: 0ddf1463 bne t5,t4,800001dc <fail>
80000118 <test_3>:
80000118: fec00093 li ra,-20
8000011c: 00600113 li sp,6
80000120: 0220cf33 div t5,ra,sp
80000124: ffd00e93 li t4,-3
80000128: 00300193 li gp,3
8000012c: 0bdf1863 bne t5,t4,800001dc <fail>
80000130 <test_4>:
80000130: 01400093 li ra,20
80000134: ffa00113 li sp,-6
80000138: 0220cf33 div t5,ra,sp
8000013c: ffd00e93 li t4,-3
80000140: 00400193 li gp,4
80000144: 09df1c63 bne t5,t4,800001dc <fail>
80000148 <test_5>:
80000148: fec00093 li ra,-20
8000014c: ffa00113 li sp,-6
80000150: 0220cf33 div t5,ra,sp
80000154: 00300e93 li t4,3
80000158: 00500193 li gp,5
8000015c: 09df1063 bne t5,t4,800001dc <fail>
80000160 <test_6>:
80000160: 800000b7 lui ra,0x80000
80000164: 00100113 li sp,1
80000168: 0220cf33 div t5,ra,sp
8000016c: 80000eb7 lui t4,0x80000
80000170: 00600193 li gp,6
80000174: 07df1463 bne t5,t4,800001dc <fail>
80000178 <test_7>:
80000178: 800000b7 lui ra,0x80000
8000017c: fff00113 li sp,-1
80000180: 0220cf33 div t5,ra,sp
80000184: 80000eb7 lui t4,0x80000
80000188: 00700193 li gp,7
8000018c: 05df1863 bne t5,t4,800001dc <fail>
80000190 <test_8>:
80000190: 800000b7 lui ra,0x80000
80000194: 00000113 li sp,0
80000198: 0220cf33 div t5,ra,sp
8000019c: fff00e93 li t4,-1
800001a0: 00800193 li gp,8
800001a4: 03df1c63 bne t5,t4,800001dc <fail>
800001a8 <test_9>:
800001a8: 00100093 li ra,1
800001ac: 00000113 li sp,0
800001b0: 0220cf33 div t5,ra,sp
800001b4: fff00e93 li t4,-1
800001b8: 00900193 li gp,9
800001bc: 03df1063 bne t5,t4,800001dc <fail>
800001c0 <test_10>:
800001c0: 00000093 li ra,0
800001c4: 00000113 li sp,0
800001c8: 0220cf33 div t5,ra,sp
800001cc: fff00e93 li t4,-1
800001d0: 00a00193 li gp,10
800001d4: 01df1463 bne t5,t4,800001dc <fail>
800001d8: 00301c63 bne zero,gp,800001f0 <pass>
800001dc <fail>:
800001dc: 0ff0000f fence
800001e0: 00018063 beqz gp,800001e0 <fail+0x4>
800001e4: 00119193 slli gp,gp,0x1
800001e8: 0011e193 ori gp,gp,1
800001ec: 00000073 ecall
800001f0 <pass>:
800001f0: 0ff0000f fence
800001f4: 00100193 li gp,1
800001f8: 00000073 ecall
800001fc: c0001073 unimp
80000200: 0000 unimp
80000202: 0000 unimp

View file

@ -0,0 +1,166 @@
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: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-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: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 02028293 addi t0,t0,32 # 80000084 <reset_vector+0x38>
8000006c: 30529073 csrw mtvec,t0
80000070: 800002b7 lui t0,0x80000
80000074: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdfff>
80000078: 3b029073 csrw pmpaddr0,t0
8000007c: 01f00293 li t0,31
80000080: 3a029073 csrw pmpcfg0,t0
80000084: 00000297 auipc t0,0x0
80000088: 01828293 addi t0,t0,24 # 8000009c <reset_vector+0x50>
8000008c: 30529073 csrw mtvec,t0
80000090: 30205073 csrwi medeleg,0
80000094: 30305073 csrwi mideleg,0
80000098: 30405073 csrwi mie,0
8000009c: 00000193 li gp,0
800000a0: 00000297 auipc t0,0x0
800000a4: f6428293 addi t0,t0,-156 # 80000004 <trap_vector>
800000a8: 30529073 csrw mtvec,t0
800000ac: 00100513 li a0,1
800000b0: 01f51513 slli a0,a0,0x1f
800000b4: 00054863 bltz a0,800000c4 <reset_vector+0x78>
800000b8: 0ff0000f fence
800000bc: 00100193 li gp,1
800000c0: 00000073 ecall
800000c4: 80000297 auipc t0,0x80000
800000c8: f3c28293 addi t0,t0,-196 # 0 <_start-0x80000000>
800000cc: 00028e63 beqz t0,800000e8 <reset_vector+0x9c>
800000d0: 10529073 csrw stvec,t0
800000d4: 0000b2b7 lui t0,0xb
800000d8: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000dc: 30229073 csrw medeleg,t0
800000e0: 30202373 csrr t1,medeleg
800000e4: f4629ce3 bne t0,t1,8000003c <handle_exception>
800000e8: 30005073 csrwi mstatus,0
800000ec: 00000297 auipc t0,0x0
800000f0: 01428293 addi t0,t0,20 # 80000100 <test_2>
800000f4: 34129073 csrw mepc,t0
800000f8: f1402573 csrr a0,mhartid
800000fc: 30200073 mret
80000100 <test_2>:
80000100: 01400093 li ra,20
80000104: 00600113 li sp,6
80000108: 0220df33 divu t5,ra,sp
8000010c: 00300e93 li t4,3
80000110: 00200193 li gp,2
80000114: 0ddf1663 bne t5,t4,800001e0 <fail>
80000118 <test_3>:
80000118: fec00093 li ra,-20
8000011c: 00600113 li sp,6
80000120: 0220df33 divu t5,ra,sp
80000124: 2aaabeb7 lui t4,0x2aaab
80000128: aa7e8e93 addi t4,t4,-1369 # 2aaaaaa7 <_start-0x55555559>
8000012c: 00300193 li gp,3
80000130: 0bdf1863 bne t5,t4,800001e0 <fail>
80000134 <test_4>:
80000134: 01400093 li ra,20
80000138: ffa00113 li sp,-6
8000013c: 0220df33 divu t5,ra,sp
80000140: 00000e93 li t4,0
80000144: 00400193 li gp,4
80000148: 09df1c63 bne t5,t4,800001e0 <fail>
8000014c <test_5>:
8000014c: fec00093 li ra,-20
80000150: ffa00113 li sp,-6
80000154: 0220df33 divu t5,ra,sp
80000158: 00000e93 li t4,0
8000015c: 00500193 li gp,5
80000160: 09df1063 bne t5,t4,800001e0 <fail>
80000164 <test_6>:
80000164: 800000b7 lui ra,0x80000
80000168: 00100113 li sp,1
8000016c: 0220df33 divu t5,ra,sp
80000170: 80000eb7 lui t4,0x80000
80000174: 00600193 li gp,6
80000178: 07df1463 bne t5,t4,800001e0 <fail>
8000017c <test_7>:
8000017c: 800000b7 lui ra,0x80000
80000180: fff00113 li sp,-1
80000184: 0220df33 divu t5,ra,sp
80000188: 00000e93 li t4,0
8000018c: 00700193 li gp,7
80000190: 05df1863 bne t5,t4,800001e0 <fail>
80000194 <test_8>:
80000194: 800000b7 lui ra,0x80000
80000198: 00000113 li sp,0
8000019c: 0220df33 divu t5,ra,sp
800001a0: fff00e93 li t4,-1
800001a4: 00800193 li gp,8
800001a8: 03df1c63 bne t5,t4,800001e0 <fail>
800001ac <test_9>:
800001ac: 00100093 li ra,1
800001b0: 00000113 li sp,0
800001b4: 0220df33 divu t5,ra,sp
800001b8: fff00e93 li t4,-1
800001bc: 00900193 li gp,9
800001c0: 03df1063 bne t5,t4,800001e0 <fail>
800001c4 <test_10>:
800001c4: 00000093 li ra,0
800001c8: 00000113 li sp,0
800001cc: 0220df33 divu t5,ra,sp
800001d0: fff00e93 li t4,-1
800001d4: 00a00193 li gp,10
800001d8: 01df1463 bne t5,t4,800001e0 <fail>
800001dc: 00301c63 bne zero,gp,800001f4 <pass>
800001e0 <fail>:
800001e0: 0ff0000f fence
800001e4: 00018063 beqz gp,800001e4 <fail+0x4>
800001e8: 00119193 slli gp,gp,0x1
800001ec: 0011e193 ori gp,gp,1
800001f0: 00000073 ecall
800001f4 <pass>:
800001f4: 0ff0000f fence
800001f8: 00100193 li gp,1
800001fc: 00000073 ecall
80000200: c0001073 unimp

View file

@ -0,0 +1,482 @@
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: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-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: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 02028293 addi t0,t0,32 # 80000084 <reset_vector+0x38>
8000006c: 30529073 csrw mtvec,t0
80000070: 800002b7 lui t0,0x80000
80000074: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdfff>
80000078: 3b029073 csrw pmpaddr0,t0
8000007c: 01f00293 li t0,31
80000080: 3a029073 csrw pmpcfg0,t0
80000084: 00000297 auipc t0,0x0
80000088: 01828293 addi t0,t0,24 # 8000009c <reset_vector+0x50>
8000008c: 30529073 csrw mtvec,t0
80000090: 30205073 csrwi medeleg,0
80000094: 30305073 csrwi mideleg,0
80000098: 30405073 csrwi mie,0
8000009c: 00000193 li gp,0
800000a0: 00000297 auipc t0,0x0
800000a4: f6428293 addi t0,t0,-156 # 80000004 <trap_vector>
800000a8: 30529073 csrw mtvec,t0
800000ac: 00100513 li a0,1
800000b0: 01f51513 slli a0,a0,0x1f
800000b4: 00054863 bltz a0,800000c4 <reset_vector+0x78>
800000b8: 0ff0000f fence
800000bc: 00100193 li gp,1
800000c0: 00000073 ecall
800000c4: 80000297 auipc t0,0x80000
800000c8: f3c28293 addi t0,t0,-196 # 0 <_start-0x80000000>
800000cc: 00028e63 beqz t0,800000e8 <reset_vector+0x9c>
800000d0: 10529073 csrw stvec,t0
800000d4: 0000b2b7 lui t0,0xb
800000d8: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000dc: 30229073 csrw medeleg,t0
800000e0: 30202373 csrr t1,medeleg
800000e4: f4629ce3 bne t0,t1,8000003c <handle_exception>
800000e8: 30005073 csrwi mstatus,0
800000ec: 00000297 auipc t0,0x0
800000f0: 01428293 addi t0,t0,20 # 80000100 <test_32>
800000f4: 34129073 csrw mepc,t0
800000f8: f1402573 csrr a0,mhartid
800000fc: 30200073 mret
80000100 <test_32>:
80000100: 000080b7 lui ra,0x8
80000104: e0008093 addi ra,ra,-512 # 7e00 <_start-0x7fff8200>
80000108: b6db7137 lui sp,0xb6db7
8000010c: db710113 addi sp,sp,-585 # b6db6db7 <_end+0x36db4db7>
80000110: 02208f33 mul t5,ra,sp
80000114: 00001eb7 lui t4,0x1
80000118: 200e8e93 addi t4,t4,512 # 1200 <_start-0x7fffee00>
8000011c: 02000193 li gp,32
80000120: 4bdf1463 bne t5,t4,800005c8 <fail>
80000124 <test_33>:
80000124: 000080b7 lui ra,0x8
80000128: fc008093 addi ra,ra,-64 # 7fc0 <_start-0x7fff8040>
8000012c: b6db7137 lui sp,0xb6db7
80000130: db710113 addi sp,sp,-585 # b6db6db7 <_end+0x36db4db7>
80000134: 02208f33 mul t5,ra,sp
80000138: 00001eb7 lui t4,0x1
8000013c: 240e8e93 addi t4,t4,576 # 1240 <_start-0x7fffedc0>
80000140: 02100193 li gp,33
80000144: 49df1263 bne t5,t4,800005c8 <fail>
80000148 <test_2>:
80000148: 00000093 li ra,0
8000014c: 00000113 li sp,0
80000150: 02208f33 mul t5,ra,sp
80000154: 00000e93 li t4,0
80000158: 00200193 li gp,2
8000015c: 47df1663 bne t5,t4,800005c8 <fail>
80000160 <test_3>:
80000160: 00100093 li ra,1
80000164: 00100113 li sp,1
80000168: 02208f33 mul t5,ra,sp
8000016c: 00100e93 li t4,1
80000170: 00300193 li gp,3
80000174: 45df1a63 bne t5,t4,800005c8 <fail>
80000178 <test_4>:
80000178: 00300093 li ra,3
8000017c: 00700113 li sp,7
80000180: 02208f33 mul t5,ra,sp
80000184: 01500e93 li t4,21
80000188: 00400193 li gp,4
8000018c: 43df1e63 bne t5,t4,800005c8 <fail>
80000190 <test_5>:
80000190: 00000093 li ra,0
80000194: ffff8137 lui sp,0xffff8
80000198: 02208f33 mul t5,ra,sp
8000019c: 00000e93 li t4,0
800001a0: 00500193 li gp,5
800001a4: 43df1263 bne t5,t4,800005c8 <fail>
800001a8 <test_6>:
800001a8: 800000b7 lui ra,0x80000
800001ac: 00000113 li sp,0
800001b0: 02208f33 mul t5,ra,sp
800001b4: 00000e93 li t4,0
800001b8: 00600193 li gp,6
800001bc: 41df1663 bne t5,t4,800005c8 <fail>
800001c0 <test_7>:
800001c0: 800000b7 lui ra,0x80000
800001c4: ffff8137 lui sp,0xffff8
800001c8: 02208f33 mul t5,ra,sp
800001cc: 00000e93 li t4,0
800001d0: 00700193 li gp,7
800001d4: 3fdf1a63 bne t5,t4,800005c8 <fail>
800001d8 <test_30>:
800001d8: aaaab0b7 lui ra,0xaaaab
800001dc: aab08093 addi ra,ra,-1365 # aaaaaaab <_end+0x2aaa8aab>
800001e0: 00030137 lui sp,0x30
800001e4: e7d10113 addi sp,sp,-387 # 2fe7d <_start-0x7ffd0183>
800001e8: 02208f33 mul t5,ra,sp
800001ec: 00010eb7 lui t4,0x10
800001f0: f7fe8e93 addi t4,t4,-129 # ff7f <_start-0x7fff0081>
800001f4: 01e00193 li gp,30
800001f8: 3ddf1863 bne t5,t4,800005c8 <fail>
800001fc <test_31>:
800001fc: 000300b7 lui ra,0x30
80000200: e7d08093 addi ra,ra,-387 # 2fe7d <_start-0x7ffd0183>
80000204: aaaab137 lui sp,0xaaaab
80000208: aab10113 addi sp,sp,-1365 # aaaaaaab <_end+0x2aaa8aab>
8000020c: 02208f33 mul t5,ra,sp
80000210: 00010eb7 lui t4,0x10
80000214: f7fe8e93 addi t4,t4,-129 # ff7f <_start-0x7fff0081>
80000218: 01f00193 li gp,31
8000021c: 3bdf1663 bne t5,t4,800005c8 <fail>
80000220 <test_34>:
80000220: ff0000b7 lui ra,0xff000
80000224: ff000137 lui sp,0xff000
80000228: 02208f33 mul t5,ra,sp
8000022c: 00000e93 li t4,0
80000230: 02200193 li gp,34
80000234: 39df1a63 bne t5,t4,800005c8 <fail>
80000238 <test_35>:
80000238: fff00093 li ra,-1
8000023c: fff00113 li sp,-1
80000240: 02208f33 mul t5,ra,sp
80000244: 00100e93 li t4,1
80000248: 02300193 li gp,35
8000024c: 37df1e63 bne t5,t4,800005c8 <fail>
80000250 <test_36>:
80000250: fff00093 li ra,-1
80000254: 00100113 li sp,1
80000258: 02208f33 mul t5,ra,sp
8000025c: fff00e93 li t4,-1
80000260: 02400193 li gp,36
80000264: 37df1263 bne t5,t4,800005c8 <fail>
80000268 <test_37>:
80000268: 00100093 li ra,1
8000026c: fff00113 li sp,-1
80000270: 02208f33 mul t5,ra,sp
80000274: fff00e93 li t4,-1
80000278: 02500193 li gp,37
8000027c: 35df1663 bne t5,t4,800005c8 <fail>
80000280 <test_8>:
80000280: 00d00093 li ra,13
80000284: 00b00113 li sp,11
80000288: 022080b3 mul ra,ra,sp
8000028c: 08f00e93 li t4,143
80000290: 00800193 li gp,8
80000294: 33d09a63 bne ra,t4,800005c8 <fail>
80000298 <test_9>:
80000298: 00e00093 li ra,14
8000029c: 00b00113 li sp,11
800002a0: 02208133 mul sp,ra,sp
800002a4: 09a00e93 li t4,154
800002a8: 00900193 li gp,9
800002ac: 31d11e63 bne sp,t4,800005c8 <fail>
800002b0 <test_10>:
800002b0: 00d00093 li ra,13
800002b4: 021080b3 mul ra,ra,ra
800002b8: 0a900e93 li t4,169
800002bc: 00a00193 li gp,10
800002c0: 31d09463 bne ra,t4,800005c8 <fail>
800002c4 <test_11>:
800002c4: 00000213 li tp,0
800002c8: 00d00093 li ra,13
800002cc: 00b00113 li sp,11
800002d0: 02208f33 mul t5,ra,sp
800002d4: 000f0313 mv t1,t5
800002d8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002dc: 00200293 li t0,2
800002e0: fe5214e3 bne tp,t0,800002c8 <test_11+0x4>
800002e4: 08f00e93 li t4,143
800002e8: 00b00193 li gp,11
800002ec: 2dd31e63 bne t1,t4,800005c8 <fail>
800002f0 <test_12>:
800002f0: 00000213 li tp,0
800002f4: 00e00093 li ra,14
800002f8: 00b00113 li sp,11
800002fc: 02208f33 mul t5,ra,sp
80000300: 00000013 nop
80000304: 000f0313 mv t1,t5
80000308: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000030c: 00200293 li t0,2
80000310: fe5212e3 bne tp,t0,800002f4 <test_12+0x4>
80000314: 09a00e93 li t4,154
80000318: 00c00193 li gp,12
8000031c: 2bd31663 bne t1,t4,800005c8 <fail>
80000320 <test_13>:
80000320: 00000213 li tp,0
80000324: 00f00093 li ra,15
80000328: 00b00113 li sp,11
8000032c: 02208f33 mul t5,ra,sp
80000330: 00000013 nop
80000334: 00000013 nop
80000338: 000f0313 mv t1,t5
8000033c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000340: 00200293 li t0,2
80000344: fe5210e3 bne tp,t0,80000324 <test_13+0x4>
80000348: 0a500e93 li t4,165
8000034c: 00d00193 li gp,13
80000350: 27d31c63 bne t1,t4,800005c8 <fail>
80000354 <test_14>:
80000354: 00000213 li tp,0
80000358: 00d00093 li ra,13
8000035c: 00b00113 li sp,11
80000360: 02208f33 mul t5,ra,sp
80000364: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000368: 00200293 li t0,2
8000036c: fe5216e3 bne tp,t0,80000358 <test_14+0x4>
80000370: 08f00e93 li t4,143
80000374: 00e00193 li gp,14
80000378: 25df1863 bne t5,t4,800005c8 <fail>
8000037c <test_15>:
8000037c: 00000213 li tp,0
80000380: 00e00093 li ra,14
80000384: 00b00113 li sp,11
80000388: 00000013 nop
8000038c: 02208f33 mul t5,ra,sp
80000390: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000394: 00200293 li t0,2
80000398: fe5214e3 bne tp,t0,80000380 <test_15+0x4>
8000039c: 09a00e93 li t4,154
800003a0: 00f00193 li gp,15
800003a4: 23df1263 bne t5,t4,800005c8 <fail>
800003a8 <test_16>:
800003a8: 00000213 li tp,0
800003ac: 00f00093 li ra,15
800003b0: 00b00113 li sp,11
800003b4: 00000013 nop
800003b8: 00000013 nop
800003bc: 02208f33 mul t5,ra,sp
800003c0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800003c4: 00200293 li t0,2
800003c8: fe5212e3 bne tp,t0,800003ac <test_16+0x4>
800003cc: 0a500e93 li t4,165
800003d0: 01000193 li gp,16
800003d4: 1fdf1a63 bne t5,t4,800005c8 <fail>
800003d8 <test_17>:
800003d8: 00000213 li tp,0
800003dc: 00d00093 li ra,13
800003e0: 00000013 nop
800003e4: 00b00113 li sp,11
800003e8: 02208f33 mul t5,ra,sp
800003ec: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800003f0: 00200293 li t0,2
800003f4: fe5214e3 bne tp,t0,800003dc <test_17+0x4>
800003f8: 08f00e93 li t4,143
800003fc: 01100193 li gp,17
80000400: 1ddf1463 bne t5,t4,800005c8 <fail>
80000404 <test_18>:
80000404: 00000213 li tp,0
80000408: 00e00093 li ra,14
8000040c: 00000013 nop
80000410: 00b00113 li sp,11
80000414: 00000013 nop
80000418: 02208f33 mul t5,ra,sp
8000041c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000420: 00200293 li t0,2
80000424: fe5212e3 bne tp,t0,80000408 <test_18+0x4>
80000428: 09a00e93 li t4,154
8000042c: 01200193 li gp,18
80000430: 19df1c63 bne t5,t4,800005c8 <fail>
80000434 <test_19>:
80000434: 00000213 li tp,0
80000438: 00f00093 li ra,15
8000043c: 00000013 nop
80000440: 00000013 nop
80000444: 00b00113 li sp,11
80000448: 02208f33 mul t5,ra,sp
8000044c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000450: 00200293 li t0,2
80000454: fe5212e3 bne tp,t0,80000438 <test_19+0x4>
80000458: 0a500e93 li t4,165
8000045c: 01300193 li gp,19
80000460: 17df1463 bne t5,t4,800005c8 <fail>
80000464 <test_20>:
80000464: 00000213 li tp,0
80000468: 00b00113 li sp,11
8000046c: 00d00093 li ra,13
80000470: 02208f33 mul t5,ra,sp
80000474: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000478: 00200293 li t0,2
8000047c: fe5216e3 bne tp,t0,80000468 <test_20+0x4>
80000480: 08f00e93 li t4,143
80000484: 01400193 li gp,20
80000488: 15df1063 bne t5,t4,800005c8 <fail>
8000048c <test_21>:
8000048c: 00000213 li tp,0
80000490: 00b00113 li sp,11
80000494: 00e00093 li ra,14
80000498: 00000013 nop
8000049c: 02208f33 mul t5,ra,sp
800004a0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800004a4: 00200293 li t0,2
800004a8: fe5214e3 bne tp,t0,80000490 <test_21+0x4>
800004ac: 09a00e93 li t4,154
800004b0: 01500193 li gp,21
800004b4: 11df1a63 bne t5,t4,800005c8 <fail>
800004b8 <test_22>:
800004b8: 00000213 li tp,0
800004bc: 00b00113 li sp,11
800004c0: 00f00093 li ra,15
800004c4: 00000013 nop
800004c8: 00000013 nop
800004cc: 02208f33 mul t5,ra,sp
800004d0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800004d4: 00200293 li t0,2
800004d8: fe5212e3 bne tp,t0,800004bc <test_22+0x4>
800004dc: 0a500e93 li t4,165
800004e0: 01600193 li gp,22
800004e4: 0fdf1263 bne t5,t4,800005c8 <fail>
800004e8 <test_23>:
800004e8: 00000213 li tp,0
800004ec: 00b00113 li sp,11
800004f0: 00000013 nop
800004f4: 00d00093 li ra,13
800004f8: 02208f33 mul t5,ra,sp
800004fc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000500: 00200293 li t0,2
80000504: fe5214e3 bne tp,t0,800004ec <test_23+0x4>
80000508: 08f00e93 li t4,143
8000050c: 01700193 li gp,23
80000510: 0bdf1c63 bne t5,t4,800005c8 <fail>
80000514 <test_24>:
80000514: 00000213 li tp,0
80000518: 00b00113 li sp,11
8000051c: 00000013 nop
80000520: 00e00093 li ra,14
80000524: 00000013 nop
80000528: 02208f33 mul t5,ra,sp
8000052c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000530: 00200293 li t0,2
80000534: fe5212e3 bne tp,t0,80000518 <test_24+0x4>
80000538: 09a00e93 li t4,154
8000053c: 01800193 li gp,24
80000540: 09df1463 bne t5,t4,800005c8 <fail>
80000544 <test_25>:
80000544: 00000213 li tp,0
80000548: 00b00113 li sp,11
8000054c: 00000013 nop
80000550: 00000013 nop
80000554: 00f00093 li ra,15
80000558: 02208f33 mul t5,ra,sp
8000055c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000560: 00200293 li t0,2
80000564: fe5212e3 bne tp,t0,80000548 <test_25+0x4>
80000568: 0a500e93 li t4,165
8000056c: 01900193 li gp,25
80000570: 05df1c63 bne t5,t4,800005c8 <fail>
80000574 <test_26>:
80000574: 01f00093 li ra,31
80000578: 02100133 mul sp,zero,ra
8000057c: 00000e93 li t4,0
80000580: 01a00193 li gp,26
80000584: 05d11263 bne sp,t4,800005c8 <fail>
80000588 <test_27>:
80000588: 02000093 li ra,32
8000058c: 02008133 mul sp,ra,zero
80000590: 00000e93 li t4,0
80000594: 01b00193 li gp,27
80000598: 03d11863 bne sp,t4,800005c8 <fail>
8000059c <test_28>:
8000059c: 020000b3 mul ra,zero,zero
800005a0: 00000e93 li t4,0
800005a4: 01c00193 li gp,28
800005a8: 03d09063 bne ra,t4,800005c8 <fail>
800005ac <test_29>:
800005ac: 02100093 li ra,33
800005b0: 02200113 li sp,34
800005b4: 02208033 mul zero,ra,sp
800005b8: 00000e93 li t4,0
800005bc: 01d00193 li gp,29
800005c0: 01d01463 bne zero,t4,800005c8 <fail>
800005c4: 00301c63 bne zero,gp,800005dc <pass>
800005c8 <fail>:
800005c8: 0ff0000f fence
800005cc: 00018063 beqz gp,800005cc <fail+0x4>
800005d0: 00119193 slli gp,gp,0x1
800005d4: 0011e193 ori gp,gp,1
800005d8: 00000073 ecall
800005dc <pass>:
800005dc: 0ff0000f fence
800005e0: 00100193 li gp,1
800005e4: 00000073 ecall
800005e8: c0001073 unimp
800005ec: 0000 unimp
800005ee: 0000 unimp
800005f0: 0000 unimp
800005f2: 0000 unimp
800005f4: 0000 unimp
800005f6: 0000 unimp
800005f8: 0000 unimp
800005fa: 0000 unimp
800005fc: 0000 unimp
800005fe: 0000 unimp
80000600: 0000 unimp
80000602: 0000 unimp

View file

@ -0,0 +1,478 @@
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: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-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: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 02028293 addi t0,t0,32 # 80000084 <reset_vector+0x38>
8000006c: 30529073 csrw mtvec,t0
80000070: 800002b7 lui t0,0x80000
80000074: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdfff>
80000078: 3b029073 csrw pmpaddr0,t0
8000007c: 01f00293 li t0,31
80000080: 3a029073 csrw pmpcfg0,t0
80000084: 00000297 auipc t0,0x0
80000088: 01828293 addi t0,t0,24 # 8000009c <reset_vector+0x50>
8000008c: 30529073 csrw mtvec,t0
80000090: 30205073 csrwi medeleg,0
80000094: 30305073 csrwi mideleg,0
80000098: 30405073 csrwi mie,0
8000009c: 00000193 li gp,0
800000a0: 00000297 auipc t0,0x0
800000a4: f6428293 addi t0,t0,-156 # 80000004 <trap_vector>
800000a8: 30529073 csrw mtvec,t0
800000ac: 00100513 li a0,1
800000b0: 01f51513 slli a0,a0,0x1f
800000b4: 00054863 bltz a0,800000c4 <reset_vector+0x78>
800000b8: 0ff0000f fence
800000bc: 00100193 li gp,1
800000c0: 00000073 ecall
800000c4: 80000297 auipc t0,0x80000
800000c8: f3c28293 addi t0,t0,-196 # 0 <_start-0x80000000>
800000cc: 00028e63 beqz t0,800000e8 <reset_vector+0x9c>
800000d0: 10529073 csrw stvec,t0
800000d4: 0000b2b7 lui t0,0xb
800000d8: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000dc: 30229073 csrw medeleg,t0
800000e0: 30202373 csrr t1,medeleg
800000e4: f4629ce3 bne t0,t1,8000003c <handle_exception>
800000e8: 30005073 csrwi mstatus,0
800000ec: 00000297 auipc t0,0x0
800000f0: 01428293 addi t0,t0,20 # 80000100 <test_2>
800000f4: 34129073 csrw mepc,t0
800000f8: f1402573 csrr a0,mhartid
800000fc: 30200073 mret
80000100 <test_2>:
80000100: 00000093 li ra,0
80000104: 00000113 li sp,0
80000108: 02209f33 mulh t5,ra,sp
8000010c: 00000e93 li t4,0
80000110: 00200193 li gp,2
80000114: 4bdf1a63 bne t5,t4,800005c8 <fail>
80000118 <test_3>:
80000118: 00100093 li ra,1
8000011c: 00100113 li sp,1
80000120: 02209f33 mulh t5,ra,sp
80000124: 00000e93 li t4,0
80000128: 00300193 li gp,3
8000012c: 49df1e63 bne t5,t4,800005c8 <fail>
80000130 <test_4>:
80000130: 00300093 li ra,3
80000134: 00700113 li sp,7
80000138: 02209f33 mulh t5,ra,sp
8000013c: 00000e93 li t4,0
80000140: 00400193 li gp,4
80000144: 49df1263 bne t5,t4,800005c8 <fail>
80000148 <test_5>:
80000148: 00000093 li ra,0
8000014c: ffff8137 lui sp,0xffff8
80000150: 02209f33 mulh t5,ra,sp
80000154: 00000e93 li t4,0
80000158: 00500193 li gp,5
8000015c: 47df1663 bne t5,t4,800005c8 <fail>
80000160 <test_6>:
80000160: 800000b7 lui ra,0x80000
80000164: 00000113 li sp,0
80000168: 02209f33 mulh t5,ra,sp
8000016c: 00000e93 li t4,0
80000170: 00600193 li gp,6
80000174: 45df1a63 bne t5,t4,800005c8 <fail>
80000178 <test_7>:
80000178: 800000b7 lui ra,0x80000
8000017c: 00000113 li sp,0
80000180: 02209f33 mulh t5,ra,sp
80000184: 00000e93 li t4,0
80000188: 00700193 li gp,7
8000018c: 43df1e63 bne t5,t4,800005c8 <fail>
80000190 <test_30>:
80000190: aaaab0b7 lui ra,0xaaaab
80000194: aab08093 addi ra,ra,-1365 # aaaaaaab <_end+0x2aaa8aab>
80000198: 00030137 lui sp,0x30
8000019c: e7d10113 addi sp,sp,-387 # 2fe7d <_start-0x7ffd0183>
800001a0: 02209f33 mulh t5,ra,sp
800001a4: ffff0eb7 lui t4,0xffff0
800001a8: 081e8e93 addi t4,t4,129 # ffff0081 <_end+0x7ffee081>
800001ac: 01e00193 li gp,30
800001b0: 41df1c63 bne t5,t4,800005c8 <fail>
800001b4 <test_31>:
800001b4: 000300b7 lui ra,0x30
800001b8: e7d08093 addi ra,ra,-387 # 2fe7d <_start-0x7ffd0183>
800001bc: aaaab137 lui sp,0xaaaab
800001c0: aab10113 addi sp,sp,-1365 # aaaaaaab <_end+0x2aaa8aab>
800001c4: 02209f33 mulh t5,ra,sp
800001c8: ffff0eb7 lui t4,0xffff0
800001cc: 081e8e93 addi t4,t4,129 # ffff0081 <_end+0x7ffee081>
800001d0: 01f00193 li gp,31
800001d4: 3fdf1a63 bne t5,t4,800005c8 <fail>
800001d8 <test_32>:
800001d8: ff0000b7 lui ra,0xff000
800001dc: ff000137 lui sp,0xff000
800001e0: 02209f33 mulh t5,ra,sp
800001e4: 00010eb7 lui t4,0x10
800001e8: 02000193 li gp,32
800001ec: 3ddf1e63 bne t5,t4,800005c8 <fail>
800001f0 <test_33>:
800001f0: fff00093 li ra,-1
800001f4: fff00113 li sp,-1
800001f8: 02209f33 mulh t5,ra,sp
800001fc: 00000e93 li t4,0
80000200: 02100193 li gp,33
80000204: 3ddf1263 bne t5,t4,800005c8 <fail>
80000208 <test_34>:
80000208: fff00093 li ra,-1
8000020c: 00100113 li sp,1
80000210: 02209f33 mulh t5,ra,sp
80000214: fff00e93 li t4,-1
80000218: 02200193 li gp,34
8000021c: 3bdf1663 bne t5,t4,800005c8 <fail>
80000220 <test_35>:
80000220: 00100093 li ra,1
80000224: fff00113 li sp,-1
80000228: 02209f33 mulh t5,ra,sp
8000022c: fff00e93 li t4,-1
80000230: 02300193 li gp,35
80000234: 39df1a63 bne t5,t4,800005c8 <fail>
80000238 <test_8>:
80000238: 00d000b7 lui ra,0xd00
8000023c: 00b00137 lui sp,0xb00
80000240: 022090b3 mulh ra,ra,sp
80000244: 00009eb7 lui t4,0x9
80000248: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
8000024c: 00800193 li gp,8
80000250: 37d09c63 bne ra,t4,800005c8 <fail>
80000254 <test_9>:
80000254: 00e000b7 lui ra,0xe00
80000258: 00b00137 lui sp,0xb00
8000025c: 02209133 mulh sp,ra,sp
80000260: 0000aeb7 lui t4,0xa
80000264: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
80000268: 00900193 li gp,9
8000026c: 35d11e63 bne sp,t4,800005c8 <fail>
80000270 <test_10>:
80000270: 00d000b7 lui ra,0xd00
80000274: 021090b3 mulh ra,ra,ra
80000278: 0000beb7 lui t4,0xb
8000027c: 900e8e93 addi t4,t4,-1792 # a900 <_start-0x7fff5700>
80000280: 00a00193 li gp,10
80000284: 35d09263 bne ra,t4,800005c8 <fail>
80000288 <test_11>:
80000288: 00000213 li tp,0
8000028c: 00d000b7 lui ra,0xd00
80000290: 00b00137 lui sp,0xb00
80000294: 02209f33 mulh t5,ra,sp
80000298: 000f0313 mv t1,t5
8000029c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002a0: 00200293 li t0,2
800002a4: fe5214e3 bne tp,t0,8000028c <test_11+0x4>
800002a8: 00009eb7 lui t4,0x9
800002ac: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
800002b0: 00b00193 li gp,11
800002b4: 31d31a63 bne t1,t4,800005c8 <fail>
800002b8 <test_12>:
800002b8: 00000213 li tp,0
800002bc: 00e000b7 lui ra,0xe00
800002c0: 00b00137 lui sp,0xb00
800002c4: 02209f33 mulh t5,ra,sp
800002c8: 00000013 nop
800002cc: 000f0313 mv t1,t5
800002d0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002d4: 00200293 li t0,2
800002d8: fe5212e3 bne tp,t0,800002bc <test_12+0x4>
800002dc: 0000aeb7 lui t4,0xa
800002e0: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
800002e4: 00c00193 li gp,12
800002e8: 2fd31063 bne t1,t4,800005c8 <fail>
800002ec <test_13>:
800002ec: 00000213 li tp,0
800002f0: 00f000b7 lui ra,0xf00
800002f4: 00b00137 lui sp,0xb00
800002f8: 02209f33 mulh t5,ra,sp
800002fc: 00000013 nop
80000300: 00000013 nop
80000304: 000f0313 mv t1,t5
80000308: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000030c: 00200293 li t0,2
80000310: fe5210e3 bne tp,t0,800002f0 <test_13+0x4>
80000314: 0000aeb7 lui t4,0xa
80000318: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
8000031c: 00d00193 li gp,13
80000320: 2bd31463 bne t1,t4,800005c8 <fail>
80000324 <test_14>:
80000324: 00000213 li tp,0
80000328: 00d000b7 lui ra,0xd00
8000032c: 00b00137 lui sp,0xb00
80000330: 02209f33 mulh t5,ra,sp
80000334: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000338: 00200293 li t0,2
8000033c: fe5216e3 bne tp,t0,80000328 <test_14+0x4>
80000340: 00009eb7 lui t4,0x9
80000344: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
80000348: 00e00193 li gp,14
8000034c: 27df1e63 bne t5,t4,800005c8 <fail>
80000350 <test_15>:
80000350: 00000213 li tp,0
80000354: 00e000b7 lui ra,0xe00
80000358: 00b00137 lui sp,0xb00
8000035c: 00000013 nop
80000360: 02209f33 mulh t5,ra,sp
80000364: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000368: 00200293 li t0,2
8000036c: fe5214e3 bne tp,t0,80000354 <test_15+0x4>
80000370: 0000aeb7 lui t4,0xa
80000374: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
80000378: 00f00193 li gp,15
8000037c: 25df1663 bne t5,t4,800005c8 <fail>
80000380 <test_16>:
80000380: 00000213 li tp,0
80000384: 00f000b7 lui ra,0xf00
80000388: 00b00137 lui sp,0xb00
8000038c: 00000013 nop
80000390: 00000013 nop
80000394: 02209f33 mulh t5,ra,sp
80000398: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000039c: 00200293 li t0,2
800003a0: fe5212e3 bne tp,t0,80000384 <test_16+0x4>
800003a4: 0000aeb7 lui t4,0xa
800003a8: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
800003ac: 01000193 li gp,16
800003b0: 21df1c63 bne t5,t4,800005c8 <fail>
800003b4 <test_17>:
800003b4: 00000213 li tp,0
800003b8: 00d000b7 lui ra,0xd00
800003bc: 00000013 nop
800003c0: 00b00137 lui sp,0xb00
800003c4: 02209f33 mulh t5,ra,sp
800003c8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800003cc: 00200293 li t0,2
800003d0: fe5214e3 bne tp,t0,800003b8 <test_17+0x4>
800003d4: 00009eb7 lui t4,0x9
800003d8: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
800003dc: 01100193 li gp,17
800003e0: 1fdf1463 bne t5,t4,800005c8 <fail>
800003e4 <test_18>:
800003e4: 00000213 li tp,0
800003e8: 00e000b7 lui ra,0xe00
800003ec: 00000013 nop
800003f0: 00b00137 lui sp,0xb00
800003f4: 00000013 nop
800003f8: 02209f33 mulh t5,ra,sp
800003fc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000400: 00200293 li t0,2
80000404: fe5212e3 bne tp,t0,800003e8 <test_18+0x4>
80000408: 0000aeb7 lui t4,0xa
8000040c: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
80000410: 01200193 li gp,18
80000414: 1bdf1a63 bne t5,t4,800005c8 <fail>
80000418 <test_19>:
80000418: 00000213 li tp,0
8000041c: 00f000b7 lui ra,0xf00
80000420: 00000013 nop
80000424: 00000013 nop
80000428: 00b00137 lui sp,0xb00
8000042c: 02209f33 mulh t5,ra,sp
80000430: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000434: 00200293 li t0,2
80000438: fe5212e3 bne tp,t0,8000041c <test_19+0x4>
8000043c: 0000aeb7 lui t4,0xa
80000440: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
80000444: 01300193 li gp,19
80000448: 19df1063 bne t5,t4,800005c8 <fail>
8000044c <test_20>:
8000044c: 00000213 li tp,0
80000450: 00b00137 lui sp,0xb00
80000454: 00d000b7 lui ra,0xd00
80000458: 02209f33 mulh t5,ra,sp
8000045c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000460: 00200293 li t0,2
80000464: fe5216e3 bne tp,t0,80000450 <test_20+0x4>
80000468: 00009eb7 lui t4,0x9
8000046c: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
80000470: 01400193 li gp,20
80000474: 15df1a63 bne t5,t4,800005c8 <fail>
80000478 <test_21>:
80000478: 00000213 li tp,0
8000047c: 00b00137 lui sp,0xb00
80000480: 00e000b7 lui ra,0xe00
80000484: 00000013 nop
80000488: 02209f33 mulh t5,ra,sp
8000048c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000490: 00200293 li t0,2
80000494: fe5214e3 bne tp,t0,8000047c <test_21+0x4>
80000498: 0000aeb7 lui t4,0xa
8000049c: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
800004a0: 01500193 li gp,21
800004a4: 13df1263 bne t5,t4,800005c8 <fail>
800004a8 <test_22>:
800004a8: 00000213 li tp,0
800004ac: 00b00137 lui sp,0xb00
800004b0: 00f000b7 lui ra,0xf00
800004b4: 00000013 nop
800004b8: 00000013 nop
800004bc: 02209f33 mulh t5,ra,sp
800004c0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800004c4: 00200293 li t0,2
800004c8: fe5212e3 bne tp,t0,800004ac <test_22+0x4>
800004cc: 0000aeb7 lui t4,0xa
800004d0: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
800004d4: 01600193 li gp,22
800004d8: 0fdf1863 bne t5,t4,800005c8 <fail>
800004dc <test_23>:
800004dc: 00000213 li tp,0
800004e0: 00b00137 lui sp,0xb00
800004e4: 00000013 nop
800004e8: 00d000b7 lui ra,0xd00
800004ec: 02209f33 mulh t5,ra,sp
800004f0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800004f4: 00200293 li t0,2
800004f8: fe5214e3 bne tp,t0,800004e0 <test_23+0x4>
800004fc: 00009eb7 lui t4,0x9
80000500: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
80000504: 01700193 li gp,23
80000508: 0ddf1063 bne t5,t4,800005c8 <fail>
8000050c <test_24>:
8000050c: 00000213 li tp,0
80000510: 00b00137 lui sp,0xb00
80000514: 00000013 nop
80000518: 00e000b7 lui ra,0xe00
8000051c: 00000013 nop
80000520: 02209f33 mulh t5,ra,sp
80000524: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000528: 00200293 li t0,2
8000052c: fe5212e3 bne tp,t0,80000510 <test_24+0x4>
80000530: 0000aeb7 lui t4,0xa
80000534: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
80000538: 01800193 li gp,24
8000053c: 09df1663 bne t5,t4,800005c8 <fail>
80000540 <test_25>:
80000540: 00000213 li tp,0
80000544: 00b00137 lui sp,0xb00
80000548: 00000013 nop
8000054c: 00000013 nop
80000550: 00f000b7 lui ra,0xf00
80000554: 02209f33 mulh t5,ra,sp
80000558: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000055c: 00200293 li t0,2
80000560: fe5212e3 bne tp,t0,80000544 <test_25+0x4>
80000564: 0000aeb7 lui t4,0xa
80000568: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
8000056c: 01900193 li gp,25
80000570: 05df1c63 bne t5,t4,800005c8 <fail>
80000574 <test_26>:
80000574: 7c0000b7 lui ra,0x7c000
80000578: 02101133 mulh sp,zero,ra
8000057c: 00000e93 li t4,0
80000580: 01a00193 li gp,26
80000584: 05d11263 bne sp,t4,800005c8 <fail>
80000588 <test_27>:
80000588: 800000b7 lui ra,0x80000
8000058c: 02009133 mulh sp,ra,zero
80000590: 00000e93 li t4,0
80000594: 01b00193 li gp,27
80000598: 03d11863 bne sp,t4,800005c8 <fail>
8000059c <test_28>:
8000059c: 020010b3 mulh ra,zero,zero
800005a0: 00000e93 li t4,0
800005a4: 01c00193 li gp,28
800005a8: 03d09063 bne ra,t4,800005c8 <fail>
800005ac <test_29>:
800005ac: 021000b7 lui ra,0x2100
800005b0: 02200137 lui sp,0x2200
800005b4: 02209033 mulh zero,ra,sp
800005b8: 00000e93 li t4,0
800005bc: 01d00193 li gp,29
800005c0: 01d01463 bne zero,t4,800005c8 <fail>
800005c4: 00301c63 bne zero,gp,800005dc <pass>
800005c8 <fail>:
800005c8: 0ff0000f fence
800005cc: 00018063 beqz gp,800005cc <fail+0x4>
800005d0: 00119193 slli gp,gp,0x1
800005d4: 0011e193 ori gp,gp,1
800005d8: 00000073 ecall
800005dc <pass>:
800005dc: 0ff0000f fence
800005e0: 00100193 li gp,1
800005e4: 00000073 ecall
800005e8: c0001073 unimp
800005ec: 0000 unimp
800005ee: 0000 unimp
800005f0: 0000 unimp
800005f2: 0000 unimp
800005f4: 0000 unimp
800005f6: 0000 unimp
800005f8: 0000 unimp
800005fa: 0000 unimp
800005fc: 0000 unimp
800005fe: 0000 unimp
80000600: 0000 unimp
80000602: 0000 unimp

View file

@ -0,0 +1,478 @@
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: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-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: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 02028293 addi t0,t0,32 # 80000084 <reset_vector+0x38>
8000006c: 30529073 csrw mtvec,t0
80000070: 800002b7 lui t0,0x80000
80000074: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdfff>
80000078: 3b029073 csrw pmpaddr0,t0
8000007c: 01f00293 li t0,31
80000080: 3a029073 csrw pmpcfg0,t0
80000084: 00000297 auipc t0,0x0
80000088: 01828293 addi t0,t0,24 # 8000009c <reset_vector+0x50>
8000008c: 30529073 csrw mtvec,t0
80000090: 30205073 csrwi medeleg,0
80000094: 30305073 csrwi mideleg,0
80000098: 30405073 csrwi mie,0
8000009c: 00000193 li gp,0
800000a0: 00000297 auipc t0,0x0
800000a4: f6428293 addi t0,t0,-156 # 80000004 <trap_vector>
800000a8: 30529073 csrw mtvec,t0
800000ac: 00100513 li a0,1
800000b0: 01f51513 slli a0,a0,0x1f
800000b4: 00054863 bltz a0,800000c4 <reset_vector+0x78>
800000b8: 0ff0000f fence
800000bc: 00100193 li gp,1
800000c0: 00000073 ecall
800000c4: 80000297 auipc t0,0x80000
800000c8: f3c28293 addi t0,t0,-196 # 0 <_start-0x80000000>
800000cc: 00028e63 beqz t0,800000e8 <reset_vector+0x9c>
800000d0: 10529073 csrw stvec,t0
800000d4: 0000b2b7 lui t0,0xb
800000d8: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000dc: 30229073 csrw medeleg,t0
800000e0: 30202373 csrr t1,medeleg
800000e4: f4629ce3 bne t0,t1,8000003c <handle_exception>
800000e8: 30005073 csrwi mstatus,0
800000ec: 00000297 auipc t0,0x0
800000f0: 01428293 addi t0,t0,20 # 80000100 <test_2>
800000f4: 34129073 csrw mepc,t0
800000f8: f1402573 csrr a0,mhartid
800000fc: 30200073 mret
80000100 <test_2>:
80000100: 00000093 li ra,0
80000104: 00000113 li sp,0
80000108: 0220af33 mulhsu t5,ra,sp
8000010c: 00000e93 li t4,0
80000110: 00200193 li gp,2
80000114: 4bdf1a63 bne t5,t4,800005c8 <fail>
80000118 <test_3>:
80000118: 00100093 li ra,1
8000011c: 00100113 li sp,1
80000120: 0220af33 mulhsu t5,ra,sp
80000124: 00000e93 li t4,0
80000128: 00300193 li gp,3
8000012c: 49df1e63 bne t5,t4,800005c8 <fail>
80000130 <test_4>:
80000130: 00300093 li ra,3
80000134: 00700113 li sp,7
80000138: 0220af33 mulhsu t5,ra,sp
8000013c: 00000e93 li t4,0
80000140: 00400193 li gp,4
80000144: 49df1263 bne t5,t4,800005c8 <fail>
80000148 <test_5>:
80000148: 00000093 li ra,0
8000014c: ffff8137 lui sp,0xffff8
80000150: 0220af33 mulhsu t5,ra,sp
80000154: 00000e93 li t4,0
80000158: 00500193 li gp,5
8000015c: 47df1663 bne t5,t4,800005c8 <fail>
80000160 <test_6>:
80000160: 800000b7 lui ra,0x80000
80000164: 00000113 li sp,0
80000168: 0220af33 mulhsu t5,ra,sp
8000016c: 00000e93 li t4,0
80000170: 00600193 li gp,6
80000174: 45df1a63 bne t5,t4,800005c8 <fail>
80000178 <test_7>:
80000178: 800000b7 lui ra,0x80000
8000017c: ffff8137 lui sp,0xffff8
80000180: 0220af33 mulhsu t5,ra,sp
80000184: 80004eb7 lui t4,0x80004
80000188: 00700193 li gp,7
8000018c: 43df1e63 bne t5,t4,800005c8 <fail>
80000190 <test_30>:
80000190: aaaab0b7 lui ra,0xaaaab
80000194: aab08093 addi ra,ra,-1365 # aaaaaaab <_end+0x2aaa8aab>
80000198: 00030137 lui sp,0x30
8000019c: e7d10113 addi sp,sp,-387 # 2fe7d <_start-0x7ffd0183>
800001a0: 0220af33 mulhsu t5,ra,sp
800001a4: ffff0eb7 lui t4,0xffff0
800001a8: 081e8e93 addi t4,t4,129 # ffff0081 <_end+0x7ffee081>
800001ac: 01e00193 li gp,30
800001b0: 41df1c63 bne t5,t4,800005c8 <fail>
800001b4 <test_31>:
800001b4: 000300b7 lui ra,0x30
800001b8: e7d08093 addi ra,ra,-387 # 2fe7d <_start-0x7ffd0183>
800001bc: aaaab137 lui sp,0xaaaab
800001c0: aab10113 addi sp,sp,-1365 # aaaaaaab <_end+0x2aaa8aab>
800001c4: 0220af33 mulhsu t5,ra,sp
800001c8: 00020eb7 lui t4,0x20
800001cc: efee8e93 addi t4,t4,-258 # 1fefe <_start-0x7ffe0102>
800001d0: 01f00193 li gp,31
800001d4: 3fdf1a63 bne t5,t4,800005c8 <fail>
800001d8 <test_32>:
800001d8: ff0000b7 lui ra,0xff000
800001dc: ff000137 lui sp,0xff000
800001e0: 0220af33 mulhsu t5,ra,sp
800001e4: ff010eb7 lui t4,0xff010
800001e8: 02000193 li gp,32
800001ec: 3ddf1e63 bne t5,t4,800005c8 <fail>
800001f0 <test_33>:
800001f0: fff00093 li ra,-1
800001f4: fff00113 li sp,-1
800001f8: 0220af33 mulhsu t5,ra,sp
800001fc: fff00e93 li t4,-1
80000200: 02100193 li gp,33
80000204: 3ddf1263 bne t5,t4,800005c8 <fail>
80000208 <test_34>:
80000208: fff00093 li ra,-1
8000020c: 00100113 li sp,1
80000210: 0220af33 mulhsu t5,ra,sp
80000214: fff00e93 li t4,-1
80000218: 02200193 li gp,34
8000021c: 3bdf1663 bne t5,t4,800005c8 <fail>
80000220 <test_35>:
80000220: 00100093 li ra,1
80000224: fff00113 li sp,-1
80000228: 0220af33 mulhsu t5,ra,sp
8000022c: 00000e93 li t4,0
80000230: 02300193 li gp,35
80000234: 39df1a63 bne t5,t4,800005c8 <fail>
80000238 <test_8>:
80000238: 00d000b7 lui ra,0xd00
8000023c: 00b00137 lui sp,0xb00
80000240: 0220a0b3 mulhsu ra,ra,sp
80000244: 00009eb7 lui t4,0x9
80000248: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
8000024c: 00800193 li gp,8
80000250: 37d09c63 bne ra,t4,800005c8 <fail>
80000254 <test_9>:
80000254: 00e000b7 lui ra,0xe00
80000258: 00b00137 lui sp,0xb00
8000025c: 0220a133 mulhsu sp,ra,sp
80000260: 0000aeb7 lui t4,0xa
80000264: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
80000268: 00900193 li gp,9
8000026c: 35d11e63 bne sp,t4,800005c8 <fail>
80000270 <test_10>:
80000270: 00d000b7 lui ra,0xd00
80000274: 0210a0b3 mulhsu ra,ra,ra
80000278: 0000beb7 lui t4,0xb
8000027c: 900e8e93 addi t4,t4,-1792 # a900 <_start-0x7fff5700>
80000280: 00a00193 li gp,10
80000284: 35d09263 bne ra,t4,800005c8 <fail>
80000288 <test_11>:
80000288: 00000213 li tp,0
8000028c: 00d000b7 lui ra,0xd00
80000290: 00b00137 lui sp,0xb00
80000294: 0220af33 mulhsu t5,ra,sp
80000298: 000f0313 mv t1,t5
8000029c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002a0: 00200293 li t0,2
800002a4: fe5214e3 bne tp,t0,8000028c <test_11+0x4>
800002a8: 00009eb7 lui t4,0x9
800002ac: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
800002b0: 00b00193 li gp,11
800002b4: 31d31a63 bne t1,t4,800005c8 <fail>
800002b8 <test_12>:
800002b8: 00000213 li tp,0
800002bc: 00e000b7 lui ra,0xe00
800002c0: 00b00137 lui sp,0xb00
800002c4: 0220af33 mulhsu t5,ra,sp
800002c8: 00000013 nop
800002cc: 000f0313 mv t1,t5
800002d0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002d4: 00200293 li t0,2
800002d8: fe5212e3 bne tp,t0,800002bc <test_12+0x4>
800002dc: 0000aeb7 lui t4,0xa
800002e0: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
800002e4: 00c00193 li gp,12
800002e8: 2fd31063 bne t1,t4,800005c8 <fail>
800002ec <test_13>:
800002ec: 00000213 li tp,0
800002f0: 00f000b7 lui ra,0xf00
800002f4: 00b00137 lui sp,0xb00
800002f8: 0220af33 mulhsu t5,ra,sp
800002fc: 00000013 nop
80000300: 00000013 nop
80000304: 000f0313 mv t1,t5
80000308: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000030c: 00200293 li t0,2
80000310: fe5210e3 bne tp,t0,800002f0 <test_13+0x4>
80000314: 0000aeb7 lui t4,0xa
80000318: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
8000031c: 00d00193 li gp,13
80000320: 2bd31463 bne t1,t4,800005c8 <fail>
80000324 <test_14>:
80000324: 00000213 li tp,0
80000328: 00d000b7 lui ra,0xd00
8000032c: 00b00137 lui sp,0xb00
80000330: 0220af33 mulhsu t5,ra,sp
80000334: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000338: 00200293 li t0,2
8000033c: fe5216e3 bne tp,t0,80000328 <test_14+0x4>
80000340: 00009eb7 lui t4,0x9
80000344: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
80000348: 00e00193 li gp,14
8000034c: 27df1e63 bne t5,t4,800005c8 <fail>
80000350 <test_15>:
80000350: 00000213 li tp,0
80000354: 00e000b7 lui ra,0xe00
80000358: 00b00137 lui sp,0xb00
8000035c: 00000013 nop
80000360: 0220af33 mulhsu t5,ra,sp
80000364: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000368: 00200293 li t0,2
8000036c: fe5214e3 bne tp,t0,80000354 <test_15+0x4>
80000370: 0000aeb7 lui t4,0xa
80000374: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
80000378: 00f00193 li gp,15
8000037c: 25df1663 bne t5,t4,800005c8 <fail>
80000380 <test_16>:
80000380: 00000213 li tp,0
80000384: 00f000b7 lui ra,0xf00
80000388: 00b00137 lui sp,0xb00
8000038c: 00000013 nop
80000390: 00000013 nop
80000394: 0220af33 mulhsu t5,ra,sp
80000398: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000039c: 00200293 li t0,2
800003a0: fe5212e3 bne tp,t0,80000384 <test_16+0x4>
800003a4: 0000aeb7 lui t4,0xa
800003a8: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
800003ac: 01000193 li gp,16
800003b0: 21df1c63 bne t5,t4,800005c8 <fail>
800003b4 <test_17>:
800003b4: 00000213 li tp,0
800003b8: 00d000b7 lui ra,0xd00
800003bc: 00000013 nop
800003c0: 00b00137 lui sp,0xb00
800003c4: 0220af33 mulhsu t5,ra,sp
800003c8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800003cc: 00200293 li t0,2
800003d0: fe5214e3 bne tp,t0,800003b8 <test_17+0x4>
800003d4: 00009eb7 lui t4,0x9
800003d8: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
800003dc: 01100193 li gp,17
800003e0: 1fdf1463 bne t5,t4,800005c8 <fail>
800003e4 <test_18>:
800003e4: 00000213 li tp,0
800003e8: 00e000b7 lui ra,0xe00
800003ec: 00000013 nop
800003f0: 00b00137 lui sp,0xb00
800003f4: 00000013 nop
800003f8: 0220af33 mulhsu t5,ra,sp
800003fc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000400: 00200293 li t0,2
80000404: fe5212e3 bne tp,t0,800003e8 <test_18+0x4>
80000408: 0000aeb7 lui t4,0xa
8000040c: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
80000410: 01200193 li gp,18
80000414: 1bdf1a63 bne t5,t4,800005c8 <fail>
80000418 <test_19>:
80000418: 00000213 li tp,0
8000041c: 00f000b7 lui ra,0xf00
80000420: 00000013 nop
80000424: 00000013 nop
80000428: 00b00137 lui sp,0xb00
8000042c: 0220af33 mulhsu t5,ra,sp
80000430: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000434: 00200293 li t0,2
80000438: fe5212e3 bne tp,t0,8000041c <test_19+0x4>
8000043c: 0000aeb7 lui t4,0xa
80000440: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
80000444: 01300193 li gp,19
80000448: 19df1063 bne t5,t4,800005c8 <fail>
8000044c <test_20>:
8000044c: 00000213 li tp,0
80000450: 00b00137 lui sp,0xb00
80000454: 00d000b7 lui ra,0xd00
80000458: 0220af33 mulhsu t5,ra,sp
8000045c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000460: 00200293 li t0,2
80000464: fe5216e3 bne tp,t0,80000450 <test_20+0x4>
80000468: 00009eb7 lui t4,0x9
8000046c: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
80000470: 01400193 li gp,20
80000474: 15df1a63 bne t5,t4,800005c8 <fail>
80000478 <test_21>:
80000478: 00000213 li tp,0
8000047c: 00b00137 lui sp,0xb00
80000480: 00e000b7 lui ra,0xe00
80000484: 00000013 nop
80000488: 0220af33 mulhsu t5,ra,sp
8000048c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000490: 00200293 li t0,2
80000494: fe5214e3 bne tp,t0,8000047c <test_21+0x4>
80000498: 0000aeb7 lui t4,0xa
8000049c: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
800004a0: 01500193 li gp,21
800004a4: 13df1263 bne t5,t4,800005c8 <fail>
800004a8 <test_22>:
800004a8: 00000213 li tp,0
800004ac: 00b00137 lui sp,0xb00
800004b0: 00f000b7 lui ra,0xf00
800004b4: 00000013 nop
800004b8: 00000013 nop
800004bc: 0220af33 mulhsu t5,ra,sp
800004c0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800004c4: 00200293 li t0,2
800004c8: fe5212e3 bne tp,t0,800004ac <test_22+0x4>
800004cc: 0000aeb7 lui t4,0xa
800004d0: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
800004d4: 01600193 li gp,22
800004d8: 0fdf1863 bne t5,t4,800005c8 <fail>
800004dc <test_23>:
800004dc: 00000213 li tp,0
800004e0: 00b00137 lui sp,0xb00
800004e4: 00000013 nop
800004e8: 00d000b7 lui ra,0xd00
800004ec: 0220af33 mulhsu t5,ra,sp
800004f0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800004f4: 00200293 li t0,2
800004f8: fe5214e3 bne tp,t0,800004e0 <test_23+0x4>
800004fc: 00009eb7 lui t4,0x9
80000500: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
80000504: 01700193 li gp,23
80000508: 0ddf1063 bne t5,t4,800005c8 <fail>
8000050c <test_24>:
8000050c: 00000213 li tp,0
80000510: 00b00137 lui sp,0xb00
80000514: 00000013 nop
80000518: 00e000b7 lui ra,0xe00
8000051c: 00000013 nop
80000520: 0220af33 mulhsu t5,ra,sp
80000524: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000528: 00200293 li t0,2
8000052c: fe5212e3 bne tp,t0,80000510 <test_24+0x4>
80000530: 0000aeb7 lui t4,0xa
80000534: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
80000538: 01800193 li gp,24
8000053c: 09df1663 bne t5,t4,800005c8 <fail>
80000540 <test_25>:
80000540: 00000213 li tp,0
80000544: 00b00137 lui sp,0xb00
80000548: 00000013 nop
8000054c: 00000013 nop
80000550: 00f000b7 lui ra,0xf00
80000554: 0220af33 mulhsu t5,ra,sp
80000558: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000055c: 00200293 li t0,2
80000560: fe5212e3 bne tp,t0,80000544 <test_25+0x4>
80000564: 0000aeb7 lui t4,0xa
80000568: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
8000056c: 01900193 li gp,25
80000570: 05df1c63 bne t5,t4,800005c8 <fail>
80000574 <test_26>:
80000574: 7c0000b7 lui ra,0x7c000
80000578: 02102133 mulhsu sp,zero,ra
8000057c: 00000e93 li t4,0
80000580: 01a00193 li gp,26
80000584: 05d11263 bne sp,t4,800005c8 <fail>
80000588 <test_27>:
80000588: 800000b7 lui ra,0x80000
8000058c: 0200a133 mulhsu sp,ra,zero
80000590: 00000e93 li t4,0
80000594: 01b00193 li gp,27
80000598: 03d11863 bne sp,t4,800005c8 <fail>
8000059c <test_28>:
8000059c: 020020b3 mulhsu ra,zero,zero
800005a0: 00000e93 li t4,0
800005a4: 01c00193 li gp,28
800005a8: 03d09063 bne ra,t4,800005c8 <fail>
800005ac <test_29>:
800005ac: 021000b7 lui ra,0x2100
800005b0: 02200137 lui sp,0x2200
800005b4: 0220a033 mulhsu zero,ra,sp
800005b8: 00000e93 li t4,0
800005bc: 01d00193 li gp,29
800005c0: 01d01463 bne zero,t4,800005c8 <fail>
800005c4: 00301c63 bne zero,gp,800005dc <pass>
800005c8 <fail>:
800005c8: 0ff0000f fence
800005cc: 00018063 beqz gp,800005cc <fail+0x4>
800005d0: 00119193 slli gp,gp,0x1
800005d4: 0011e193 ori gp,gp,1
800005d8: 00000073 ecall
800005dc <pass>:
800005dc: 0ff0000f fence
800005e0: 00100193 li gp,1
800005e4: 00000073 ecall
800005e8: c0001073 unimp
800005ec: 0000 unimp
800005ee: 0000 unimp
800005f0: 0000 unimp
800005f2: 0000 unimp
800005f4: 0000 unimp
800005f6: 0000 unimp
800005f8: 0000 unimp
800005fa: 0000 unimp
800005fc: 0000 unimp
800005fe: 0000 unimp
80000600: 0000 unimp
80000602: 0000 unimp

View file

@ -0,0 +1,478 @@
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: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-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: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 02028293 addi t0,t0,32 # 80000084 <reset_vector+0x38>
8000006c: 30529073 csrw mtvec,t0
80000070: 800002b7 lui t0,0x80000
80000074: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdfff>
80000078: 3b029073 csrw pmpaddr0,t0
8000007c: 01f00293 li t0,31
80000080: 3a029073 csrw pmpcfg0,t0
80000084: 00000297 auipc t0,0x0
80000088: 01828293 addi t0,t0,24 # 8000009c <reset_vector+0x50>
8000008c: 30529073 csrw mtvec,t0
80000090: 30205073 csrwi medeleg,0
80000094: 30305073 csrwi mideleg,0
80000098: 30405073 csrwi mie,0
8000009c: 00000193 li gp,0
800000a0: 00000297 auipc t0,0x0
800000a4: f6428293 addi t0,t0,-156 # 80000004 <trap_vector>
800000a8: 30529073 csrw mtvec,t0
800000ac: 00100513 li a0,1
800000b0: 01f51513 slli a0,a0,0x1f
800000b4: 00054863 bltz a0,800000c4 <reset_vector+0x78>
800000b8: 0ff0000f fence
800000bc: 00100193 li gp,1
800000c0: 00000073 ecall
800000c4: 80000297 auipc t0,0x80000
800000c8: f3c28293 addi t0,t0,-196 # 0 <_start-0x80000000>
800000cc: 00028e63 beqz t0,800000e8 <reset_vector+0x9c>
800000d0: 10529073 csrw stvec,t0
800000d4: 0000b2b7 lui t0,0xb
800000d8: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000dc: 30229073 csrw medeleg,t0
800000e0: 30202373 csrr t1,medeleg
800000e4: f4629ce3 bne t0,t1,8000003c <handle_exception>
800000e8: 30005073 csrwi mstatus,0
800000ec: 00000297 auipc t0,0x0
800000f0: 01428293 addi t0,t0,20 # 80000100 <test_2>
800000f4: 34129073 csrw mepc,t0
800000f8: f1402573 csrr a0,mhartid
800000fc: 30200073 mret
80000100 <test_2>:
80000100: 00000093 li ra,0
80000104: 00000113 li sp,0
80000108: 0220bf33 mulhu t5,ra,sp
8000010c: 00000e93 li t4,0
80000110: 00200193 li gp,2
80000114: 4bdf1a63 bne t5,t4,800005c8 <fail>
80000118 <test_3>:
80000118: 00100093 li ra,1
8000011c: 00100113 li sp,1
80000120: 0220bf33 mulhu t5,ra,sp
80000124: 00000e93 li t4,0
80000128: 00300193 li gp,3
8000012c: 49df1e63 bne t5,t4,800005c8 <fail>
80000130 <test_4>:
80000130: 00300093 li ra,3
80000134: 00700113 li sp,7
80000138: 0220bf33 mulhu t5,ra,sp
8000013c: 00000e93 li t4,0
80000140: 00400193 li gp,4
80000144: 49df1263 bne t5,t4,800005c8 <fail>
80000148 <test_5>:
80000148: 00000093 li ra,0
8000014c: ffff8137 lui sp,0xffff8
80000150: 0220bf33 mulhu t5,ra,sp
80000154: 00000e93 li t4,0
80000158: 00500193 li gp,5
8000015c: 47df1663 bne t5,t4,800005c8 <fail>
80000160 <test_6>:
80000160: 800000b7 lui ra,0x80000
80000164: 00000113 li sp,0
80000168: 0220bf33 mulhu t5,ra,sp
8000016c: 00000e93 li t4,0
80000170: 00600193 li gp,6
80000174: 45df1a63 bne t5,t4,800005c8 <fail>
80000178 <test_7>:
80000178: 800000b7 lui ra,0x80000
8000017c: ffff8137 lui sp,0xffff8
80000180: 0220bf33 mulhu t5,ra,sp
80000184: 7fffceb7 lui t4,0x7fffc
80000188: 00700193 li gp,7
8000018c: 43df1e63 bne t5,t4,800005c8 <fail>
80000190 <test_30>:
80000190: aaaab0b7 lui ra,0xaaaab
80000194: aab08093 addi ra,ra,-1365 # aaaaaaab <_end+0x2aaa8aab>
80000198: 00030137 lui sp,0x30
8000019c: e7d10113 addi sp,sp,-387 # 2fe7d <_start-0x7ffd0183>
800001a0: 0220bf33 mulhu t5,ra,sp
800001a4: 00020eb7 lui t4,0x20
800001a8: efee8e93 addi t4,t4,-258 # 1fefe <_start-0x7ffe0102>
800001ac: 01e00193 li gp,30
800001b0: 41df1c63 bne t5,t4,800005c8 <fail>
800001b4 <test_31>:
800001b4: 000300b7 lui ra,0x30
800001b8: e7d08093 addi ra,ra,-387 # 2fe7d <_start-0x7ffd0183>
800001bc: aaaab137 lui sp,0xaaaab
800001c0: aab10113 addi sp,sp,-1365 # aaaaaaab <_end+0x2aaa8aab>
800001c4: 0220bf33 mulhu t5,ra,sp
800001c8: 00020eb7 lui t4,0x20
800001cc: efee8e93 addi t4,t4,-258 # 1fefe <_start-0x7ffe0102>
800001d0: 01f00193 li gp,31
800001d4: 3fdf1a63 bne t5,t4,800005c8 <fail>
800001d8 <test_32>:
800001d8: ff0000b7 lui ra,0xff000
800001dc: ff000137 lui sp,0xff000
800001e0: 0220bf33 mulhu t5,ra,sp
800001e4: fe010eb7 lui t4,0xfe010
800001e8: 02000193 li gp,32
800001ec: 3ddf1e63 bne t5,t4,800005c8 <fail>
800001f0 <test_33>:
800001f0: fff00093 li ra,-1
800001f4: fff00113 li sp,-1
800001f8: 0220bf33 mulhu t5,ra,sp
800001fc: ffe00e93 li t4,-2
80000200: 02100193 li gp,33
80000204: 3ddf1263 bne t5,t4,800005c8 <fail>
80000208 <test_34>:
80000208: fff00093 li ra,-1
8000020c: 00100113 li sp,1
80000210: 0220bf33 mulhu t5,ra,sp
80000214: 00000e93 li t4,0
80000218: 02200193 li gp,34
8000021c: 3bdf1663 bne t5,t4,800005c8 <fail>
80000220 <test_35>:
80000220: 00100093 li ra,1
80000224: fff00113 li sp,-1
80000228: 0220bf33 mulhu t5,ra,sp
8000022c: 00000e93 li t4,0
80000230: 02300193 li gp,35
80000234: 39df1a63 bne t5,t4,800005c8 <fail>
80000238 <test_8>:
80000238: 00d000b7 lui ra,0xd00
8000023c: 00b00137 lui sp,0xb00
80000240: 0220b0b3 mulhu ra,ra,sp
80000244: 00009eb7 lui t4,0x9
80000248: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
8000024c: 00800193 li gp,8
80000250: 37d09c63 bne ra,t4,800005c8 <fail>
80000254 <test_9>:
80000254: 00e000b7 lui ra,0xe00
80000258: 00b00137 lui sp,0xb00
8000025c: 0220b133 mulhu sp,ra,sp
80000260: 0000aeb7 lui t4,0xa
80000264: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
80000268: 00900193 li gp,9
8000026c: 35d11e63 bne sp,t4,800005c8 <fail>
80000270 <test_10>:
80000270: 00d000b7 lui ra,0xd00
80000274: 0210b0b3 mulhu ra,ra,ra
80000278: 0000beb7 lui t4,0xb
8000027c: 900e8e93 addi t4,t4,-1792 # a900 <_start-0x7fff5700>
80000280: 00a00193 li gp,10
80000284: 35d09263 bne ra,t4,800005c8 <fail>
80000288 <test_11>:
80000288: 00000213 li tp,0
8000028c: 00d000b7 lui ra,0xd00
80000290: 00b00137 lui sp,0xb00
80000294: 0220bf33 mulhu t5,ra,sp
80000298: 000f0313 mv t1,t5
8000029c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002a0: 00200293 li t0,2
800002a4: fe5214e3 bne tp,t0,8000028c <test_11+0x4>
800002a8: 00009eb7 lui t4,0x9
800002ac: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
800002b0: 00b00193 li gp,11
800002b4: 31d31a63 bne t1,t4,800005c8 <fail>
800002b8 <test_12>:
800002b8: 00000213 li tp,0
800002bc: 00e000b7 lui ra,0xe00
800002c0: 00b00137 lui sp,0xb00
800002c4: 0220bf33 mulhu t5,ra,sp
800002c8: 00000013 nop
800002cc: 000f0313 mv t1,t5
800002d0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800002d4: 00200293 li t0,2
800002d8: fe5212e3 bne tp,t0,800002bc <test_12+0x4>
800002dc: 0000aeb7 lui t4,0xa
800002e0: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
800002e4: 00c00193 li gp,12
800002e8: 2fd31063 bne t1,t4,800005c8 <fail>
800002ec <test_13>:
800002ec: 00000213 li tp,0
800002f0: 00f000b7 lui ra,0xf00
800002f4: 00b00137 lui sp,0xb00
800002f8: 0220bf33 mulhu t5,ra,sp
800002fc: 00000013 nop
80000300: 00000013 nop
80000304: 000f0313 mv t1,t5
80000308: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000030c: 00200293 li t0,2
80000310: fe5210e3 bne tp,t0,800002f0 <test_13+0x4>
80000314: 0000aeb7 lui t4,0xa
80000318: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
8000031c: 00d00193 li gp,13
80000320: 2bd31463 bne t1,t4,800005c8 <fail>
80000324 <test_14>:
80000324: 00000213 li tp,0
80000328: 00d000b7 lui ra,0xd00
8000032c: 00b00137 lui sp,0xb00
80000330: 0220bf33 mulhu t5,ra,sp
80000334: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000338: 00200293 li t0,2
8000033c: fe5216e3 bne tp,t0,80000328 <test_14+0x4>
80000340: 00009eb7 lui t4,0x9
80000344: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
80000348: 00e00193 li gp,14
8000034c: 27df1e63 bne t5,t4,800005c8 <fail>
80000350 <test_15>:
80000350: 00000213 li tp,0
80000354: 00e000b7 lui ra,0xe00
80000358: 00b00137 lui sp,0xb00
8000035c: 00000013 nop
80000360: 0220bf33 mulhu t5,ra,sp
80000364: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000368: 00200293 li t0,2
8000036c: fe5214e3 bne tp,t0,80000354 <test_15+0x4>
80000370: 0000aeb7 lui t4,0xa
80000374: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
80000378: 00f00193 li gp,15
8000037c: 25df1663 bne t5,t4,800005c8 <fail>
80000380 <test_16>:
80000380: 00000213 li tp,0
80000384: 00f000b7 lui ra,0xf00
80000388: 00b00137 lui sp,0xb00
8000038c: 00000013 nop
80000390: 00000013 nop
80000394: 0220bf33 mulhu t5,ra,sp
80000398: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000039c: 00200293 li t0,2
800003a0: fe5212e3 bne tp,t0,80000384 <test_16+0x4>
800003a4: 0000aeb7 lui t4,0xa
800003a8: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
800003ac: 01000193 li gp,16
800003b0: 21df1c63 bne t5,t4,800005c8 <fail>
800003b4 <test_17>:
800003b4: 00000213 li tp,0
800003b8: 00d000b7 lui ra,0xd00
800003bc: 00000013 nop
800003c0: 00b00137 lui sp,0xb00
800003c4: 0220bf33 mulhu t5,ra,sp
800003c8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800003cc: 00200293 li t0,2
800003d0: fe5214e3 bne tp,t0,800003b8 <test_17+0x4>
800003d4: 00009eb7 lui t4,0x9
800003d8: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
800003dc: 01100193 li gp,17
800003e0: 1fdf1463 bne t5,t4,800005c8 <fail>
800003e4 <test_18>:
800003e4: 00000213 li tp,0
800003e8: 00e000b7 lui ra,0xe00
800003ec: 00000013 nop
800003f0: 00b00137 lui sp,0xb00
800003f4: 00000013 nop
800003f8: 0220bf33 mulhu t5,ra,sp
800003fc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000400: 00200293 li t0,2
80000404: fe5212e3 bne tp,t0,800003e8 <test_18+0x4>
80000408: 0000aeb7 lui t4,0xa
8000040c: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
80000410: 01200193 li gp,18
80000414: 1bdf1a63 bne t5,t4,800005c8 <fail>
80000418 <test_19>:
80000418: 00000213 li tp,0
8000041c: 00f000b7 lui ra,0xf00
80000420: 00000013 nop
80000424: 00000013 nop
80000428: 00b00137 lui sp,0xb00
8000042c: 0220bf33 mulhu t5,ra,sp
80000430: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000434: 00200293 li t0,2
80000438: fe5212e3 bne tp,t0,8000041c <test_19+0x4>
8000043c: 0000aeb7 lui t4,0xa
80000440: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
80000444: 01300193 li gp,19
80000448: 19df1063 bne t5,t4,800005c8 <fail>
8000044c <test_20>:
8000044c: 00000213 li tp,0
80000450: 00b00137 lui sp,0xb00
80000454: 00d000b7 lui ra,0xd00
80000458: 0220bf33 mulhu t5,ra,sp
8000045c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000460: 00200293 li t0,2
80000464: fe5216e3 bne tp,t0,80000450 <test_20+0x4>
80000468: 00009eb7 lui t4,0x9
8000046c: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
80000470: 01400193 li gp,20
80000474: 15df1a63 bne t5,t4,800005c8 <fail>
80000478 <test_21>:
80000478: 00000213 li tp,0
8000047c: 00b00137 lui sp,0xb00
80000480: 00e000b7 lui ra,0xe00
80000484: 00000013 nop
80000488: 0220bf33 mulhu t5,ra,sp
8000048c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000490: 00200293 li t0,2
80000494: fe5214e3 bne tp,t0,8000047c <test_21+0x4>
80000498: 0000aeb7 lui t4,0xa
8000049c: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
800004a0: 01500193 li gp,21
800004a4: 13df1263 bne t5,t4,800005c8 <fail>
800004a8 <test_22>:
800004a8: 00000213 li tp,0
800004ac: 00b00137 lui sp,0xb00
800004b0: 00f000b7 lui ra,0xf00
800004b4: 00000013 nop
800004b8: 00000013 nop
800004bc: 0220bf33 mulhu t5,ra,sp
800004c0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800004c4: 00200293 li t0,2
800004c8: fe5212e3 bne tp,t0,800004ac <test_22+0x4>
800004cc: 0000aeb7 lui t4,0xa
800004d0: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
800004d4: 01600193 li gp,22
800004d8: 0fdf1863 bne t5,t4,800005c8 <fail>
800004dc <test_23>:
800004dc: 00000213 li tp,0
800004e0: 00b00137 lui sp,0xb00
800004e4: 00000013 nop
800004e8: 00d000b7 lui ra,0xd00
800004ec: 0220bf33 mulhu t5,ra,sp
800004f0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
800004f4: 00200293 li t0,2
800004f8: fe5214e3 bne tp,t0,800004e0 <test_23+0x4>
800004fc: 00009eb7 lui t4,0x9
80000500: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
80000504: 01700193 li gp,23
80000508: 0ddf1063 bne t5,t4,800005c8 <fail>
8000050c <test_24>:
8000050c: 00000213 li tp,0
80000510: 00b00137 lui sp,0xb00
80000514: 00000013 nop
80000518: 00e000b7 lui ra,0xe00
8000051c: 00000013 nop
80000520: 0220bf33 mulhu t5,ra,sp
80000524: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
80000528: 00200293 li t0,2
8000052c: fe5212e3 bne tp,t0,80000510 <test_24+0x4>
80000530: 0000aeb7 lui t4,0xa
80000534: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
80000538: 01800193 li gp,24
8000053c: 09df1663 bne t5,t4,800005c8 <fail>
80000540 <test_25>:
80000540: 00000213 li tp,0
80000544: 00b00137 lui sp,0xb00
80000548: 00000013 nop
8000054c: 00000013 nop
80000550: 00f000b7 lui ra,0xf00
80000554: 0220bf33 mulhu t5,ra,sp
80000558: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
8000055c: 00200293 li t0,2
80000560: fe5212e3 bne tp,t0,80000544 <test_25+0x4>
80000564: 0000aeb7 lui t4,0xa
80000568: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
8000056c: 01900193 li gp,25
80000570: 05df1c63 bne t5,t4,800005c8 <fail>
80000574 <test_26>:
80000574: 7c0000b7 lui ra,0x7c000
80000578: 02103133 mulhu sp,zero,ra
8000057c: 00000e93 li t4,0
80000580: 01a00193 li gp,26
80000584: 05d11263 bne sp,t4,800005c8 <fail>
80000588 <test_27>:
80000588: 800000b7 lui ra,0x80000
8000058c: 0200b133 mulhu sp,ra,zero
80000590: 00000e93 li t4,0
80000594: 01b00193 li gp,27
80000598: 03d11863 bne sp,t4,800005c8 <fail>
8000059c <test_28>:
8000059c: 020030b3 mulhu ra,zero,zero
800005a0: 00000e93 li t4,0
800005a4: 01c00193 li gp,28
800005a8: 03d09063 bne ra,t4,800005c8 <fail>
800005ac <test_29>:
800005ac: 021000b7 lui ra,0x2100
800005b0: 02200137 lui sp,0x2200
800005b4: 0220b033 mulhu zero,ra,sp
800005b8: 00000e93 li t4,0
800005bc: 01d00193 li gp,29
800005c0: 01d01463 bne zero,t4,800005c8 <fail>
800005c4: 00301c63 bne zero,gp,800005dc <pass>
800005c8 <fail>:
800005c8: 0ff0000f fence
800005cc: 00018063 beqz gp,800005cc <fail+0x4>
800005d0: 00119193 slli gp,gp,0x1
800005d4: 0011e193 ori gp,gp,1
800005d8: 00000073 ecall
800005dc <pass>:
800005dc: 0ff0000f fence
800005e0: 00100193 li gp,1
800005e4: 00000073 ecall
800005e8: c0001073 unimp
800005ec: 0000 unimp
800005ee: 0000 unimp
800005f0: 0000 unimp
800005f2: 0000 unimp
800005f4: 0000 unimp
800005f6: 0000 unimp
800005f8: 0000 unimp
800005fa: 0000 unimp
800005fc: 0000 unimp
800005fe: 0000 unimp
80000600: 0000 unimp
80000602: 0000 unimp

View file

@ -0,0 +1,167 @@
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: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-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: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 02028293 addi t0,t0,32 # 80000084 <reset_vector+0x38>
8000006c: 30529073 csrw mtvec,t0
80000070: 800002b7 lui t0,0x80000
80000074: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdfff>
80000078: 3b029073 csrw pmpaddr0,t0
8000007c: 01f00293 li t0,31
80000080: 3a029073 csrw pmpcfg0,t0
80000084: 00000297 auipc t0,0x0
80000088: 01828293 addi t0,t0,24 # 8000009c <reset_vector+0x50>
8000008c: 30529073 csrw mtvec,t0
80000090: 30205073 csrwi medeleg,0
80000094: 30305073 csrwi mideleg,0
80000098: 30405073 csrwi mie,0
8000009c: 00000193 li gp,0
800000a0: 00000297 auipc t0,0x0
800000a4: f6428293 addi t0,t0,-156 # 80000004 <trap_vector>
800000a8: 30529073 csrw mtvec,t0
800000ac: 00100513 li a0,1
800000b0: 01f51513 slli a0,a0,0x1f
800000b4: 00054863 bltz a0,800000c4 <reset_vector+0x78>
800000b8: 0ff0000f fence
800000bc: 00100193 li gp,1
800000c0: 00000073 ecall
800000c4: 80000297 auipc t0,0x80000
800000c8: f3c28293 addi t0,t0,-196 # 0 <_start-0x80000000>
800000cc: 00028e63 beqz t0,800000e8 <reset_vector+0x9c>
800000d0: 10529073 csrw stvec,t0
800000d4: 0000b2b7 lui t0,0xb
800000d8: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000dc: 30229073 csrw medeleg,t0
800000e0: 30202373 csrr t1,medeleg
800000e4: f4629ce3 bne t0,t1,8000003c <handle_exception>
800000e8: 30005073 csrwi mstatus,0
800000ec: 00000297 auipc t0,0x0
800000f0: 01428293 addi t0,t0,20 # 80000100 <test_2>
800000f4: 34129073 csrw mepc,t0
800000f8: f1402573 csrr a0,mhartid
800000fc: 30200073 mret
80000100 <test_2>:
80000100: 01400093 li ra,20
80000104: 00600113 li sp,6
80000108: 0220ef33 rem t5,ra,sp
8000010c: 00200e93 li t4,2
80000110: 00200193 li gp,2
80000114: 0ddf1463 bne t5,t4,800001dc <fail>
80000118 <test_3>:
80000118: fec00093 li ra,-20
8000011c: 00600113 li sp,6
80000120: 0220ef33 rem t5,ra,sp
80000124: ffe00e93 li t4,-2
80000128: 00300193 li gp,3
8000012c: 0bdf1863 bne t5,t4,800001dc <fail>
80000130 <test_4>:
80000130: 01400093 li ra,20
80000134: ffa00113 li sp,-6
80000138: 0220ef33 rem t5,ra,sp
8000013c: 00200e93 li t4,2
80000140: 00400193 li gp,4
80000144: 09df1c63 bne t5,t4,800001dc <fail>
80000148 <test_5>:
80000148: fec00093 li ra,-20
8000014c: ffa00113 li sp,-6
80000150: 0220ef33 rem t5,ra,sp
80000154: ffe00e93 li t4,-2
80000158: 00500193 li gp,5
8000015c: 09df1063 bne t5,t4,800001dc <fail>
80000160 <test_6>:
80000160: 800000b7 lui ra,0x80000
80000164: 00100113 li sp,1
80000168: 0220ef33 rem t5,ra,sp
8000016c: 00000e93 li t4,0
80000170: 00600193 li gp,6
80000174: 07df1463 bne t5,t4,800001dc <fail>
80000178 <test_7>:
80000178: 800000b7 lui ra,0x80000
8000017c: fff00113 li sp,-1
80000180: 0220ef33 rem t5,ra,sp
80000184: 00000e93 li t4,0
80000188: 00700193 li gp,7
8000018c: 05df1863 bne t5,t4,800001dc <fail>
80000190 <test_8>:
80000190: 800000b7 lui ra,0x80000
80000194: 00000113 li sp,0
80000198: 0220ef33 rem t5,ra,sp
8000019c: 80000eb7 lui t4,0x80000
800001a0: 00800193 li gp,8
800001a4: 03df1c63 bne t5,t4,800001dc <fail>
800001a8 <test_9>:
800001a8: 00100093 li ra,1
800001ac: 00000113 li sp,0
800001b0: 0220ef33 rem t5,ra,sp
800001b4: 00100e93 li t4,1
800001b8: 00900193 li gp,9
800001bc: 03df1063 bne t5,t4,800001dc <fail>
800001c0 <test_10>:
800001c0: 00000093 li ra,0
800001c4: 00000113 li sp,0
800001c8: 0220ef33 rem t5,ra,sp
800001cc: 00000e93 li t4,0
800001d0: 00a00193 li gp,10
800001d4: 01df1463 bne t5,t4,800001dc <fail>
800001d8: 00301c63 bne zero,gp,800001f0 <pass>
800001dc <fail>:
800001dc: 0ff0000f fence
800001e0: 00018063 beqz gp,800001e0 <fail+0x4>
800001e4: 00119193 slli gp,gp,0x1
800001e8: 0011e193 ori gp,gp,1
800001ec: 00000073 ecall
800001f0 <pass>:
800001f0: 0ff0000f fence
800001f4: 00100193 li gp,1
800001f8: 00000073 ecall
800001fc: c0001073 unimp
80000200: 0000 unimp
80000202: 0000 unimp

View file

@ -0,0 +1,167 @@
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: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-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: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 02028293 addi t0,t0,32 # 80000084 <reset_vector+0x38>
8000006c: 30529073 csrw mtvec,t0
80000070: 800002b7 lui t0,0x80000
80000074: fff28293 addi t0,t0,-1 # 7fffffff <_end+0xffffdfff>
80000078: 3b029073 csrw pmpaddr0,t0
8000007c: 01f00293 li t0,31
80000080: 3a029073 csrw pmpcfg0,t0
80000084: 00000297 auipc t0,0x0
80000088: 01828293 addi t0,t0,24 # 8000009c <reset_vector+0x50>
8000008c: 30529073 csrw mtvec,t0
80000090: 30205073 csrwi medeleg,0
80000094: 30305073 csrwi mideleg,0
80000098: 30405073 csrwi mie,0
8000009c: 00000193 li gp,0
800000a0: 00000297 auipc t0,0x0
800000a4: f6428293 addi t0,t0,-156 # 80000004 <trap_vector>
800000a8: 30529073 csrw mtvec,t0
800000ac: 00100513 li a0,1
800000b0: 01f51513 slli a0,a0,0x1f
800000b4: 00054863 bltz a0,800000c4 <reset_vector+0x78>
800000b8: 0ff0000f fence
800000bc: 00100193 li gp,1
800000c0: 00000073 ecall
800000c4: 80000297 auipc t0,0x80000
800000c8: f3c28293 addi t0,t0,-196 # 0 <_start-0x80000000>
800000cc: 00028e63 beqz t0,800000e8 <reset_vector+0x9c>
800000d0: 10529073 csrw stvec,t0
800000d4: 0000b2b7 lui t0,0xb
800000d8: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000dc: 30229073 csrw medeleg,t0
800000e0: 30202373 csrr t1,medeleg
800000e4: f4629ce3 bne t0,t1,8000003c <handle_exception>
800000e8: 30005073 csrwi mstatus,0
800000ec: 00000297 auipc t0,0x0
800000f0: 01428293 addi t0,t0,20 # 80000100 <test_2>
800000f4: 34129073 csrw mepc,t0
800000f8: f1402573 csrr a0,mhartid
800000fc: 30200073 mret
80000100 <test_2>:
80000100: 01400093 li ra,20
80000104: 00600113 li sp,6
80000108: 0220ff33 remu t5,ra,sp
8000010c: 00200e93 li t4,2
80000110: 00200193 li gp,2
80000114: 0ddf1463 bne t5,t4,800001dc <fail>
80000118 <test_3>:
80000118: fec00093 li ra,-20
8000011c: 00600113 li sp,6
80000120: 0220ff33 remu t5,ra,sp
80000124: 00200e93 li t4,2
80000128: 00300193 li gp,3
8000012c: 0bdf1863 bne t5,t4,800001dc <fail>
80000130 <test_4>:
80000130: 01400093 li ra,20
80000134: ffa00113 li sp,-6
80000138: 0220ff33 remu t5,ra,sp
8000013c: 01400e93 li t4,20
80000140: 00400193 li gp,4
80000144: 09df1c63 bne t5,t4,800001dc <fail>
80000148 <test_5>:
80000148: fec00093 li ra,-20
8000014c: ffa00113 li sp,-6
80000150: 0220ff33 remu t5,ra,sp
80000154: fec00e93 li t4,-20
80000158: 00500193 li gp,5
8000015c: 09df1063 bne t5,t4,800001dc <fail>
80000160 <test_6>:
80000160: 800000b7 lui ra,0x80000
80000164: 00100113 li sp,1
80000168: 0220ff33 remu t5,ra,sp
8000016c: 00000e93 li t4,0
80000170: 00600193 li gp,6
80000174: 07df1463 bne t5,t4,800001dc <fail>
80000178 <test_7>:
80000178: 800000b7 lui ra,0x80000
8000017c: fff00113 li sp,-1
80000180: 0220ff33 remu t5,ra,sp
80000184: 80000eb7 lui t4,0x80000
80000188: 00700193 li gp,7
8000018c: 05df1863 bne t5,t4,800001dc <fail>
80000190 <test_8>:
80000190: 800000b7 lui ra,0x80000
80000194: 00000113 li sp,0
80000198: 0220ff33 remu t5,ra,sp
8000019c: 80000eb7 lui t4,0x80000
800001a0: 00800193 li gp,8
800001a4: 03df1c63 bne t5,t4,800001dc <fail>
800001a8 <test_9>:
800001a8: 00100093 li ra,1
800001ac: 00000113 li sp,0
800001b0: 0220ff33 remu t5,ra,sp
800001b4: 00100e93 li t4,1
800001b8: 00900193 li gp,9
800001bc: 03df1063 bne t5,t4,800001dc <fail>
800001c0 <test_10>:
800001c0: 00000093 li ra,0
800001c4: 00000113 li sp,0
800001c8: 0220ff33 remu t5,ra,sp
800001cc: 00000e93 li t4,0
800001d0: 00a00193 li gp,10
800001d4: 01df1463 bne t5,t4,800001dc <fail>
800001d8: 00301c63 bne zero,gp,800001f0 <pass>
800001dc <fail>:
800001dc: 0ff0000f fence
800001e0: 00018063 beqz gp,800001e0 <fail+0x4>
800001e4: 00119193 slli gp,gp,0x1
800001e8: 0011e193 ori gp,gp,1
800001ec: 00000073 ecall
800001f0 <pass>:
800001f0: 0ff0000f fence
800001f4: 00100193 li gp,1
800001f8: 00000073 ecall
800001fc: c0001073 unimp
80000200: 0000 unimp
80000202: 0000 unimp

View file

@ -97,15 +97,11 @@ extern int vx_upload_kernel_file(vx_device_h device, const char* filename) {
return -1;
}
// get length of file:
// read file content
ifs.seekg(0, ifs.end);
auto size = ifs.tellg();
auto content = new char [size];
ifs.seekg(0, ifs.beg);
// allocate buffer
auto content = new char [size];
// read file content
ifs.read(content, size);
// upload

View file

@ -12,13 +12,13 @@ DBG_PRINT_FLAGS = -DDBG_PRINT_CORE_ICACHE \
-DDBG_PRINT_DRAM \
-DDBG_PRINT_OPAE
#DBG_PRINT=$(DBG_PRINT_FLAGS)
DBG_PRINT=$(DBG_PRINT_FLAGS)
#MULTICORE += -DNUM_CLUSTERS=2 -DNUM_CORES=4
#MULTICORE += -DNUM_CLUSTERS=1 -DNUM_CORES=4
MULTICORE += -DNUM_CLUSTERS=1 -DNUM_CORES=2
#MULTICORE += -DNUM_CLUSTERS=1 -DNUM_CORES=2
#DEBUG = 1
DEBUG = 1
CFLAGS += -fPIC

View file

@ -143,7 +143,6 @@ public:
return 0;
}
private:
size_t mem_allocation_;

View file

@ -3,6 +3,6 @@
#define DEV_MEM_SRC_ADDR 0x10000000
#define DEV_MEM_DST_ADDR 0x20000000
#define NUM_BLOCKS 16
#define NUM_BLOCKS 64
#endif

Binary file not shown.

1
hw/.gitignore vendored Normal file
View file

@ -0,0 +1 @@
obj_dir/*

View file

@ -25,7 +25,7 @@ DBG_PRINT_FLAGS = -DDBG_PRINT_CORE_ICACHE \
-DDBG_PRINT_DRAM \
-DDBG_PRINT_OPAE
#DBG_PRINT=$(DBG_PRINT_FLAGSs)
DBG_PRINT=$(DBG_PRINT_FLAGS)
INCLUDE = -I./rtl/ -I./rtl/libs -I./rtl/interfaces -I./rtl/pipe_regs -I./rtl/cache -I./rtl/simulate
@ -44,7 +44,7 @@ gen-s: build_config
verilator $(VF) -DNDEBUG -cc Vortex_Socket.v -CFLAGS '$(CF) -DNDEBUG'
gen-sd: build_config
verilator $(VF) -cc Vortex_Socket.v $(DBG_PRINT) -CFLAGS '$(CF) -g -O0 $(DBG)' --trace $(DBG)
verilator $(VF) -cc Vortex_Socket.v -CFLAGS '$(CF) -g -O0 $(DBG)' --trace $(DBG)
gen-st: build_config
verilator $(VF) -DNDEBUG -cc Vortex_Socket.v -CFLAGS '$(CF) -DNDEBUG -O2' --threads $(THREADS)
@ -53,7 +53,7 @@ gen-m: build_config
verilator $(VF) -DNDEBUG -cc Vortex_Socket.v $(MULTICORE) -CFLAGS '$(CF) -DNDEBUG $(MULTICORE)'
gen-md: build_config
verilator $(VF) -cc Vortex_Socket.v $(MULTICORE) $(DBG_PRINT) -CFLAGS '$(CF) -g -O0 $(DBG) $(MULTICORE)' --trace $(DBG)
verilator $(VF) -cc Vortex_Socket.v $(MULTICORE) -CFLAGS '$(CF) -g -O0 $(DBG) $(MULTICORE)' --trace $(DBG)
gen-mt: build_config
verilator $(VF) -DNDEBUG -cc Vortex_Socket.v $(MULTICORE) -CFLAGS '$(CF) -DNDEBUG -O2 $(MULTICORE)' --threads $(THREADS)

View file

@ -737,7 +737,7 @@ Vortex_Socket #() vx_socket (
// I/O response
.io_rsp_valid (1'b0),
.io_rsp_data (32'b0),
.io_rsp_tag (`CORE_REQ_TAG_WIDTH'(0)),
.io_rsp_tag (`DCORE_TAG_WIDTH'(0)),
.io_rsp_ready (),
// status

View file

@ -25,14 +25,6 @@ module VX_back_end #(
output wire ebreak
);
VX_wb_if wb_temp_if();
assign writeback_if.wb = wb_temp_if.wb;
assign writeback_if.rd = wb_temp_if.rd;
assign writeback_if.data = wb_temp_if.data;
assign writeback_if.valid = wb_temp_if.valid;
assign writeback_if.warp_num = wb_temp_if.warp_num;
assign writeback_if.pc = wb_temp_if.pc;
wire no_slot_mem;
wire no_slot_exec;
@ -57,7 +49,7 @@ module VX_back_end #(
.clk (clk),
.reset (reset),
.schedule_delay (schedule_delay),
.writeback_if (wb_temp_if),
.writeback_if (writeback_if),
.bckE_req_if (bckE_req_if),
// New
.exec_unit_req_if (exec_unit_req_if),
@ -109,7 +101,7 @@ module VX_back_end #(
.reset (reset),
.no_slot_csr (no_slot_csr),
.csr_req_if (csr_req_if),
.writeback_if (wb_temp_if),
.writeback_if (writeback_if),
.csr_wb_if (csr_wb_if),
.stall_gpr_csr (stall_gpr_csr)
);
@ -121,7 +113,7 @@ module VX_back_end #(
.inst_exec_wb_if(inst_exec_wb_if),
.csr_wb_if (csr_wb_if),
.writeback_if (wb_temp_if),
.writeback_if (writeback_if),
.no_slot_mem (no_slot_mem),
.no_slot_exec (no_slot_exec),
.no_slot_csr (no_slot_csr)

View file

@ -28,15 +28,15 @@
`endif
`ifndef NUM_CSRS
`define NUM_CSRS 2
`define NUM_CSRS 1024
`endif
`ifndef STARTUP_ADDR
`define STARTUP_ADDR 32'h80000000
`endif
`ifndef SHARED_MEM_TOP_ADDR
`define SHARED_MEM_TOP_ADDR 8'hFE
`ifndef SHARED_MEM_BASE_ADDR
`define SHARED_MEM_BASE_ADDR 32'hFE000000
`endif
`ifndef STACK_BASE_ADDR
@ -48,7 +48,7 @@
`endif
`ifndef IO_BUS_ADDR_COUT
`define IO_BUS_ADDR_COUT 32'hFFFFFFFC
`define IO_BUS_ADDR_COUT 30'h3FFFFFFF
`endif
`ifndef L2_ENABLE
@ -61,7 +61,7 @@
`define CSR_LTID 12'h020
`define CSR_LWID 12'h021
`define CSR_GTID 12'h022
`define CSR_GTID 12'hF14 // reserved Hardware Thread ID (mhartid)
`define CSR_GWID 12'h023
`define CSR_GCID 12'h024
`define CSR_NT 12'h025
@ -101,8 +101,8 @@
`endif
// Core Request Queue Size
`ifndef DREQQ_SIZE
`define DREQQ_SIZE `NUM_WARPS
`ifndef DCREQ_SIZE
`define DCREQ_SIZE `NUM_WARPS
`endif
// Miss Reserv Queue Knob
@ -122,7 +122,7 @@
// Core Writeback Queue Size
`ifndef DCWBQ_SIZE
`define DCWBQ_SIZE `DREQQ_SIZE
`define DCWBQ_SIZE `DCREQ_SIZE
`endif
// Dram Writeback Queue Size
@ -132,7 +132,7 @@
// Dram Fill Req Queue Size
`ifndef DDFQQ_SIZE
`define DDFQQ_SIZE `DREQQ_SIZE
`define DDFQQ_SIZE `DCREQ_SIZE
`endif
// Prefetcher
@ -172,13 +172,13 @@
`endif
// Core Request Queue Size
`ifndef IREQQ_SIZE
`define IREQQ_SIZE `NUM_WARPS
`ifndef ICREQ_SIZE
`define ICREQ_SIZE `NUM_WARPS
`endif
// Miss Reserv Queue Knob
`ifndef IMRVQ_SIZE
`define IMRVQ_SIZE `IREQQ_SIZE
`define IMRVQ_SIZE `ICREQ_SIZE
`endif
// Dram Fill Rsp Queue Size
@ -188,7 +188,7 @@
// Core Writeback Queue Size
`ifndef ICWBQ_SIZE
`define ICWBQ_SIZE `IREQQ_SIZE
`define ICWBQ_SIZE `ICREQ_SIZE
`endif
// Dram Writeback Queue Size
@ -198,7 +198,7 @@
// Dram Fill Req Queue Size
`ifndef IDFQQ_SIZE
`define IDFQQ_SIZE `IREQQ_SIZE
`define IDFQQ_SIZE `ICREQ_SIZE
`endif
// Prefetcher
@ -238,42 +238,13 @@
`endif
// Core Request Queue Size
`ifndef SREQQ_SIZE
`define SREQQ_SIZE `NUM_WARPS
`endif
// Miss Reserv Queue Knob
`ifndef SMRVQ_SIZE
`define SMRVQ_SIZE `SREQQ_SIZE
`endif
// Dram Fill Rsp Queue Size
`ifndef SDFPQ_SIZE
`define SDFPQ_SIZE 0
`ifndef SCREQ_SIZE
`define SCREQ_SIZE `NUM_WARPS
`endif
// Core Writeback Queue Size
`ifndef SCWBQ_SIZE
`define SCWBQ_SIZE `SREQQ_SIZE
`endif
// Dram Writeback Queue Size
`ifndef SDWBQ_SIZE
`define SDWBQ_SIZE 16
`endif
// Dram Fill Req Queue Size
`ifndef SDFQQ_SIZE
`define SDFQQ_SIZE 16
`endif
// Prefetcher
`ifndef SPRFQ_SIZE
`define SPRFQ_SIZE 4
`endif
`ifndef SPRFQ_STRIDE
`define SPRFQ_STRIDE 0
`define SCWBQ_SIZE `SCREQ_SIZE
`endif
// ======================== L2cache Configurable Knobs ========================
@ -304,8 +275,8 @@
`endif
// Core Request Queue Size
`ifndef L2REQQ_SIZE
`define L2REQQ_SIZE 32
`ifndef L2CREQ_SIZE
`define L2CREQ_SIZE 32
`endif
// Miss Reserv Queue Knob
@ -325,7 +296,7 @@
// Core Writeback Queue Size
`ifndef L2CWBQ_SIZE
`define L2CWBQ_SIZE `L2REQQ_SIZE
`define L2CWBQ_SIZE `L2CREQ_SIZE
`endif
// Dram Writeback Queue Size
@ -335,7 +306,7 @@
// Dram Fill Req Queue Size
`ifndef L2DFQQ_SIZE
`define L2DFQQ_SIZE `L2REQQ_SIZE
`define L2DFQQ_SIZE `L2CREQ_SIZE
`endif
// Prefetcher
@ -375,13 +346,13 @@
`endif
// Core Request Queue Size
`ifndef L3REQQ_SIZE
`define L3REQQ_SIZE 32
`ifndef L3CREQ_SIZE
`define L3CREQ_SIZE 32
`endif
// Miss Reserv Queue Knob
`ifndef L3MRVQ_SIZE
`define L3MRVQ_SIZE `L3REQQ_SIZE
`define L3MRVQ_SIZE `L3CREQ_SIZE
`endif
// Dram Fill Rsp Queue Size
@ -396,7 +367,7 @@
// Core Writeback Queue Size
`ifndef L3CWBQ_SIZE
`define L3CWBQ_SIZE `L3REQQ_SIZE
`define L3CWBQ_SIZE `L3CREQ_SIZE
`endif
// Dram Writeback Queue Size
@ -406,7 +377,7 @@
// Dram Fill Req Queue Size
`ifndef L3DFQQ_SIZE
`define L3DFQQ_SIZE `L3REQQ_SIZE
`define L3DFQQ_SIZE `L3CREQ_SIZE
`endif
// Prefetcher

View file

@ -22,15 +22,15 @@ module VX_dcache_io_arb (
VX_cache_core_rsp_if core_rsp_if
);
assign dcache_core_req_if.core_req_valid = core_req_if.core_req_valid & {`NUM_THREADS{~io_select}};
assign dcache_core_req_if.core_req_read = core_req_if.core_req_read;
assign dcache_core_req_if.core_req_write = core_req_if.core_req_write;
assign dcache_core_req_if.core_req_rw = core_req_if.core_req_rw;
assign dcache_core_req_if.core_req_byteen= core_req_if.core_req_byteen;
assign dcache_core_req_if.core_req_addr = core_req_if.core_req_addr;
assign dcache_core_req_if.core_req_data = core_req_if.core_req_data;
assign dcache_core_req_if.core_req_tag = core_req_if.core_req_tag;
assign io_core_req_if.core_req_valid = core_req_if.core_req_valid & {`NUM_THREADS{io_select}};
assign io_core_req_if.core_req_read = core_req_if.core_req_read;
assign io_core_req_if.core_req_write = core_req_if.core_req_write;
assign io_core_req_if.core_req_rw = core_req_if.core_req_rw;
assign io_core_req_if.core_req_byteen= core_req_if.core_req_byteen;
assign io_core_req_if.core_req_addr = core_req_if.core_req_addr;
assign io_core_req_if.core_req_data = core_req_if.core_req_data;
assign io_core_req_if.core_req_tag = core_req_if.core_req_tag;

View file

@ -115,7 +115,7 @@ module VX_decode(
assign is_split = is_gpgpu && (func3 == 2); // Goes to BE
assign is_join = is_gpgpu && (func3 == 3); // Doesn't go to BE
assign join_if.is_join = is_join;
assign join_if.is_join = is_join && (| in_valid);
assign join_if.join_warp_num = in_warp_num;
assign frE_to_bckE_req_if.is_wspawn = is_wspawn;

View file

@ -10,6 +10,14 @@
///////////////////////////////////////////////////////////////////////////////
`ifndef NDEBUG
`define DEBUG_BLOCK(x) /* verilator lint_off UNUSED */ \
x \
/* verilator lint_on UNUSED */
`else
`define DEBUG_BLOCK(x)
`endif
`define DEBUG_BEGIN /* verilator lint_off UNUSED */
`define DEBUG_END /* verilator lint_on UNUSED */
@ -44,6 +52,8 @@
`define MIN(x, y) ((x < y) ? (x) : (y))
`define MAX(x, y) ((x > y) ? (x) : (y))
`define UP(x) (((x) > 0) ? x : 1)
///////////////////////////////////////////////////////////////////////////////
`define NW_BITS (`LOG2UP(`NUM_WARPS))
@ -61,11 +71,11 @@
///////////////////////////////////////////////////////////////////////////////
`define BYTE_EN_NO 3'h7
`define BYTE_EN_LB 3'h0
`define BYTE_EN_LH 3'h1
`define BYTE_EN_LW 3'h2
`define BYTE_EN_HB 3'h4
`define BYTE_EN_HH 3'h5
`define BYTE_EN_SB 3'h0
`define BYTE_EN_SH 3'h1
`define BYTE_EN_SW 3'h2
`define BYTE_EN_UB 3'h4
`define BYTE_EN_UH 3'h5
`define BYTE_EN_BITS 3
///////////////////////////////////////////////////////////////////////////////
@ -126,16 +136,29 @@
///////////////////////////////////////////////////////////////////////////////
// Core request tag width pc, wb, rd, warp_num
`define CORE_REQ_TAG_WIDTH (32 + 2 + 5 + `NW_BITS)
// TAG sharing enable rd, warp_num
`define CORE_TAG_ID_BITS (5 + `NW_BITS)
`ifndef NDEBUG
// pc, wb, rd, warp_num
`define DEBUG_CORE_REQ_MDATA_WIDTH (32 + 2 + 5 + `NW_BITS)
`else
`define DEBUG_CORE_REQ_MDATA_WIDTH 0
`endif
////////////////////////// Dcache Configurable Knobs //////////////////////////
// Cache ID
`define DCACHE_ID (((`L3_ENABLE && `L2_ENABLE) ? 2 : `L2_ENABLE ? 1 : 0) + (CORE_ID * 3) + 0)
// Core request address bits
`define DCORE_ADDR_WIDTH (32-`CLOG2(`DWORD_SIZE))
// Core request byte enable bits
`define DCORE_BYTEEN_WIDTH `DWORD_SIZE
// TAG sharing enable
`define DCORE_TAG_ID_BITS `LOG2UP(`DCREQ_SIZE)
// Core request tag bits
`define DCORE_TAG_WIDTH (`DEBUG_CORE_REQ_MDATA_WIDTH + `DCORE_TAG_ID_BITS)
// DRAM request data bits
`define DDRAM_LINE_WIDTH (`DBANK_LINE_SIZE * 8)
@ -143,6 +166,9 @@
// DRAM request address bits
`define DDRAM_ADDR_WIDTH (32 - `CLOG2(`DBANK_LINE_SIZE))
// DRAM byte enable bits
`define DDRAM_BYTEEN_WIDTH `DBANK_LINE_SIZE
// DRAM request tag bits
`define DDRAM_TAG_WIDTH `DDRAM_ADDR_WIDTH
@ -157,12 +183,27 @@
// Cache ID
`define ICACHE_ID (((`L3_ENABLE && `L2_ENABLE) ? 2 : `L2_ENABLE ? 1 : 0) + (CORE_ID * 3) + 1)
// Core request address bits
`define ICORE_ADDR_WIDTH (32-`CLOG2(`IWORD_SIZE))
// Core request byte enable bits
`define ICORE_BYTEEN_WIDTH `DWORD_SIZE
// TAG sharing enable
`define ICORE_TAG_ID_BITS `LOG2UP(`ICREQ_SIZE)
// Core request tag bits
`define ICORE_TAG_WIDTH (`DEBUG_CORE_REQ_MDATA_WIDTH + `ICORE_TAG_ID_BITS)
// DRAM request data bits
`define IDRAM_LINE_WIDTH (`IBANK_LINE_SIZE * 8)
// DRAM request address bits
`define IDRAM_ADDR_WIDTH (32 - `CLOG2(`IBANK_LINE_SIZE))
// DRAM byte enable bits
`define IDRAM_BYTEEN_WIDTH `IBANK_LINE_SIZE
// DRAM request tag bits
`define IDRAM_TAG_WIDTH `IDRAM_ADDR_WIDTH
@ -174,8 +215,8 @@
// Cache ID
`define SCACHE_ID (((`L3_ENABLE && `L2_ENABLE) ? 2 : `L2_ENABLE ? 1 : 0) + (CORE_ID * 3) + 3)
// DRAM request data bits
`define SDRAM_LINE_WIDTH (`SBANK_LINE_SIZE * 8)
// Number of Word requests per cycle {1, 2, 4, 8, ...}
`define SNUM_REQUESTS `NUM_THREADS
// DRAM request address bits
`define SDRAM_ADDR_WIDTH (32 - `CLOG2(`SBANK_LINE_SIZE))
@ -197,11 +238,14 @@
// DRAM request address bits
`define L2DRAM_ADDR_WIDTH (32 - `CLOG2(`L2BANK_LINE_SIZE))
// DRAM byte enable bits
`define L2DRAM_BYTEEN_WIDTH (`L2_ENABLE ? `L2BANK_LINE_SIZE : `DDRAM_BYTEEN_WIDTH)
// DRAM request tag bits
`define L2DRAM_TAG_WIDTH (`L2_ENABLE ? `L2DRAM_ADDR_WIDTH : (`L2DRAM_ADDR_WIDTH+`CLOG2(`NUM_CORES*2)))
// Snoop request tag bits
`define L2SNP_TAG_WIDTH ((`NUM_CLUSTERS > 1) ? `LOG2UP(`L3SNRQ_SIZE) : `L3SNP_TAG_WIDTH)
`define L2SNP_TAG_WIDTH (`L3_ENABLE ? `LOG2UP(`L3SNRQ_SIZE) : `L3SNP_TAG_WIDTH)
// Number of Word requests per cycle {1, 2, 4, 8, ...}
`define L2NUM_REQUESTS (2*`NUM_CORES)
@ -217,8 +261,11 @@
// DRAM request address bits
`define L3DRAM_ADDR_WIDTH (32 - `CLOG2(`L3BANK_LINE_SIZE))
// DRAM byte enable bits
`define L3DRAM_BYTEEN_WIDTH (`L3_ENABLE ? `L3BANK_LINE_SIZE : `L2DRAM_BYTEEN_WIDTH)
// DRAM request tag bits
`define L3DRAM_TAG_WIDTH ((`NUM_CLUSTERS > 1) ? `L3DRAM_ADDR_WIDTH : `L2DRAM_TAG_WIDTH)
`define L3DRAM_TAG_WIDTH (`L3_ENABLE ? `L3DRAM_ADDR_WIDTH : `L2DRAM_TAG_WIDTH)
// Snoop request tag bits
`define L3SNP_TAG_WIDTH 16

View file

@ -25,21 +25,21 @@ module VX_dmem_ctrl # (
VX_cache_dram_rsp_if icache_dram_rsp_if
);
VX_cache_core_req_if #(
.NUM_REQUESTS(`DNUM_REQUESTS),
.WORD_SIZE(`DWORD_SIZE),
.CORE_TAG_WIDTH(`CORE_REQ_TAG_WIDTH),
.CORE_TAG_ID_BITS(`CORE_TAG_ID_BITS)
.NUM_REQUESTS (`DNUM_REQUESTS),
.WORD_SIZE (`DWORD_SIZE),
.CORE_TAG_WIDTH (`DCORE_TAG_WIDTH),
.CORE_TAG_ID_BITS (`DCORE_TAG_ID_BITS)
) dcache_core_req_qual_if(), smem_core_req_if();
VX_cache_core_rsp_if #(
.NUM_REQUESTS(`DNUM_REQUESTS),
.WORD_SIZE(`DWORD_SIZE),
.CORE_TAG_WIDTH(`CORE_REQ_TAG_WIDTH),
.CORE_TAG_ID_BITS(`CORE_TAG_ID_BITS)
.NUM_REQUESTS (`DNUM_REQUESTS),
.WORD_SIZE (`DWORD_SIZE),
.CORE_TAG_WIDTH (`DCORE_TAG_WIDTH),
.CORE_TAG_ID_BITS (`DCORE_TAG_ID_BITS)
) dcache_core_rsp_qual_if(), smem_core_rsp_if();
// use "case equality" to handle uninitialized entry
wire smem_select = ((dcache_core_req_if.core_req_addr[0][31:24] == `SHARED_MEM_TOP_ADDR) === 1'b1);
wire smem_select = ((dcache_core_req_if.core_req_addr[0] >= `BYTE_TO_WORD_ADDR(`SHARED_MEM_BASE_ADDR, `DWORD_SIZE)) === 1'b1);
VX_dcache_io_arb dcache_io_arb (
.io_select (smem_select),
@ -59,20 +59,20 @@ module VX_dmem_ctrl # (
.WORD_SIZE (`SWORD_SIZE),
.NUM_REQUESTS (`SNUM_REQUESTS),
.STAGE_1_CYCLES (`SSTAGE_1_CYCLES),
.REQQ_SIZE (`SREQQ_SIZE),
.MRVQ_SIZE (`SMRVQ_SIZE),
.DFPQ_SIZE (`SDFPQ_SIZE),
.CREQ_SIZE (`SCREQ_SIZE),
.MRVQ_SIZE (1),
.DFPQ_SIZE (0),
.SNRQ_SIZE (0),
.CWBQ_SIZE (`SCWBQ_SIZE),
.DWBQ_SIZE (`SDWBQ_SIZE),
.DFQQ_SIZE (`SDFQQ_SIZE),
.PRFQ_SIZE (`SPRFQ_SIZE),
.PRFQ_STRIDE (`SPRFQ_STRIDE),
.DWBQ_SIZE (0),
.DFQQ_SIZE (0),
.PRFQ_SIZE (0),
.PRFQ_STRIDE (0),
.SNOOP_FORWARDING (0),
.DRAM_ENABLE (0),
.WRITE_ENABLE (1),
.CORE_TAG_WIDTH (`CORE_REQ_TAG_WIDTH),
.CORE_TAG_ID_BITS (`CORE_TAG_ID_BITS),
.CORE_TAG_WIDTH (`DCORE_TAG_WIDTH),
.CORE_TAG_ID_BITS (`DCORE_TAG_ID_BITS),
.DRAM_TAG_WIDTH (`SDRAM_TAG_WIDTH)
) gpu_smem (
.clk (clk),
@ -80,8 +80,8 @@ module VX_dmem_ctrl # (
// Core request
.core_req_valid (smem_core_req_if.core_req_valid),
.core_req_read (smem_core_req_if.core_req_read),
.core_req_write (smem_core_req_if.core_req_write),
.core_req_rw (smem_core_req_if.core_req_rw),
.core_req_byteen (smem_core_req_if.core_req_byteen),
.core_req_addr (smem_core_req_if.core_req_addr),
.core_req_data (smem_core_req_if.core_req_data),
.core_req_tag (smem_core_req_if.core_req_tag),
@ -94,21 +94,22 @@ module VX_dmem_ctrl # (
.core_rsp_ready (smem_core_rsp_if.core_rsp_ready),
// DRAM request
`UNUSED_PIN (dram_req_read),
`UNUSED_PIN (dram_req_write),
`UNUSED_PIN (dram_req_valid),
`UNUSED_PIN (dram_req_rw),
`UNUSED_PIN (dram_req_byteen),
`UNUSED_PIN (dram_req_addr),
`UNUSED_PIN (dram_req_data),
`UNUSED_PIN (dram_req_tag),
.dram_req_ready (1'b0),
.dram_req_ready (0),
// DRAM response
.dram_rsp_valid (1'b0),
.dram_rsp_valid (0),
.dram_rsp_data (0),
.dram_rsp_tag (`SDRAM_TAG_WIDTH'(0)),
.dram_rsp_tag (0),
`UNUSED_PIN (dram_rsp_ready),
// Snoop request
.snp_req_valid (1'b0),
.snp_req_valid (0),
.snp_req_addr (0),
.snp_req_tag (0),
`UNUSED_PIN (snp_req_ready),
@ -116,7 +117,7 @@ module VX_dmem_ctrl # (
// Snoop response
`UNUSED_PIN (snp_rsp_valid),
`UNUSED_PIN (snp_rsp_tag),
.snp_rsp_ready (1'b0),
.snp_rsp_ready (0),
// Snoop forward out
`UNUSED_PIN (snp_fwdout_valid),
@ -138,7 +139,7 @@ module VX_dmem_ctrl # (
.WORD_SIZE (`DWORD_SIZE),
.NUM_REQUESTS (`DNUM_REQUESTS),
.STAGE_1_CYCLES (`DSTAGE_1_CYCLES),
.REQQ_SIZE (`DREQQ_SIZE),
.CREQ_SIZE (`DCREQ_SIZE),
.MRVQ_SIZE (`DMRVQ_SIZE),
.DFPQ_SIZE (`DDFPQ_SIZE),
.SNRQ_SIZE (`DSNRQ_SIZE),
@ -150,8 +151,8 @@ module VX_dmem_ctrl # (
.SNOOP_FORWARDING (0),
.DRAM_ENABLE (1),
.WRITE_ENABLE (1),
.CORE_TAG_WIDTH (`CORE_REQ_TAG_WIDTH),
.CORE_TAG_ID_BITS (`CORE_TAG_ID_BITS),
.CORE_TAG_WIDTH (`DCORE_TAG_WIDTH),
.CORE_TAG_ID_BITS (`DCORE_TAG_ID_BITS),
.DRAM_TAG_WIDTH (`DDRAM_TAG_WIDTH),
.SNP_REQ_TAG_WIDTH (`DSNP_TAG_WIDTH)
) gpu_dcache (
@ -160,8 +161,8 @@ module VX_dmem_ctrl # (
// Core req
.core_req_valid (dcache_core_req_qual_if.core_req_valid),
.core_req_read (dcache_core_req_qual_if.core_req_read),
.core_req_write (dcache_core_req_qual_if.core_req_write),
.core_req_rw (dcache_core_req_qual_if.core_req_rw),
.core_req_byteen (dcache_core_req_qual_if.core_req_byteen),
.core_req_addr (dcache_core_req_qual_if.core_req_addr),
.core_req_data (dcache_core_req_qual_if.core_req_data),
.core_req_tag (dcache_core_req_qual_if.core_req_tag),
@ -174,8 +175,9 @@ module VX_dmem_ctrl # (
.core_rsp_ready (dcache_core_rsp_qual_if.core_rsp_ready),
// DRAM request
.dram_req_read (dcache_dram_req_if.dram_req_read),
.dram_req_write (dcache_dram_req_if.dram_req_write),
.dram_req_valid (dcache_dram_req_if.dram_req_valid),
.dram_req_rw (dcache_dram_req_if.dram_req_rw),
.dram_req_byteen (dcache_dram_req_if.dram_req_byteen),
.dram_req_addr (dcache_dram_req_if.dram_req_addr),
.dram_req_data (dcache_dram_req_if.dram_req_data),
.dram_req_tag (dcache_dram_req_if.dram_req_tag),
@ -218,7 +220,7 @@ module VX_dmem_ctrl # (
.WORD_SIZE (`IWORD_SIZE),
.NUM_REQUESTS (`INUM_REQUESTS),
.STAGE_1_CYCLES (`ISTAGE_1_CYCLES),
.REQQ_SIZE (`IREQQ_SIZE),
.CREQ_SIZE (`ICREQ_SIZE),
.MRVQ_SIZE (`IMRVQ_SIZE),
.DFPQ_SIZE (`IDFPQ_SIZE),
.SNRQ_SIZE (0),
@ -230,8 +232,8 @@ module VX_dmem_ctrl # (
.SNOOP_FORWARDING (0),
.DRAM_ENABLE (1),
.WRITE_ENABLE (0),
.CORE_TAG_WIDTH (`CORE_REQ_TAG_WIDTH),
.CORE_TAG_ID_BITS (`CORE_TAG_ID_BITS),
.CORE_TAG_WIDTH (`DCORE_TAG_WIDTH),
.CORE_TAG_ID_BITS (`DCORE_TAG_ID_BITS),
.DRAM_TAG_WIDTH (`IDRAM_TAG_WIDTH)
) gpu_icache (
.clk (clk),
@ -239,8 +241,8 @@ module VX_dmem_ctrl # (
// Core request
.core_req_valid (icache_core_req_if.core_req_valid),
.core_req_read (icache_core_req_if.core_req_read),
.core_req_write (icache_core_req_if.core_req_write),
.core_req_rw (icache_core_req_if.core_req_rw),
.core_req_byteen (icache_core_req_if.core_req_byteen),
.core_req_addr (icache_core_req_if.core_req_addr),
.core_req_data (icache_core_req_if.core_req_data),
.core_req_tag (icache_core_req_if.core_req_tag),
@ -253,8 +255,9 @@ module VX_dmem_ctrl # (
.core_rsp_ready (icache_core_rsp_if.core_rsp_ready),
// DRAM Req
.dram_req_read (icache_dram_req_if.dram_req_read),
.dram_req_write (icache_dram_req_if.dram_req_write),
.dram_req_valid (icache_dram_req_if.dram_req_valid),
.dram_req_rw (icache_dram_req_if.dram_req_rw),
.dram_req_byteen (icache_dram_req_if.dram_req_byteen),
.dram_req_addr (icache_dram_req_if.dram_req_addr),
.dram_req_data (icache_dram_req_if.dram_req_data),
.dram_req_tag (icache_dram_req_if.dram_req_tag),
@ -267,7 +270,7 @@ module VX_dmem_ctrl # (
.dram_rsp_ready (icache_dram_rsp_if.dram_rsp_ready),
// Snoop request
.snp_req_valid (1'b0),
.snp_req_valid (0),
.snp_req_addr (0),
.snp_req_tag (0),
`UNUSED_PIN (snp_req_ready),
@ -275,7 +278,7 @@ module VX_dmem_ctrl # (
// Snoop response
`UNUSED_PIN (snp_rsp_valid),
`UNUSED_PIN (snp_rsp_tag),
.snp_rsp_ready (1'b0),
.snp_rsp_ready (0),
// Snoop forward out
`UNUSED_PIN (snp_fwdout_valid),

View file

@ -10,8 +10,9 @@ module VX_dram_arb #(
input wire reset,
// Core request
input wire [NUM_REQUESTS-1:0] core_req_read,
input wire [NUM_REQUESTS-1:0] core_req_write,
input wire [NUM_REQUESTS-1:0] core_req_valid,
input wire [NUM_REQUESTS-1:0] core_req_rw,
input wire [NUM_REQUESTS-1:0][BANK_LINE_SIZE-1:0] core_req_byteen,
input wire [NUM_REQUESTS-1:0][`DRAM_ADDR_WIDTH-1:0] core_req_addr,
input wire [NUM_REQUESTS-1:0][`BANK_LINE_WIDTH-1:0] core_req_data,
input wire [NUM_REQUESTS-1:0][CORE_TAG_WIDTH-1:0] core_req_tag,
@ -24,8 +25,9 @@ module VX_dram_arb #(
input wire [NUM_REQUESTS-1:0] core_rsp_ready,
// DRAM request
output wire dram_req_read,
output wire dram_req_write,
output wire dram_req_valid,
output wire dram_req_rw,
output wire [BANK_LINE_SIZE-1:0] dram_req_byteen,
output wire [`DRAM_ADDR_WIDTH-1:0] dram_req_addr,
output wire [`BANK_LINE_WIDTH-1:0] dram_req_data,
output wire [DRAM_TAG_WIDTH-1:0] dram_req_tag,
@ -47,8 +49,9 @@ module VX_dram_arb #(
end
end
assign dram_req_read = core_req_read [bus_req_sel];
assign dram_req_write = core_req_write [bus_req_sel];
assign dram_req_valid = core_req_valid [bus_req_sel];
assign dram_req_rw = core_req_rw [bus_req_sel];
assign dram_req_byteen= core_req_byteen [bus_req_sel];
assign dram_req_addr = core_req_addr [bus_req_sel];
assign dram_req_data = core_req_data [bus_req_sel];
assign dram_req_tag = {core_req_tag [bus_req_sel], (`REQS_BITS)'(bus_req_sel)};

View file

@ -21,24 +21,48 @@ module VX_icache_stage #(
wire valid_inst = (| fe_inst_meta_fi.valid);
`DEBUG_BEGIN
wire [`CORE_REQ_TAG_WIDTH-1:0] core_req_tag = icache_req_if.core_req_tag;
wire [`CORE_REQ_TAG_WIDTH-1:0] core_rsp_tag = icache_rsp_if.core_rsp_tag;
wire [`ICORE_TAG_WIDTH-1:0] mem_req_tag = icache_req_if.core_req_tag;
wire [`ICORE_TAG_WIDTH-1:0] mem_rsp_tag = icache_rsp_if.core_rsp_tag;
`DEBUG_END
wire [`LOG2UP(`ICREQ_SIZE)-1:0] mrq_write_addr, mrq_read_addr;
wire mrq_full;
wire mrq_push = (| icache_req_if.core_req_valid) && icache_req_if.core_req_ready;
wire mrq_pop = (| icache_rsp_if.core_rsp_valid) && icache_rsp_if.core_rsp_ready;
assign mrq_read_addr = icache_rsp_if.core_rsp_tag[0][`LOG2UP(`ICREQ_SIZE)-1:0];
VX_indexable_queue #(
.DATAW (32 + `NW_BITS),
.SIZE (`ICREQ_SIZE)
) mem_req_queue (
.clk (clk),
.reset (reset),
.write_data ({fe_inst_meta_fi.inst_pc, fe_inst_meta_fi.warp_num}),
.write_addr (mrq_write_addr),
.push (mrq_push),
.full (mrq_full),
.pop (mrq_pop),
.read_addr (mrq_read_addr),
.read_data ({fe_inst_meta_id.inst_pc, fe_inst_meta_id.warp_num})
);
// Icache Request
assign icache_req_if.core_req_valid = valid_inst;
assign icache_req_if.core_req_addr = fe_inst_meta_fi.inst_pc;
assign icache_req_if.core_req_data = 0;
assign icache_req_if.core_req_read = `BYTE_EN_LW;
assign icache_req_if.core_req_write = `BYTE_EN_NO;
assign icache_req_if.core_req_tag = {fe_inst_meta_fi.inst_pc, 2'b1, 5'b0, fe_inst_meta_fi.warp_num};
assign icache_req_if.core_req_valid = valid_inst && ~mrq_full;
assign icache_req_if.core_req_rw = 0;
assign icache_req_if.core_req_byteen = 0;
assign icache_req_if.core_req_addr = fe_inst_meta_fi.inst_pc[31:2];
assign icache_req_if.core_req_data = 0;
`IGNORE_WARNINGS_BEGIN
wire[4:0] rsp_rd;
wire[1:0] rsp_wb;
`IGNORE_WARNINGS_END
// Can't accept new request
assign icache_stage_delay = mrq_full || ~icache_req_if.core_req_ready;
assign {fe_inst_meta_id.inst_pc, rsp_wb, rsp_rd, fe_inst_meta_id.warp_num} = icache_rsp_if.core_rsp_tag;
`ifndef NDEBUG
assign icache_req_if.core_req_tag = {fe_inst_meta_fi.inst_pc, 2'b1, 5'b0, fe_inst_meta_fi.warp_num, mrq_write_addr};
`else
assign icache_req_if.core_req_tag = mrq_write_addr;
`endif
assign fe_inst_meta_id.instruction = icache_rsp_if.core_rsp_data[0];
assign fe_inst_meta_id.valid = icache_rsp_if.core_rsp_valid ? valid_threads[fe_inst_meta_id.warp_num] : 0;
@ -46,10 +70,7 @@ module VX_icache_stage #(
assign icache_stage_wid = fe_inst_meta_id.warp_num;
assign icache_stage_valids = fe_inst_meta_id.valid & {`NUM_THREADS{!icache_stage_delay}};
// Cache can't accept request
assign icache_stage_delay = ~icache_req_if.core_req_ready;
// Core can't accept response
// Can't accept new response
assign icache_rsp_if.core_rsp_ready = ~total_freeze;
always @(posedge clk) begin
@ -64,11 +85,11 @@ module VX_icache_stage #(
`ifdef DBG_PRINT_CORE_ICACHE
always_ff @(posedge clk) begin
if (icache_req_if.core_req_ready && icache_req_if.core_req_valid) begin
$display("%t: I%01d$ req: tag=%0h, pc=%0h, warp=%0d", $time, CORE_ID, icache_req_if.core_req_tag, fe_inst_meta_fi.inst_pc, fe_inst_meta_fi.warp_num);
if (icache_req_if.core_req_valid && icache_req_if.core_req_ready) begin
$display("%t: I%01d$ req: tag=%0h, pc=%0h, warp=%0d", $time, CORE_ID, mrq_write_addr, fe_inst_meta_fi.inst_pc, fe_inst_meta_fi.warp_num);
end
if (icache_rsp_if.core_rsp_ready && icache_rsp_if.core_rsp_valid) begin
$display("%t: I%01d$ rsp: tag=%0h, pc=%0h, warp=%0d, instr=%0h", $time, CORE_ID, icache_rsp_if.core_rsp_tag, fe_inst_meta_id.inst_pc, fe_inst_meta_id.warp_num, fe_inst_meta_id.instruction);
if (icache_rsp_if.core_rsp_valid && icache_rsp_if.core_rsp_ready) begin
$display("%t: I%01d$ rsp: tag=%0h, pc=%0h, warp=%0d, instr=%0h", $time, CORE_ID, mrq_read_addr, fe_inst_meta_id.inst_pc, fe_inst_meta_id.warp_num, fe_inst_meta_id.instruction);
end
end
`endif

View file

@ -47,33 +47,154 @@ module VX_lsu_unit #(
.out ({use_address, use_store_data , use_valid , use_mem_read , use_mem_write , use_rd , use_warp_num , use_wb , use_pc })
);
wire core_req_rw = (use_mem_write != `BYTE_EN_NO);
reg [3:0] wmask;
always @(*) begin
case (use_mem_write[1:0])
0: begin
wmask = 4'b0001;
end
1: begin
wmask = 4'b0011;
end
default : begin
wmask = 4'b1111;
end
endcase
end
genvar i;
wire [`NUM_THREADS-1:0][4:0] mem_req_offset;
wire [`NUM_THREADS-1:0][29:0] mem_req_addr;
wire [`NUM_THREADS-1:0][3:0] mem_req_byteen;
wire [`NUM_THREADS-1:0][31:0] mem_req_data;
wire [`NUM_THREADS-1:0][4:0] mem_rsp_offset;
wire[2:0] core_rsp_mem_read;
for (i = 0; i < `NUM_THREADS; ++i) begin
always @(*) begin
case (core_req_rw ? use_mem_write[1:0] : use_mem_read[1:0])
2'b0: begin
case (use_address[i][1:0])
1: mem_req_offset[i] = 8;
2: mem_req_offset[i] = 16;
3: mem_req_offset[i] = 24;
default : mem_req_offset[i] = 0;
endcase
end
2'b1: begin
case (use_address[i][1:0])
2: mem_req_offset[i] = 16;
default : mem_req_offset[i] = 0;
endcase
end
default : begin
mem_req_offset[i] = 0;
end
endcase
end
assign mem_req_addr[i] = use_address[i][31:2];
assign mem_req_byteen[i] = (wmask << use_address[i][1:0]);
assign mem_req_data[i] = (use_store_data[i] << mem_req_offset[i]);
end
reg [`NUM_THREADS-1:0] mem_rsp_mask[`DCREQ_SIZE-1:0];
wire [`LOG2UP(`DCREQ_SIZE)-1:0] mrq_write_addr, mrq_read_addr;
wire mrq_full;
wire mrq_push = (0 == core_req_rw) && (| dcache_req_if.core_req_valid) && dcache_req_if.core_req_ready;
wire mrq_pop_part = (| dcache_rsp_if.core_rsp_valid) && dcache_rsp_if.core_rsp_ready;
assign mrq_read_addr = dcache_rsp_if.core_rsp_tag[0][`LOG2UP(`DCREQ_SIZE)-1:0];
wire [`NUM_THREADS-1:0] mem_rsp_mask_next = mem_rsp_mask[mrq_read_addr] & ~dcache_rsp_if.core_rsp_valid;
wire mrq_pop = mrq_pop_part && (0 == mem_rsp_mask_next);
always @(posedge clk) begin
if (reset) begin
//--
end else begin
if (mrq_push) begin
mem_rsp_mask[mrq_write_addr] <= use_valid;
end
if (mrq_pop_part) begin
mem_rsp_mask[mrq_read_addr] <= mem_rsp_mask_next;
end
end
end
VX_indexable_queue #(
.DATAW (32 + 2 + (`NUM_THREADS * 5) + `BYTE_EN_BITS + 5 + `NW_BITS),
.SIZE (`DCREQ_SIZE)
) mem_req_queue (
.clk (clk),
.reset (reset),
.write_data ({use_pc, use_wb, mem_req_offset, use_mem_read, use_rd, use_warp_num}),
.write_addr (mrq_write_addr),
.push (mrq_push),
.full (mrq_full),
.pop (mrq_pop),
.read_addr (mrq_read_addr),
.read_data ({mem_wb_if.pc, mem_wb_if.wb, mem_rsp_offset, core_rsp_mem_read, mem_wb_if.rd, mem_wb_if.warp_num})
);
// Core Request
assign dcache_req_if.core_req_valid = use_valid;
assign dcache_req_if.core_req_read = {`NUM_THREADS{use_mem_read}};
assign dcache_req_if.core_req_write = {`NUM_THREADS{use_mem_write}};
assign dcache_req_if.core_req_addr = use_address;
assign dcache_req_if.core_req_data = use_store_data;
assign dcache_req_if.core_req_tag = {use_pc, use_wb, use_rd, use_warp_num};
assign delay = ~dcache_req_if.core_req_ready;
assign dcache_req_if.core_req_valid = use_valid & {`NUM_THREADS{~mrq_full}};
assign dcache_req_if.core_req_rw = {`NUM_THREADS{core_req_rw}};
assign dcache_req_if.core_req_byteen= mem_req_byteen;
assign dcache_req_if.core_req_addr = mem_req_addr;
assign dcache_req_if.core_req_data = mem_req_data;
`ifndef NDEBUG
assign dcache_req_if.core_req_tag = {use_pc, use_wb, use_rd, use_warp_num, mrq_write_addr};
`else
assign dcache_req_if.core_req_tag = mrq_write_addr;
`endif
// Can't accept new request
assign delay = mrq_full || ~dcache_req_if.core_req_ready;
// Core Response
assign mem_wb_if.valid = dcache_rsp_if.core_rsp_valid;
assign mem_wb_if.data = dcache_rsp_if.core_rsp_data;
assign dcache_rsp_if.core_rsp_ready = ~no_slot_mem;
assign {mem_wb_if.pc, mem_wb_if.wb, mem_wb_if.rd, mem_wb_if.warp_num} = dcache_rsp_if.core_rsp_tag;
reg [`NUM_THREADS-1:0][31:0] core_rsp_data;
wire [`NUM_THREADS-1:0][31:0] rsp_data_shifted;
for (i = 0; i < `NUM_THREADS; ++i) begin
assign rsp_data_shifted[i] = (dcache_rsp_if.core_rsp_data[i] >> mem_rsp_offset[i]);
always @(*) begin
case (core_rsp_mem_read)
`BYTE_EN_SB: core_rsp_data[i] = rsp_data_shifted[i][7] ? (rsp_data_shifted[i] | 32'hFFFFFF00) : (rsp_data_shifted[i] & 32'h000000FF);
`BYTE_EN_SH: core_rsp_data[i] = rsp_data_shifted[i][15] ? (rsp_data_shifted[i] | 32'hFFFF0000) : (rsp_data_shifted[i] & 32'h0000FFFF);
`BYTE_EN_UB: core_rsp_data[i] = (rsp_data_shifted[i] & 32'h000000FF);
`BYTE_EN_UH: core_rsp_data[i] = (rsp_data_shifted[i] & 32'h0000FFFF);
default : core_rsp_data[i] = rsp_data_shifted[i];
endcase
end
end
assign mem_wb_if.valid = dcache_rsp_if.core_rsp_valid;
assign mem_wb_if.data = core_rsp_data;
// Can't accept new response
assign dcache_rsp_if.core_rsp_ready = ~no_slot_mem;
`ifdef DBG_PRINT_CORE_DCACHE
always_ff @(posedge clk) begin
if (dcache_req_if.core_req_ready && (| dcache_req_if.core_req_valid)) begin
$display("%t: D%01d$ req: valid=%b, addr=%0h, tag=%0h, r=%0d, w=%0d, pc=%0h, rd=%0d, warp=%0d, data=%0h", $time, CORE_ID, use_valid, use_address, dcache_req_if.core_req_tag, use_mem_read, use_mem_write, use_pc, use_rd, use_warp_num, use_store_data);
if ((| dcache_req_if.core_req_valid) && dcache_req_if.core_req_ready) begin
$display("%t: D%01d$ req: valid=%b, addr=%0h, tag=%0h, r=%0d, w=%0d, pc=%0h, rd=%0d, warp=%0d, byteen=%0h, data=%0h", $time, CORE_ID, use_valid, use_address, mrq_write_addr, use_mem_read, use_mem_write, use_pc, use_rd, use_warp_num, mem_req_byteen, mem_req_data);
end
if (dcache_rsp_if.core_rsp_ready && (| dcache_rsp_if.core_rsp_valid)) begin
$display("%t: D%01d$ rsp: valid=%b, tag=%0h, pc=%0h, rd=%0d, warp=%0d, data=%0h", $time, CORE_ID, mem_wb_if.valid, dcache_rsp_if.core_rsp_tag, mem_wb_if.pc, mem_wb_if.rd, mem_wb_if.warp_num, mem_wb_if.data);
if ((| dcache_rsp_if.core_rsp_valid) && dcache_rsp_if.core_rsp_ready) begin
$display("%t: D%01d$ rsp: valid=%b, tag=%0h, pc=%0h, rd=%0d, warp=%0d, data=%0h", $time, CORE_ID, mem_wb_if.valid, mrq_read_addr, mem_wb_if.pc, mem_wb_if.rd, mem_wb_if.warp_num, mem_wb_if.data);
end
end
`endif
endmodule
endmodule

View file

@ -14,12 +14,12 @@ module VX_scheduler (
);
reg[31:0] count_valid;
assign is_empty = count_valid == 0;
assign is_empty = (count_valid == 0);
reg[31:0][`NUM_THREADS-1:0] rename_table[`NUM_WARPS-1:0];
wire valid_wb = (writeback_if.wb != 0) && (| writeback_if.valid) && (writeback_if.rd != 0);
wire wb_inc = (bckE_req_if.wb != 0) && (bckE_req_if.rd != 0);
wire valid_wb = (| writeback_if.valid) && (writeback_if.wb != 0) && (writeback_if.rd != 0);
wire wb_inc = (| bckE_req_if.valid) && (bckE_req_if.wb != 0) && (bckE_req_if.rd != 0);
wire rs1_rename = (rename_table[bckE_req_if.warp_num][bckE_req_if.rs1] != 0);
wire rs2_rename = (rename_table[bckE_req_if.warp_num][bckE_req_if.rs2] != 0);
@ -50,9 +50,7 @@ module VX_scheduler (
integer i, w;
wire[`NUM_THREADS-1:0] old_rename_mask = rename_table[writeback_if.warp_num][writeback_if.rd];
wire[`NUM_THREADS-1:0] invalidate_mask = ~writeback_if.valid;
wire[`NUM_THREADS-1:0] valid_wb_new_mask = old_rename_mask & invalidate_mask;
wire [`NUM_THREADS-1:0] valid_wb_new_mask = rename_table[writeback_if.warp_num][writeback_if.rd] & ~writeback_if.valid;
always @(posedge clk) begin
if (reset) begin
@ -63,21 +61,16 @@ module VX_scheduler (
end
end else begin
if (valid_wb) begin
rename_table[writeback_if.warp_num][writeback_if.rd] <= valid_wb_new_mask;
rename_table[writeback_if.warp_num][writeback_if.rd] <= valid_wb_new_mask;
if (0 == valid_wb_new_mask) begin
count_valid <= count_valid - 1;
end
end
if (!schedule_delay && wb_inc) begin
rename_table[bckE_req_if.warp_num][bckE_req_if.rd] <= bckE_req_if.valid;
end
if (valid_wb
&& (0 == (rename_table[writeback_if.warp_num][writeback_if.rd] & ~writeback_if.valid))) begin
count_valid <= count_valid - 1;
end
if (!schedule_delay && wb_inc) begin
count_valid <= count_valid + 1;
end
end
end
end

View file

@ -285,7 +285,7 @@ module VX_warp_sched (
// wire should_stall = stall || (jal && (warp_to_schedule == jal_warp_num)) || (branch_dir && (warp_to_schedule == branch_warp_num));
wire should_jal = (jal && (warp_to_schedule == jal_warp_num));
wire should_bra = (branch_dir && (warp_to_schedule == branch_warp_num));
wire should_bra = (branch_valid && branch_dir && (warp_to_schedule == branch_warp_num));
assign hazard = (should_jal || should_bra) && schedule;

View file

@ -20,23 +20,23 @@ module VX_writeback (
output wire no_slot_csr
);
VX_wb_if writeback_tmp_if();
VX_wb_if writeback_tmp_if();
wire exec_wb = (inst_exec_wb_if.wb != 0) && (| inst_exec_wb_if.valid);
wire mem_wb = (mem_wb_if.wb != 0) && (| mem_wb_if.valid);
wire csr_wb = (csr_wb_if.wb != 0) && (| csr_wb_if.valid);
assign no_slot_mem = mem_wb && (exec_wb || csr_wb);
assign no_slot_csr = csr_wb && (exec_wb);
assign no_slot_csr = csr_wb && exec_wb;
assign no_slot_exec = 0;
assign writeback_tmp_if.data = exec_wb ? inst_exec_wb_if.data :
csr_wb ? csr_wb_if.data :
mem_wb ? mem_wb_if.data :
mem_wb ? mem_wb_if.data :
0;
assign writeback_tmp_if.valid = exec_wb ? inst_exec_wb_if.valid :
csr_wb ? csr_wb_if.valid :
csr_wb ? csr_wb_if.valid :
mem_wb ? mem_wb_if.valid :
0;
@ -51,13 +51,13 @@ module VX_writeback (
0;
assign writeback_tmp_if.warp_num = exec_wb ? inst_exec_wb_if.warp_num :
csr_wb ? csr_wb_if.warp_num :
csr_wb ? csr_wb_if.warp_num :
mem_wb ? mem_wb_if.warp_num :
0;
assign writeback_tmp_if.pc = exec_wb ? inst_exec_wb_if.pc :
csr_wb ? 32'hdeadbeef :
mem_wb ? mem_wb_if.pc :
csr_wb ? 32'hdeadbeef :
mem_wb ? mem_wb_if.pc :
32'hdeadbeef;
wire zero = 0;

View file

@ -5,65 +5,67 @@ module Vortex #(
parameter CORE_ID = 0
) (
// Clock
input wire clk,
input wire reset,
input wire clk,
input wire reset,
// DRAM Dcache request
output wire D_dram_req_read,
output wire D_dram_req_write,
output wire [`DDRAM_ADDR_WIDTH-1:0] D_dram_req_addr,
output wire [`DDRAM_LINE_WIDTH-1:0] D_dram_req_data,
output wire [`DDRAM_TAG_WIDTH-1:0] D_dram_req_tag,
input wire D_dram_req_ready,
output wire D_dram_req_valid,
output wire D_dram_req_rw,
output wire [`DDRAM_BYTEEN_WIDTH-1:0] D_dram_req_byteen,
output wire [`DDRAM_ADDR_WIDTH-1:0] D_dram_req_addr,
output wire [`DDRAM_LINE_WIDTH-1:0] D_dram_req_data,
output wire [`DDRAM_TAG_WIDTH-1:0] D_dram_req_tag,
input wire D_dram_req_ready,
// DRAM Dcache reponse
input wire D_dram_rsp_valid,
input wire [`DDRAM_LINE_WIDTH-1:0] D_dram_rsp_data,
input wire [`DDRAM_TAG_WIDTH-1:0] D_dram_rsp_tag,
output wire D_dram_rsp_ready,
input wire D_dram_rsp_valid,
input wire [`DDRAM_LINE_WIDTH-1:0] D_dram_rsp_data,
input wire [`DDRAM_TAG_WIDTH-1:0] D_dram_rsp_tag,
output wire D_dram_rsp_ready,
// DRAM Icache request
output wire I_dram_req_read,
output wire I_dram_req_write,
output wire [`IDRAM_ADDR_WIDTH-1:0] I_dram_req_addr,
output wire [`IDRAM_LINE_WIDTH-1:0] I_dram_req_data,
output wire [`IDRAM_TAG_WIDTH-1:0] I_dram_req_tag,
input wire I_dram_req_ready,
output wire I_dram_req_valid,
output wire I_dram_req_rw,
output wire [`IDRAM_BYTEEN_WIDTH-1:0] I_dram_req_byteen,
output wire [`IDRAM_ADDR_WIDTH-1:0] I_dram_req_addr,
output wire [`IDRAM_LINE_WIDTH-1:0] I_dram_req_data,
output wire [`IDRAM_TAG_WIDTH-1:0] I_dram_req_tag,
input wire I_dram_req_ready,
// DRAM Icache response
input wire I_dram_rsp_valid,
input wire [`IDRAM_LINE_WIDTH-1:0] I_dram_rsp_data,
input wire [`IDRAM_TAG_WIDTH-1:0] I_dram_rsp_tag,
output wire I_dram_rsp_ready,
input wire I_dram_rsp_valid,
input wire [`IDRAM_LINE_WIDTH-1:0] I_dram_rsp_data,
input wire [`IDRAM_TAG_WIDTH-1:0] I_dram_rsp_tag,
output wire I_dram_rsp_ready,
// Snoop request
input wire snp_req_valid,
input wire [`DDRAM_ADDR_WIDTH-1:0] snp_req_addr,
input wire [`DSNP_TAG_WIDTH-1:0] snp_req_tag,
output wire snp_req_ready,
input wire snp_req_valid,
input wire [`DDRAM_ADDR_WIDTH-1:0] snp_req_addr,
input wire [`DSNP_TAG_WIDTH-1:0] snp_req_tag,
output wire snp_req_ready,
output wire snp_rsp_valid,
output wire [`DSNP_TAG_WIDTH-1:0] snp_rsp_tag,
input wire snp_rsp_ready,
output wire snp_rsp_valid,
output wire [`DSNP_TAG_WIDTH-1:0] snp_rsp_tag,
input wire snp_rsp_ready,
// I/O request
output wire io_req_read,
output wire io_req_write,
output wire[31:0] io_req_addr,
output wire[31:0] io_req_data,
output wire[`BYTE_EN_BITS-1:0] io_req_byteen,
output wire[`CORE_REQ_TAG_WIDTH-1:0] io_req_tag,
input wire io_req_ready,
output wire io_req_valid,
output wire io_req_rw,
output wire[`DCORE_BYTEEN_WIDTH-1:0] io_req_byteen,
output wire[`DCORE_ADDR_WIDTH-1:0] io_req_addr,
output wire[31:0] io_req_data,
output wire[`DCORE_TAG_WIDTH-1:0] io_req_tag,
input wire io_req_ready,
// I/O response
input wire io_rsp_valid,
input wire[31:0] io_rsp_data,
input wire[`CORE_REQ_TAG_WIDTH-1:0] io_rsp_tag,
output wire io_rsp_ready,
input wire io_rsp_valid,
input wire[31:0] io_rsp_data,
input wire[`DCORE_TAG_WIDTH-1:0] io_rsp_tag,
output wire io_rsp_ready,
// Status
output wire busy,
output wire ebreak
output wire busy,
output wire ebreak
);
`DEBUG_BEGIN
wire scheduler_empty;
@ -78,15 +80,15 @@ module Vortex #(
VX_cache_core_req_if #(
.NUM_REQUESTS(`DNUM_REQUESTS),
.WORD_SIZE(`DWORD_SIZE),
.CORE_TAG_WIDTH(`CORE_REQ_TAG_WIDTH),
.CORE_TAG_ID_BITS(`CORE_TAG_ID_BITS)
.CORE_TAG_WIDTH(`DCORE_TAG_WIDTH),
.CORE_TAG_ID_BITS(`DCORE_TAG_ID_BITS)
) dcache_core_req_if(), io_core_req_if(), dcache_io_core_req_if();
VX_cache_core_rsp_if #(
.NUM_REQUESTS(`DNUM_REQUESTS),
.WORD_SIZE(`DWORD_SIZE),
.CORE_TAG_WIDTH(`CORE_REQ_TAG_WIDTH),
.CORE_TAG_ID_BITS(`CORE_TAG_ID_BITS)
.CORE_TAG_WIDTH(`DCORE_TAG_WIDTH),
.CORE_TAG_ID_BITS(`DCORE_TAG_ID_BITS)
) dcache_core_rsp_if(), io_core_rsp_if(), dcache_io_core_rsp_if();
VX_cache_dram_req_if #(
@ -100,8 +102,9 @@ module Vortex #(
.DRAM_TAG_WIDTH(`DDRAM_TAG_WIDTH)
) dcache_dram_rsp_if();
assign D_dram_req_write = dcache_dram_req_if.dram_req_write;
assign D_dram_req_read = dcache_dram_req_if.dram_req_read;
assign D_dram_req_valid = dcache_dram_req_if.dram_req_valid;
assign D_dram_req_rw = dcache_dram_req_if.dram_req_rw;
assign D_dram_req_byteen= dcache_dram_req_if.dram_req_byteen;
assign D_dram_req_addr = dcache_dram_req_if.dram_req_addr;
assign D_dram_req_data = dcache_dram_req_if.dram_req_data;
assign D_dram_req_tag = dcache_dram_req_if.dram_req_tag;
@ -112,11 +115,11 @@ module Vortex #(
assign dcache_dram_rsp_if.dram_rsp_tag = D_dram_rsp_tag;
assign D_dram_rsp_ready = dcache_dram_rsp_if.dram_rsp_ready;
assign io_req_read = (io_core_req_if.core_req_read[0] != `BYTE_EN_NO);
assign io_req_write = (io_core_req_if.core_req_write[0] != `BYTE_EN_NO);
assign io_req_valid = io_core_req_if.core_req_valid[0];
assign io_req_rw = io_core_req_if.core_req_rw[0];
assign io_req_byteen = io_core_req_if.core_req_byteen[0];
assign io_req_addr = io_core_req_if.core_req_addr[0];
assign io_req_data = io_core_req_if.core_req_data[0];
assign io_req_byteen = io_req_read ? io_core_req_if.core_req_read[0] : io_core_req_if.core_req_write[0];
assign io_req_tag = io_core_req_if.core_req_tag[0];
assign io_core_req_if.core_req_ready = io_req_ready;
@ -129,15 +132,15 @@ module Vortex #(
VX_cache_core_req_if #(
.NUM_REQUESTS(`INUM_REQUESTS),
.WORD_SIZE(`IWORD_SIZE),
.CORE_TAG_WIDTH(`CORE_REQ_TAG_WIDTH),
.CORE_TAG_ID_BITS(`CORE_TAG_ID_BITS)
.CORE_TAG_WIDTH(`DCORE_TAG_WIDTH),
.CORE_TAG_ID_BITS(`DCORE_TAG_ID_BITS)
) icache_core_req_if();
VX_cache_core_rsp_if #(
.NUM_REQUESTS(`INUM_REQUESTS),
.WORD_SIZE(`IWORD_SIZE),
.CORE_TAG_WIDTH(`CORE_REQ_TAG_WIDTH),
.CORE_TAG_ID_BITS(`CORE_TAG_ID_BITS)
.CORE_TAG_WIDTH(`DCORE_TAG_WIDTH),
.CORE_TAG_ID_BITS(`DCORE_TAG_ID_BITS)
) icache_core_rsp_if();
VX_cache_dram_req_if #(
@ -151,8 +154,9 @@ module Vortex #(
.DRAM_TAG_WIDTH(`IDRAM_TAG_WIDTH)
) icache_dram_rsp_if();
assign I_dram_req_write = icache_dram_req_if.dram_req_write;
assign I_dram_req_read = icache_dram_req_if.dram_req_read;
assign I_dram_req_valid = icache_dram_req_if.dram_req_valid;
assign I_dram_req_rw = icache_dram_req_if.dram_req_rw;
assign I_dram_req_byteen= icache_dram_req_if.dram_req_byteen;
assign I_dram_req_addr = icache_dram_req_if.dram_req_addr;
assign I_dram_req_data = icache_dram_req_if.dram_req_data;
assign I_dram_req_tag = icache_dram_req_if.dram_req_tag;
@ -267,7 +271,7 @@ module Vortex #(
);
// use "case equality" to handle uninitialized address value
wire io_select = ((dcache_io_core_req_if.core_req_addr[0] >= `IO_BUS_BASE_ADDR) === 1'b1);
wire io_select = ((dcache_io_core_req_if.core_req_addr[0] >= `BYTE_TO_WORD_ADDR(`IO_BUS_BASE_ADDR, `DWORD_SIZE)) === 1'b1);
VX_dcache_io_arb dcache_io_arb (
.io_select (io_select),

View file

@ -5,55 +5,57 @@ module Vortex_Cluster #(
parameter CLUSTER_ID = 0
) (
// Clock
input wire clk,
input wire reset,
input wire clk,
input wire reset,
// DRAM request
output wire dram_req_read,
output wire dram_req_write,
output wire[`L2DRAM_ADDR_WIDTH-1:0] dram_req_addr,
output wire[`L2DRAM_LINE_WIDTH-1:0] dram_req_data,
output wire[`L2DRAM_TAG_WIDTH-1:0] dram_req_tag,
input wire dram_req_ready,
output wire dram_req_valid,
output wire dram_req_rw,
output wire[`L2DRAM_BYTEEN_WIDTH-1:0] dram_req_byteen,
output wire[`L2DRAM_ADDR_WIDTH-1:0] dram_req_addr,
output wire[`L2DRAM_LINE_WIDTH-1:0] dram_req_data,
output wire[`L2DRAM_TAG_WIDTH-1:0] dram_req_tag,
input wire dram_req_ready,
// DRAM response
input wire dram_rsp_valid,
input wire[`L2DRAM_LINE_WIDTH-1:0] dram_rsp_data,
input wire[`L2DRAM_TAG_WIDTH-1:0] dram_rsp_tag,
output wire dram_rsp_ready,
// DRAM response
input wire dram_rsp_valid,
input wire[`L2DRAM_LINE_WIDTH-1:0] dram_rsp_data,
input wire[`L2DRAM_TAG_WIDTH-1:0] dram_rsp_tag,
output wire dram_rsp_ready,
// Snoop request
input wire snp_req_valid,
input wire[`L2DRAM_ADDR_WIDTH-1:0] snp_req_addr,
input wire[`L2SNP_TAG_WIDTH-1:0] snp_req_tag,
output wire snp_req_ready,
input wire snp_req_valid,
input wire[`L2DRAM_ADDR_WIDTH-1:0] snp_req_addr,
input wire[`L2SNP_TAG_WIDTH-1:0] snp_req_tag,
output wire snp_req_ready,
// Snoop response
output wire snp_rsp_valid,
output wire[`L2SNP_TAG_WIDTH-1:0] snp_rsp_tag,
input wire snp_rsp_ready,
output wire snp_rsp_valid,
output wire[`L2SNP_TAG_WIDTH-1:0] snp_rsp_tag,
input wire snp_rsp_ready,
// I/O request
output wire io_req_read,
output wire io_req_write,
output wire[31:0] io_req_addr,
output wire[31:0] io_req_data,
output wire[`BYTE_EN_BITS-1:0] io_req_byteen,
output wire[`CORE_REQ_TAG_WIDTH-1:0] io_req_tag,
input wire io_req_ready,
output wire io_req_valid,
output wire io_req_rw,
output wire[`DCORE_BYTEEN_WIDTH-1:0] io_req_byteen,
output wire[`DCORE_ADDR_WIDTH-1:0] io_req_addr,
output wire[31:0] io_req_data,
output wire[`DCORE_TAG_WIDTH-1:0] io_req_tag,
input wire io_req_ready,
// I/O response
input wire io_rsp_valid,
input wire[31:0] io_rsp_data,
input wire[`CORE_REQ_TAG_WIDTH-1:0] io_rsp_tag,
output wire io_rsp_ready,
input wire io_rsp_valid,
input wire[31:0] io_rsp_data,
input wire[`DCORE_TAG_WIDTH-1:0] io_rsp_tag,
output wire io_rsp_ready,
// Status
output wire busy,
output wire ebreak
output wire busy,
output wire ebreak
);
wire[`NUM_CORES-1:0] per_core_D_dram_req_read;
wire[`NUM_CORES-1:0] per_core_D_dram_req_write;
wire[`NUM_CORES-1:0] per_core_D_dram_req_valid;
wire[`NUM_CORES-1:0] per_core_D_dram_req_rw;
wire[`NUM_CORES-1:0][`DDRAM_BYTEEN_WIDTH-1:0] per_core_D_dram_req_byteen;
wire[`NUM_CORES-1:0][`DDRAM_ADDR_WIDTH-1:0] per_core_D_dram_req_addr;
wire[`NUM_CORES-1:0][`DDRAM_LINE_WIDTH-1:0] per_core_D_dram_req_data;
wire[`NUM_CORES-1:0][`DDRAM_TAG_WIDTH-1:0] per_core_D_dram_req_tag;
@ -64,7 +66,9 @@ module Vortex_Cluster #(
wire[`NUM_CORES-1:0][`DDRAM_TAG_WIDTH-1:0] per_core_D_dram_rsp_tag;
wire[`NUM_CORES-1:0] per_core_D_dram_rsp_ready;
wire[`NUM_CORES-1:0] per_core_I_dram_req_read;
wire[`NUM_CORES-1:0] per_core_I_dram_req_valid;
wire[`NUM_CORES-1:0] per_core_I_dram_req_rw;
wire[`NUM_CORES-1:0][`IDRAM_BYTEEN_WIDTH-1:0] per_core_I_dram_req_byteen;
wire[`NUM_CORES-1:0][`IDRAM_ADDR_WIDTH-1:0] per_core_I_dram_req_addr;
wire[`NUM_CORES-1:0][`IDRAM_LINE_WIDTH-1:0] per_core_I_dram_req_data;
wire[`NUM_CORES-1:0][`IDRAM_TAG_WIDTH-1:0] per_core_I_dram_req_tag;
@ -85,12 +89,12 @@ module Vortex_Cluster #(
wire[`NUM_CORES-1:0] per_core_snp_rsp_ready;
`IGNORE_WARNINGS_BEGIN
wire[`NUM_CORES-1:0] per_core_io_req_read;
wire[`NUM_CORES-1:0] per_core_io_req_write;
wire[`NUM_CORES-1:0][31:0] per_core_io_req_addr;
wire[`NUM_CORES-1:0][31:0] per_core_io_req_data;
wire[`NUM_CORES-1:0][`BYTE_EN_BITS-1:0] per_core_io_req_byteen;
wire[`NUM_CORES-1:0][`CORE_REQ_TAG_WIDTH-1:0] per_core_io_req_tag;
wire[`NUM_CORES-1:0] per_core_io_req_valid;
wire[`NUM_CORES-1:0] per_core_io_req_rw;
wire[`NUM_CORES-1:0][`DCORE_BYTEEN_WIDTH-1:0] per_core_io_req_byteen;
wire[`NUM_CORES-1:0][`DCORE_ADDR_WIDTH-1:0] per_core_io_req_addr;
wire[`NUM_CORES-1:0][31:0] per_core_io_req_data;
wire[`NUM_CORES-1:0][`DCORE_TAG_WIDTH-1:0] per_core_io_req_tag;
wire[`NUM_CORES-1:0] per_core_io_rsp_ready;
`IGNORE_WARNINGS_END
@ -105,8 +109,9 @@ module Vortex_Cluster #(
) vortex_core (
.clk (clk),
.reset (reset),
.D_dram_req_read (per_core_D_dram_req_read [i]),
.D_dram_req_write (per_core_D_dram_req_write [i]),
.D_dram_req_valid (per_core_D_dram_req_valid [i]),
.D_dram_req_rw (per_core_D_dram_req_rw [i]),
.D_dram_req_byteen (per_core_D_dram_req_byteen [i]),
.D_dram_req_addr (per_core_D_dram_req_addr [i]),
.D_dram_req_data (per_core_D_dram_req_data [i]),
.D_dram_req_tag (per_core_D_dram_req_tag [i]),
@ -116,8 +121,9 @@ module Vortex_Cluster #(
.D_dram_rsp_tag (per_core_D_dram_rsp_tag [i]),
.D_dram_rsp_ready (per_core_D_dram_rsp_ready [i]),
.I_dram_req_read (per_core_I_dram_req_read [i]),
`UNUSED_PIN (I_dram_req_write),
.I_dram_req_valid (per_core_I_dram_req_valid [i]),
.I_dram_req_rw (per_core_I_dram_req_rw [i]),
.I_dram_req_byteen (per_core_I_dram_req_byteen [i]),
.I_dram_req_addr (per_core_I_dram_req_addr [i]),
.I_dram_req_data (per_core_I_dram_req_data [i]),
.I_dram_req_tag (per_core_I_dram_req_tag [i]),
@ -136,11 +142,11 @@ module Vortex_Cluster #(
.snp_rsp_tag (per_core_snp_rsp_tag [i]),
.snp_rsp_ready (per_core_snp_rsp_ready [i]),
.io_req_read (per_core_io_req_read [i]),
.io_req_write (per_core_io_req_write [i]),
.io_req_addr (per_core_io_req_addr [i]),
.io_req_data (per_core_io_req_data [i]),
.io_req_valid (per_core_io_req_valid [i]),
.io_req_rw (per_core_io_req_rw [i]),
.io_req_byteen (per_core_io_req_byteen [i]),
.io_req_addr (per_core_io_req_addr [i]),
.io_req_data (per_core_io_req_data [i]),
.io_req_tag (per_core_io_req_tag [i]),
.io_req_ready (io_req_ready),
@ -154,8 +160,9 @@ module Vortex_Cluster #(
);
end
assign io_req_read = per_core_io_req_read[0];
assign io_req_write = per_core_io_req_write[0];
assign io_req_valid = per_core_io_req_valid[0];
assign io_req_rw = per_core_io_req_rw[0];
assign io_req_byteen = per_core_io_req_byteen[0];
assign io_req_addr = per_core_io_req_addr[0];
assign io_req_data = per_core_io_req_data[0];
assign io_req_byteen = per_core_io_req_byteen[0];
@ -171,9 +178,9 @@ module Vortex_Cluster #(
// L2 Cache ///////////////////////////////////////////////////////////
wire[`L2NUM_REQUESTS-1:0] l2_core_req_valid;
wire[`L2NUM_REQUESTS-1:0][`BYTE_EN_BITS-1:0] l2_core_req_write;
wire[`L2NUM_REQUESTS-1:0][`BYTE_EN_BITS-1:0] l2_core_req_read;
wire[`L2NUM_REQUESTS-1:0][31:0] l2_core_req_addr;
wire[`L2NUM_REQUESTS-1:0] l2_core_req_rw;
wire[`L2NUM_REQUESTS-1:0][`DDRAM_BYTEEN_WIDTH-1:0] l2_core_req_byteen;
wire[`L2NUM_REQUESTS-1:0][`DDRAM_ADDR_WIDTH-1:0] l2_core_req_addr;
wire[`L2NUM_REQUESTS-1:0][`DDRAM_TAG_WIDTH-1:0] l2_core_req_tag;
wire[`L2NUM_REQUESTS-1:0][`DDRAM_LINE_WIDTH-1:0] l2_core_req_data;
wire l2_core_req_ready;
@ -193,17 +200,17 @@ module Vortex_Cluster #(
wire[`NUM_CORES-1:0] l2_snp_fwdin_ready;
for (i = 0; i < `L2NUM_REQUESTS; i = i + 2) begin
assign l2_core_req_valid [i] = (per_core_D_dram_req_read[(i/2)] | per_core_D_dram_req_write[(i/2)]);
assign l2_core_req_valid [i+1] = per_core_I_dram_req_read[(i/2)];
assign l2_core_req_valid [i] = per_core_D_dram_req_valid[(i/2)];
assign l2_core_req_valid [i+1] = per_core_I_dram_req_valid[(i/2)];
assign l2_core_req_read [i] = per_core_D_dram_req_read[(i/2)] ? `BYTE_EN_LW : `BYTE_EN_NO;
assign l2_core_req_read [i+1] = per_core_I_dram_req_read[(i/2)] ? `BYTE_EN_LW : `BYTE_EN_NO;
assign l2_core_req_rw [i] = per_core_D_dram_req_rw[(i/2)];
assign l2_core_req_rw [i+1] = per_core_I_dram_req_rw[(i/2)];
assign l2_core_req_write [i] = per_core_D_dram_req_write[(i/2)] ? `BYTE_EN_LW : `BYTE_EN_NO;
assign l2_core_req_write [i+1] = `BYTE_EN_NO;
assign l2_core_req_byteen [i] = per_core_D_dram_req_byteen[(i/2)];
assign l2_core_req_byteen [i+1] = per_core_I_dram_req_byteen[(i/2)];
assign l2_core_req_addr [i] = {per_core_D_dram_req_addr[(i/2)], {`LOG2UP(`DBANK_LINE_SIZE){1'b0}}};
assign l2_core_req_addr [i+1] = {per_core_I_dram_req_addr[(i/2)], {`LOG2UP(`IBANK_LINE_SIZE){1'b0}}};
assign l2_core_req_addr [i] = per_core_D_dram_req_addr[(i/2)];
assign l2_core_req_addr [i+1] = per_core_I_dram_req_addr[(i/2)];
assign l2_core_req_data [i] = per_core_D_dram_req_data[(i/2)];
assign l2_core_req_data [i+1] = per_core_I_dram_req_data[(i/2)];
@ -243,7 +250,7 @@ module Vortex_Cluster #(
.WORD_SIZE (`L2WORD_SIZE),
.NUM_REQUESTS (`L2NUM_REQUESTS),
.STAGE_1_CYCLES (`L2STAGE_1_CYCLES),
.REQQ_SIZE (`L2REQQ_SIZE),
.CREQ_SIZE (`L2CREQ_SIZE),
.MRVQ_SIZE (`L2MRVQ_SIZE),
.DFPQ_SIZE (`L2DFPQ_SIZE),
.SNRQ_SIZE (`L2SNRQ_SIZE),
@ -267,8 +274,8 @@ module Vortex_Cluster #(
// Core request
.core_req_valid (l2_core_req_valid),
.core_req_read (l2_core_req_read),
.core_req_write (l2_core_req_write),
.core_req_rw (l2_core_req_rw),
.core_req_byteen (l2_core_req_byteen),
.core_req_addr (l2_core_req_addr),
.core_req_data (l2_core_req_data),
.core_req_tag (l2_core_req_tag),
@ -281,8 +288,9 @@ module Vortex_Cluster #(
.core_rsp_ready (l2_core_rsp_ready),
// DRAM request
.dram_req_read (dram_req_read),
.dram_req_write (dram_req_write),
.dram_req_valid (dram_req_valid),
.dram_req_rw (dram_req_rw),
.dram_req_byteen (dram_req_byteen),
.dram_req_addr (dram_req_addr),
.dram_req_data (dram_req_data),
.dram_req_tag (dram_req_tag),
@ -319,8 +327,9 @@ module Vortex_Cluster #(
end else begin
wire[`L2NUM_REQUESTS-1:0] arb_core_req_read;
wire[`L2NUM_REQUESTS-1:0] arb_core_req_write;
wire[`L2NUM_REQUESTS-1:0] arb_core_req_valid;
wire[`L2NUM_REQUESTS-1:0] arb_core_req_rw;
wire[`L2NUM_REQUESTS-1:0][`DDRAM_BYTEEN_WIDTH-1:0] arb_core_req_byteen;
wire[`L2NUM_REQUESTS-1:0][`DDRAM_ADDR_WIDTH-1:0] arb_core_req_addr;
wire[`L2NUM_REQUESTS-1:0][`DDRAM_TAG_WIDTH-1:0] arb_core_req_tag;
wire[`L2NUM_REQUESTS-1:0][`DDRAM_LINE_WIDTH-1:0] arb_core_req_data;
@ -341,11 +350,14 @@ module Vortex_Cluster #(
wire[`NUM_CORES-1:0] arb_snp_fwdin_ready;
for (i = 0; i < `L2NUM_REQUESTS; i = i + 2) begin
assign arb_core_req_read [i] = per_core_D_dram_req_read[(i/2)];
assign arb_core_req_read [i+1] = per_core_I_dram_req_read[(i/2)];
assign arb_core_req_valid [i] = per_core_D_dram_req_valid[(i/2)];
assign arb_core_req_valid [i+1] = per_core_I_dram_req_valid[(i/2)];
assign arb_core_req_write [i] = per_core_D_dram_req_write[(i/2)];
assign arb_core_req_write [i+1] = 0;
assign arb_core_req_rw [i] = per_core_D_dram_req_rw[(i/2)];
assign arb_core_req_rw [i+1] = per_core_I_dram_req_rw[(i/2)];
assign arb_core_req_byteen[i] = per_core_D_dram_req_byteen[(i/2)];
assign arb_core_req_byteen[i+1] = per_core_I_dram_req_byteen[(i/2)];
assign arb_core_req_addr [i] = per_core_D_dram_req_addr[(i/2)];
assign arb_core_req_addr [i+1] = per_core_I_dram_req_addr[(i/2)];
@ -421,8 +433,9 @@ module Vortex_Cluster #(
.reset (reset),
// Core request
.core_req_read (arb_core_req_read),
.core_req_write (arb_core_req_write),
.core_req_valid (arb_core_req_valid),
.core_req_rw (arb_core_req_rw),
.core_req_byteen (arb_core_req_byteen),
.core_req_addr (arb_core_req_addr),
.core_req_data (arb_core_req_data),
.core_req_tag (arb_core_req_tag),
@ -435,8 +448,9 @@ module Vortex_Cluster #(
.core_rsp_ready (arb_core_rsp_ready),
// DRAM request
.dram_req_read (dram_req_read),
.dram_req_write (dram_req_write),
.dram_req_valid (dram_req_valid),
.dram_req_rw (dram_req_rw),
.dram_req_byteen (dram_req_byteen),
.dram_req_addr (dram_req_addr),
.dram_req_data (dram_req_data),
.dram_req_tag (dram_req_tag),

View file

@ -3,52 +3,53 @@
module Vortex_Socket (
// Clock
input wire clk,
input wire reset,
input wire clk,
input wire reset,
// DRAM request
output wire dram_req_read,
output wire dram_req_write,
output wire[`L3DRAM_ADDR_WIDTH-1:0] dram_req_addr,
output wire[`L3DRAM_LINE_WIDTH-1:0] dram_req_data,
output wire[`L3DRAM_TAG_WIDTH-1:0] dram_req_tag,
input wire dram_req_ready,
output wire dram_req_valid,
output wire dram_req_rw,
output wire[`L3DRAM_BYTEEN_WIDTH-1:0] dram_req_byteen,
output wire[`L3DRAM_ADDR_WIDTH-1:0] dram_req_addr,
output wire[`L3DRAM_LINE_WIDTH-1:0] dram_req_data,
output wire[`L3DRAM_TAG_WIDTH-1:0] dram_req_tag,
input wire dram_req_ready,
// DRAM response
input wire dram_rsp_valid,
input wire[`L3DRAM_LINE_WIDTH-1:0] dram_rsp_data,
input wire[`L3DRAM_TAG_WIDTH-1:0] dram_rsp_tag,
output wire dram_rsp_ready,
input wire dram_rsp_valid,
input wire[`L3DRAM_LINE_WIDTH-1:0] dram_rsp_data,
input wire[`L3DRAM_TAG_WIDTH-1:0] dram_rsp_tag,
output wire dram_rsp_ready,
// Snoop request
input wire snp_req_valid,
input wire[`L3DRAM_ADDR_WIDTH-1:0] snp_req_addr,
input wire[`L3SNP_TAG_WIDTH-1:0] snp_req_tag,
output wire snp_req_ready,
input wire snp_req_valid,
input wire[`L3DRAM_ADDR_WIDTH-1:0] snp_req_addr,
input wire[`L3SNP_TAG_WIDTH-1:0] snp_req_tag,
output wire snp_req_ready,
// Snoop response
output wire snp_rsp_valid,
output wire[`L3SNP_TAG_WIDTH-1:0] snp_rsp_tag,
input wire snp_rsp_ready,
output wire snp_rsp_valid,
output wire[`L3SNP_TAG_WIDTH-1:0] snp_rsp_tag,
input wire snp_rsp_ready,
// I/O request
output wire io_req_read,
output wire io_req_write,
output wire[31:0] io_req_addr,
output wire[31:0] io_req_data,
output wire[`BYTE_EN_BITS-1:0] io_req_byteen,
output wire[`CORE_REQ_TAG_WIDTH-1:0] io_req_tag,
input wire io_req_ready,
output wire io_req_valid,
output wire io_req_rw,
output wire[`DCORE_BYTEEN_WIDTH-1:0] io_req_byteen,
output wire[`DCORE_ADDR_WIDTH-1:0] io_req_addr,
output wire[31:0] io_req_data,
output wire[`DCORE_TAG_WIDTH-1:0] io_req_tag,
input wire io_req_ready,
// I/O response
input wire io_rsp_valid,
input wire[31:0] io_rsp_data,
input wire[`CORE_REQ_TAG_WIDTH-1:0] io_rsp_tag,
output wire io_rsp_ready,
input wire io_rsp_valid,
input wire[31:0] io_rsp_data,
input wire[`DCORE_TAG_WIDTH-1:0] io_rsp_tag,
output wire io_rsp_ready,
// Status
output wire busy,
output wire ebreak
output wire busy,
output wire ebreak
);
if (`NUM_CLUSTERS == 1) begin
@ -58,8 +59,9 @@ module Vortex_Socket (
.clk (clk),
.reset (reset),
.dram_req_read (dram_req_read),
.dram_req_write (dram_req_write),
.dram_req_valid (dram_req_valid),
.dram_req_rw (dram_req_rw),
.dram_req_byteen (dram_req_byteen),
.dram_req_addr (dram_req_addr),
.dram_req_data (dram_req_data),
.dram_req_tag (dram_req_tag),
@ -79,11 +81,11 @@ module Vortex_Socket (
.snp_rsp_tag (snp_rsp_tag),
.snp_rsp_ready (snp_rsp_ready),
.io_req_read (io_req_read),
.io_req_write (io_req_write),
.io_req_valid (io_req_valid),
.io_req_rw (io_req_rw),
.io_req_byteen (io_req_byteen),
.io_req_addr (io_req_addr),
.io_req_data (io_req_data),
.io_req_byteen (io_req_byteen),
.io_req_tag (io_req_tag),
.io_req_ready (io_req_ready),
@ -98,8 +100,9 @@ module Vortex_Socket (
end else begin
wire[`NUM_CLUSTERS-1:0] per_cluster_dram_req_read;
wire[`NUM_CLUSTERS-1:0] per_cluster_dram_req_write;
wire[`NUM_CLUSTERS-1:0] per_cluster_dram_req_valid;
wire[`NUM_CLUSTERS-1:0] per_cluster_dram_req_rw;
wire[`NUM_CLUSTERS-1:0][`L2DRAM_BYTEEN_WIDTH-1:0] per_cluster_dram_req_byteen;
wire[`NUM_CLUSTERS-1:0][`L2DRAM_ADDR_WIDTH-1:0] per_cluster_dram_req_addr;
wire[`NUM_CLUSTERS-1:0][`L2DRAM_LINE_WIDTH-1:0] per_cluster_dram_req_data;
wire[`NUM_CLUSTERS-1:0][`L2DRAM_TAG_WIDTH-1:0] per_cluster_dram_req_tag;
@ -120,12 +123,12 @@ module Vortex_Socket (
wire[`NUM_CLUSTERS-1:0] per_cluster_snp_rsp_ready;
`IGNORE_WARNINGS_BEGIN
wire[`NUM_CLUSTERS-1:0] per_cluster_io_req_read;
wire[`NUM_CLUSTERS-1:0] per_cluster_io_req_write;
wire[`NUM_CLUSTERS-1:0][31:0] per_cluster_io_req_addr;
wire[`NUM_CLUSTERS-1:0][31:0] per_cluster_io_req_data;
wire[`NUM_CLUSTERS-1:0][`BYTE_EN_BITS-1:0] per_cluster_io_req_byteen;
wire[`NUM_CLUSTERS-1:0][`CORE_REQ_TAG_WIDTH-1:0] per_cluster_io_req_tag;
wire[`NUM_CLUSTERS-1:0] per_cluster_io_req_valid;
wire[`NUM_CLUSTERS-1:0] per_cluster_io_req_rw;
wire[`NUM_CLUSTERS-1:0][`DCORE_BYTEEN_WIDTH-1:0] per_cluster_io_req_byteen;
wire[`NUM_CLUSTERS-1:0][`DCORE_ADDR_WIDTH-1:0] per_cluster_io_req_addr;
wire[`NUM_CLUSTERS-1:0][31:0] per_cluster_io_req_data;
wire[`NUM_CLUSTERS-1:0][`DCORE_TAG_WIDTH-1:0] per_cluster_io_req_tag;
wire[`NUM_CLUSTERS-1:0] per_cluster_io_rsp_ready;
`IGNORE_WARNINGS_END
@ -141,8 +144,9 @@ module Vortex_Socket (
.clk (clk),
.reset (reset),
.dram_req_write (per_cluster_dram_req_write [i]),
.dram_req_read (per_cluster_dram_req_read [i]),
.dram_req_valid (per_cluster_dram_req_valid [i]),
.dram_req_rw (per_cluster_dram_req_rw [i]),
.dram_req_byteen (per_cluster_dram_req_byteen[i]),
.dram_req_addr (per_cluster_dram_req_addr [i]),
.dram_req_data (per_cluster_dram_req_data [i]),
.dram_req_tag (per_cluster_dram_req_tag [i]),
@ -162,11 +166,11 @@ module Vortex_Socket (
.snp_rsp_tag (per_cluster_snp_rsp_tag [i]),
.snp_rsp_ready (per_cluster_snp_rsp_ready [i]),
.io_req_read (per_cluster_io_req_read [i]),
.io_req_write (per_cluster_io_req_write [i]),
.io_req_addr (per_cluster_io_req_addr [i]),
.io_req_data (per_cluster_io_req_data [i]),
.io_req_valid (per_cluster_io_req_valid [i]),
.io_req_rw (per_cluster_io_req_rw [i]),
.io_req_byteen (per_cluster_io_req_byteen [i]),
.io_req_addr (per_cluster_io_req_addr [i]),
.io_req_data (per_cluster_io_req_data [i]),
.io_req_tag (per_cluster_io_req_tag [i]),
.io_req_ready (io_req_ready),
@ -180,11 +184,11 @@ module Vortex_Socket (
);
end
assign io_req_read = per_cluster_io_req_read[0];
assign io_req_write = per_cluster_io_req_write[0];
assign io_req_valid = per_cluster_io_req_valid[0];
assign io_req_rw = per_cluster_io_req_rw[0];
assign io_req_byteen = per_cluster_io_req_byteen[0];
assign io_req_addr = per_cluster_io_req_addr[0];
assign io_req_data = per_cluster_io_req_data[0];
assign io_req_byteen = per_cluster_io_req_byteen[0];
assign io_req_tag = per_cluster_io_req_tag[0];
assign io_rsp_ready = per_cluster_io_rsp_ready[0];
@ -195,9 +199,9 @@ module Vortex_Socket (
// L3 Cache ///////////////////////////////////////////////////////////
wire[`L3NUM_REQUESTS-1:0] l3_core_req_valid;
wire[`L3NUM_REQUESTS-1:0][`BYTE_EN_BITS-1:0] l3_core_req_read;
wire[`L3NUM_REQUESTS-1:0][`BYTE_EN_BITS-1:0] l3_core_req_write;
wire[`L3NUM_REQUESTS-1:0][31:0] l3_core_req_addr;
wire[`L3NUM_REQUESTS-1:0] l3_core_req_rw;
wire[`L3NUM_REQUESTS-1:0][`L2DRAM_BYTEEN_WIDTH-1:0] l3_core_req_byteen;
wire[`L3NUM_REQUESTS-1:0][`L2DRAM_ADDR_WIDTH-1:0] l3_core_req_addr;
wire[`L3NUM_REQUESTS-1:0][`L2DRAM_LINE_WIDTH-1:0] l3_core_req_data;
wire[`L3NUM_REQUESTS-1:0][`L2DRAM_TAG_WIDTH-1:0] l3_core_req_tag;
@ -217,10 +221,10 @@ module Vortex_Socket (
for (i = 0; i < `L3NUM_REQUESTS; i++) begin
// Core Request
assign l3_core_req_valid [i] = (per_cluster_dram_req_read [i] | per_cluster_dram_req_write [i]);
assign l3_core_req_read [i] = per_cluster_dram_req_read [i] ? `BYTE_EN_LW : `BYTE_EN_NO;
assign l3_core_req_write [i] = per_cluster_dram_req_write [i] ? `BYTE_EN_LW : `BYTE_EN_NO;
assign l3_core_req_addr [i] = {per_cluster_dram_req_addr [i], {`LOG2UP(`L2BANK_LINE_SIZE){1'b0}}};
assign l3_core_req_valid [i] = per_cluster_dram_req_valid [i];
assign l3_core_req_rw [i] = per_cluster_dram_req_rw [i];
assign l3_core_req_byteen[i] = per_cluster_dram_req_byteen[i];
assign l3_core_req_addr [i] = per_cluster_dram_req_addr [i];
assign l3_core_req_tag [i] = per_cluster_dram_req_tag [i];
assign l3_core_req_data [i] = per_cluster_dram_req_data [i];
@ -251,7 +255,7 @@ module Vortex_Socket (
.WORD_SIZE (`L3WORD_SIZE),
.NUM_REQUESTS (`L3NUM_REQUESTS),
.STAGE_1_CYCLES (`L3STAGE_1_CYCLES),
.REQQ_SIZE (`L3REQQ_SIZE),
.CREQ_SIZE (`L3CREQ_SIZE),
.MRVQ_SIZE (`L3MRVQ_SIZE),
.DFPQ_SIZE (`L3DFPQ_SIZE),
.SNRQ_SIZE (`L3SNRQ_SIZE),
@ -275,8 +279,8 @@ module Vortex_Socket (
// Core request
.core_req_valid (l3_core_req_valid),
.core_req_read (l3_core_req_read),
.core_req_write (l3_core_req_write),
.core_req_rw (l3_core_req_rw),
.core_req_byteen (l3_core_req_byteen),
.core_req_addr (l3_core_req_addr),
.core_req_data (l3_core_req_data),
.core_req_tag (l3_core_req_tag),
@ -289,8 +293,9 @@ module Vortex_Socket (
.core_rsp_ready (l3_core_rsp_ready),
// DRAM request
.dram_req_write (dram_req_write),
.dram_req_read (dram_req_read),
.dram_req_valid (dram_req_valid),
.dram_req_rw (dram_req_rw),
.dram_req_byteen (dram_req_byteen),
.dram_req_addr (dram_req_addr),
.dram_req_data (dram_req_data),
.dram_req_tag (dram_req_tag),
@ -328,8 +333,8 @@ module Vortex_Socket (
`ifdef DBG_PRINT_DRAM
always_ff @(posedge clk) begin
if ((dram_req_read || dram_req_write) && dram_req_ready) begin
$display("%t: DRAM req: w=%b addr=%0h, tag=%0h, data=%0h", $time, dram_req_write, {dram_req_addr, `CLOG2(`GLOBAL_BLOCK_SIZE)'(0)}, dram_req_tag, dram_req_data);
if (dram_req_valid && dram_req_ready) begin
$display("%t: DRAM req: rw=%b addr=%0h, tag=%0h, byteen=%0h data=%0h", $time, dram_req_rw, {dram_req_addr, `CLOG2(`GLOBAL_BLOCK_SIZE)'(0)}, dram_req_tag, dram_req_byteen, dram_req_data);
end
if (dram_rsp_valid && dram_rsp_ready) begin
$display("%t: DRAM rsp: tag=%0h, data=%0h", $time, dram_rsp_tag, dram_rsp_data);

195
hw/rtl/cache/VX_bank.v vendored
View file

@ -18,7 +18,7 @@ module VX_bank #(
// Queues feeding into banks Knobs {1, 2, 4, 8, ...}
// Core Request Queue Size
parameter REQQ_SIZE = 0,
parameter CREQ_SIZE = 0,
// Miss Reserv Queue Knob
parameter MRVQ_SIZE = 0,
// Dram Fill Rsp Queue Size
@ -56,13 +56,13 @@ module VX_bank #(
input wire reset,
// Core Request
input wire [NUM_REQUESTS-1:0] core_req_valids,
input wire [NUM_REQUESTS-1:0][`BYTE_EN_BITS-1:0] core_req_read,
input wire [NUM_REQUESTS-1:0][`BYTE_EN_BITS-1:0] core_req_write,
input wire [NUM_REQUESTS-1:0][31:0] core_req_addr,
input wire [NUM_REQUESTS-1:0][`WORD_WIDTH-1:0] core_req_data,
input wire [`CORE_REQ_TAG_COUNT-1:0][CORE_TAG_WIDTH-1:0] core_req_tag,
output wire core_req_ready,
input wire [NUM_REQUESTS-1:0] core_req_valid,
input wire [NUM_REQUESTS-1:0] core_req_rw,
input wire [NUM_REQUESTS-1:0][WORD_SIZE-1:0] core_req_byteen,
input wire [NUM_REQUESTS-1:0][`WORD_ADDR_WIDTH-1:0] core_req_addr,
input wire [NUM_REQUESTS-1:0][`WORD_WIDTH-1:0] core_req_data,
input wire [`CORE_REQ_TAG_COUNT-1:0][CORE_TAG_WIDTH-1:0] core_req_tag,
output wire core_req_ready,
// Core Response
output wire core_rsp_valid,
@ -84,6 +84,7 @@ module VX_bank #(
// Dram WB Requests
output wire dram_wb_req_valid,
output wire [BANK_LINE_SIZE-1:0] dram_wb_req_byteen,
output wire [`LINE_ADDR_WIDTH-1:0] dram_wb_req_addr,
output wire [`BANK_LINE_WIDTH-1:0] dram_wb_req_data,
input wire dram_wb_req_ready,
@ -99,31 +100,34 @@ module VX_bank #(
input wire snp_rsp_ready
);
`DEBUG_BEGIN
`DEBUG_BLOCK(
wire[31:0] debug_use_pc_st0;
wire[1:0] debug_wb_st0;
wire[4:0] debug_rd_st0;
wire[`NW_BITS-1:0] debug_warp_num_st0;
wire[2:0] debug_mem_read_st0;
wire[2:0] debug_mem_write_st0;
wire debug_rw_st0;
wire[WORD_SIZE-1:0] debug_byteen_st0;
wire[`REQS_BITS-1:0] debug_tid_st0;
wire[`UP(CORE_TAG_ID_BITS)-1:0] debug_tagid_st0;
wire[31:0] debug_use_pc_st1e;
wire[1:0] debug_wb_st1e;
wire[4:0] debug_rd_st1e;
wire[`NW_BITS-1:0] debug_warp_num_st1e;
wire[2:0] debug_mem_read_st1e;
wire[2:0] debug_mem_write_st1e;
wire debug_rw_st1e;
wire[WORD_SIZE-1:0] debug_byteen_st1e;
wire[`REQS_BITS-1:0] debug_tid_st1e;
wire[`UP(CORE_TAG_ID_BITS)-1:0] debug_tagid_st1e;
wire[31:0] debug_use_pc_st2;
wire[1:0] debug_wb_st2;
wire[4:0] debug_rd_st2;
wire[`NW_BITS-1:0] debug_warp_num_st2;
wire[2:0] debug_mem_read_st2;
wire[2:0] debug_mem_write_st2;
wire debug_rw_st2;
wire[WORD_SIZE-1:0] debug_byteen_st2;
wire[`REQS_BITS-1:0] debug_tid_st2;
`DEBUG_END
wire[`UP(CORE_TAG_ID_BITS)-1:0] debug_tagid_st2;
)
wire snrq_pop;
wire snrq_empty;
@ -177,19 +181,19 @@ module VX_bank #(
wire reqq_empty;
wire reqq_full;
wire reqq_req_st0;
wire[`REQS_BITS-1:0] reqq_req_tid_st0;
wire [`REQS_BITS-1:0] reqq_req_tid_st0;
wire reqq_req_rw_st0;
wire [WORD_SIZE-1:0] reqq_req_byteen_st0;
`IGNORE_WARNINGS_BEGIN
wire [31:0] reqq_req_addr_st0;
wire [`WORD_ADDR_WIDTH-1:0] reqq_req_addr_st0;
`IGNORE_WARNINGS_END
wire [`WORD_WIDTH-1:0] reqq_req_writeword_st0;
wire [CORE_TAG_WIDTH-1:0] reqq_req_tag_st0;
wire [`BYTE_EN_BITS-1:0] reqq_req_mem_read_st0;
wire [`BYTE_EN_BITS-1:0] reqq_req_mem_write_st0;
VX_cache_req_queue #(
.WORD_SIZE (WORD_SIZE),
.NUM_REQUESTS (NUM_REQUESTS),
.REQQ_SIZE (REQQ_SIZE),
.CREQ_SIZE (CREQ_SIZE),
.CORE_TAG_WIDTH (CORE_TAG_WIDTH),
.CORE_TAG_ID_BITS (CORE_TAG_ID_BITS)
) req_queue (
@ -197,28 +201,28 @@ module VX_bank #(
.reset (reset),
// Enqueue
.reqq_push (reqq_push),
.bank_valids (core_req_valids),
.bank_valids (core_req_valid),
.bank_rw (core_req_rw),
.bank_byteen (core_req_byteen),
.bank_addr (core_req_addr),
.bank_writedata (core_req_data),
.bank_tag (core_req_tag),
.bank_mem_read (core_req_read),
.bank_mem_write (core_req_write),
.bank_tag (core_req_tag),
// Dequeue
.reqq_pop (reqq_pop),
.reqq_req_st0 (reqq_req_st0),
.reqq_req_tid_st0 (reqq_req_tid_st0),
.reqq_req_rw_st0 (reqq_req_rw_st0),
.reqq_req_byteen_st0 (reqq_req_byteen_st0),
.reqq_req_addr_st0 (reqq_req_addr_st0),
.reqq_req_writedata_st0(reqq_req_writeword_st0),
.reqq_req_tag_st0 (reqq_req_tag_st0),
.reqq_req_mem_read_st0 (reqq_req_mem_read_st0),
.reqq_req_mem_write_st0(reqq_req_mem_write_st0),
.reqq_empty (reqq_empty),
.reqq_full (reqq_full)
);
assign core_req_ready = ~reqq_full;
assign reqq_push = (| core_req_valids) && core_req_ready;
assign reqq_push = (| core_req_valid) && core_req_ready;
wire mrvq_pop;
wire mrvq_full;
@ -226,11 +230,11 @@ module VX_bank #(
wire mrvq_valid_st0;
wire[`REQS_BITS-1:0] mrvq_tid_st0;
wire [`LINE_ADDR_WIDTH-1:0] mrvq_addr_st0;
wire [`BASE_ADDR_BITS-1:0] mrvq_wsel_st0;
wire [`WORD_SELECT_WIDTH-1:0] mrvq_wsel_st0;
wire [`WORD_WIDTH-1:0] mrvq_writeword_st0;
wire [`REQ_TAG_WIDTH-1:0] mrvq_tag_st0;
wire [`BYTE_EN_BITS-1:0] mrvq_mem_read_st0;
wire [`BYTE_EN_BITS-1:0] mrvq_mem_write_st0;
wire mrvq_rw_st0;
wire [WORD_SIZE-1:0] mrvq_byteen_st0;
wire mrvq_is_snp_st0;
wire mrvq_pending_hazard_st1e;
@ -239,8 +243,8 @@ module VX_bank #(
wire[`REQS_BITS-1:0] miss_add_tid;
wire[`REQ_TAG_WIDTH-1:0] miss_add_tag;
wire[`BYTE_EN_BITS-1:0] miss_add_mem_read;
wire[`BYTE_EN_BITS-1:0] miss_add_mem_write;
wire miss_add_rw;
wire[WORD_SIZE-1:0] miss_add_byteen;
wire[`LINE_ADDR_WIDTH-1:0] addr_st2;
wire is_fill_st2;
@ -268,13 +272,11 @@ module VX_bank #(
end
end
wire mrvq_pop_unqual = mrvq_valid_st0;
wire dfpq_pop_unqual = !mrvq_pop_unqual && !dfpq_empty;
wire reqq_pop_unqual = !mrvq_stop && !mrvq_pop_unqual && !dfpq_pop_unqual && !reqq_empty && reqq_req_st0 && !is_fill_st1[0] && !is_fill_in_pipe;
wire snrq_pop_unqual = !mrvq_stop && !reqq_pop_unqual && !reqq_pop_unqual && !mrvq_pop_unqual && !dfpq_pop_unqual && !snrq_empty;
assign mrvq_pop = mrvq_pop_unqual && !stall_bank_pipe && !recover_mrvq_state_st2;
assign dfpq_pop = dfpq_pop_unqual && !stall_bank_pipe;
assign reqq_pop = reqq_pop_unqual && !stall_bank_pipe;
@ -283,7 +285,7 @@ module VX_bank #(
wire qual_is_fill_st0;
wire qual_valid_st0;
wire [`LINE_ADDR_WIDTH-1:0] qual_addr_st0;
wire [`WORD_SELECT_ADDR_END:0] qual_wsel_st0;
wire [`WORD_SELECT_WIDTH-1:0] qual_wsel_st0;
wire qual_from_mrvq_st0;
wire [`WORD_WIDTH-1:0] qual_writeword_st0;
@ -294,7 +296,7 @@ module VX_bank #(
wire valid_st1 [STAGE_1_CYCLES-1:0];
wire [`LINE_ADDR_WIDTH-1:0] addr_st1 [STAGE_1_CYCLES-1:0];
wire [`WORD_SELECT_ADDR_END:0] wsel_st1 [STAGE_1_CYCLES-1:0];
wire [`WORD_SELECT_WIDTH-1:0] wsel_st1 [STAGE_1_CYCLES-1:0];
wire [`WORD_WIDTH-1:0] writeword_st1 [STAGE_1_CYCLES-1:0];
wire [`REQ_INST_META_WIDTH-1:0] inst_meta_st1 [STAGE_1_CYCLES-1:0];
wire [`BANK_LINE_WIDTH-1:0] writedata_st1 [STAGE_1_CYCLES-1:0];
@ -307,24 +309,24 @@ module VX_bank #(
assign qual_addr_st0 = dfpq_pop_unqual ? dfpq_addr_st0 :
mrvq_pop_unqual ? mrvq_addr_st0 :
reqq_pop_unqual ? reqq_req_addr_st0[31:`LINE_SELECT_ADDR_START] :
reqq_pop_unqual ? reqq_req_addr_st0[`LINE_SELECT_ADDR_RNG] :
snrq_pop_unqual ? snrq_addr_st0 :
0;
assign qual_wsel_st0 = reqq_pop_unqual ? reqq_req_addr_st0[`BASE_ADDR_BITS-1:0] :
assign qual_wsel_st0 = reqq_pop_unqual ? reqq_req_addr_st0[`WORD_SELECT_WIDTH-1:0] :
mrvq_pop_unqual ? mrvq_wsel_st0 :
0;
assign qual_writedata_st0 = dfpq_pop_unqual ? dfpq_filldata_st0 : 57;
assign qual_inst_meta_st0 = mrvq_pop_unqual ? {`REQ_TAG_WIDTH'(mrvq_tag_st0) , mrvq_mem_read_st0, mrvq_mem_write_st0, mrvq_tid_st0} :
reqq_pop_unqual ? {`REQ_TAG_WIDTH'(reqq_req_tag_st0), reqq_req_mem_read_st0, reqq_req_mem_write_st0, reqq_req_tid_st0} :
snrq_pop_unqual ? {`REQ_TAG_WIDTH'(snrq_tag_st0), `BYTE_EN_BITS'(0), `BYTE_EN_BITS'(0), `REQS_BITS'(0)} :
assign qual_inst_meta_st0 = mrvq_pop_unqual ? {`REQ_TAG_WIDTH'(mrvq_tag_st0) , mrvq_rw_st0, mrvq_byteen_st0, mrvq_tid_st0} :
reqq_pop_unqual ? {`REQ_TAG_WIDTH'(reqq_req_tag_st0), reqq_req_rw_st0, reqq_req_byteen_st0, reqq_req_tid_st0} :
snrq_pop_unqual ? {`REQ_TAG_WIDTH'(snrq_tag_st0), 1'b0, WORD_SIZE'(0), `REQS_BITS'(0)} :
0;
assign qual_going_to_write_st0 = dfpq_pop_unqual ? 1 :
(mrvq_pop_unqual && (mrvq_mem_write_st0 != `BYTE_EN_NO)) ? 1 :
(reqq_pop_unqual && (reqq_req_mem_write_st0 != `BYTE_EN_NO)) ? 1 :
(mrvq_pop_unqual && mrvq_rw_st0) ? 1 :
(reqq_pop_unqual && reqq_req_rw_st0) ? 1 :
0;
assign qual_is_snp_st0 = mrvq_pop_unqual ? mrvq_is_snp_st0 :
@ -337,14 +339,14 @@ module VX_bank #(
assign qual_from_mrvq_st0 = mrvq_pop_unqual;
`DEBUG_BEGIN
`DEBUG_BLOCK(
if (WORD_SIZE != `GLOBAL_BLOCK_SIZE) begin
assign {debug_use_pc_st0, debug_wb_st0, debug_rd_st0, debug_warp_num_st0, debug_mem_read_st0, debug_mem_write_st0, debug_tid_st0} = qual_inst_meta_st0;
assign {debug_use_pc_st0, debug_wb_st0, debug_rd_st0, debug_warp_num_st0, debug_tagid_st0, debug_rw_st0, debug_byteen_st0, debug_tid_st0} = qual_inst_meta_st0;
end
`DEBUG_END
)
VX_generic_register #(
.N(1 + 1 + 1 + 1 + `LINE_ADDR_WIDTH + `BASE_ADDR_BITS + `WORD_WIDTH + `REQ_INST_META_WIDTH + 1 + `BANK_LINE_WIDTH)
.N(1 + 1 + 1 + 1 + `LINE_ADDR_WIDTH + `WORD_SELECT_WIDTH + `WORD_WIDTH + `REQ_INST_META_WIDTH + 1 + `BANK_LINE_WIDTH)
) s0_1_c0 (
.clk (clk),
.reset (reset),
@ -357,7 +359,7 @@ module VX_bank #(
genvar i;
for (i = 1; i < STAGE_1_CYCLES; i++) begin
VX_generic_register #(
.N(1 + 1 + 1 + 1 + `LINE_ADDR_WIDTH + `BASE_ADDR_BITS + `WORD_WIDTH + `REQ_INST_META_WIDTH + 1 + `BANK_LINE_WIDTH)
.N(1 + 1 + 1 + 1 + `LINE_ADDR_WIDTH + `WORD_SELECT_WIDTH + `WORD_WIDTH + `REQ_INST_META_WIDTH + 1 + `BANK_LINE_WIDTH)
) s0_1_cc (
.clk (clk),
.reset(reset),
@ -369,16 +371,17 @@ module VX_bank #(
end
wire[`WORD_WIDTH-1:0] readword_st1e;
wire[`BANK_LINE_WIDTH-1:0] readdata_st1e;
wire[`BANK_LINE_WIDTH-1:0] readdata_st1e;
wire[`TAG_SELECT_BITS-1:0] readtag_st1e;
wire miss_st1e;
wire dirty_st1e;
wire[BANK_LINE_SIZE-1:0] dirtyb_st1e;
`DEBUG_BEGIN
wire [`REQ_TAG_WIDTH-1:0] tag_st1e;
wire [`REQS_BITS-1:0] tid_st1e;
`DEBUG_END
wire [`BYTE_EN_BITS-1:0] mem_read_st1e;
wire [`BYTE_EN_BITS-1:0] mem_write_st1e;
wire mem_rw_st1e;
wire [WORD_SIZE-1:0] mem_byteen_st1e;
wire fill_saw_dirty_st1e;
wire is_snp_st1e;
wire snp_to_mrvq_st1e;
@ -392,12 +395,11 @@ module VX_bank #(
assign valid_st1e = valid_st1 [STAGE_1_CYCLES-1];
assign is_snp_st1e = is_snp_st1 [STAGE_1_CYCLES-1];
assign {tag_st1e, mem_read_st1e, mem_write_st1e, tid_st1e} = inst_meta_st1[STAGE_1_CYCLES-1];
assign {tag_st1e, mem_rw_st1e, mem_byteen_st1e, tid_st1e} = inst_meta_st1[STAGE_1_CYCLES-1];
assign st2_pending_hazard_st1e = (miss_add_because_miss) && ((addr_st2 == addr_st1[STAGE_1_CYCLES-1]) && !is_fill_st2);
assign force_request_miss_st1e = (valid_st1e && !from_mrvq_st1e && (mrvq_pending_hazard_st1e || st2_pending_hazard_st1e)) || (valid_st1e && from_mrvq_st1e && recover_mrvq_state_st2);
assign force_request_miss_st1e = (valid_st1e && !from_mrvq_st1e && (mrvq_pending_hazard_st1e || st2_pending_hazard_st1e)) || (valid_st1e && from_mrvq_st1e && recover_mrvq_state_st2);
assign mrvq_recover_ready_state_st1e = valid_st1e && from_mrvq_st1e && recover_mrvq_state_st2 && (addr_st2 == addr_st1[STAGE_1_CYCLES-1]);
@ -421,17 +423,17 @@ module VX_bank #(
.readaddr_st10(addr_st1[0][`LINE_SELECT_BITS-1:0]),
// Actual Read/Write
.valid_req_st1e(valid_st1e),
.writefill_st1e(is_fill_st1[STAGE_1_CYCLES-1]),
.writeaddr_st1e(addr_st1[STAGE_1_CYCLES-1]),
.writewsel_st1e(wsel_st1[STAGE_1_CYCLES-1]),
.writeword_st1e(writeword_st1[STAGE_1_CYCLES-1]),
.writedata_st1e(writedata_st1[STAGE_1_CYCLES-1]),
.valid_req_st1e (valid_st1e),
.writefill_st1e (is_fill_st1[STAGE_1_CYCLES-1]),
.writeaddr_st1e (addr_st1[STAGE_1_CYCLES-1]),
.writewsel_st1e (wsel_st1[STAGE_1_CYCLES-1]),
.writeword_st1e (writeword_st1[STAGE_1_CYCLES-1]),
.writedata_st1e (writedata_st1[STAGE_1_CYCLES-1]),
.mem_write_st1e(mem_write_st1e),
.mem_read_st1e (mem_read_st1e),
.mem_rw_st1e (mem_rw_st1e),
.mem_byteen_st1e (mem_byteen_st1e),
.is_snp_st1e (is_snp_st1e),
.is_snp_st1e (is_snp_st1e),
// Read Data
.readword_st1e (readword_st1e),
@ -439,27 +441,28 @@ module VX_bank #(
.readtag_st1e (readtag_st1e),
.miss_st1e (miss_st1e),
.dirty_st1e (dirty_st1e),
.dirtyb_st1e (dirtyb_st1e),
.fill_saw_dirty_st1e (fill_saw_dirty_st1e),
.snp_to_mrvq_st1e (snp_to_mrvq_st1e),
.mrvq_init_ready_state_st1e(mrvq_init_ready_state_st1e)
);
`DEBUG_BEGIN
`DEBUG_BLOCK(
if (WORD_SIZE != `GLOBAL_BLOCK_SIZE) begin
assign {debug_use_pc_st1e, debug_wb_st1e, debug_rd_st1e, debug_warp_num_st1e, debug_mem_read_st1e, debug_mem_write_st1e, debug_tid_st1e} = inst_meta_st1[STAGE_1_CYCLES-1];
assign {debug_use_pc_st1e, debug_wb_st1e, debug_rd_st1e, debug_warp_num_st1e, debug_tagid_st1e, debug_rw_st1e, debug_byteen_st1e, debug_tid_st1e} = inst_meta_st1[STAGE_1_CYCLES-1];
end
`DEBUG_END
)
wire qual_valid_st1e_2 = valid_st1e && !is_fill_st1[STAGE_1_CYCLES-1];
wire from_mrvq_st1e_st2 = from_mrvq_st1e && !is_snp_st1e;
wire valid_st2;
wire [`BASE_ADDR_BITS-1:0] wsel_st2;
wire [`WORD_SELECT_WIDTH-1:0] wsel_st2;
wire [`WORD_WIDTH-1:0] writeword_st2;
wire [`WORD_WIDTH-1:0] readword_st2;
wire [`BANK_LINE_WIDTH-1:0] readdata_st2;
wire miss_st2;
wire dirty_st2;
wire [BANK_LINE_SIZE-1:0] dirtyb_st2;
wire [`REQ_INST_META_WIDTH-1:0] inst_meta_st2;
wire [`TAG_SELECT_BITS-1:0] readtag_st2;
wire fill_saw_dirty_st2;
@ -474,22 +477,21 @@ module VX_bank #(
wire recover_mrvq_state_st2;
VX_generic_register #(
.N(1+ 1+ 1 + 1 + 1 + 1 + 1 + 1 + `LINE_ADDR_WIDTH + `BASE_ADDR_BITS + `WORD_WIDTH + `WORD_WIDTH + `BANK_LINE_WIDTH + `TAG_SELECT_BITS + 1 + 1 + `REQ_INST_META_WIDTH)
.N(1+ 1+ 1 + 1 + 1 + 1 + 1 + 1 + `LINE_ADDR_WIDTH + `WORD_SELECT_WIDTH + `WORD_WIDTH + `WORD_WIDTH + `BANK_LINE_WIDTH + `TAG_SELECT_BITS + 1 + 1 + BANK_LINE_SIZE + `REQ_INST_META_WIDTH)
) st_1e_2 (
.clk (clk),
.reset(reset),
.stall(stall_bank_pipe),
.flush(1'b0),
.in ({mrvq_recover_ready_state_st1e, from_mrvq_st1e_st2, mrvq_init_ready_state_st1e , snp_to_mrvq_st1e, is_snp_st1e, fill_saw_dirty_st1e, is_fill_st1[STAGE_1_CYCLES-1] , qual_valid_st1e_2, addr_st1[STAGE_1_CYCLES-1], wsel_st1[STAGE_1_CYCLES-1], writeword_st1[STAGE_1_CYCLES-1], readword_st1e, readdata_st1e, readtag_st1e, miss_st1e, dirty_st1e, inst_meta_st1[STAGE_1_CYCLES-1]}),
.out ({mrvq_recover_ready_state_st2 , from_mrvq_st2 , mrvq_init_ready_state_unqual_st2, snp_to_mrvq_st2 , is_snp_st2 , fill_saw_dirty_st2 , is_fill_st2 , valid_st2 , addr_st2 , wsel_st2, writeword_st2 , readword_st2 , readdata_st2 , readtag_st2 , miss_st2 , dirty_st2 , inst_meta_st2 })
.in ({mrvq_recover_ready_state_st1e, from_mrvq_st1e_st2, mrvq_init_ready_state_st1e , snp_to_mrvq_st1e, is_snp_st1e, fill_saw_dirty_st1e, is_fill_st1[STAGE_1_CYCLES-1] , qual_valid_st1e_2, addr_st1[STAGE_1_CYCLES-1], wsel_st1[STAGE_1_CYCLES-1], writeword_st1[STAGE_1_CYCLES-1], readword_st1e, readdata_st1e, readtag_st1e, miss_st1e, dirty_st1e, dirtyb_st1e, inst_meta_st1[STAGE_1_CYCLES-1]}),
.out ({mrvq_recover_ready_state_st2 , from_mrvq_st2 , mrvq_init_ready_state_unqual_st2, snp_to_mrvq_st2 , is_snp_st2 , fill_saw_dirty_st2 , is_fill_st2 , valid_st2 , addr_st2 , wsel_st2, writeword_st2 , readword_st2 , readdata_st2 , readtag_st2 , miss_st2 , dirty_st2 , dirtyb_st2, inst_meta_st2 })
);
`DEBUG_BEGIN
`DEBUG_BLOCK(
if (WORD_SIZE != `GLOBAL_BLOCK_SIZE) begin
assign {debug_use_pc_st2, debug_wb_st2, debug_rd_st2, debug_warp_num_st2, debug_mem_read_st2, debug_mem_write_st2, debug_tid_st2} = inst_meta_st2;
assign {debug_use_pc_st2, debug_wb_st2, debug_rd_st2, debug_warp_num_st2, debug_tagid_st2, debug_rw_st2, debug_byteen_st2, debug_tid_st2} = inst_meta_st2;
end
`DEBUG_END
)
// Enqueue to miss reserv if it's a valid miss
assign miss_add_because_miss = valid_st2 && !is_snp_st2 && miss_st2;
@ -509,14 +511,13 @@ module VX_bank #(
assign recover_mrvq_state_st2 = miss_add && from_mrvq_st2;
wire [`LINE_ADDR_WIDTH-1:0] miss_add_addr = addr_st2;
wire [`BASE_ADDR_BITS-1:0] miss_add_wsel = wsel_st2;
wire [`WORD_SELECT_WIDTH-1:0] miss_add_wsel = wsel_st2;
wire [`WORD_WIDTH-1:0] miss_add_data = writeword_st2;
assign {miss_add_tag, miss_add_mem_read, miss_add_mem_write, miss_add_tid} = inst_meta_st2;
assign {miss_add_tag, miss_add_rw, miss_add_byteen, miss_add_tid} = inst_meta_st2;
wire miss_add_is_snp = is_snp_st2;
wire miss_add_from_mrvq = valid_st2 && from_mrvq_st2 && !stall_bank_pipe;
assign mrvq_init_ready_state_hazard_st0_st1 = miss_add_unqual && qual_is_fill_st0 && (miss_add_addr == qual_addr_st0 );
assign mrvq_init_ready_state_hazard_st1e_st1 = miss_add_unqual && is_fill_st1[STAGE_1_CYCLES-1] && (miss_add_addr == addr_st1[STAGE_1_CYCLES-1]);
@ -544,8 +545,8 @@ module VX_bank #(
.miss_add_data (miss_add_data),
.miss_add_tid (miss_add_tid),
.miss_add_tag (miss_add_tag),
.miss_add_mem_read (miss_add_mem_read),
.miss_add_mem_write (miss_add_mem_write),
.miss_add_rw (miss_add_rw),
.miss_add_byteen (miss_add_byteen),
.miss_add_is_snp (miss_add_is_snp),
.miss_resrv_full (mrvq_full),
.miss_resrv_stop (mrvq_stop),
@ -564,8 +565,8 @@ module VX_bank #(
.miss_resrv_data_st0 (mrvq_writeword_st0),
.miss_resrv_tid_st0 (mrvq_tid_st0),
.miss_resrv_tag_st0 (mrvq_tag_st0),
.miss_resrv_mem_read_st0 (mrvq_mem_read_st0),
.miss_resrv_mem_write_st0(mrvq_mem_write_st0),
.miss_resrv_rw_st0 (mrvq_rw_st0),
.miss_resrv_byteen_st0 (mrvq_byteen_st0),
.miss_resrv_is_snp_st0 (mrvq_is_snp_st0)
);
@ -581,10 +582,12 @@ module VX_bank #(
assign cwbq_push = cwbq_push_unqual
&& !cwbq_full
&& (miss_add_mem_write == `BYTE_EN_NO)
&& (miss_add_rw == 0)
&& !(dwbq_push_stall
|| mrvq_push_stall
|| dram_fill_req_stall);
|| dram_fill_req_stall);
assign cwbq_pop = core_rsp_valid && core_rsp_ready;
wire [`WORD_WIDTH-1:0] cwbq_data = readword_st2;
wire [`REQS_BITS-1:0] cwbq_tid = miss_add_tid;
@ -605,10 +608,9 @@ module VX_bank #(
.empty (cwbq_empty),
.full (cwbq_full),
`UNUSED_PIN (size)
);
);
assign core_rsp_valid = !cwbq_empty;
assign cwbq_pop = core_rsp_valid && core_rsp_ready;
// Enqueue DRAM fill request
@ -664,23 +666,22 @@ module VX_bank #(
|| mrvq_push_stall
|| dram_fill_req_stall);
wire [`BANK_LINE_WIDTH-1:0] dwbq_req_data = readdata_st2;
wire [`LINE_ADDR_WIDTH-1:0] dwbq_req_addr = {readtag_st2, addr_st2[`LINE_SELECT_BITS-1:0]};
wire [SNP_REQ_TAG_WIDTH-1:0] snrq_tag_st2 = SNP_REQ_TAG_WIDTH'(miss_add_tag);
VX_generic_queue #(
.DATAW(1 + 1 + `LINE_ADDR_WIDTH + `BANK_LINE_WIDTH + SNP_REQ_TAG_WIDTH),
.DATAW(1 + 1 + BANK_LINE_SIZE + `LINE_ADDR_WIDTH + `BANK_LINE_WIDTH + SNP_REQ_TAG_WIDTH),
.SIZE(DWBQ_SIZE)
) dwb_queue (
.clk (clk),
.reset (reset),
.push (dwbq_push),
.data_in ({dwbq_is_dwb_in, dwbq_is_snp_in, dwbq_req_addr, dwbq_req_data, snrq_tag_st2}),
.data_in ({dwbq_is_dwb_in, dwbq_is_snp_in, dirtyb_st2, dwbq_req_addr, readdata_st2, snrq_tag_st2}),
.pop (dwbq_pop),
.data_out({dwbq_is_dwb_out, dwbq_is_snp_out, dram_wb_req_addr, dram_wb_req_data, snp_rsp_tag}),
.data_out({dwbq_is_dwb_out, dwbq_is_snp_out, dram_wb_req_byteen, dram_wb_req_addr, dram_wb_req_data, snp_rsp_tag}),
.empty (dwbq_empty),
.full (dwbq_full),
`UNUSED_PIN (size)
@ -717,25 +718,25 @@ module VX_bank #(
if (NUM_BANKS == 1) begin
always_ff @(posedge clk) begin
if (dram_fill_req_valid && dram_fill_req_ready) begin
$display("%t: bank%02d:%01d dram_fill req: addr=%0h", $time, CACHE_ID, BANK_ID, dram_fill_req_addr);
$display("%t: bank%01d%01d dram_fill req: addr=%0h", $time, CACHE_ID, BANK_ID, `LINE_TO_BYTE_ADDR0(dram_fill_req_addr));
end
if (dram_wb_req_valid && dram_wb_req_ready) begin
$display("%t: bank%02d:%01d dram_wb req: addr=%0h, data=%0h", $time, CACHE_ID, BANK_ID, dram_wb_req_addr, dram_wb_req_data);
$display("%t: bank%01d%01d dram_wb req: addr=%0h, data=%0h", $time, CACHE_ID, BANK_ID, `LINE_TO_BYTE_ADDR0(dram_wb_req_addr), dram_wb_req_data);
end
if (dram_fill_rsp_valid && dram_fill_rsp_ready) begin
$display("%t: bank%02d:%01d dram_fill rsp: addr=%0h, data=%0h", $time, CACHE_ID, BANK_ID, dram_fill_rsp_addr, dram_fill_rsp_data);
$display("%t: bank%01d%01d dram_fill rsp: addr=%0h, data=%0h", $time, CACHE_ID, BANK_ID, `LINE_TO_BYTE_ADDR0(dram_fill_rsp_addr), dram_fill_rsp_data);
end
end
end else begin
always_ff @(posedge clk) begin
if (dram_fill_req_valid && dram_fill_req_ready) begin
$display("%t: bank%02d:%01d dram_fill req: addr=%0h", $time, CACHE_ID, BANK_ID, `LINE_TO_BYTE_ADDR(dram_fill_req_addr, BANK_ID));
$display("%t: bank%01d%01d dram_fill req: addr=%0h", $time, CACHE_ID, BANK_ID, `LINE_TO_BYTE_ADDR(dram_fill_req_addr, BANK_ID));
end
if (dram_wb_req_valid && dram_wb_req_ready) begin
$display("%t: bank%02d:%01d dram_wb req: addr=%0h, data=%0h", $time, CACHE_ID, BANK_ID, `LINE_TO_BYTE_ADDR(dram_wb_req_addr, BANK_ID), dram_wb_req_data);
$display("%t: bank%01d%01d dram_wb req: addr=%0h, data=%0h", $time, CACHE_ID, BANK_ID, `LINE_TO_BYTE_ADDR(dram_wb_req_addr, BANK_ID), dram_wb_req_data);
end
if (dram_fill_rsp_valid && dram_fill_rsp_ready) begin
$display("%t: bank%02d:%01d dram_fill rsp: addr=%0h, data=%0h", $time, CACHE_ID, BANK_ID, `LINE_TO_BYTE_ADDR(dram_fill_rsp_addr, BANK_ID), dram_fill_rsp_data);
$display("%t: bank%01d%01d dram_fill rsp: addr=%0h, data=%0h", $time, CACHE_ID, BANK_ID, `LINE_TO_BYTE_ADDR(dram_fill_rsp_addr, BANK_ID), dram_fill_rsp_data);
end
end
end

View file

@ -18,7 +18,7 @@ module VX_cache #(
// Queues feeding into banks Knobs {1, 2, 4, 8, ...}
// Core Request Queue Size
parameter REQQ_SIZE = 8,
parameter CREQ_SIZE = 8,
// Miss Reserv Queue Knob
parameter MRVQ_SIZE = 16,
// Dram Fill Rsp Queue Size
@ -69,23 +69,24 @@ module VX_cache #(
input wire reset,
// Core request
input wire [NUM_REQUESTS-1:0] core_req_valid,
input wire [NUM_REQUESTS-1:0][`BYTE_EN_BITS-1:0] core_req_read,
input wire [NUM_REQUESTS-1:0][`BYTE_EN_BITS-1:0] core_req_write,
input wire [NUM_REQUESTS-1:0][31:0] core_req_addr,
input wire [NUM_REQUESTS-1:0][`WORD_WIDTH-1:0] core_req_data,
input wire [NUM_REQUESTS-1:0] core_req_valid,
input wire [NUM_REQUESTS-1:0] core_req_rw,
input wire [NUM_REQUESTS-1:0][WORD_SIZE-1:0] core_req_byteen,
input wire [NUM_REQUESTS-1:0][`WORD_ADDR_WIDTH-1:0] core_req_addr,
input wire [NUM_REQUESTS-1:0][`WORD_WIDTH-1:0] core_req_data,
input wire [`CORE_REQ_TAG_COUNT-1:0][CORE_TAG_WIDTH-1:0] core_req_tag,
output wire core_req_ready,
output wire core_req_ready,
// Core response
output wire [NUM_REQUESTS-1:0] core_rsp_valid,
output wire [NUM_REQUESTS-1:0][`WORD_WIDTH-1:0] core_rsp_data,
output wire [NUM_REQUESTS-1:0] core_rsp_valid,
output wire [NUM_REQUESTS-1:0][`WORD_WIDTH-1:0] core_rsp_data,
output wire [`CORE_REQ_TAG_COUNT-1:0][CORE_TAG_WIDTH-1:0] core_rsp_tag,
input wire core_rsp_ready,
input wire core_rsp_ready,
// DRAM request
output wire dram_req_read,
output wire dram_req_write,
output wire dram_req_valid,
output wire dram_req_rw,
output wire [BANK_LINE_SIZE-1:0] dram_req_byteen,
output wire [`DRAM_ADDR_WIDTH-1:0] dram_req_addr,
output wire [`BANK_LINE_WIDTH-1:0] dram_req_data,
output wire [DRAM_TAG_WIDTH-1:0] dram_req_tag,
@ -122,22 +123,18 @@ module VX_cache #(
output wire [NUM_SNP_REQUESTS-1:0] snp_fwdin_ready
);
`DEBUG_BEGIN
`DEBUG_BLOCK(
wire[31:0] debug_core_req_use_pc;
wire[1:0] debug_core_req_wb;
wire[2:0] debug_core_req_rmask;
wire[4:0] debug_core_req_rd;
wire[`NW_BITS-1:0] debug_core_req_warp_num;
if (WORD_SIZE != `GLOBAL_BLOCK_SIZE) begin
assign {debug_core_req_use_pc, debug_core_req_wb, debug_core_req_rd, debug_core_req_warp_num} = core_req_tag[0];
assign {debug_core_req_use_pc, debug_core_req_wb, debug_core_req_rmask, debug_core_req_rd, debug_core_req_warp_num} = core_req_tag[0];
end
`DEBUG_END
wire [NUM_BANKS-1:0][NUM_REQUESTS-1:0] per_bank_valids;
)
wire [NUM_BANKS-1:0][NUM_REQUESTS-1:0] per_bank_valid;
wire [NUM_BANKS-1:0] per_bank_core_req_ready;
@ -155,6 +152,7 @@ module VX_cache #(
wire [NUM_BANKS-1:0] per_bank_dram_wb_req_ready;
wire [NUM_BANKS-1:0] per_bank_dram_wb_req_valid;
wire [NUM_BANKS-1:0][BANK_LINE_SIZE-1:0] per_bank_dram_wb_req_byteen;
wire [NUM_BANKS-1:0][`DRAM_ADDR_WIDTH-1:0] per_bank_dram_wb_req_addr;
wire [NUM_BANKS-1:0][`BANK_LINE_WIDTH-1:0] per_bank_dram_wb_req_data;
@ -226,18 +224,18 @@ module VX_cache #(
) cache_core_req_bank_sel (
.core_req_valid (core_req_valid),
.core_req_addr (core_req_addr),
.per_bank_valids (per_bank_valids)
.per_bank_valid (per_bank_valid)
);
genvar i;
generate
for (i = 0; i < NUM_BANKS; i++) begin
wire [NUM_REQUESTS-1:0] curr_bank_core_req_valids;
wire [NUM_REQUESTS-1:0][31:0] curr_bank_core_req_addr;
wire [`CORE_REQ_TAG_COUNT-1:0][CORE_TAG_WIDTH-1:0] curr_bank_core_req_tag;
wire [NUM_REQUESTS-1:0][`WORD_WIDTH-1:0] curr_bank_core_req_data;
wire [NUM_REQUESTS-1:0][`BYTE_EN_BITS-1:0] curr_bank_core_req_read;
wire [NUM_REQUESTS-1:0][`BYTE_EN_BITS-1:0] curr_bank_core_req_write;
wire [NUM_REQUESTS-1:0] curr_bank_core_req_valid;
wire [NUM_REQUESTS-1:0] curr_bank_core_req_rw;
wire [NUM_REQUESTS-1:0][WORD_SIZE-1:0] curr_bank_core_req_byteen;
wire [NUM_REQUESTS-1:0][`WORD_ADDR_WIDTH-1:0] curr_bank_core_req_addr;
wire [`CORE_REQ_TAG_COUNT-1:0][CORE_TAG_WIDTH-1:0] curr_bank_core_req_tag;
wire [NUM_REQUESTS-1:0][`WORD_WIDTH-1:0] curr_bank_core_req_data;
wire curr_bank_core_rsp_valid;
wire [`REQS_BITS-1:0] curr_bank_core_rsp_tid;
@ -250,11 +248,12 @@ module VX_cache #(
wire [`LINE_ADDR_WIDTH-1:0] curr_bank_dram_fill_rsp_addr;
wire curr_bank_dram_fill_rsp_ready;
wire curr_bank_dram_fill_req_valid;
wire curr_bank_dram_fill_req_valid;
wire [`LINE_ADDR_WIDTH-1:0] curr_bank_dram_fill_req_addr;
wire curr_bank_dram_fill_req_ready;
wire curr_bank_dram_wb_req_valid;
wire [BANK_LINE_SIZE-1:0] curr_bank_dram_wb_req_byteen;
wire [`LINE_ADDR_WIDTH-1:0] curr_bank_dram_wb_req_addr;
wire[`BANK_LINE_WIDTH-1:0] curr_bank_dram_wb_req_data;
wire curr_bank_dram_wb_req_ready;
@ -271,12 +270,12 @@ module VX_cache #(
wire curr_bank_core_req_ready;
// Core Req
assign curr_bank_core_req_valids = per_bank_valids[i] & {NUM_REQUESTS{core_req_ready}};
assign curr_bank_core_req_valid = per_bank_valid[i] & {NUM_REQUESTS{core_req_ready}};
assign curr_bank_core_req_addr = core_req_addr;
assign curr_bank_core_req_rw = core_req_rw;
assign curr_bank_core_req_byteen = core_req_byteen;
assign curr_bank_core_req_data = core_req_data;
assign curr_bank_core_req_tag = core_req_tag;
assign curr_bank_core_req_read = core_req_read;
assign curr_bank_core_req_write = core_req_write;
assign per_bank_core_req_ready[i] = curr_bank_core_req_ready;
// Core WB
@ -308,10 +307,11 @@ module VX_cache #(
// Dram writeback request
assign per_bank_dram_wb_req_valid[i] = curr_bank_dram_wb_req_valid;
assign per_bank_dram_wb_req_byteen[i] = curr_bank_dram_wb_req_byteen;
if (NUM_BANKS == 1) begin
assign per_bank_dram_wb_req_addr[i] = curr_bank_dram_wb_req_addr;
end else begin
assign per_bank_dram_wb_req_addr[i] = `LINE_TO_DRAM_ADDR(curr_bank_dram_wb_req_addr, i);
assign per_bank_dram_wb_req_addr[i] = `LINE_TO_DRAM_ADDR(curr_bank_dram_wb_req_addr, i);
end
assign per_bank_dram_wb_req_data[i] = curr_bank_dram_wb_req_data;
assign curr_bank_dram_wb_req_ready = per_bank_dram_wb_req_ready[i];
@ -341,7 +341,7 @@ module VX_cache #(
.WORD_SIZE (WORD_SIZE),
.NUM_REQUESTS (NUM_REQUESTS),
.STAGE_1_CYCLES (STAGE_1_CYCLES),
.REQQ_SIZE (REQQ_SIZE),
.CREQ_SIZE (CREQ_SIZE),
.MRVQ_SIZE (MRVQ_SIZE),
.DFPQ_SIZE (DFPQ_SIZE),
.SNRQ_SIZE (SNRQ_SIZE),
@ -358,9 +358,9 @@ module VX_cache #(
.clk (clk),
.reset (reset),
// Core request
.core_req_valids (curr_bank_core_req_valids),
.core_req_read (curr_bank_core_req_read),
.core_req_write (curr_bank_core_req_write),
.core_req_valid (curr_bank_core_req_valid),
.core_req_rw (curr_bank_core_req_rw),
.core_req_byteen (curr_bank_core_req_byteen),
.core_req_addr (curr_bank_core_req_addr),
.core_req_data (curr_bank_core_req_data),
.core_req_tag (curr_bank_core_req_tag),
@ -386,6 +386,7 @@ module VX_cache #(
// Dram writeback request
.dram_wb_req_valid (curr_bank_dram_wb_req_valid),
.dram_wb_req_byteen (curr_bank_dram_wb_req_byteen),
.dram_wb_req_addr (curr_bank_dram_wb_req_addr),
.dram_wb_req_data (curr_bank_dram_wb_req_data),
.dram_wb_req_ready (curr_bank_dram_wb_req_ready),
@ -418,11 +419,13 @@ module VX_cache #(
.per_bank_dram_fill_req_addr (per_bank_dram_fill_req_addr),
.dram_fill_req_ready (dram_fill_req_ready),
.per_bank_dram_wb_req_valid (per_bank_dram_wb_req_valid),
.per_bank_dram_wb_req_byteen (per_bank_dram_wb_req_byteen),
.per_bank_dram_wb_req_addr (per_bank_dram_wb_req_addr),
.per_bank_dram_wb_req_data (per_bank_dram_wb_req_data),
.per_bank_dram_wb_req_ready (per_bank_dram_wb_req_ready),
.dram_req_read (dram_req_read),
.dram_req_write (dram_req_write),
.dram_req_valid (dram_req_valid),
.dram_req_rw (dram_req_rw),
.dram_req_byteen (dram_req_byteen),
.dram_req_addr (dram_req_addr),
.dram_req_data (dram_req_data),
.dram_req_ready (dram_req_ready)

View file

@ -5,11 +5,11 @@
`define REQ_TAG_WIDTH `MAX(CORE_TAG_WIDTH, SNP_REQ_TAG_WIDTH)
// data tid tag read write base addr is_snp
`define MRVQ_METADATA_WIDTH (`WORD_WIDTH + `REQS_BITS + `REQ_TAG_WIDTH + `BYTE_EN_BITS + `BYTE_EN_BITS + `BASE_ADDR_BITS + 1)
// tag rw byteen tid
`define REQ_INST_META_WIDTH (`REQ_TAG_WIDTH + 1 + WORD_SIZE + `REQS_BITS)
// tag read write reqs
`define REQ_INST_META_WIDTH (`REQ_TAG_WIDTH + `BYTE_EN_BITS + `BYTE_EN_BITS + `REQS_BITS)
// data metadata word_sel is_snp
`define MRVQ_METADATA_WIDTH (`WORD_WIDTH + `REQ_INST_META_WIDTH + `WORD_SELECT_WIDTH + 1)
`define REQS_BITS `LOG2UP(NUM_REQUESTS)
@ -27,36 +27,39 @@
`define OFFSET_ADDR_BITS `CLOG2(WORD_SIZE)
`define OFFSET_ADDR_START 0
`define OFFSET_ADDR_END (`OFFSET_ADDR_START+`OFFSET_ADDR_BITS-1)
`define OFFSET_ADDR_RNG `OFFSET_ADDR_END:`OFFSET_ADDR_START
// Word select
`define WORD_SELECT_BITS `CLOG2(`BANK_LINE_WORDS)
`define WORD_SELECT_ADDR_START (1+`OFFSET_ADDR_END)
`define WORD_SELECT_ADDR_END (`WORD_SELECT_ADDR_START+`WORD_SELECT_BITS-1)
`define WORD_SELECT_ADDR_RNG `WORD_SELECT_ADDR_END:`WORD_SELECT_ADDR_START
// Bank select
`define BANK_SELECT_BITS `CLOG2(NUM_BANKS)
`define BANK_SELECT_ADDR_START (1+`WORD_SELECT_ADDR_END)
`define BANK_SELECT_ADDR_END (`BANK_SELECT_ADDR_START+`BANK_SELECT_BITS-1)
`define BANK_SELECT_ADDR_RNG `BANK_SELECT_ADDR_END:`BANK_SELECT_ADDR_START
// Line select
`define LINE_SELECT_BITS `CLOG2(`BANK_LINE_COUNT)
`define LINE_SELECT_ADDR_START (1+`BANK_SELECT_ADDR_END)
`define LINE_SELECT_ADDR_END (`LINE_SELECT_ADDR_START+`LINE_SELECT_BITS-1)
`define LINE_SELECT_ADDR_RNG `LINE_SELECT_ADDR_END:`LINE_SELECT_ADDR_START
// Tag select
`define TAG_SELECT_BITS (31-`LINE_SELECT_ADDR_END)
`define TAG_SELECT_ADDR_START (1+`LINE_SELECT_ADDR_END)
`define TAG_SELECT_ADDR_END 31
`define TAG_SELECT_ADDR_RNG `TAG_SELECT_ADDR_END:`TAG_SELECT_ADDR_START
`define WORD_SELECT_WIDTH `LOG2UP(`BANK_LINE_WORDS)
`define WORD_ADDR_WIDTH (32-`CLOG2(WORD_SIZE))
`define DRAM_ADDR_WIDTH (32-`CLOG2(BANK_LINE_SIZE))
`define LINE_ADDR_WIDTH (`DRAM_ADDR_WIDTH-`BANK_SELECT_BITS)
`define BANK_SELECT_ADDR_RNG (`BANK_SELECT_BITS+`WORD_SELECT_BITS-1):`WORD_SELECT_BITS
`define LINE_SELECT_ADDR_RNG `WORD_ADDR_WIDTH-1:(`BANK_SELECT_BITS + `WORD_SELECT_BITS)
`define TAG_LINE_ADDR_RNG `LINE_ADDR_WIDTH-1:`LINE_SELECT_BITS
`define BASE_ADDR_BITS (`WORD_SELECT_BITS+`OFFSET_ADDR_BITS)
@ -69,8 +72,12 @@
`define DRAM_TO_LINE_ADDR(x) x[`DRAM_ADDR_WIDTH-1:`BANK_SELECT_BITS]
`define BYTE_TO_WORD_ADDR(x, w) (32-`CLOG2(w))'(x >> `CLOG2(w))
`define LINE_TO_DRAM_ADDR(x, i) {x, `BANK_SELECT_BITS'(i)}
`define LINE_TO_BYTE_ADDR(x, i) {x, `BANK_SELECT_BITS'(i), `BASE_ADDR_BITS'(0)}
`define LINE_TO_BYTE_ADDR0(x) {x, `BASE_ADDR_BITS'(0)}
`endif

View file

@ -13,24 +13,24 @@ module VX_cache_core_req_bank_sel #(
) (
input wire [NUM_REQUESTS-1:0] core_req_valid,
`IGNORE_WARNINGS_BEGIN
input wire [NUM_REQUESTS-1:0][31:0] core_req_addr,
input wire [NUM_REQUESTS-1:0][`WORD_ADDR_WIDTH-1:0] core_req_addr,
`IGNORE_WARNINGS_END
output reg [NUM_BANKS-1:0][NUM_REQUESTS-1:0] per_bank_valids
output reg [NUM_BANKS-1:0][NUM_REQUESTS-1:0] per_bank_valid
);
integer i;
if (NUM_BANKS == 1) begin
always @(*) begin
per_bank_valids = 0;
per_bank_valid = 0;
for (i = 0; i < NUM_REQUESTS; i++) begin
per_bank_valids[0][i] = core_req_valid[i];
per_bank_valid[0][i] = core_req_valid[i];
end
end
end else begin
always @(*) begin
per_bank_valids = 0;
per_bank_valid = 0;
for (i = 0; i < NUM_REQUESTS; i++) begin
per_bank_valids[core_req_addr[i][`BANK_SELECT_ADDR_RNG]][i] = core_req_valid[i];
per_bank_valid[core_req_addr[i][`BANK_SELECT_ADDR_RNG]][i] = core_req_valid[i];
end
end
end

View file

@ -31,14 +31,13 @@ module VX_cache_core_rsp_merge #(
assign per_bank_core_rsp_ready = per_bank_core_rsp_pop_unqual & {NUM_BANKS{core_rsp_ready}};
wire [`BANK_BITS-1:0] main_bank_index;
wire found_bank;
VX_generic_priority_encoder #(
.N(NUM_BANKS)
) sel_bank (
.valids(per_bank_core_rsp_valid),
.index (main_bank_index),
.found (found_bank)
`UNUSED_PIN (found)
);
integer i;
@ -47,13 +46,8 @@ module VX_cache_core_rsp_merge #(
assign core_rsp_tag = per_bank_core_rsp_tag[main_bank_index];
always @(*) begin
core_rsp_valid = 0;
core_rsp_data = 0;
for (i = 0; i < NUM_BANKS; i++) begin
if (found_bank
&& per_bank_core_rsp_valid[i]
&& !core_rsp_valid[per_bank_core_rsp_tid[i]]
&& ((main_bank_index == `BANK_BITS'(i))
|| (per_bank_core_rsp_tid[i] != per_bank_core_rsp_tid[main_bank_index]))
if (per_bank_core_rsp_valid[i]
&& (per_bank_core_rsp_tag[i][CORE_TAG_ID_BITS-1:0] == per_bank_core_rsp_tag[main_bank_index][CORE_TAG_ID_BITS-1:0])) begin
core_rsp_valid[per_bank_core_rsp_tid[i]] = 1;
core_rsp_data[per_bank_core_rsp_tid[i]] = per_bank_core_rsp_data[i];
@ -66,11 +60,8 @@ module VX_cache_core_rsp_merge #(
end else begin
always @(*) begin
core_rsp_valid = 0;
core_rsp_data = 0;
core_rsp_tag = 0;
for (i = 0; i < NUM_BANKS; i++) begin
if (found_bank
&& per_bank_core_rsp_valid[i]
if (per_bank_core_rsp_valid[i]
&& !core_rsp_valid[per_bank_core_rsp_tid[i]]
&& ((main_bank_index == `BANK_BITS'(i))
|| (per_bank_core_rsp_tid[i] != per_bank_core_rsp_tid[main_bank_index]))) begin

View file

@ -23,13 +23,15 @@ module VX_cache_dram_req_arb #(
// Writeback Request
input wire [NUM_BANKS-1:0] per_bank_dram_wb_req_valid,
input wire [NUM_BANKS-1:0][BANK_LINE_SIZE-1:0] per_bank_dram_wb_req_byteen,
input wire [NUM_BANKS-1:0][`DRAM_ADDR_WIDTH-1:0] per_bank_dram_wb_req_addr,
input wire [NUM_BANKS-1:0][`BANK_LINE_WIDTH-1:0] per_bank_dram_wb_req_data,
output wire [NUM_BANKS-1:0] per_bank_dram_wb_req_ready,
// Merged Request
output wire dram_req_read,
output wire dram_req_write,
output wire dram_req_valid,
output wire dram_req_rw,
output wire [BANK_LINE_SIZE-1:0] dram_req_byteen,
output wire [`DRAM_ADDR_WIDTH-1:0] dram_req_addr,
output wire [`BANK_LINE_WIDTH-1:0] dram_req_data,
@ -54,7 +56,7 @@ module VX_cache_dram_req_arb #(
.clk (clk),
.reset (reset),
.dram_req (dram_req_read),
.dram_req (dram_req_valid && ~dram_req_rw),
.dram_req_addr(dram_req_addr),
.pref_pop (pref_pop),
@ -106,10 +108,9 @@ module VX_cache_dram_req_arb #(
assign per_bank_dram_wb_req_ready[i] = dram_req_ready && (dwb_bank == `BANK_BITS'(i));
end
wire dram_req_valid = dwb_valid || dfqq_req || pref_pop;
assign dram_req_read = ((dfqq_req && !dwb_valid) || pref_pop) && dram_req_valid;
assign dram_req_write = dwb_valid && dram_req_valid;
assign dram_req_valid = dwb_valid || dfqq_req || pref_pop;
assign dram_req_rw = dwb_valid;
assign dram_req_byteen = dwb_valid ? per_bank_dram_wb_req_byteen[dwb_bank] : {BANK_LINE_SIZE{1'b1}};
assign dram_req_addr = dwb_valid ? per_bank_dram_wb_req_addr[dwb_bank] : (dfqq_req ? dfqq_req_addr : pref_addr);
assign {dram_req_data} = dwb_valid ? per_bank_dram_wb_req_data[dwb_bank] : 0;

View file

@ -25,12 +25,12 @@ module VX_cache_miss_resrv #(
input wire miss_add,
input wire from_mrvq,
input wire[`LINE_ADDR_WIDTH-1:0] miss_add_addr,
input wire[`BASE_ADDR_BITS-1:0] miss_add_wsel,
input wire[`WORD_SELECT_WIDTH-1:0] miss_add_wsel,
input wire[`WORD_WIDTH-1:0] miss_add_data,
input wire[`REQS_BITS-1:0] miss_add_tid,
input wire[`REQ_TAG_WIDTH-1:0] miss_add_tag,
input wire[`BYTE_EN_BITS-1:0] miss_add_mem_read,
input wire[`BYTE_EN_BITS-1:0] miss_add_mem_write,
input wire miss_add_rw,
input wire[WORD_SIZE-1:0] miss_add_byteen,
input wire mrvq_init_ready_state,
input wire miss_add_is_snp,
output wire miss_resrv_full,
@ -46,12 +46,12 @@ module VX_cache_miss_resrv #(
input wire miss_resrv_pop,
output wire miss_resrv_valid_st0,
output wire[`LINE_ADDR_WIDTH-1:0] miss_resrv_addr_st0,
output wire[`BASE_ADDR_BITS-1:0] miss_resrv_wsel_st0,
output wire[`WORD_SELECT_WIDTH-1:0] miss_resrv_wsel_st0,
output wire[`WORD_WIDTH-1:0] miss_resrv_data_st0,
output wire[`REQS_BITS-1:0] miss_resrv_tid_st0,
output wire[`REQ_TAG_WIDTH-1:0] miss_resrv_tag_st0,
output wire[`BYTE_EN_BITS-1:0] miss_resrv_mem_read_st0,
output wire[`BYTE_EN_BITS-1:0] miss_resrv_mem_write_st0,
output wire miss_resrv_rw_st0,
output wire[WORD_SIZE-1:0] miss_resrv_byteen_st0,
output wire miss_resrv_is_snp_st0
);
reg [`MRVQ_METADATA_WIDTH-1:0] metadata_table[MRVQ_SIZE-1:0];
@ -93,7 +93,7 @@ module VX_cache_miss_resrv #(
assign miss_resrv_valid_st0 = (MRVQ_SIZE != 2) && dequeue_possible;
assign miss_resrv_addr_st0 = addr_table[dequeue_index];
assign {miss_resrv_data_st0, miss_resrv_tid_st0, miss_resrv_tag_st0, miss_resrv_mem_read_st0, miss_resrv_mem_write_st0, miss_resrv_wsel_st0, miss_resrv_is_snp_st0} = metadata_table[dequeue_index];
assign {miss_resrv_data_st0, miss_resrv_tid_st0, miss_resrv_tag_st0, miss_resrv_rw_st0, miss_resrv_byteen_st0, miss_resrv_wsel_st0, miss_resrv_is_snp_st0} = metadata_table[dequeue_index];
wire mrvq_push = miss_add && enqueue_possible && !from_mrvq && (MRVQ_SIZE != 2);
wire mrvq_pop = miss_resrv_pop && dequeue_possible;
@ -124,7 +124,7 @@ module VX_cache_miss_resrv #(
valid_table[enqueue_index] <= 1;
ready_table[enqueue_index] <= mrvq_init_ready_state;
addr_table[enqueue_index] <= miss_add_addr;
metadata_table[enqueue_index] <= {miss_add_data, miss_add_tid, miss_add_tag, miss_add_mem_read, miss_add_mem_write, miss_add_wsel, miss_add_is_snp};
metadata_table[enqueue_index] <= {miss_add_data, miss_add_tid, miss_add_tag, miss_add_rw, miss_add_byteen, miss_add_wsel, miss_add_is_snp};
tail_ptr <= tail_ptr + 1;
end else if (increment_head) begin
valid_table[head_ptr] <= 0;

View file

@ -6,7 +6,7 @@ module VX_cache_req_queue #(
// Number of Word requests per cycle {1, 2, 4, 8, ...}
parameter NUM_REQUESTS = 0,
// Core Request Queue Size
parameter REQQ_SIZE = 0,
parameter CREQ_SIZE = 0,
// core request tag size
parameter CORE_TAG_WIDTH = 0,
// size of tag id in core request tag
@ -16,22 +16,22 @@ module VX_cache_req_queue #(
input wire reset,
// Enqueue Data
input wire reqq_push,
input wire [NUM_REQUESTS-1:0] bank_valids,
input wire [NUM_REQUESTS-1:0][`BYTE_EN_BITS-1:0] bank_mem_read,
input wire [NUM_REQUESTS-1:0][`BYTE_EN_BITS-1:0] bank_mem_write,
input wire [NUM_REQUESTS-1:0][`WORD_WIDTH-1:0] bank_writedata,
input wire [NUM_REQUESTS-1:0][31:0] bank_addr,
input wire [`CORE_REQ_TAG_COUNT-1:0][CORE_TAG_WIDTH-1:0] bank_tag,
input wire reqq_push,
input wire [NUM_REQUESTS-1:0] bank_valids,
input wire [NUM_REQUESTS-1:0] bank_rw,
input wire [NUM_REQUESTS-1:0][WORD_SIZE-1:0] bank_byteen,
input wire [NUM_REQUESTS-1:0][`WORD_WIDTH-1:0] bank_writedata,
input wire [NUM_REQUESTS-1:0][`WORD_ADDR_WIDTH-1:0] bank_addr,
input wire [`CORE_REQ_TAG_COUNT-1:0][CORE_TAG_WIDTH-1:0] bank_tag,
// Dequeue Data
input wire reqq_pop,
output wire reqq_req_st0,
output wire [`REQS_BITS-1:0] reqq_req_tid_st0,
output wire [`BYTE_EN_BITS-1:0] reqq_req_mem_read_st0,
output wire [`BYTE_EN_BITS-1:0] reqq_req_mem_write_st0,
output wire reqq_req_rw_st0,
output wire [WORD_SIZE-1:0] reqq_req_byteen_st0,
output wire [`WORD_ADDR_WIDTH-1:0] reqq_req_addr_st0,
output wire [`WORD_WIDTH-1:0] reqq_req_writedata_st0,
output wire [31:0] reqq_req_addr_st0,
output wire [CORE_TAG_WIDTH-1:0] reqq_req_tag_st0,
// State Data
@ -39,30 +39,26 @@ module VX_cache_req_queue #(
output wire reqq_full
);
wire [NUM_REQUESTS-1:0] out_per_valids;
wire [NUM_REQUESTS-1:0][31:0] out_per_addr;
wire [NUM_REQUESTS-1:0][`WORD_WIDTH-1:0] out_per_writedata;
wire [NUM_REQUESTS-1:0][`BYTE_EN_BITS-1:0] out_per_mem_read;
wire [NUM_REQUESTS-1:0][`BYTE_EN_BITS-1:0] out_per_mem_write;
wire [`CORE_REQ_TAG_COUNT-1:0][CORE_TAG_WIDTH-1:0] out_per_tag;
wire [NUM_REQUESTS-1:0] out_per_valids;
wire [NUM_REQUESTS-1:0] out_per_rw;
wire [NUM_REQUESTS-1:0][WORD_SIZE-1:0] out_per_byteen;
wire [NUM_REQUESTS-1:0][`WORD_ADDR_WIDTH-1:0] out_per_addr;
wire [NUM_REQUESTS-1:0][`WORD_WIDTH-1:0] out_per_writedata;
wire [`CORE_REQ_TAG_COUNT-1:0][CORE_TAG_WIDTH-1:0] out_per_tag;
reg [NUM_REQUESTS-1:0] use_per_valids;
reg [NUM_REQUESTS-1:0][31:0] use_per_addr;
reg [NUM_REQUESTS-1:0][`WORD_WIDTH-1:0] use_per_writedata;
reg [NUM_REQUESTS-1:0][`BYTE_EN_BITS-1:0] use_per_mem_read;
reg [NUM_REQUESTS-1:0][`BYTE_EN_BITS-1:0] use_per_mem_write;
reg [`CORE_REQ_TAG_COUNT-1:0][CORE_TAG_WIDTH-1:0] use_per_tag;
reg [NUM_REQUESTS-1:0] use_per_valids;
reg [NUM_REQUESTS-1:0] use_per_rw;
reg [NUM_REQUESTS-1:0][WORD_SIZE-1:0] use_per_byteen;
reg [NUM_REQUESTS-1:0][`WORD_ADDR_WIDTH-1:0] use_per_addr;
reg [NUM_REQUESTS-1:0][`WORD_WIDTH-1:0] use_per_writedata;
reg [`CORE_REQ_TAG_COUNT-1:0][CORE_TAG_WIDTH-1:0] use_per_tag;
wire [NUM_REQUESTS-1:0] qual_valids;
wire [NUM_REQUESTS-1:0][31:0] qual_addr;
wire [NUM_REQUESTS-1:0][`WORD_WIDTH-1:0] qual_writedata;
wire [NUM_REQUESTS-1:0][`BYTE_EN_BITS-1:0] qual_mem_read;
wire [NUM_REQUESTS-1:0][`BYTE_EN_BITS-1:0] qual_mem_write;
wire [`CORE_REQ_TAG_COUNT-1:0][CORE_TAG_WIDTH-1:0] qual_tag;
`DEBUG_BEGIN
reg [NUM_REQUESTS-1:0] updated_valids;
`DEBUG_END
wire [NUM_REQUESTS-1:0] qual_valids;
wire [NUM_REQUESTS-1:0] qual_rw;
wire [NUM_REQUESTS-1:0][WORD_SIZE-1:0] qual_byteen;
wire [NUM_REQUESTS-1:0][`WORD_ADDR_WIDTH-1:0] qual_addr;
wire [NUM_REQUESTS-1:0][`WORD_WIDTH-1:0] qual_writedata;
wire [`CORE_REQ_TAG_COUNT-1:0][CORE_TAG_WIDTH-1:0] qual_tag;
wire o_empty;
@ -73,15 +69,15 @@ module VX_cache_req_queue #(
wire pop_qual = !out_empty && use_empty;
VX_generic_queue #(
.DATAW($bits(bank_valids) + $bits(bank_addr) + $bits(bank_writedata) + $bits(bank_tag) + $bits(bank_mem_read) + $bits(bank_mem_write)),
.SIZE(REQQ_SIZE)
.DATAW($bits(bank_valids) + $bits(bank_addr) + $bits(bank_writedata) + $bits(bank_tag) + $bits(bank_rw) + $bits(bank_byteen)),
.SIZE(CREQ_SIZE)
) reqq_queue (
.clk (clk),
.reset (reset),
.push (push_qual),
.data_in ({bank_valids, bank_addr, bank_writedata, bank_tag, bank_mem_read, bank_mem_write}),
.data_in ({bank_valids, bank_rw, bank_byteen, bank_addr, bank_writedata, bank_tag}),
.pop (pop_qual),
.data_out ({out_per_valids, out_per_addr, out_per_writedata, out_per_tag, out_per_mem_read, out_per_mem_write}),
.data_out ({out_per_valids, out_per_rw, out_per_byteen, out_per_addr, out_per_writedata, out_per_tag}),
.empty (o_empty),
.full (reqq_full),
`UNUSED_PIN (size)
@ -93,8 +89,8 @@ module VX_cache_req_queue #(
assign qual_addr = use_per_addr;
assign qual_writedata = use_per_writedata;
assign qual_tag = use_per_tag;
assign qual_mem_read = use_per_mem_read;
assign qual_mem_write = use_per_mem_write;
assign qual_rw = use_per_rw;
assign qual_byteen = use_per_byteen;
wire[`REQS_BITS-1:0] qual_request_index;
wire qual_has_request;
@ -110,6 +106,8 @@ module VX_cache_req_queue #(
assign reqq_empty = !qual_has_request;
assign reqq_req_st0 = qual_has_request;
assign reqq_req_tid_st0 = qual_request_index;
assign reqq_req_rw_st0 = qual_rw[qual_request_index];
assign reqq_req_byteen_st0 = qual_byteen[qual_request_index];
assign reqq_req_addr_st0 = qual_addr[qual_request_index];
assign reqq_req_writedata_st0 = qual_writedata[qual_request_index];
@ -117,17 +115,17 @@ module VX_cache_req_queue #(
assign reqq_req_tag_st0 = qual_tag;
end else begin
assign reqq_req_tag_st0 = qual_tag[qual_request_index];
end
assign reqq_req_mem_read_st0 = qual_mem_read [qual_request_index];
assign reqq_req_mem_write_st0 = qual_mem_write[qual_request_index];
end
`DEBUG_BLOCK(
reg [NUM_REQUESTS-1:0] updated_valids;
always @(*) begin
updated_valids = qual_valids;
if (qual_has_request) begin
updated_valids[qual_request_index] = 0;
end
end
)
always @(posedge clk) begin
if (reset) begin
@ -135,11 +133,11 @@ module VX_cache_req_queue #(
end else begin
if (pop_qual) begin
use_per_valids <= real_out_per_valids;
use_per_rw <= out_per_rw;
use_per_byteen <= out_per_byteen;
use_per_addr <= out_per_addr;
use_per_writedata <= out_per_writedata;
use_per_tag <= out_per_tag;
use_per_mem_read <= out_per_mem_read;
use_per_mem_write <= out_per_mem_write;
use_per_tag <= out_per_tag;
end else if (reqq_pop) begin
use_per_valids[qual_request_index] <= 0;
end

View file

@ -35,10 +35,10 @@ module VX_tag_data_access #(
input wire[`WORD_WIDTH-1:0] writeword_st1e,
input wire[`BANK_LINE_WIDTH-1:0] writedata_st1e,
`IGNORE_WARNINGS_BEGIN
input wire[`WORD_SELECT_ADDR_END:0] writewsel_st1e,
input wire[`BYTE_EN_BITS-1:0] mem_write_st1e,
input wire[`BYTE_EN_BITS-1:0] mem_read_st1e,
`IGNORE_WARNINGS_BEGIN
input wire mem_rw_st1e,
input wire[WORD_SIZE-1:0] mem_byteen_st1e,
input wire[`WORD_SELECT_WIDTH-1:0] writewsel_st1e,
`IGNORE_WARNINGS_END
output wire[`WORD_WIDTH-1:0] readword_st1e,
@ -46,6 +46,7 @@ module VX_tag_data_access #(
output wire[`TAG_SELECT_BITS-1:0] readtag_st1e,
output wire miss_st1e,
output wire dirty_st1e,
output wire[BANK_LINE_SIZE-1:0] dirtyb_st1e,
output wire fill_saw_dirty_st1e,
output wire snp_to_mrvq_st1e,
output wire mrvq_init_ready_state_st1e
@ -53,16 +54,19 @@ module VX_tag_data_access #(
reg read_valid_st1c[STAGE_1_CYCLES-1:0];
reg read_dirty_st1c[STAGE_1_CYCLES-1:0];
reg[BANK_LINE_SIZE-1:0] read_dirtyb_st1c[STAGE_1_CYCLES-1:0];
reg[`TAG_SELECT_BITS-1:0] read_tag_st1c [STAGE_1_CYCLES-1:0];
reg[`BANK_LINE_WIDTH-1:0] read_data_st1c [STAGE_1_CYCLES-1:0];
wire qual_read_valid_st1;
wire qual_read_dirty_st1;
wire[BANK_LINE_SIZE-1:0] qual_read_dirtyb_st1;
wire[`TAG_SELECT_BITS-1:0] qual_read_tag_st1;
wire[`BANK_LINE_WIDTH-1:0] qual_read_data_st1;
wire use_read_valid_st1e;
wire use_read_dirty_st1e;
wire[BANK_LINE_SIZE-1:0] use_read_dirtyb_st1e;
wire[`TAG_SELECT_BITS-1:0] use_read_tag_st1e;
wire[`BANK_LINE_WIDTH-1:0] use_read_data_st1e;
wire[`BANK_LINE_WORDS-1:0][WORD_SIZE-1:0] use_write_enable;
@ -90,8 +94,9 @@ module VX_tag_data_access #(
.stall_bank_pipe(stall_bank_pipe),
.read_addr (readaddr_st10),
.read_valid (qual_read_valid_st1),
.read_valid (qual_read_valid_st1),
.read_dirty (qual_read_dirty_st1),
.read_dirtyb (qual_read_dirtyb_st1),
.read_tag (qual_read_tag_st1),
.read_data (qual_read_data_st1),
@ -105,126 +110,56 @@ module VX_tag_data_access #(
);
VX_generic_register #(
.N(1 + 1 + `TAG_SELECT_BITS + `BANK_LINE_WIDTH),
.N(1 + 1 + BANK_LINE_SIZE + `TAG_SELECT_BITS + `BANK_LINE_WIDTH),
.PassThru(1)
) s0_1_c0 (
.clk (clk),
.reset(reset),
.stall(stall),
.flush(1'b0),
.in({qual_read_valid_st1, qual_read_dirty_st1, qual_read_tag_st1, qual_read_data_st1}),
.out({read_valid_st1c[0], read_dirty_st1c[0], read_tag_st1c[0], read_data_st1c[0]})
.in({qual_read_valid_st1, qual_read_dirty_st1, qual_read_dirtyb_st1, qual_read_tag_st1, qual_read_data_st1}),
.out({read_valid_st1c[0], read_dirty_st1c[0], read_dirtyb_st1c[0], read_tag_st1c[0], read_data_st1c[0]})
);
genvar i;
for (i = 1; i < STAGE_1_CYCLES-1; i++) begin
VX_generic_register #(
.N( 1 + 1 + `TAG_SELECT_BITS + `BANK_LINE_WIDTH)
.N( 1 + 1 + BANK_LINE_SIZE + `TAG_SELECT_BITS + `BANK_LINE_WIDTH)
) s0_1_cc (
.clk (clk),
.reset(reset),
.stall(stall),
.flush(1'b0),
.in({read_valid_st1c[i-1], read_dirty_st1c[i-1], read_tag_st1c[i-1], read_data_st1c[i-1]}),
.out({read_valid_st1c[i], read_dirty_st1c[i], read_tag_st1c[i], read_data_st1c[i]})
.in({read_valid_st1c[i-1], read_dirty_st1c[i-1], read_dirtyb_st1c[i-1], read_tag_st1c[i-1], read_data_st1c[i-1]}),
.out({read_valid_st1c[i], read_dirty_st1c[i], read_dirtyb_st1c[i], read_tag_st1c[i], read_data_st1c[i]})
);
end
assign use_read_valid_st1e = read_valid_st1c[STAGE_1_CYCLES-1] || ~DRAM_ENABLE; // If shared memory, always valid
assign use_read_dirty_st1e = read_dirty_st1c[STAGE_1_CYCLES-1] && DRAM_ENABLE; // Dirty only applies in Dcache
assign use_read_tag_st1e = DRAM_ENABLE ? read_tag_st1c[STAGE_1_CYCLES-1] : writetag_st1e; // Tag is always the same in SM
assign use_read_dirtyb_st1e= read_dirtyb_st1c[STAGE_1_CYCLES-1];
assign use_read_data_st1e = read_data_st1c[STAGE_1_CYCLES-1];
wire force_write = real_writefill;
wire should_write;
assign readword_st1e = use_read_data_st1e[writewsel_st1e * `WORD_WIDTH +: `WORD_WIDTH];
wire [`BANK_LINE_WORDS-1:0][WORD_SIZE-1:0] we;
wire [`BANK_LINE_WIDTH-1:0] data_write;
if (WORD_SIZE == BANK_LINE_SIZE) begin
wire should_write = mem_rw_st1e
&& valid_req_st1e
&& use_read_valid_st1e
&& !miss_st1e
&& !is_snp_st1e;
assign should_write = ((mem_write_st1e != `BYTE_EN_NO))
&& valid_req_st1e
&& use_read_valid_st1e
&& !miss_st1e
&& !is_snp_st1e;
for (i = 0; i < `BANK_LINE_WORDS; i++) begin
wire normal_write = (writewsel_st1e == `WORD_SELECT_WIDTH'(i)) && should_write && !real_writefill;
for (i = 0; i < `BANK_LINE_WORDS; i++) begin
assign we[i] = (force_write || (should_write && !real_writefill)) ? {WORD_SIZE{1'b1}} : {WORD_SIZE{1'b0}};
end
assign we[i] = real_writefill ? {WORD_SIZE{1'b1}} :
normal_write ? mem_byteen_st1e:
{WORD_SIZE{1'b0}};
assign readword_st1e = use_read_data_st1e;
assign data_write = force_write ? writedata_st1e : writeword_st1e;
end else begin
wire[`OFFSET_ADDR_BITS-1:0] byte_select = writewsel_st1e[`OFFSET_ADDR_RNG];
wire[`WORD_SELECT_BITS-1:0] block_offset = writewsel_st1e[`WORD_SELECT_ADDR_RNG];
wire lb = valid_req_st1e && (mem_read_st1e == `BYTE_EN_LB);
wire lh = valid_req_st1e && (mem_read_st1e == `BYTE_EN_LH);
wire lbu = valid_req_st1e && (mem_read_st1e == `BYTE_EN_HB);
wire lhu = valid_req_st1e && (mem_read_st1e == `BYTE_EN_HH);
wire lw = valid_req_st1e && (mem_read_st1e == `BYTE_EN_LW);
wire b0 = (byte_select == 0);
wire b1 = (byte_select == 1);
wire b2 = (byte_select == 2);
wire b3 = (byte_select == 3);
wire sb = valid_req_st1e && (mem_write_st1e == `BYTE_EN_LB);
wire sh = valid_req_st1e && (mem_write_st1e == `BYTE_EN_LH);
wire sw = valid_req_st1e && (mem_write_st1e == `BYTE_EN_LW);
wire [3:0] sb_mask = (b0 ? 4'b0001 : (b1 ? 4'b0010 : (b2 ? 4'b0100 : 4'b1000)));
wire [3:0] sh_mask = (b0 ? 4'b0011 : 4'b1100);
assign should_write = (sw || sb || sh)
&& valid_req_st1e
&& use_read_valid_st1e
&& !miss_st1e
&& !is_snp_st1e;
wire[`WORD_WIDTH-1:0] data_unmod = use_read_data_st1e[block_offset * 32 +: 32];
wire[`WORD_WIDTH-1:0] data_unQual = (b0 || lw) ? (data_unmod) :
b1 ? (data_unmod >> 8) :
b2 ? (data_unmod >> 16) :
(data_unmod >> 24);
wire[`WORD_WIDTH-1:0] lb_data = (data_unQual[7] ) ? (data_unQual | 32'hFFFFFF00) : (data_unQual & 32'hFF);
wire[`WORD_WIDTH-1:0] lh_data = (data_unQual[15]) ? (data_unQual | 32'hFFFF0000) : (data_unQual & 32'hFFFF);
wire[`WORD_WIDTH-1:0] lbu_data = (data_unQual & 32'hFF);
wire[`WORD_WIDTH-1:0] lhu_data = (data_unQual & 32'hFFFF);
wire[`WORD_WIDTH-1:0] lw_data = (data_unQual);
wire[`WORD_WIDTH-1:0] data_Qual = lb ? lb_data :
lh ? lh_data :
lhu ? lhu_data :
lbu ? lbu_data :
lw_data;
assign readword_st1e = data_Qual;
for (i = 0; i < `BANK_LINE_WORDS; i++) begin
wire normal_write = (block_offset == `WORD_SELECT_BITS'(i)) && should_write && !real_writefill;
assign we[i] = (force_write) ? 4'b1111 :
(normal_write && sw) ? 4'b1111 :
(normal_write && sb) ? sb_mask :
(normal_write && sh) ? sh_mask :
4'b0000;
wire [`WORD_WIDTH-1:0] sb_data = b1 ? {{16{1'b0}}, writeword_st1e[7:0], { 8{1'b0}}} :
b2 ? {{ 8{1'b0}}, writeword_st1e[7:0], {16{1'b0}}} :
b3 ? {{ 0{1'b0}}, writeword_st1e[7:0], {24{1'b0}}} :
writeword_st1e[31:0];
wire [`WORD_WIDTH-1:0] sw_data = writeword_st1e[31:0];
wire [`WORD_WIDTH-1:0] sh_data = b2 ? {writeword_st1e[15:0], {16{1'b0}}} : writeword_st1e[31:0];
wire [`WORD_WIDTH-1:0] use_write_dat = sb ? sb_data : sh ? sh_data : sw_data;
assign data_write[i * `WORD_WIDTH +: `WORD_WIDTH] = force_write ? writedata_st1e[i * `WORD_WIDTH +: `WORD_WIDTH] : use_write_dat;
end
assign data_write[i * `WORD_WIDTH +: `WORD_WIDTH] = real_writefill ? writedata_st1e[i * `WORD_WIDTH +: `WORD_WIDTH] : writeword_st1e;
end
assign use_write_enable = (writefill_st1e && !real_writefill) ? 0 : we;
@ -242,7 +177,7 @@ module VX_tag_data_access #(
wire force_core_miss = (force_request_miss_st1e && !is_snp_st1e && !writefill_st1e && valid_req_st1e && !real_miss);
assign snp_to_mrvq_st1e = valid_req_st1e && is_snp_st1e && force_request_miss_st1e;
assign snp_to_mrvq_st1e = valid_req_st1e && is_snp_st1e && force_request_miss_st1e;
// The second term is basically saying always make an entry ready if there's already antoher entry waiting, even if you yourself see a miss
assign mrvq_init_ready_state_st1e = snp_to_mrvq_st1e || (force_request_miss_st1e && !is_snp_st1e && !writefill_st1e && valid_req_st1e);
@ -250,6 +185,7 @@ module VX_tag_data_access #(
assign miss_st1e = real_miss || snoop_hit_no_pending || force_core_miss;
assign dirty_st1e = valid_req_st1e && use_read_valid_st1e && use_read_dirty_st1e;
assign dirtyb_st1e = use_read_dirtyb_st1e;
assign readdata_st1e = use_read_data_st1e;
assign readtag_st1e = use_read_tag_st1e;
assign fill_sent = miss_st1e;

View file

@ -17,6 +17,7 @@ module VX_tag_data_structure #(
input wire[`LINE_SELECT_BITS-1:0] read_addr,
output wire read_valid,
output wire read_dirty,
output wire[`BANK_LINE_WORDS-1:0][WORD_SIZE-1:0] read_dirtyb,
output wire[`TAG_SELECT_BITS-1:0] read_tag,
output wire[`BANK_LINE_WIDTH-1:0] read_data,
@ -30,35 +31,41 @@ module VX_tag_data_structure #(
);
reg [`BANK_LINE_WORDS-1:0][WORD_SIZE-1:0][7:0] data [`BANK_LINE_COUNT-1:0];
reg [`BANK_LINE_WORDS-1:0][WORD_SIZE-1:0] dirtyb [`BANK_LINE_COUNT-1:0];
reg [`TAG_SELECT_BITS-1:0] tag [`BANK_LINE_COUNT-1:0];
reg valid [`BANK_LINE_COUNT-1:0];
reg dirty [`BANK_LINE_COUNT-1:0];
assign read_valid = valid [read_addr];
assign read_dirty = dirty [read_addr];
assign read_tag = tag [read_addr];
assign read_data = data [read_addr];
assign read_valid = valid [read_addr];
assign read_dirty = dirty [read_addr];
assign read_dirtyb = dirtyb [read_addr];
assign read_tag = tag [read_addr];
assign read_data = data [read_addr];
wire going_to_write = (| write_enable);
wire do_write = (| write_enable);
integer i;
integer i, j;
always @(posedge clk) begin
if (reset) begin
for (i = 0; i < `BANK_LINE_COUNT; i++) begin
valid[i] <= 0;
dirty[i] <= 0;
valid[i] <= 0;
dirty[i] <= 0;
dirtyb[i] <= 0;
end
end else if (!stall_bank_pipe) begin
if (going_to_write) begin
if (do_write) begin
valid[write_addr] <= 1;
tag [write_addr] <= tag_index;
if (write_fill) begin
dirty[write_addr] <= 0;
dirty[write_addr] <= 0;
dirtyb[write_addr] <= 0;
end else begin
dirty[write_addr] <= 1;
dirty[write_addr] <= 1;
dirtyb[write_addr] <= dirtyb[write_addr] | write_enable;
end
end else if (fill_sent) begin
dirty[write_addr] <= 0;
dirty[write_addr] <= 0;
dirtyb[write_addr] <= 0;
end
if (invalidate) begin
@ -66,10 +73,11 @@ module VX_tag_data_structure #(
end
for (i = 0; i < `BANK_LINE_WORDS; i++) begin
if (write_enable[i][0]) data[write_addr][i][0] <= write_data[i * `WORD_WIDTH + 0 * 8 +: 8];
if (write_enable[i][1]) data[write_addr][i][1] <= write_data[i * `WORD_WIDTH + 1 * 8 +: 8];
if (write_enable[i][2]) data[write_addr][i][2] <= write_data[i * `WORD_WIDTH + 2 * 8 +: 8];
if (write_enable[i][3]) data[write_addr][i][3] <= write_data[i * `WORD_WIDTH + 3 * 8 +: 8];
for (j = 0; j < WORD_SIZE; j++) begin
if (write_enable[i][j]) begin
data[write_addr][i][j] <= write_data[i * `WORD_WIDTH + j * 8 +: 8];
end
end
end
end
end

View file

@ -10,13 +10,13 @@ interface VX_cache_core_req_if #(
parameter CORE_TAG_ID_BITS = 0
) ();
wire [NUM_REQUESTS-1:0] core_req_valid;
wire [NUM_REQUESTS-1:0][`BYTE_EN_BITS-1:0] core_req_read;
wire [NUM_REQUESTS-1:0][`BYTE_EN_BITS-1:0] core_req_write;
wire [NUM_REQUESTS-1:0][31:0] core_req_addr;
wire [NUM_REQUESTS-1:0][`WORD_WIDTH-1:0] core_req_data;
wire [`CORE_REQ_TAG_COUNT-1:0][CORE_TAG_WIDTH-1:0] core_req_tag;
wire core_req_ready;
wire [NUM_REQUESTS-1:0] core_req_valid;
wire [NUM_REQUESTS-1:0] core_req_rw;
wire [NUM_REQUESTS-1:0][WORD_SIZE-1:0] core_req_byteen;
wire [NUM_REQUESTS-1:0][`WORD_ADDR_WIDTH-1:0] core_req_addr;
wire [NUM_REQUESTS-1:0][`WORD_WIDTH-1:0] core_req_data;
wire [`CORE_REQ_TAG_COUNT-1:0][CORE_TAG_WIDTH-1:0] core_req_tag;
wire core_req_ready;
endinterface

View file

@ -9,8 +9,9 @@ interface VX_cache_dram_req_if #(
parameter DRAM_TAG_WIDTH = 1
) ();
wire dram_req_read;
wire dram_req_write;
wire dram_req_valid;
wire dram_req_rw;
wire [(DRAM_LINE_WIDTH/8)-1:0] dram_req_byteen;
wire [DRAM_ADDR_WIDTH-1:0] dram_req_addr;
wire [DRAM_LINE_WIDTH-1:0] dram_req_data;
wire [DRAM_TAG_WIDTH-1:0] dram_req_tag;

View file

@ -7,7 +7,7 @@
interface VX_join_if ();
wire is_join;
wire [`NW_BITS-1:0] join_warp_num;
wire [`NW_BITS-1:0] join_warp_num;
endinterface

View file

@ -0,0 +1,56 @@
`include "VX_define.vh"
module VX_indexable_queue #(
parameter DATAW,
parameter SIZE
) (
input wire clk,
input wire reset,
input wire [DATAW-1:0] write_data,
output wire [`LOG2UP(SIZE)-1:0] write_addr,
input wire push,
output wire full,
input wire pop,
input wire [`LOG2UP(SIZE)-1:0] read_addr,
output wire [DATAW-1:0] read_data
);
reg [DATAW-1:0] data [SIZE-1:0];
reg valid [SIZE-1:0];
reg [`LOG2UP(SIZE):0] rd_ptr, wr_ptr;
wire [`LOG2UP(SIZE)-1:0] rd_a, wr_a;
wire enqueue, dequeue, empty;
assign rd_a = rd_ptr[`LOG2UP(SIZE)-1:0];
assign wr_a = wr_ptr[`LOG2UP(SIZE)-1:0];
assign empty = (wr_ptr == rd_ptr);
assign full = (wr_a == rd_a) && (wr_ptr[`LOG2UP(SIZE)] != rd_ptr[`LOG2UP(SIZE)]);
assign enqueue = push && ~full;
assign dequeue = ~empty && ~valid[rd_a]; // auto-remove when head is invalid
always @(posedge clk) begin
if (reset) begin
rd_ptr <= 0;
wr_ptr <= 0;
end else begin
if (enqueue) begin
data[wr_a] <= write_data;
valid[wr_a] <= 1;
wr_ptr <= wr_ptr + 1;
end
if (dequeue) begin
rd_ptr <= rd_ptr + 1;
end
if (pop) begin
valid[read_addr] <= 0;
end
end
end
assign write_addr = wr_a;
assign read_data = data[read_addr];
endmodule

View file

@ -3,24 +3,30 @@
#include <stdio.h>
#include <stdint.h>
class RAM;
uint32_t hti(char);
uint32_t hToI(const char *, uint32_t);
void loadHexImpl(const char *, RAM *);
class RAM {
private:
mutable uint8_t *mem_[(1 << 12)];
uint8_t *get(uint32_t address) const {
uint32_t block_addr = address >> 20;
uint32_t block_offset = address & 0x000FFFFF;
if (mem_[block_addr] == NULL) {
mem_[block_addr] = new uint8_t[(1 << 20)];
}
return mem_[block_addr] + block_offset;
}
public:
uint8_t *mem[1 << 12];
RAM() {
for (uint32_t i = 0; i < (1 << 12); i++)
mem[i] = NULL;
for (uint32_t i = 0; i < (1 << 12); i++) {
mem_[i] = NULL;
}
}
~RAM() {
for (uint32_t i = 0; i < (1 << 12); i++)
if (mem[i])
delete[] mem[i];
this->clear();
}
size_t size() const {
@ -29,184 +35,30 @@ public:
void clear() {
for (uint32_t i = 0; i < (1 << 12); i++) {
if (mem[i]) {
delete mem[i];
mem[i] = NULL;
if (mem_[i]) {
delete mem_[i];
mem_[i] = NULL;
}
}
}
uint8_t *get(uint32_t address) {
if (mem[address >> 20] == NULL) {
uint8_t *ptr = new uint8_t[1024 * 1024];
for (uint32_t i = 0; i < 1024 * 1024; i += 4) {
ptr[i + 0] = 0x00;
ptr[i + 1] = 0x00;
ptr[i + 2] = 0x00;
ptr[i + 3] = 0x00;
}
mem[address >> 20] = ptr;
}
return &mem[address >> 20][address & 0xFFFFF];
}
void read(uint32_t address, uint32_t length, uint8_t *data) {
void read(uint32_t address, uint32_t length, uint8_t *data) const {
for (unsigned i = 0; i < length; i++) {
data[i] = (*this)[address + i];
data[i] = *this->get(address + i);
}
}
void write(uint32_t address, uint32_t length, uint8_t *data) {
void write(uint32_t address, uint32_t length, const uint8_t *data) {
for (unsigned i = 0; i < length; i++) {
(*this)[address + i] = data[i];
*this->get(address + i) = data[i];
}
}
void getBlock(uint32_t address, uint8_t *data) {
uint32_t block_number = address & 0xffffff00; // To zero out block offset
uint32_t bytes_num = 256;
this->read(block_number, bytes_num, data);
}
void getWord(uint32_t address, uint32_t *data) {
data[0] = 0;
uint8_t first = *get(address + 0);
uint8_t second = *get(address + 1);
uint8_t third = *get(address + 2);
uint8_t fourth = *get(address + 3);
data[0] = (data[0] << 0) | fourth;
data[0] = (data[0] << 8) | third;
data[0] = (data[0] << 8) | second;
data[0] = (data[0] << 8) | first;
}
void writeWord(uint32_t address, uint32_t *data) {
uint32_t data_to_write = *data;
uint32_t byte_mask = 0xFF;
for (int i = 0; i < 4; i++) {
(*this)[address + i] = data_to_write & byte_mask;
data_to_write = data_to_write >> 8;
}
}
void writeHalf(uint32_t address, uint32_t *data) {
uint32_t data_to_write = *data;
uint32_t byte_mask = 0xFF;
for (int i = 0; i < 2; i++) {
(*this)[address + i] = data_to_write & byte_mask;
data_to_write = data_to_write >> 8;
}
}
void writeByte(uint32_t address, uint32_t *data) {
uint32_t data_to_write = *data;
uint32_t byte_mask = 0xFF;
(*this)[address] = data_to_write & byte_mask;
data_to_write = data_to_write >> 8;
}
uint8_t &operator[](uint32_t address) {
uint8_t& operator[](uint32_t address) {
return *get(address);
}
};
// MEMORY UTILS
inline uint32_t hti(char c) {
if (c >= 'A' && c <= 'F')
return c - 'A' + 10;
if (c >= 'a' && c <= 'f')
return c - 'a' + 10;
return c - '0';
}
inline uint32_t hToI(const char *c, uint32_t size) {
uint32_t value = 0;
for (uint32_t i = 0; i < size; i++) {
value += hti(c[i]) << ((size - i - 1) * 4);
const uint8_t& operator[](uint32_t address) const {
return *get(address);
}
return value;
}
inline void loadHexImpl(const char *path, RAM *mem) {
mem->clear();
FILE *fp = fopen(path, "r");
if (fp == 0) {
printf("Path not found %s\n", path);
return;
// std::cout << path << " not found" << std::endl;
}
//Preload 0x0 <-> 0x80000000 jumps
((uint32_t *)mem->get(0))[1] = 0xf1401073;
((uint32_t *)mem->get(0))[2] = 0x30101073;
((uint32_t *)mem->get(0))[3] = 0x800000b7;
((uint32_t *)mem->get(0))[4] = 0x000080e7;
((uint32_t *)mem->get(0x80000000))[0] = 0x00000097;
((uint32_t *)mem->get(0xb0000000))[0] = 0x01C02023;
// F00FFF10
((uint32_t *)mem->get(0xf00fff10))[0] = 0x12345678;
fseek(fp, 0, SEEK_END);
uint32_t size = ftell(fp);
fseek(fp, 0, SEEK_SET);
char *content = new char[size];
fread(content, 1, size, fp);
int offset = 0;
char *line = content;
// std::cout << "WHTA\n";
while (1) {
if (line[0] == ':') {
uint32_t byteCount = hToI(line + 1, 2);
uint32_t nextAddr = hToI(line + 3, 4) + offset;
uint32_t key = hToI(line + 7, 2);
switch (key) {
case 0:
for (uint32_t i = 0; i < byteCount; i++) {
unsigned add = nextAddr + i;
*(mem->get(add)) = hToI(line + 9 + i * 2, 2);
}
break;
case 2:
// cout << offset << endl;
offset = hToI(line + 9, 4) << 4;
break;
case 4:
// cout << offset << endl;
offset = hToI(line + 9, 4) << 16;
break;
default:
// cout << "??? " << key << endl;
break;
}
}
while (*line != '\n' && size != 0) {
line++;
size--;
}
if (size <= 1)
break;
line++;
size--;
}
if (content)
delete[] content;
}
};

View file

@ -1,5 +1,6 @@
#include "simulator.h"
#include <iostream>
#include <fstream>
#include <iomanip>
uint64_t timestamp = 0;
@ -44,6 +45,90 @@ void Simulator::attach_ram(RAM* ram) {
dram_rsp_vec_.clear();
}
void Simulator::load_bin(const char* program_file) {
if (ram_ == nullptr)
return;
std::ifstream ifs(program_file);
if (!ifs) {
std::cout << "error: " << program_file << " not found" << std::endl;
}
ifs.seekg(0, ifs.end);
auto size = ifs.tellg();
std::vector<uint8_t> content(size);
ifs.seekg(0, ifs.beg);
ifs.read((char*)content.data(), size);
ram_->write(STARTUP_ADDR, size, content.data());
}
void Simulator::load_ihex(const char* program_file) {
if (ram_ == nullptr)
return;
auto hti = [&](char c)->uint32_t {
if (c >= 'A' && c <= 'F')
return c - 'A' + 10;
if (c >= 'a' && c <= 'f')
return c - 'a' + 10;
return c - '0';
};
auto hToI = [&](const char *c, uint32_t size)->uint32_t {
uint32_t value = 0;
for (uint32_t i = 0; i < size; i++) {
value += hti(c[i]) << ((size - i - 1) * 4);
}
return value;
};
std::ifstream ifs(program_file);
if (!ifs) {
std::cout << "error: " << program_file << " not found" << std::endl;
}
ifs.seekg(0, ifs.end);
uint32_t size = ifs.tellg();
std::vector<char> content(size);
ifs.seekg(0, ifs.beg);
ifs.read(content.data(), size);
int offset = 0;
char *line = content.data();
while (true) {
if (line[0] == ':') {
uint32_t byteCount = hToI(line + 1, 2);
uint32_t nextAddr = hToI(line + 3, 4) + offset;
uint32_t key = hToI(line + 7, 2);
switch (key) {
case 0:
for (uint32_t i = 0; i < byteCount; i++) {
(*ram_)[nextAddr + i] = hToI(line + 9 + i * 2, 2);
}
break;
case 2:
offset = hToI(line + 9, 4) << 4;
break;
case 4:
offset = hToI(line + 9, 4) << 16;
break;
default:
break;
}
}
while (*line != '\n' && size != 0) {
++line;
--size;
}
if (size <= 1)
break;
++line;
--size;
}
}
void Simulator::print_stats(std::ostream& out) {
out << std::left;
out << std::setw(24) << "# of total cycles:" << std::dec << timestamp/2 << std::endl;
@ -71,9 +156,7 @@ void Simulator::dbus_driver() {
if ((dequeue_index != -1)
&& vortex_->dram_rsp_ready) {
vortex_->dram_rsp_valid = 1;
for (int i = 0; i < (GLOBAL_BLOCK_SIZE / 4); i++) {
vortex_->dram_rsp_data[i] = dram_rsp_vec_[dequeue_index].data[i];
}
memcpy((uint8_t*)vortex_->dram_rsp_data, dram_rsp_vec_[dequeue_index].data, GLOBAL_BLOCK_SIZE);
vortex_->dram_rsp_tag = dram_rsp_vec_[dequeue_index].tag;
free(dram_rsp_vec_[dequeue_index].data);
dram_rsp_vec_.erase(dram_rsp_vec_.begin() + dequeue_index);
@ -94,44 +177,40 @@ void Simulator::dbus_driver() {
// handle DRAM requests
if (!dram_stalled) {
if (vortex_->dram_req_read) {
dram_req_t dram_req;
dram_req.cycles_left = DRAM_LATENCY;
dram_req.data = (unsigned*)malloc(GLOBAL_BLOCK_SIZE);
dram_req.tag = vortex_->dram_req_tag;
unsigned base_addr = (vortex_->dram_req_addr * GLOBAL_BLOCK_SIZE);
for (int i = 0; i < (GLOBAL_BLOCK_SIZE / 4); i++) {
unsigned curr_addr = base_addr + (i * 4);
unsigned data_rd;
ram_->getWord(curr_addr, &data_rd);
dram_req.data[i] = data_rd;
}
dram_rsp_vec_.push_back(dram_req);
}
if (vortex_->dram_req_write) {
unsigned base_addr = (vortex_->dram_req_addr * GLOBAL_BLOCK_SIZE);
for (int i = 0; i < (GLOBAL_BLOCK_SIZE / 4); i++) {
unsigned curr_addr = base_addr + (i * 4);
unsigned data_wr = vortex_->dram_req_data[i];
ram_->writeWord(curr_addr, &data_wr);
}
}
if (vortex_->dram_req_valid) {
if (vortex_->dram_req_rw) {
uint64_t byteen = vortex_->dram_req_byteen;
unsigned base_addr = (vortex_->dram_req_addr * GLOBAL_BLOCK_SIZE);
uint8_t* data = (uint8_t*)(vortex_->dram_req_data);
for (int i = 0; i < GLOBAL_BLOCK_SIZE; i++) {
if ((byteen >> i) & 0x1) {
(*ram_)[base_addr + i] = data[i];
}
}
} else {
dram_req_t dram_req;
dram_req.cycles_left = DRAM_LATENCY;
dram_req.data = (uint8_t*)malloc(GLOBAL_BLOCK_SIZE);
dram_req.tag = vortex_->dram_req_tag;
ram_->read(vortex_->dram_req_addr * GLOBAL_BLOCK_SIZE, GLOBAL_BLOCK_SIZE, dram_req.data);
dram_rsp_vec_.push_back(dram_req);
}
}
}
vortex_->dram_req_ready = ~dram_stalled;
}
void Simulator::io_driver() {
if (vortex_->io_req_write
if (vortex_->io_req_valid
&& vortex_->io_req_rw
&& vortex_->io_req_addr == IO_BUS_ADDR_COUT) {
uint32_t data_write = (uint32_t)vortex_->io_req_data;
char c = (char)data_write;
std::cout << c;
}
vortex_->io_req_ready = 1;
vortex_->io_rsp_valid = 01;
vortex_->io_rsp_valid = 0;
}
void Simulator::reset() {
@ -251,4 +330,4 @@ bool Simulator::run() {
#endif
return (status == 1);
}
}

View file

@ -21,7 +21,7 @@
typedef struct {
int cycles_left;
unsigned *data;
uint8_t *data;
unsigned tag;
} dram_req_t;
@ -31,6 +31,9 @@ public:
Simulator();
virtual ~Simulator();
void load_bin(const char* program_file);
void load_ihex(const char* program_file);
bool is_busy();
void reset();
void step();

View file

@ -58,20 +58,19 @@ int main(int argc, char **argv)
"../../benchmarks/riscv_tests/rv32um-p-remu.hex"
};
for (std::string s : tests) {
for (std::string test : tests) {
std::cerr << DEFAULT << "\n---------------------------------------\n";
std::cerr << s << std::endl;
std::cerr << test << std::endl;
RAM ram;
loadHexImpl(s.c_str(), &ram);
Simulator simulator;
simulator.attach_ram(&ram);
simulator.load_ihex(test.c_str());
bool curr = simulator.run();
if (curr) std::cerr << GREEN << "Test Passed: " << s << std::endl;
if (!curr) std::cerr << RED << "Test Failed: " << s << std::endl;
if (curr) std::cerr << GREEN << "Test Passed: " << test << std::endl;
if (!curr) std::cerr << RED << "Test Failed: " << test << std::endl;
std::cerr << DEFAULT;
passed = passed && curr;
}
@ -79,37 +78,29 @@ int main(int argc, char **argv)
std::cerr << DEFAULT << "\n***************************************\n";
if (passed) std::cerr << DEFAULT << "PASSED ALL TESTS\n";
if(!passed) std::cerr << DEFAULT << "Failed one or more tests\n";
if (!passed) std::cerr << DEFAULT << "Failed one or more tests\n";
return !passed;
#else
char testing[] = "../../runtime/tests/simple/vx_simple_main.hex";
//char testing[] = "../../benchmarks/riscv_tests/rv32ui-p-lw.hex";
//char testing[] = "../../benchmarks/riscv_tests/rv32ui-p-sw.hex";
char test[] = "../../runtime/tests/simple/vx_simple_main.hex";
//char test[] = "../../benchmarks/riscv_tests/rv32ui-p-lb.hex";
//char test[] = "../../benchmarks/riscv_tests/rv32ui-p-lw.hex";
//char test[] = "../../benchmarks/riscv_tests/rv32ui-p-sw.hex";
// const char *testing;
// if (argc >= 2) {
// testing = argv[1];
// } else {
// testing = "../../kernel/vortex_test.hex";
// }
std::cerr << testing << std::endl;
std::cerr << test << std::endl;
RAM ram;
loadHexImpl(testing, &ram);
Simulator simulator;
simulator.attach_ram(&ram);
simulator.load_ihex(test);
bool curr = simulator.run();
if (curr) std::cerr << GREEN << "Test Passed: " << testing << std::endl;
if (!curr) std::cerr << RED << "Test Failed: " << testing << std::endl;
if (curr) std::cerr << GREEN << "Test Passed: " << test << std::endl;
if (!curr) std::cerr << RED << "Test Failed: " << test << std::endl;
return !curr;
return !curr;
#endif
}

View file

@ -50,7 +50,7 @@ void mat_add_kernel(void * void_arguments)
int main()
{
// ensure single thread
/*// ensure single thread
vx_tmc(1);
vx_print_str("Let's start... (This might take a while)\n");
@ -87,7 +87,7 @@ int main()
vx_print_str("Simple Main\n");
// TMC test
test_tmc();
test_tmc();*/
// Control Divergence Test
vx_print_str("test_divergence\n");
@ -95,7 +95,7 @@ int main()
test_divergence();
vx_tmc(1);
/*
// Test wspawn
vx_print_str("test_wspawn\n");
test_wsapwn();
@ -143,7 +143,7 @@ int main()
vx_print_str(" ");
}
vx_print_str("\n");
}
}*/
return 0;
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff