aboutsummaryrefslogtreecommitdiff
path: root/test/riscv-tests
diff options
context:
space:
mode:
Diffstat (limited to 'test/riscv-tests')
-rw-r--r--test/riscv-tests/rv32mi-p-breakpoint.dump207
-rw-r--r--test/riscv-tests/rv32mi-p-breakpoint.elfbin0 -> 13148 bytes
-rw-r--r--test/riscv-tests/rv32mi-p-csr.dump241
-rw-r--r--test/riscv-tests/rv32mi-p-csr.elfbin0 -> 13436 bytes
-rw-r--r--test/riscv-tests/rv32mi-p-illegal.dump383
-rw-r--r--test/riscv-tests/rv32mi-p-illegal.elfbin0 -> 9272 bytes
-rw-r--r--test/riscv-tests/rv32mi-p-ma_addr.dump363
-rw-r--r--test/riscv-tests/rv32mi-p-ma_addr.elfbin0 -> 13380 bytes
-rw-r--r--test/riscv-tests/rv32mi-p-ma_fetch.dump219
-rw-r--r--test/riscv-tests/rv32mi-p-ma_fetch.elfbin0 -> 9004 bytes
-rw-r--r--test/riscv-tests/rv32mi-p-mcsr.dump126
-rw-r--r--test/riscv-tests/rv32mi-p-mcsr.elfbin0 -> 9020 bytes
-rw-r--r--test/riscv-tests/rv32mi-p-sbreak.dump130
-rw-r--r--test/riscv-tests/rv32mi-p-sbreak.elfbin0 -> 9028 bytes
-rw-r--r--test/riscv-tests/rv32mi-p-scall.dump147
-rw-r--r--test/riscv-tests/rv32mi-p-scall.elfbin0 -> 9028 bytes
-rw-r--r--test/riscv-tests/rv32mi-p-shamt.dump128
-rw-r--r--test/riscv-tests/rv32mi-p-shamt.elfbin0 -> 9048 bytes
-rw-r--r--test/riscv-tests/rv32si-p-csr.dump228
-rw-r--r--test/riscv-tests/rv32si-p-csr.elfbin0 -> 13388 bytes
-rw-r--r--test/riscv-tests/rv32si-p-dirty.dump203
-rw-r--r--test/riscv-tests/rv32si-p-dirty.elfbin0 -> 13196 bytes
-rw-r--r--test/riscv-tests/rv32si-p-ma_fetch.dump175
-rw-r--r--test/riscv-tests/rv32si-p-ma_fetch.elfbin0 -> 9004 bytes
-rw-r--r--test/riscv-tests/rv32si-p-sbreak.dump128
-rw-r--r--test/riscv-tests/rv32si-p-sbreak.elfbin0 -> 9028 bytes
-rw-r--r--test/riscv-tests/rv32si-p-scall.dump121
-rw-r--r--test/riscv-tests/rv32si-p-scall.elfbin0 -> 9028 bytes
-rw-r--r--test/riscv-tests/rv32si-p-wfi.dump128
-rw-r--r--test/riscv-tests/rv32si-p-wfi.elfbin0 -> 8972 bytes
-rw-r--r--test/riscv-tests/rv32ua-p-amoadd_w.dump124
-rw-r--r--test/riscv-tests/rv32ua-p-amoadd_w.elfbin0 -> 9152 bytes
-rw-r--r--test/riscv-tests/rv32ua-p-amoand_w.dump126
-rw-r--r--test/riscv-tests/rv32ua-p-amoand_w.elfbin0 -> 9152 bytes
-rw-r--r--test/riscv-tests/rv32ua-p-amomax_w.dump125
-rw-r--r--test/riscv-tests/rv32ua-p-amomax_w.elfbin0 -> 9152 bytes
-rw-r--r--test/riscv-tests/rv32ua-p-amomaxu_w.dump125
-rw-r--r--test/riscv-tests/rv32ua-p-amomaxu_w.elfbin0 -> 9152 bytes
-rw-r--r--test/riscv-tests/rv32ua-p-amomin_w.dump125
-rw-r--r--test/riscv-tests/rv32ua-p-amomin_w.elfbin0 -> 9152 bytes
-rw-r--r--test/riscv-tests/rv32ua-p-amominu_w.dump125
-rw-r--r--test/riscv-tests/rv32ua-p-amominu_w.elfbin0 -> 9152 bytes
-rw-r--r--test/riscv-tests/rv32ua-p-amoor_w.dump126
-rw-r--r--test/riscv-tests/rv32ua-p-amoor_w.elfbin0 -> 9152 bytes
-rw-r--r--test/riscv-tests/rv32ua-p-amoswap_w.dump126
-rw-r--r--test/riscv-tests/rv32ua-p-amoswap_w.elfbin0 -> 9152 bytes
-rw-r--r--test/riscv-tests/rv32ua-p-amoxor_w.dump154
-rw-r--r--test/riscv-tests/rv32ua-p-amoxor_w.elfbin0 -> 9152 bytes
-rw-r--r--test/riscv-tests/rv32ua-p-lrsc.dump178
-rw-r--r--test/riscv-tests/rv32ua-p-lrsc.elfbin0 -> 13212 bytes
-rw-r--r--test/riscv-tests/rv32ua-v-amoadd_w.dump941
-rw-r--r--test/riscv-tests/rv32ua-v-amoadd_w.elfbin0 -> 17528 bytes
-rw-r--r--test/riscv-tests/rv32ua-v-amoand_w.dump939
-rw-r--r--test/riscv-tests/rv32ua-v-amoand_w.elfbin0 -> 17520 bytes
-rw-r--r--test/riscv-tests/rv32ua-v-amomax_w.dump940
-rw-r--r--test/riscv-tests/rv32ua-v-amomax_w.elfbin0 -> 17524 bytes
-rw-r--r--test/riscv-tests/rv32ua-v-amomaxu_w.dump940
-rw-r--r--test/riscv-tests/rv32ua-v-amomaxu_w.elfbin0 -> 17524 bytes
-rw-r--r--test/riscv-tests/rv32ua-v-amomin_w.dump940
-rw-r--r--test/riscv-tests/rv32ua-v-amomin_w.elfbin0 -> 17524 bytes
-rw-r--r--test/riscv-tests/rv32ua-v-amominu_w.dump940
-rw-r--r--test/riscv-tests/rv32ua-v-amominu_w.elfbin0 -> 17524 bytes
-rw-r--r--test/riscv-tests/rv32ua-v-amoor_w.dump939
-rw-r--r--test/riscv-tests/rv32ua-v-amoor_w.elfbin0 -> 17520 bytes
-rw-r--r--test/riscv-tests/rv32ua-v-amoswap_w.dump939
-rw-r--r--test/riscv-tests/rv32ua-v-amoswap_w.elfbin0 -> 17520 bytes
-rw-r--r--test/riscv-tests/rv32ua-v-amoxor_w.dump943
-rw-r--r--test/riscv-tests/rv32ua-v-amoxor_w.elfbin0 -> 17536 bytes
-rw-r--r--test/riscv-tests/rv32ua-v-lrsc.dump979
-rw-r--r--test/riscv-tests/rv32ua-v-lrsc.elfbin0 -> 18096 bytes
-rw-r--r--test/riscv-tests/rv32uc-p-rvc.dump4904
-rw-r--r--test/riscv-tests/rv32uc-p-rvc.elfbin0 -> 17780 bytes
-rw-r--r--test/riscv-tests/rv32uc-v-rvc.dump6474
-rw-r--r--test/riscv-tests/rv32uc-v-rvc.elfbin0 -> 31196 bytes
-rw-r--r--test/riscv-tests/rv32ui-p-add.dump479
-rw-r--r--test/riscv-tests/rv32ui-p-add.elfbin0 -> 9852 bytes
-rw-r--r--test/riscv-tests/rv32ui-p-addi.dump315
-rw-r--r--test/riscv-tests/rv32ui-p-addi.elfbin0 -> 9540 bytes
-rw-r--r--test/riscv-tests/rv32ui-p-and.dump467
-rw-r--r--test/riscv-tests/rv32ui-p-and.elfbin0 -> 9588 bytes
-rw-r--r--test/riscv-tests/rv32ui-p-andi.dump247
-rw-r--r--test/riscv-tests/rv32ui-p-andi.elfbin0 -> 9276 bytes
-rw-r--r--test/riscv-tests/rv32ui-p-auipc.dump125
-rw-r--r--test/riscv-tests/rv32ui-p-auipc.elfbin0 -> 9020 bytes
-rw-r--r--test/riscv-tests/rv32ui-p-beq.dump325
-rw-r--r--test/riscv-tests/rv32ui-p-beq.elfbin0 -> 9444 bytes
-rw-r--r--test/riscv-tests/rv32ui-p-bge.dump339
-rw-r--r--test/riscv-tests/rv32ui-p-bge.elfbin0 -> 9516 bytes
-rw-r--r--test/riscv-tests/rv32ui-p-bgeu.dump358
-rw-r--r--test/riscv-tests/rv32ui-p-bgeu.elfbin0 -> 9516 bytes
-rw-r--r--test/riscv-tests/rv32ui-p-blt.dump325
-rw-r--r--test/riscv-tests/rv32ui-p-blt.elfbin0 -> 9444 bytes
-rw-r--r--test/riscv-tests/rv32ui-p-bltu.dump344
-rw-r--r--test/riscv-tests/rv32ui-p-bltu.elfbin0 -> 9444 bytes
-rw-r--r--test/riscv-tests/rv32ui-p-bne.dump324
-rw-r--r--test/riscv-tests/rv32ui-p-bne.elfbin0 -> 9444 bytes
-rw-r--r--test/riscv-tests/rv32ui-p-fence_i.dump189
-rw-r--r--test/riscv-tests/rv32ui-p-fence_i.elfbin0 -> 13140 bytes
-rw-r--r--test/riscv-tests/rv32ui-p-jal.dump128
-rw-r--r--test/riscv-tests/rv32ui-p-jal.elfbin0 -> 9072 bytes
-rw-r--r--test/riscv-tests/rv32ui-p-jalr.dump166
-rw-r--r--test/riscv-tests/rv32ui-p-jalr.elfbin0 -> 9140 bytes
-rw-r--r--test/riscv-tests/rv32ui-p-lb.dump306
-rw-r--r--test/riscv-tests/rv32ui-p-lb.elfbin0 -> 13608 bytes
-rw-r--r--test/riscv-tests/rv32ui-p-lbu.dump306
-rw-r--r--test/riscv-tests/rv32ui-p-lbu.elfbin0 -> 13608 bytes
-rw-r--r--test/riscv-tests/rv32ui-p-lh.dump327
-rw-r--r--test/riscv-tests/rv32ui-p-lh.elfbin0 -> 13608 bytes
-rw-r--r--test/riscv-tests/rv32ui-p-lhu.dump322
-rw-r--r--test/riscv-tests/rv32ui-p-lhu.elfbin0 -> 13608 bytes
-rw-r--r--test/riscv-tests/rv32ui-p-lui.dump127
-rw-r--r--test/riscv-tests/rv32ui-p-lui.elfbin0 -> 9088 bytes
-rw-r--r--test/riscv-tests/rv32ui-p-lw.dump319
-rw-r--r--test/riscv-tests/rv32ui-p-lw.elfbin0 -> 13608 bytes
-rw-r--r--test/riscv-tests/rv32ui-p-or.dump464
-rw-r--r--test/riscv-tests/rv32ui-p-or.elfbin0 -> 9588 bytes
-rw-r--r--test/riscv-tests/rv32ui-p-ori.dump240
-rw-r--r--test/riscv-tests/rv32ui-p-ori.elfbin0 -> 9276 bytes
-rw-r--r--test/riscv-tests/rv32ui-p-sb.dump447
-rw-r--r--test/riscv-tests/rv32ui-p-sb.elfbin0 -> 13836 bytes
-rw-r--r--test/riscv-tests/rv32ui-p-sh.dump480
-rw-r--r--test/riscv-tests/rv32ui-p-sh.elfbin0 -> 13852 bytes
-rw-r--r--test/riscv-tests/rv32ui-p-simple.dump110
-rw-r--r--test/riscv-tests/rv32ui-p-simple.elfbin0 -> 8932 bytes
-rw-r--r--test/riscv-tests/rv32ui-p-sll.dump523
-rw-r--r--test/riscv-tests/rv32ui-p-sll.elfbin0 -> 9948 bytes
-rw-r--r--test/riscv-tests/rv32ui-p-slli.dump316
-rw-r--r--test/riscv-tests/rv32ui-p-slli.elfbin0 -> 9540 bytes
-rw-r--r--test/riscv-tests/rv32ui-p-slt.dump485
-rw-r--r--test/riscv-tests/rv32ui-p-slt.elfbin0 -> 9852 bytes
-rw-r--r--test/riscv-tests/rv32ui-p-slti.dump320
-rw-r--r--test/riscv-tests/rv32ui-p-slti.elfbin0 -> 9540 bytes
-rw-r--r--test/riscv-tests/rv32ui-p-sltiu.dump320
-rw-r--r--test/riscv-tests/rv32ui-p-sltiu.elfbin0 -> 9540 bytes
-rw-r--r--test/riscv-tests/rv32ui-p-sltu.dump485
-rw-r--r--test/riscv-tests/rv32ui-p-sltu.elfbin0 -> 9852 bytes
-rw-r--r--test/riscv-tests/rv32ui-p-sra.dump538
-rw-r--r--test/riscv-tests/rv32ui-p-sra.elfbin0 -> 9972 bytes
-rw-r--r--test/riscv-tests/rv32ui-p-srai.dump335
-rw-r--r--test/riscv-tests/rv32ui-p-srai.elfbin0 -> 9540 bytes
-rw-r--r--test/riscv-tests/rv32ui-p-srl.dump544
-rw-r--r--test/riscv-tests/rv32ui-p-srl.elfbin0 -> 9972 bytes
-rw-r--r--test/riscv-tests/rv32ui-p-srli.dump309
-rw-r--r--test/riscv-tests/rv32ui-p-srli.elfbin0 -> 9540 bytes
-rw-r--r--test/riscv-tests/rv32ui-p-sub.dump485
-rw-r--r--test/riscv-tests/rv32ui-p-sub.elfbin0 -> 9828 bytes
-rw-r--r--test/riscv-tests/rv32ui-p-sw.dump476
-rw-r--r--test/riscv-tests/rv32ui-p-sw.elfbin0 -> 13868 bytes
-rw-r--r--test/riscv-tests/rv32ui-p-xor.dump465
-rw-r--r--test/riscv-tests/rv32ui-p-xor.elfbin0 -> 9588 bytes
-rw-r--r--test/riscv-tests/rv32ui-p-xori.dump238
-rw-r--r--test/riscv-tests/rv32ui-p-xori.elfbin0 -> 9276 bytes
-rw-r--r--test/riscv-tests/rv32ui-v-add.dump1294
-rw-r--r--test/riscv-tests/rv32ui-v-add.elfbin0 -> 19436 bytes
-rw-r--r--test/riscv-tests/rv32ui-v-addi.dump1118
-rw-r--r--test/riscv-tests/rv32ui-v-addi.elfbin0 -> 18524 bytes
-rw-r--r--test/riscv-tests/rv32ui-v-and.dump1262
-rw-r--r--test/riscv-tests/rv32ui-v-and.elfbin0 -> 19132 bytes
-rw-r--r--test/riscv-tests/rv32ui-v-andi.dump1046
-rw-r--r--test/riscv-tests/rv32ui-v-andi.elfbin0 -> 18060 bytes
-rw-r--r--test/riscv-tests/rv32ui-v-auipc.dump929
-rw-r--r--test/riscv-tests/rv32ui-v-auipc.elfbin0 -> 17424 bytes
-rw-r--r--test/riscv-tests/rv32ui-v-beq.dump1124
-rw-r--r--test/riscv-tests/rv32ui-v-beq.elfbin0 -> 18484 bytes
-rw-r--r--test/riscv-tests/rv32ui-v-bge.dump1154
-rw-r--r--test/riscv-tests/rv32ui-v-bge.elfbin0 -> 18652 bytes
-rw-r--r--test/riscv-tests/rv32ui-v-bgeu.dump1167
-rw-r--r--test/riscv-tests/rv32ui-v-bgeu.elfbin0 -> 18704 bytes
-rw-r--r--test/riscv-tests/rv32ui-v-blt.dump1124
-rw-r--r--test/riscv-tests/rv32ui-v-blt.elfbin0 -> 18484 bytes
-rw-r--r--test/riscv-tests/rv32ui-v-bltu.dump1137
-rw-r--r--test/riscv-tests/rv32ui-v-bltu.elfbin0 -> 18536 bytes
-rw-r--r--test/riscv-tests/rv32ui-v-bne.dump1125
-rw-r--r--test/riscv-tests/rv32ui-v-bne.elfbin0 -> 18488 bytes
-rw-r--r--test/riscv-tests/rv32ui-v-fence_i.dump1017
-rw-r--r--test/riscv-tests/rv32ui-v-fence_i.elfbin0 -> 18020 bytes
-rw-r--r--test/riscv-tests/rv32ui-v-jal.dump937
-rw-r--r--test/riscv-tests/rv32ui-v-jal.elfbin0 -> 17492 bytes
-rw-r--r--test/riscv-tests/rv32ui-v-jalr.dump975
-rw-r--r--test/riscv-tests/rv32ui-v-jalr.elfbin0 -> 17688 bytes
-rw-r--r--test/riscv-tests/rv32ui-v-lb.dump1107
-rw-r--r--test/riscv-tests/rv32ui-v-lb.elfbin0 -> 22580 bytes
-rw-r--r--test/riscv-tests/rv32ui-v-lbu.dump1107
-rw-r--r--test/riscv-tests/rv32ui-v-lbu.elfbin0 -> 22580 bytes
-rw-r--r--test/riscv-tests/rv32ui-v-lh.dump1113
-rw-r--r--test/riscv-tests/rv32ui-v-lh.elfbin0 -> 22584 bytes
-rw-r--r--test/riscv-tests/rv32ui-v-lhu.dump1118
-rw-r--r--test/riscv-tests/rv32ui-v-lhu.elfbin0 -> 22584 bytes
-rw-r--r--test/riscv-tests/rv32ui-v-lui.dump942
-rw-r--r--test/riscv-tests/rv32ui-v-lui.elfbin0 -> 17520 bytes
-rw-r--r--test/riscv-tests/rv32ui-v-lw.dump1124
-rw-r--r--test/riscv-tests/rv32ui-v-lw.elfbin0 -> 22592 bytes
-rw-r--r--test/riscv-tests/rv32ui-v-or.dump1265
-rw-r--r--test/riscv-tests/rv32ui-v-or.elfbin0 -> 19144 bytes
-rw-r--r--test/riscv-tests/rv32ui-v-ori.dump1053
-rw-r--r--test/riscv-tests/rv32ui-v-ori.elfbin0 -> 18088 bytes
-rw-r--r--test/riscv-tests/rv32ui-v-sb.dump1239
-rw-r--r--test/riscv-tests/rv32ui-v-sb.elfbin0 -> 22812 bytes
-rw-r--r--test/riscv-tests/rv32ui-v-sh.dump1270
-rw-r--r--test/riscv-tests/rv32ui-v-sh.elfbin0 -> 22824 bytes
-rw-r--r--test/riscv-tests/rv32ui-v-simple.dump902
-rw-r--r--test/riscv-tests/rv32ui-v-simple.elfbin0 -> 17220 bytes
-rw-r--r--test/riscv-tests/rv32ui-v-sll.dump1330
-rw-r--r--test/riscv-tests/rv32ui-v-sll.elfbin0 -> 19644 bytes
-rw-r--r--test/riscv-tests/rv32ui-v-slli.dump1117
-rw-r--r--test/riscv-tests/rv32ui-v-slli.elfbin0 -> 18520 bytes
-rw-r--r--test/riscv-tests/rv32ui-v-slt.dump1288
-rw-r--r--test/riscv-tests/rv32ui-v-slt.elfbin0 -> 19412 bytes
-rw-r--r--test/riscv-tests/rv32ui-v-slti.dump1113
-rw-r--r--test/riscv-tests/rv32ui-v-slti.elfbin0 -> 18504 bytes
-rw-r--r--test/riscv-tests/rv32ui-v-sltiu.dump1113
-rw-r--r--test/riscv-tests/rv32ui-v-sltiu.elfbin0 -> 18504 bytes
-rw-r--r--test/riscv-tests/rv32ui-v-sltu.dump1288
-rw-r--r--test/riscv-tests/rv32ui-v-sltu.elfbin0 -> 19412 bytes
-rw-r--r--test/riscv-tests/rv32ui-v-sra.dump1351
-rw-r--r--test/riscv-tests/rv32ui-v-sra.elfbin0 -> 19744 bytes
-rw-r--r--test/riscv-tests/rv32ui-v-srai.dump1130
-rw-r--r--test/riscv-tests/rv32ui-v-srai.elfbin0 -> 18572 bytes
-rw-r--r--test/riscv-tests/rv32ui-v-srl.dump1345
-rw-r--r--test/riscv-tests/rv32ui-v-srl.elfbin0 -> 19720 bytes
-rw-r--r--test/riscv-tests/rv32ui-v-srli.dump1124
-rw-r--r--test/riscv-tests/rv32ui-v-srli.elfbin0 -> 18548 bytes
-rw-r--r--test/riscv-tests/rv32ui-v-sub.dump1284
-rw-r--r--test/riscv-tests/rv32ui-v-sub.elfbin0 -> 19380 bytes
-rw-r--r--test/riscv-tests/rv32ui-v-sw.dump1273
-rw-r--r--test/riscv-tests/rv32ui-v-sw.elfbin0 -> 22844 bytes
-rw-r--r--test/riscv-tests/rv32ui-v-xor.dump1264
-rw-r--r--test/riscv-tests/rv32ui-v-xor.elfbin0 -> 19140 bytes
-rw-r--r--test/riscv-tests/rv32ui-v-xori.dump1055
-rw-r--r--test/riscv-tests/rv32ui-v-xori.elfbin0 -> 18096 bytes
-rw-r--r--test/riscv-tests/rv32um-p-div.dump168
-rw-r--r--test/riscv-tests/rv32um-p-div.elfbin0 -> 9180 bytes
-rw-r--r--test/riscv-tests/rv32um-p-divu.dump167
-rw-r--r--test/riscv-tests/rv32um-p-divu.elfbin0 -> 9180 bytes
-rw-r--r--test/riscv-tests/rv32um-p-mul.dump483
-rw-r--r--test/riscv-tests/rv32um-p-mul.elfbin0 -> 9828 bytes
-rw-r--r--test/riscv-tests/rv32um-p-mulh.dump479
-rw-r--r--test/riscv-tests/rv32um-p-mulh.elfbin0 -> 9780 bytes
-rw-r--r--test/riscv-tests/rv32um-p-mulhsu.dump479
-rw-r--r--test/riscv-tests/rv32um-p-mulhsu.elfbin0 -> 9780 bytes
-rw-r--r--test/riscv-tests/rv32um-p-mulhu.dump479
-rw-r--r--test/riscv-tests/rv32um-p-mulhu.elfbin0 -> 9780 bytes
-rw-r--r--test/riscv-tests/rv32um-p-rem.dump168
-rw-r--r--test/riscv-tests/rv32um-p-rem.elfbin0 -> 9180 bytes
-rw-r--r--test/riscv-tests/rv32um-p-remu.dump168
-rw-r--r--test/riscv-tests/rv32um-p-remu.elfbin0 -> 9180 bytes
-rw-r--r--test/riscv-tests/rv32um-v-div.dump981
-rw-r--r--test/riscv-tests/rv32um-v-div.elfbin0 -> 17736 bytes
-rw-r--r--test/riscv-tests/rv32um-v-divu.dump982
-rw-r--r--test/riscv-tests/rv32um-v-divu.elfbin0 -> 17740 bytes
-rw-r--r--test/riscv-tests/rv32um-v-mul.dump1286
-rw-r--r--test/riscv-tests/rv32um-v-mul.elfbin0 -> 19388 bytes
-rw-r--r--test/riscv-tests/rv32um-v-mulh.dump1282
-rw-r--r--test/riscv-tests/rv32um-v-mulh.elfbin0 -> 19340 bytes
-rw-r--r--test/riscv-tests/rv32um-v-mulhsu.dump1282
-rw-r--r--test/riscv-tests/rv32um-v-mulhsu.elfbin0 -> 19340 bytes
-rw-r--r--test/riscv-tests/rv32um-v-mulhu.dump1282
-rw-r--r--test/riscv-tests/rv32um-v-mulhu.elfbin0 -> 19340 bytes
-rw-r--r--test/riscv-tests/rv32um-v-rem.dump981
-rw-r--r--test/riscv-tests/rv32um-v-rem.elfbin0 -> 17736 bytes
-rw-r--r--test/riscv-tests/rv32um-v-remu.dump981
-rw-r--r--test/riscv-tests/rv32um-v-remu.elfbin0 -> 17736 bytes
-rw-r--r--[-rwxr-xr-x]test/riscv-tests/rv64ua-p-lrsc.elfbin14632 -> 14632 bytes
-rw-r--r--[-rwxr-xr-x]test/riscv-tests/rv64ua-v-lrsc.elfbin19816 -> 19816 bytes
264 files changed, 94869 insertions, 0 deletions
diff --git a/test/riscv-tests/rv32mi-p-breakpoint.dump b/test/riscv-tests/rv32mi-p-breakpoint.dump
new file mode 100644
index 0000000..cab05cc
--- /dev/null
+++ b/test/riscv-tests/rv32mi-p-breakpoint.dump
@@ -0,0 +1,207 @@
+
+rv32mi-p-breakpoint: 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: 210f0f13 addi t5,t5,528 # 80000230 <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: 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: 00002537 lui a0,0x2
+800000ec: 80050513 addi a0,a0,-2048 # 1800 <_start-0x7fffe800>
+800000f0: 30052073 csrs mstatus,a0
+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: 00200193 li gp,2
+8000010c: 7a001073 csrw tselect,zero
+80000110: 7a0025f3 csrr a1,tselect
+80000114: 10b01863 bne zero,a1,80000224 <pass>
+80000118: 7a102573 csrr a0,tdata1
+8000011c: 01c55513 srli a0,a0,0x1c
+80000120: 00200593 li a1,2
+80000124: 10b51063 bne a0,a1,80000224 <pass>
+80000128: 00000617 auipc a2,0x0
+8000012c: 02060613 addi a2,a2,32 # 80000148 <reset_vector+0xfc>
+80000130: 7a261073 csrw tdata2,a2
+80000134: 04400513 li a0,68
+80000138: 7a151073 csrw tdata1,a0
+8000013c: 7a1025f3 csrr a1,tdata1
+80000140: 7ff5f593 andi a1,a1,2047
+80000144: 00b51863 bne a0,a1,80000154 <reset_vector+0x108>
+80000148: 0c000463 beqz zero,80000210 <fail>
+8000014c: 00300193 li gp,3
+80000150: 00062503 lw a0,0(a2)
+80000154: 00400193 li gp,4
+80000158: 04100513 li a0,65
+8000015c: 7a151073 csrw tdata1,a0
+80000160: 7a1025f3 csrr a1,tdata1
+80000164: 7ff5f593 andi a1,a1,2047
+80000168: 02b51063 bne a0,a1,80000188 <reset_vector+0x13c>
+8000016c: 00002617 auipc a2,0x2
+80000170: e9460613 addi a2,a2,-364 # 80002000 <begin_signature>
+80000174: 7a261073 csrw tdata2,a2
+80000178: 00062603 lw a2,0(a2)
+8000017c: 08060a63 beqz a2,80000210 <fail>
+80000180: 00500193 li gp,5
+80000184: 00062023 sw zero,0(a2)
+80000188: 00600193 li gp,6
+8000018c: 04200513 li a0,66
+80000190: 7a151073 csrw tdata1,a0
+80000194: 7a1025f3 csrr a1,tdata1
+80000198: 7ff5f593 andi a1,a1,2047
+8000019c: 06b51863 bne a0,a1,8000020c <reset_vector+0x1c0>
+800001a0: 00c62023 sw a2,0(a2)
+800001a4: 00700193 li gp,7
+800001a8: 00062603 lw a2,0(a2)
+800001ac: 06061263 bnez a2,80000210 <fail>
+800001b0: 00100513 li a0,1
+800001b4: 7a051073 csrw tselect,a0
+800001b8: 7a0025f3 csrr a1,tselect
+800001bc: 06b51463 bne a0,a1,80000224 <pass>
+800001c0: 7a102573 csrr a0,tdata1
+800001c4: 01c55513 srli a0,a0,0x1c
+800001c8: 00200593 li a1,2
+800001cc: 04b51c63 bne a0,a1,80000224 <pass>
+800001d0: 04100513 li a0,65
+800001d4: 7a151073 csrw tdata1,a0
+800001d8: 00002697 auipc a3,0x2
+800001dc: e2c68693 addi a3,a3,-468 # 80002004 <data2>
+800001e0: 7a269073 csrw tdata2,a3
+800001e4: 00800193 li gp,8
+800001e8: 0006a683 lw a3,0(a3)
+800001ec: 02068263 beqz a3,80000210 <fail>
+800001f0: 00a00193 li gp,10
+800001f4: 00002617 auipc a2,0x2
+800001f8: e0c60613 addi a2,a2,-500 # 80002000 <begin_signature>
+800001fc: 00c62023 sw a2,0(a2)
+80000200: 00b00193 li gp,11
+80000204: 00062603 lw a2,0(a2)
+80000208: 00061463 bnez a2,80000210 <fail>
+8000020c: 00301c63 bne zero,gp,80000224 <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: 00000073 ecall
+
+80000224 <pass>:
+80000224: 0ff0000f fence
+80000228: 00100193 li gp,1
+8000022c: 00000073 ecall
+
+80000230 <mtvec_handler>:
+80000230: 0011f293 andi t0,gp,1
+80000234: fc029ee3 bnez t0,80000210 <fail>
+80000238: 00300293 li t0,3
+8000023c: 34202373 csrr t1,mcause
+80000240: fc6298e3 bne t0,t1,80000210 <fail>
+80000244: 341022f3 csrr t0,mepc
+80000248: 00428293 addi t0,t0,4
+8000024c: 34129073 csrw mepc,t0
+80000250: 30200073 mret
+80000254: c0001073 unimp
+80000258: 0000 unimp
+8000025a: 0000 unimp
+8000025c: 0000 unimp
+8000025e: 0000 unimp
+80000260: 0000 unimp
+80000262: 0000 unimp
+80000264: 0000 unimp
+80000266: 0000 unimp
+80000268: 0000 unimp
+8000026a: 0000 unimp
+8000026c: 0000 unimp
+8000026e: 0000 unimp
+80000270: 0000 unimp
+80000272: 0000 unimp
+80000274: 0000 unimp
+80000276: 0000 unimp
+80000278: 0000 unimp
+8000027a: 0000 unimp
+8000027c: 0000 unimp
+8000027e: 0000 unimp
+80000280: 0000 unimp
+80000282: 0000 unimp
+
+Disassembly of section .data:
+
+80002000 <begin_signature>:
+80002000: 0000 unimp
+80002002: 0000 unimp
+
+80002004 <data2>:
+80002004: 0000 unimp
+80002006: 0000 unimp
+80002008: 0000 unimp
+8000200a: 0000 unimp
+8000200c: 0000 unimp
+8000200e: 0000 unimp
diff --git a/test/riscv-tests/rv32mi-p-breakpoint.elf b/test/riscv-tests/rv32mi-p-breakpoint.elf
new file mode 100644
index 0000000..ec4dc70
--- /dev/null
+++ b/test/riscv-tests/rv32mi-p-breakpoint.elf
Binary files differ
diff --git a/test/riscv-tests/rv32mi-p-csr.dump b/test/riscv-tests/rv32mi-p-csr.dump
new file mode 100644
index 0000000..fad851e
--- /dev/null
+++ b/test/riscv-tests/rv32mi-p-csr.dump
@@ -0,0 +1,241 @@
+
+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: 248f0f13 addi t5,t5,584 # 80000268 <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: 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: 00002537 lui a0,0x2
+800000ec: 80050513 addi a0,a0,-2048 # 1800 <_start-0x7fffe800>
+800000f0: 30052073 csrs mstatus,a0
+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: 3401d073 csrwi mscratch,3
+
+8000010c <test_2>:
+8000010c: 34002573 csrr a0,mscratch
+80000110: 00300e93 li t4,3
+80000114: 00200193 li gp,2
+80000118: 13d51863 bne a0,t4,80000248 <fail>
+
+8000011c <test_3>:
+8000011c: 3400f5f3 csrrci a1,mscratch,1
+80000120: 00300e93 li t4,3
+80000124: 00300193 li gp,3
+80000128: 13d59063 bne a1,t4,80000248 <fail>
+
+8000012c <test_4>:
+8000012c: 34026673 csrrsi a2,mscratch,4
+80000130: 00200e93 li t4,2
+80000134: 00400193 li gp,4
+80000138: 11d61863 bne a2,t4,80000248 <fail>
+
+8000013c <test_5>:
+8000013c: 340156f3 csrrwi a3,mscratch,2
+80000140: 00600e93 li t4,6
+80000144: 00500193 li gp,5
+80000148: 11d69063 bne a3,t4,80000248 <fail>
+
+8000014c <test_6>:
+8000014c: 0bad2537 lui a0,0xbad2
+80000150: dea50513 addi a0,a0,-534 # bad1dea <_start-0x7452e216>
+80000154: 340515f3 csrrw a1,mscratch,a0
+80000158: 00200e93 li t4,2
+8000015c: 00600193 li gp,6
+80000160: 0fd59463 bne a1,t4,80000248 <fail>
+
+80000164 <test_7>:
+80000164: 00002537 lui a0,0x2
+80000168: dea50513 addi a0,a0,-534 # 1dea <_start-0x7fffe216>
+8000016c: 34053573 csrrc a0,mscratch,a0
+80000170: 0bad2eb7 lui t4,0xbad2
+80000174: deae8e93 addi t4,t4,-534 # bad1dea <_start-0x7452e216>
+80000178: 00700193 li gp,7
+8000017c: 0dd51663 bne a0,t4,80000248 <fail>
+
+80000180 <test_8>:
+80000180: 0000c537 lui a0,0xc
+80000184: eef50513 addi a0,a0,-273 # beef <_start-0x7fff4111>
+80000188: 34052573 csrrs a0,mscratch,a0
+8000018c: 0bad0eb7 lui t4,0xbad0
+80000190: 00800193 li gp,8
+80000194: 0bd51a63 bne a0,t4,80000248 <fail>
+
+80000198 <test_9>:
+80000198: 34002573 csrr a0,mscratch
+8000019c: 0badceb7 lui t4,0xbadc
+800001a0: eefe8e93 addi t4,t4,-273 # badbeef <_start-0x74524111>
+800001a4: 00900193 li gp,9
+800001a8: 0bd51063 bne a0,t4,80000248 <fail>
+800001ac: 30102573 csrr a0,misa
+800001b0: 02057513 andi a0,a0,32
+800001b4: 02050863 beqz a0,800001e4 <test_10+0x14>
+800001b8: 000065b7 lui a1,0x6
+800001bc: 3005a073 csrs mstatus,a1
+800001c0: f0000053 fmv.w.x ft0,zero
+800001c4: 3005b073 csrc mstatus,a1
+800001c8: 00002597 auipc a1,0x2
+800001cc: e3858593 addi a1,a1,-456 # 80002000 <begin_signature>
+
+800001d0 <test_10>:
+800001d0: 0005a027 fsw ft0,0(a1)
+800001d4: 0005a503 lw a0,0(a1)
+800001d8: 00100e93 li t4,1
+800001dc: 00a00193 li gp,10
+800001e0: 07d51463 bne a0,t4,80000248 <fail>
+800001e4: 30102573 csrr a0,misa
+800001e8: 01455513 srli a0,a0,0x14
+800001ec: 00157513 andi a0,a0,1
+800001f0: 04050463 beqz a0,80000238 <finish>
+800001f4: 000022b7 lui t0,0x2
+800001f8: 80028293 addi t0,t0,-2048 # 1800 <_start-0x7fffe800>
+800001fc: 3002b073 csrc mstatus,t0
+80000200: 00000297 auipc t0,0x0
+80000204: 01028293 addi t0,t0,16 # 80000210 <test_11>
+80000208: 34129073 csrw mepc,t0
+8000020c: 30200073 mret
+
+80000210 <test_11>:
+80000210: 0ff00513 li a0,255
+80000214: c0001573 csrrw a0,cycle,zero
+80000218: 0ff00e93 li t4,255
+8000021c: 00b00193 li gp,11
+80000220: 03d51463 bne a0,t4,80000248 <fail>
+
+80000224 <test_12>:
+80000224: 0ff00513 li a0,255
+80000228: 30002573 csrr a0,mstatus
+8000022c: 0ff00e93 li t4,255
+80000230: 00c00193 li gp,12
+80000234: 01d51a63 bne a0,t4,80000248 <fail>
+
+80000238 <finish>:
+80000238: 0ff0000f fence
+8000023c: 00100193 li gp,1
+80000240: 00000073 ecall
+80000244: 00301c63 bne zero,gp,8000025c <pass>
+
+80000248 <fail>:
+80000248: 0ff0000f fence
+8000024c: 00018063 beqz gp,8000024c <fail+0x4>
+80000250: 00119193 slli gp,gp,0x1
+80000254: 0011e193 ori gp,gp,1
+80000258: 00000073 ecall
+
+8000025c <pass>:
+8000025c: 0ff0000f fence
+80000260: 00100193 li gp,1
+80000264: 00000073 ecall
+
+80000268 <mtvec_handler>:
+80000268: 00900293 li t0,9
+8000026c: 0051e663 bltu gp,t0,80000278 <mtvec_handler+0x10>
+80000270: 00b00293 li t0,11
+80000274: 0032fe63 bleu gp,t0,80000290 <privileged>
+80000278: 342022f3 csrr t0,mcause
+8000027c: 00800313 li t1,8
+80000280: fc6294e3 bne t0,t1,80000248 <fail>
+80000284: 0ff0000f fence
+80000288: 00100193 li gp,1
+8000028c: 00000073 ecall
+
+80000290 <privileged>:
+80000290: 342022f3 csrr t0,mcause
+80000294: 00200313 li t1,2
+80000298: fa6298e3 bne t0,t1,80000248 <fail>
+8000029c: 341022f3 csrr t0,mepc
+800002a0: 00428293 addi t0,t0,4
+800002a4: 34129073 csrw mepc,t0
+800002a8: 30200073 mret
+800002ac: c0001073 unimp
+800002b0: 0000 unimp
+800002b2: 0000 unimp
+800002b4: 0000 unimp
+800002b6: 0000 unimp
+800002b8: 0000 unimp
+800002ba: 0000 unimp
+800002bc: 0000 unimp
+800002be: 0000 unimp
+800002c0: 0000 unimp
+800002c2: 0000 unimp
+
+Disassembly of section .data:
+
+80002000 <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
diff --git a/test/riscv-tests/rv32mi-p-csr.elf b/test/riscv-tests/rv32mi-p-csr.elf
new file mode 100644
index 0000000..0e1b988
--- /dev/null
+++ b/test/riscv-tests/rv32mi-p-csr.elf
Binary files differ
diff --git a/test/riscv-tests/rv32mi-p-illegal.dump b/test/riscv-tests/rv32mi-p-illegal.dump
new file mode 100644
index 0000000..e1c163d
--- /dev/null
+++ b/test/riscv-tests/rv32mi-p-illegal.dump
@@ -0,0 +1,383 @@
+
+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: 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: 00002537 lui a0,0x2
+800000ec: 80050513 addi a0,a0,-2048 # 1800 <_start-0x7fffe800>
+800000f0: 30052073 csrs mstatus,a0
+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: 00200193 li gp,2
+
+8000010c <bad2>:
+8000010c: 0000 unimp
+8000010e: 0000 unimp
+80000110: 0f40006f j 80000204 <fail>
+80000114: 000022b7 lui t0,0x2
+80000118: 80028293 addi t0,t0,-2048 # 1800 <_start-0x7fffe800>
+8000011c: 3002b073 csrc mstatus,t0
+80000120: 00001337 lui t1,0x1
+80000124: 80030313 addi t1,t1,-2048 # 800 <_start-0x7ffff800>
+80000128: 30032073 csrs mstatus,t1
+8000012c: 300023f3 csrr t2,mstatus
+80000130: 0053f3b3 and t2,t2,t0
+80000134: 0e731263 bne t1,t2,80000218 <pass>
+
+80000138 <test_vectored_interrupts>:
+80000138: 34415073 csrwi mip,2
+8000013c: 30415073 csrwi mie,2
+80000140: 00000297 auipc t0,0x0
+80000144: 1c128293 addi t0,t0,449 # 80000301 <mtvec_handler+0x1>
+80000148: 30529473 csrrw s0,mtvec,t0
+8000014c: 305022f3 csrr t0,mtvec
+80000150: 0012f293 andi t0,t0,1
+80000154: 00028663 beqz t0,80000160 <msip>
+80000158: 30046073 csrsi mstatus,8
+8000015c: 0000006f j 8000015c <test_vectored_interrupts+0x24>
+
+80000160 <msip>:
+80000160: 30541073 csrw mtvec,s0
+80000164: 30315073 csrwi mideleg,2
+80000168: 00000297 auipc t0,0x0
+8000016c: 02828293 addi t0,t0,40 # 80000190 <msip+0x30>
+80000170: 34129073 csrw mepc,t0
+80000174: 000022b7 lui t0,0x2
+80000178: 80028293 addi t0,t0,-2048 # 1800 <_start-0x7fffe800>
+8000017c: 3002b073 csrc mstatus,t0
+80000180: 00001337 lui t1,0x1
+80000184: 80030313 addi t1,t1,-2048 # 800 <_start-0x7ffff800>
+80000188: 30032073 csrs mstatus,t1
+8000018c: 30200073 mret
+80000190: 10500073 wfi
+
+80000194 <bad3>:
+80000194: 0000 unimp
+80000196: 0000 unimp
+80000198: 06c0006f j 80000204 <fail>
+
+8000019c <bad4>:
+8000019c: 10500073 wfi
+800001a0: 0640006f j 80000204 <fail>
+800001a4: 12000073 sfence.vma
+800001a8: 180022f3 csrr t0,satp
+
+800001ac <bad5>:
+800001ac: 0000 unimp
+800001ae: 0000 unimp
+800001b0: 0540006f j 80000204 <fail>
+
+800001b4 <bad6>:
+800001b4: 12000073 sfence.vma
+800001b8: 04c0006f j 80000204 <fail>
+
+800001bc <bad7>:
+800001bc: 180022f3 csrr t0,satp
+800001c0: 0440006f j 80000204 <fail>
+800001c4: 00000297 auipc t0,0x0
+800001c8: 02028293 addi t0,t0,32 # 800001e4 <bad8>
+800001cc: 14129073 csrw sepc,t0
+800001d0: 10000293 li t0,256
+800001d4: 1002a073 csrs sstatus,t0
+800001d8: 02000293 li t0,32
+800001dc: 1002b073 csrc sstatus,t0
+800001e0: 10200073 sret
+
+800001e4 <bad8>:
+800001e4: 0000 unimp
+800001e6: 0000 unimp
+800001e8: 01c0006f j 80000204 <fail>
+800001ec: 00000297 auipc t0,0x0
+800001f0: 01028293 addi t0,t0,16 # 800001fc <bad9+0x4>
+800001f4: 14129073 csrw sepc,t0
+
+800001f8 <bad9>:
+800001f8: 10200073 sret
+800001fc: 0080006f j 80000204 <fail>
+80000200: 00301c63 bne zero,gp,80000218 <pass>
+
+80000204 <fail>:
+80000204: 0ff0000f fence
+80000208: 00018063 beqz gp,80000208 <fail+0x4>
+8000020c: 00119193 slli gp,gp,0x1
+80000210: 0011e193 ori gp,gp,1
+80000214: 00000073 ecall
+
+80000218 <pass>:
+80000218: 0ff0000f fence
+8000021c: 00100193 li gp,1
+80000220: 00000073 ecall
+80000224: 00000013 nop
+80000228: 00000013 nop
+8000022c: 00000013 nop
+80000230: 00000013 nop
+80000234: 00000013 nop
+80000238: 00000013 nop
+8000023c: 00000013 nop
+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: e5dff06f j 80000160 <msip>
+80000308: efdff06f j 80000204 <fail>
+8000030c: ef9ff06f j 80000204 <fail>
+80000310: ef5ff06f j 80000204 <fail>
+80000314: ef1ff06f j 80000204 <fail>
+80000318: eedff06f j 80000204 <fail>
+8000031c: ee9ff06f j 80000204 <fail>
+80000320: ee5ff06f j 80000204 <fail>
+80000324: ee1ff06f j 80000204 <fail>
+80000328: eddff06f j 80000204 <fail>
+8000032c: ed9ff06f j 80000204 <fail>
+80000330: ed5ff06f j 80000204 <fail>
+80000334: ed1ff06f j 80000204 <fail>
+80000338: ecdff06f j 80000204 <fail>
+8000033c: ec9ff06f j 80000204 <fail>
+
+80000340 <synchronous_exception>:
+80000340: 00200313 li t1,2
+80000344: 342022f3 csrr t0,mcause
+80000348: ea629ee3 bne t0,t1,80000204 <fail>
+8000034c: 341022f3 csrr t0,mepc
+80000350: 343023f3 csrr t2,mbadaddr
+80000354: 00038c63 beqz t2,8000036c <synchronous_exception+0x2c>
+80000358: 0002de03 lhu t3,0(t0)
+8000035c: 0022de83 lhu t4,2(t0)
+80000360: 010e9e93 slli t4,t4,0x10
+80000364: 01de6e33 or t3,t3,t4
+80000368: e9c39ee3 bne t2,t3,80000204 <fail>
+8000036c: 00000317 auipc t1,0x0
+80000370: da030313 addi t1,t1,-608 # 8000010c <bad2>
+80000374: 04628e63 beq t0,t1,800003d0 <synchronous_exception+0x90>
+80000378: 00000317 auipc t1,0x0
+8000037c: e1c30313 addi t1,t1,-484 # 80000194 <bad3>
+80000380: 04628e63 beq t0,t1,800003dc <synchronous_exception+0x9c>
+80000384: 00000317 auipc t1,0x0
+80000388: e1830313 addi t1,t1,-488 # 8000019c <bad4>
+8000038c: 04628263 beq t0,t1,800003d0 <synchronous_exception+0x90>
+80000390: 00000317 auipc t1,0x0
+80000394: e1c30313 addi t1,t1,-484 # 800001ac <bad5>
+80000398: 04628863 beq t0,t1,800003e8 <synchronous_exception+0xa8>
+8000039c: 00000317 auipc t1,0x0
+800003a0: e1830313 addi t1,t1,-488 # 800001b4 <bad6>
+800003a4: 02628663 beq t0,t1,800003d0 <synchronous_exception+0x90>
+800003a8: 00000317 auipc t1,0x0
+800003ac: e1430313 addi t1,t1,-492 # 800001bc <bad7>
+800003b0: 02628063 beq t0,t1,800003d0 <synchronous_exception+0x90>
+800003b4: 00000317 auipc t1,0x0
+800003b8: e3030313 addi t1,t1,-464 # 800001e4 <bad8>
+800003bc: 02628c63 beq t0,t1,800003f4 <synchronous_exception+0xb4>
+800003c0: 00000317 auipc t1,0x0
+800003c4: e3830313 addi t1,t1,-456 # 800001f8 <bad9>
+800003c8: 02628c63 beq t0,t1,80000400 <synchronous_exception+0xc0>
+800003cc: e39ff06f j 80000204 <fail>
+800003d0: 00828293 addi t0,t0,8
+800003d4: 34129073 csrw mepc,t0
+800003d8: 30200073 mret
+800003dc: 00200337 lui t1,0x200
+800003e0: 30032073 csrs mstatus,t1
+800003e4: fedff06f j 800003d0 <synchronous_exception+0x90>
+800003e8: 00100337 lui t1,0x100
+800003ec: 30032073 csrs mstatus,t1
+800003f0: fe1ff06f j 800003d0 <synchronous_exception+0x90>
+800003f4: 00400337 lui t1,0x400
+800003f8: 30032073 csrs mstatus,t1
+800003fc: fd5ff06f j 800003d0 <synchronous_exception+0x90>
+80000400: fd1ff06f j 800003d0 <synchronous_exception+0x90>
+80000404: c0001073 unimp
+80000408: 0000 unimp
+8000040a: 0000 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
+80000488: 0000 unimp
+8000048a: 0000 unimp
+8000048c: 0000 unimp
+8000048e: 0000 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
diff --git a/test/riscv-tests/rv32mi-p-illegal.elf b/test/riscv-tests/rv32mi-p-illegal.elf
new file mode 100644
index 0000000..b1119ea
--- /dev/null
+++ b/test/riscv-tests/rv32mi-p-illegal.elf
Binary files differ
diff --git a/test/riscv-tests/rv32mi-p-ma_addr.dump b/test/riscv-tests/rv32mi-p-ma_addr.dump
new file mode 100644
index 0000000..acc23b8
--- /dev/null
+++ b/test/riscv-tests/rv32mi-p-ma_addr.dump
@@ -0,0 +1,363 @@
+
+rv32mi-p-ma_addr: 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: 290f0f13 addi t5,t5,656 # 800002b0 <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: 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: 00002537 lui a0,0x2
+800000ec: 80050513 addi a0,a0,-2048 # 1800 <_start-0x7fffe800>
+800000f0: 30052073 csrs mstatus,a0
+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: 00002417 auipc s0,0x2
+8000010c: ef840413 addi s0,s0,-264 # 80002000 <begin_signature>
+80000110: 00400493 li s1,4
+80000114: 00200193 li gp,2
+80000118: 00000397 auipc t2,0x0
+8000011c: 01c38393 addi t2,t2,28 # 80000134 <reset_vector+0xe8>
+80000120: 00140313 addi t1,s0,1
+80000124: 00141303 lh t1,1(s0)
+80000128: ffffc3b7 lui t2,0xffffc
+8000012c: bcc38393 addi t2,t2,-1076 # ffffbbcc <_end+0x7fff9abc>
+80000130: 14731e63 bne t1,t2,8000028c <fail>
+80000134: 00300193 li gp,3
+80000138: 00000397 auipc t2,0x0
+8000013c: 01c38393 addi t2,t2,28 # 80000154 <reset_vector+0x108>
+80000140: 00140313 addi t1,s0,1
+80000144: 00145303 lhu t1,1(s0)
+80000148: 0000c3b7 lui t2,0xc
+8000014c: bcc38393 addi t2,t2,-1076 # bbcc <_start-0x7fff4434>
+80000150: 12731e63 bne t1,t2,8000028c <fail>
+80000154: 00400193 li gp,4
+80000158: 00000397 auipc t2,0x0
+8000015c: 01c38393 addi t2,t2,28 # 80000174 <reset_vector+0x128>
+80000160: 00140313 addi t1,s0,1
+80000164: 00142303 lw t1,1(s0)
+80000168: 99aac3b7 lui t2,0x99aac
+8000016c: bcc38393 addi t2,t2,-1076 # 99aabbcc <_end+0x19aa9abc>
+80000170: 10731e63 bne t1,t2,8000028c <fail>
+80000174: 00500193 li gp,5
+80000178: 00000397 auipc t2,0x0
+8000017c: 01c38393 addi t2,t2,28 # 80000194 <reset_vector+0x148>
+80000180: 00240313 addi t1,s0,2
+80000184: 00242303 lw t1,2(s0)
+80000188: 8899b3b7 lui t2,0x8899b
+8000018c: abb38393 addi t2,t2,-1349 # 8899aabb <_end+0x89989ab>
+80000190: 0e731e63 bne t1,t2,8000028c <fail>
+80000194: 00600193 li gp,6
+80000198: 00000397 auipc t2,0x0
+8000019c: 01c38393 addi t2,t2,28 # 800001b4 <reset_vector+0x168>
+800001a0: 00340313 addi t1,s0,3
+800001a4: 00342303 lw t1,3(s0)
+800001a8: 7788a3b7 lui t2,0x7788a
+800001ac: 9aa38393 addi t2,t2,-1622 # 778899aa <_start-0x8776656>
+800001b0: 0c731e63 bne t1,t2,8000028c <fail>
+800001b4: 00600493 li s1,6
+800001b8: 01600193 li gp,22
+800001bc: 00000397 auipc t2,0x0
+800001c0: 03038393 addi t2,t2,48 # 800001ec <reset_vector+0x1a0>
+800001c4: 00140313 addi t1,s0,1
+800001c8: 000410a3 sh zero,1(s0)
+800001cc: 00040303 lb t1,0(s0)
+800001d0: 0a030e63 beqz t1,8000028c <fail>
+800001d4: 00340303 lb t1,3(s0)
+800001d8: 0a030a63 beqz t1,8000028c <fail>
+800001dc: 00140303 lb t1,1(s0)
+800001e0: 0a031663 bnez t1,8000028c <fail>
+800001e4: 00240303 lb t1,2(s0)
+800001e8: 0a031263 bnez t1,8000028c <fail>
+800001ec: 01700193 li gp,23
+800001f0: 00000397 auipc t2,0x0
+800001f4: 03038393 addi t2,t2,48 # 80000220 <reset_vector+0x1d4>
+800001f8: 00540313 addi t1,s0,5
+800001fc: 000422a3 sw zero,5(s0)
+80000200: 00440303 lb t1,4(s0)
+80000204: 08030463 beqz t1,8000028c <fail>
+80000208: 00940303 lb t1,9(s0)
+8000020c: 08030063 beqz t1,8000028c <fail>
+80000210: 00540303 lb t1,5(s0)
+80000214: 06031c63 bnez t1,8000028c <fail>
+80000218: 00840303 lb t1,8(s0)
+8000021c: 06031863 bnez t1,8000028c <fail>
+80000220: 01800193 li gp,24
+80000224: 00000397 auipc t2,0x0
+80000228: 03038393 addi t2,t2,48 # 80000254 <reset_vector+0x208>
+8000022c: 00a40313 addi t1,s0,10
+80000230: 00042523 sw zero,10(s0)
+80000234: 00940303 lb t1,9(s0)
+80000238: 04030a63 beqz t1,8000028c <fail>
+8000023c: 00e40303 lb t1,14(s0)
+80000240: 04030663 beqz t1,8000028c <fail>
+80000244: 00a40303 lb t1,10(s0)
+80000248: 04031263 bnez t1,8000028c <fail>
+8000024c: 00d40303 lb t1,13(s0)
+80000250: 02031e63 bnez t1,8000028c <fail>
+80000254: 01900193 li gp,25
+80000258: 00000397 auipc t2,0x0
+8000025c: 03038393 addi t2,t2,48 # 80000288 <reset_vector+0x23c>
+80000260: 00f40313 addi t1,s0,15
+80000264: 000427a3 sw zero,15(s0)
+80000268: 00e40303 lb t1,14(s0)
+8000026c: 02030063 beqz t1,8000028c <fail>
+80000270: 01340303 lb t1,19(s0)
+80000274: 00030c63 beqz t1,8000028c <fail>
+80000278: 00f40303 lb t1,15(s0)
+8000027c: 00031863 bnez t1,8000028c <fail>
+80000280: 01240303 lb t1,18(s0)
+80000284: 00031463 bnez t1,8000028c <fail>
+80000288: 00301c63 bne zero,gp,800002a0 <pass>
+
+8000028c <fail>:
+8000028c: 0ff0000f fence
+80000290: 00018063 beqz gp,80000290 <fail+0x4>
+80000294: 00119193 slli gp,gp,0x1
+80000298: 0011e193 ori gp,gp,1
+8000029c: 00000073 ecall
+
+800002a0 <pass>:
+800002a0: 0ff0000f fence
+800002a4: 00100193 li gp,1
+800002a8: 00000073 ecall
+800002ac: 00000013 nop
+
+800002b0 <mtvec_handler>:
+800002b0: 342022f3 csrr t0,mcause
+800002b4: fc929ce3 bne t0,s1,8000028c <fail>
+800002b8: 343022f3 csrr t0,mbadaddr
+800002bc: fc6298e3 bne t0,t1,8000028c <fail>
+800002c0: 00028283 lb t0,0(t0)
+800002c4: fc0284e3 beqz t0,8000028c <fail>
+800002c8: 34139073 csrw mepc,t2
+800002cc: 30200073 mret
+800002d0: c0001073 unimp
+800002d4: 0000 unimp
+800002d6: 0000 unimp
+800002d8: 0000 unimp
+800002da: 0000 unimp
+800002dc: 0000 unimp
+800002de: 0000 unimp
+800002e0: 0000 unimp
+800002e2: 0000 unimp
+800002e4: 0000 unimp
+800002e6: 0000 unimp
+800002e8: 0000 unimp
+800002ea: 0000 unimp
+800002ec: 0000 unimp
+800002ee: 0000 unimp
+800002f0: 0000 unimp
+800002f2: 0000 unimp
+800002f4: 0000 unimp
+800002f6: 0000 unimp
+800002f8: 0000 unimp
+800002fa: 0000 unimp
+800002fc: 0000 unimp
+800002fe: 0000 unimp
+80000300: 0000 unimp
+80000302: 0000 unimp
+
+Disassembly of section .data:
+
+80002000 <begin_signature>:
+80002000: ccdd beqz s1,800020be <begin_signature+0xbe>
+80002002: 8899aabb 0x8899aabb
+80002006: 44556677 0x44556677
+8000200a: ee112233 0xee112233
+8000200e: eeff 0xeeff
+80002010: 5050 lw a2,36(s0)
+80002012: 5050 lw a2,36(s0)
+80002014: 5050 lw a2,36(s0)
+80002016: 5050 lw a2,36(s0)
+80002018: 5050 lw a2,36(s0)
+8000201a: 5050 lw a2,36(s0)
+8000201c: 5050 lw a2,36(s0)
+8000201e: 5050 lw a2,36(s0)
+80002020: 5050 lw a2,36(s0)
+80002022: 5050 lw a2,36(s0)
+80002024: 5050 lw a2,36(s0)
+80002026: 5050 lw a2,36(s0)
+80002028: 5050 lw a2,36(s0)
+8000202a: 5050 lw a2,36(s0)
+8000202c: 5050 lw a2,36(s0)
+8000202e: 5050 lw a2,36(s0)
+80002030: 5050 lw a2,36(s0)
+80002032: 5050 lw a2,36(s0)
+80002034: 5050 lw a2,36(s0)
+80002036: 5050 lw a2,36(s0)
+80002038: 5050 lw a2,36(s0)
+8000203a: 5050 lw a2,36(s0)
+8000203c: 5050 lw a2,36(s0)
+8000203e: 5050 lw a2,36(s0)
+80002040: 5050 lw a2,36(s0)
+80002042: 5050 lw a2,36(s0)
+80002044: 5050 lw a2,36(s0)
+80002046: 5050 lw a2,36(s0)
+80002048: 5050 lw a2,36(s0)
+8000204a: 5050 lw a2,36(s0)
+8000204c: 5050 lw a2,36(s0)
+8000204e: 5050 lw a2,36(s0)
+80002050: 5050 lw a2,36(s0)
+80002052: 5050 lw a2,36(s0)
+80002054: 5050 lw a2,36(s0)
+80002056: 5050 lw a2,36(s0)
+80002058: 5050 lw a2,36(s0)
+8000205a: 5050 lw a2,36(s0)
+8000205c: 5050 lw a2,36(s0)
+8000205e: 5050 lw a2,36(s0)
+80002060: 5050 lw a2,36(s0)
+80002062: 5050 lw a2,36(s0)
+80002064: 5050 lw a2,36(s0)
+80002066: 5050 lw a2,36(s0)
+80002068: 5050 lw a2,36(s0)
+8000206a: 5050 lw a2,36(s0)
+8000206c: 5050 lw a2,36(s0)
+8000206e: 5050 lw a2,36(s0)
+80002070: 5050 lw a2,36(s0)
+80002072: 5050 lw a2,36(s0)
+80002074: 5050 lw a2,36(s0)
+80002076: 5050 lw a2,36(s0)
+80002078: 5050 lw a2,36(s0)
+8000207a: 5050 lw a2,36(s0)
+8000207c: 5050 lw a2,36(s0)
+8000207e: 5050 lw a2,36(s0)
+80002080: 5050 lw a2,36(s0)
+80002082: 5050 lw a2,36(s0)
+80002084: 5050 lw a2,36(s0)
+80002086: 5050 lw a2,36(s0)
+80002088: 5050 lw a2,36(s0)
+8000208a: 5050 lw a2,36(s0)
+8000208c: 5050 lw a2,36(s0)
+8000208e: 5050 lw a2,36(s0)
+80002090: 5050 lw a2,36(s0)
+80002092: 5050 lw a2,36(s0)
+80002094: 5050 lw a2,36(s0)
+80002096: 5050 lw a2,36(s0)
+80002098: 5050 lw a2,36(s0)
+8000209a: 5050 lw a2,36(s0)
+8000209c: 5050 lw a2,36(s0)
+8000209e: 5050 lw a2,36(s0)
+800020a0: 5050 lw a2,36(s0)
+800020a2: 5050 lw a2,36(s0)
+800020a4: 5050 lw a2,36(s0)
+800020a6: 5050 lw a2,36(s0)
+800020a8: 5050 lw a2,36(s0)
+800020aa: 5050 lw a2,36(s0)
+800020ac: 5050 lw a2,36(s0)
+800020ae: 5050 lw a2,36(s0)
+800020b0: 5050 lw a2,36(s0)
+800020b2: 5050 lw a2,36(s0)
+800020b4: 5050 lw a2,36(s0)
+800020b6: 5050 lw a2,36(s0)
+800020b8: 5050 lw a2,36(s0)
+800020ba: 5050 lw a2,36(s0)
+800020bc: 5050 lw a2,36(s0)
+800020be: 5050 lw a2,36(s0)
+800020c0: 5050 lw a2,36(s0)
+800020c2: 5050 lw a2,36(s0)
+800020c4: 5050 lw a2,36(s0)
+800020c6: 5050 lw a2,36(s0)
+800020c8: 5050 lw a2,36(s0)
+800020ca: 5050 lw a2,36(s0)
+800020cc: 5050 lw a2,36(s0)
+800020ce: 5050 lw a2,36(s0)
+800020d0: 5050 lw a2,36(s0)
+800020d2: 5050 lw a2,36(s0)
+800020d4: 5050 lw a2,36(s0)
+800020d6: 5050 lw a2,36(s0)
+800020d8: 5050 lw a2,36(s0)
+800020da: 5050 lw a2,36(s0)
+800020dc: 5050 lw a2,36(s0)
+800020de: 5050 lw a2,36(s0)
+800020e0: 5050 lw a2,36(s0)
+800020e2: 5050 lw a2,36(s0)
+800020e4: 5050 lw a2,36(s0)
+800020e6: 5050 lw a2,36(s0)
+800020e8: 5050 lw a2,36(s0)
+800020ea: 5050 lw a2,36(s0)
+800020ec: 5050 lw a2,36(s0)
+800020ee: 5050 lw a2,36(s0)
+800020f0: 5050 lw a2,36(s0)
+800020f2: 5050 lw a2,36(s0)
+800020f4: 5050 lw a2,36(s0)
+800020f6: 5050 lw a2,36(s0)
+800020f8: 5050 lw a2,36(s0)
+800020fa: 5050 lw a2,36(s0)
+800020fc: 5050 lw a2,36(s0)
+800020fe: 5050 lw a2,36(s0)
+80002100: 5050 lw a2,36(s0)
+80002102: 5050 lw a2,36(s0)
+80002104: 5050 lw a2,36(s0)
+80002106: 5050 lw a2,36(s0)
+80002108: 5050 lw a2,36(s0)
+8000210a: 5050 lw a2,36(s0)
+8000210c: 5050 lw a2,36(s0)
+8000210e: 0050 addi a2,sp,4
diff --git a/test/riscv-tests/rv32mi-p-ma_addr.elf b/test/riscv-tests/rv32mi-p-ma_addr.elf
new file mode 100644
index 0000000..434e540
--- /dev/null
+++ b/test/riscv-tests/rv32mi-p-ma_addr.elf
Binary files differ
diff --git a/test/riscv-tests/rv32mi-p-ma_fetch.dump b/test/riscv-tests/rv32mi-p-ma_fetch.dump
new file mode 100644
index 0000000..b7125a0
--- /dev/null
+++ b/test/riscv-tests/rv32mi-p-ma_fetch.dump
@@ -0,0 +1,219 @@
+
+rv32mi-p-ma_fetch: 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: 208f0f13 addi t5,t5,520 # 80000228 <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: 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: 00002537 lui a0,0x2
+800000ec: 80050513 addi a0,a0,-2048 # 1800 <_start-0x7fffe800>
+800000f0: 30052073 csrs mstatus,a0
+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: 00200193 li gp,2
+8000010c: 00000313 li t1,0
+80000110: 00000297 auipc t0,0x0
+80000114: 00c28293 addi t0,t0,12 # 8000011c <reset_vector+0xd0>
+80000118: 00228367 jalr t1,2(t0)
+8000011c: a011 j 80000120 <reset_vector+0xd4>
+8000011e: a019 j 80000124 <reset_vector+0xd8>
+80000120: 0e80006f j 80000208 <fail>
+80000124: 00300193 li gp,3
+80000128: 00000297 auipc t0,0x0
+8000012c: 00c28293 addi t0,t0,12 # 80000134 <reset_vector+0xe8>
+80000130: 00128367 jalr t1,1(t0)
+80000134: 0080006f j 8000013c <reset_vector+0xf0>
+80000138: 0d00006f j 80000208 <fail>
+8000013c: 00400193 li gp,4
+80000140: 00000313 li t1,0
+80000144: 00000297 auipc t0,0x0
+80000148: 00c28293 addi t0,t0,12 # 80000150 <reset_vector+0x104>
+8000014c: 00328367 jalr t1,3(t0)
+80000150: a011 j 80000154 <reset_vector+0x108>
+80000152: a019 j 80000158 <reset_vector+0x10c>
+80000154: 0b40006f j 80000208 <fail>
+80000158: 00500193 li gp,5
+8000015c: 00000313 li t1,0
+80000160: 00000297 auipc t0,0x0
+80000164: 00c28293 addi t0,t0,12 # 8000016c <reset_vector+0x120>
+80000168: 0060036f jal t1,8000016e <reset_vector+0x122>
+8000016c: a011 j 80000170 <reset_vector+0x124>
+8000016e: a019 j 80000174 <reset_vector+0x128>
+80000170: 0980006f j 80000208 <fail>
+80000174: 00600193 li gp,6
+80000178: 00000313 li t1,0
+8000017c: 00000297 auipc t0,0x0
+80000180: 00c28293 addi t0,t0,12 # 80000188 <reset_vector+0x13c>
+80000184: 00000363 beqz zero,8000018a <reset_vector+0x13e>
+80000188: a011 j 8000018c <reset_vector+0x140>
+8000018a: a019 j 80000190 <reset_vector+0x144>
+8000018c: 07c0006f j 80000208 <fail>
+80000190: 00700193 li gp,7
+80000194: 00001563 bnez zero,8000019e <reset_vector+0x152>
+80000198: 00c0006f j 800001a4 <reset_vector+0x158>
+8000019c: a009 j 8000019e <reset_vector+0x152>
+8000019e: a009 j 800001a0 <reset_vector+0x154>
+800001a0: 0680006f j 80000208 <fail>
+800001a4: 00800193 li gp,8
+800001a8: 301023f3 csrr t2,misa
+800001ac: 0043f393 andi t2,t2,4
+800001b0: 04038863 beqz t2,80000200 <reset_vector+0x1b4>
+800001b4: 0001 nop
+800001b6: 30127073 csrci misa,4
+800001ba: 0001 nop
+800001bc: 301023f3 csrr t2,misa
+800001c0: 0043f393 andi t2,t2,4
+800001c4: 04038263 beqz t2,80000208 <fail>
+800001c8: 00000297 auipc t0,0x0
+800001cc: 03428293 addi t0,t0,52 # 800001fc <reset_vector+0x1b0>
+800001d0: ffe28293 addi t0,t0,-2
+800001d4: 34129073 csrw mepc,t0
+800001d8: 30127073 csrci misa,4
+800001dc: 301023f3 csrr t2,misa
+800001e0: 0043f393 andi t2,t2,4
+800001e4: 00039e63 bnez t2,80000200 <reset_vector+0x1b4>
+800001e8: 000023b7 lui t2,0x2
+800001ec: 80038393 addi t2,t2,-2048 # 1800 <_start-0x7fffe800>
+800001f0: 3003a073 csrs mstatus,t2
+800001f4: 30200073 mret
+800001f8: 00000263 beqz zero,800001fc <reset_vector+0x1b0>
+800001fc: 30126073 csrsi misa,4
+80000200: 01c0006f j 8000021c <pass>
+80000204: 00301c63 bne zero,gp,8000021c <pass>
+
+80000208 <fail>:
+80000208: 0ff0000f fence
+8000020c: 00018063 beqz gp,8000020c <fail+0x4>
+80000210: 00119193 slli gp,gp,0x1
+80000214: 0011e193 ori gp,gp,1
+80000218: 00000073 ecall
+
+8000021c <pass>:
+8000021c: 0ff0000f fence
+80000220: 00100193 li gp,1
+80000224: 00000073 ecall
+
+80000228 <mtvec_handler>:
+80000228: 00200513 li a0,2
+8000022c: 02a18063 beq gp,a0,8000024c <mtvec_handler+0x24>
+80000230: 00400513 li a0,4
+80000234: 00a18c63 beq gp,a0,8000024c <mtvec_handler+0x24>
+80000238: 00500513 li a0,5
+8000023c: 00a18863 beq gp,a0,8000024c <mtvec_handler+0x24>
+80000240: 00600513 li a0,6
+80000244: 00a18463 beq gp,a0,8000024c <mtvec_handler+0x24>
+80000248: fc1ff06f j 80000208 <fail>
+8000024c: fa031ee3 bnez t1,80000208 <fail>
+80000250: 00000593 li a1,0
+80000254: 34202573 csrr a0,mcause
+80000258: fab518e3 bne a0,a1,80000208 <fail>
+8000025c: 341025f3 csrr a1,mepc
+80000260: 00458593 addi a1,a1,4
+80000264: fab292e3 bne t0,a1,80000208 <fail>
+80000268: 34302573 csrr a0,mbadaddr
+8000026c: 00050663 beqz a0,80000278 <mtvec_handler+0x50>
+80000270: ffe50513 addi a0,a0,-2
+80000274: f8551ae3 bne a0,t0,80000208 <fail>
+80000278: 00c58593 addi a1,a1,12
+8000027c: 34159073 csrw mepc,a1
+80000280: 30200073 mret
+80000284: c0001073 unimp
+80000288: 0000 unimp
+8000028a: 0000 unimp
+8000028c: 0000 unimp
+8000028e: 0000 unimp
+80000290: 0000 unimp
+80000292: 0000 unimp
+80000294: 0000 unimp
+80000296: 0000 unimp
+80000298: 0000 unimp
+8000029a: 0000 unimp
+8000029c: 0000 unimp
+8000029e: 0000 unimp
+800002a0: 0000 unimp
+800002a2: 0000 unimp
+800002a4: 0000 unimp
+800002a6: 0000 unimp
+800002a8: 0000 unimp
+800002aa: 0000 unimp
+800002ac: 0000 unimp
+800002ae: 0000 unimp
+800002b0: 0000 unimp
+800002b2: 0000 unimp
+800002b4: 0000 unimp
+800002b6: 0000 unimp
+800002b8: 0000 unimp
+800002ba: 0000 unimp
+800002bc: 0000 unimp
+800002be: 0000 unimp
+800002c0: 0000 unimp
+800002c2: 0000 unimp
diff --git a/test/riscv-tests/rv32mi-p-ma_fetch.elf b/test/riscv-tests/rv32mi-p-ma_fetch.elf
new file mode 100644
index 0000000..1bcd8de
--- /dev/null
+++ b/test/riscv-tests/rv32mi-p-ma_fetch.elf
Binary files differ
diff --git a/test/riscv-tests/rv32mi-p-mcsr.dump b/test/riscv-tests/rv32mi-p-mcsr.dump
new file mode 100644
index 0000000..105796d
--- /dev/null
+++ b/test/riscv-tests/rv32mi-p-mcsr.dump
@@ -0,0 +1,126 @@
+
+rv32mi-p-mcsr: 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: 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: 00002537 lui a0,0x2
+800000ec: 80050513 addi a0,a0,-2048 # 1800 <_start-0x7fffe800>
+800000f0: 30052073 csrs mstatus,a0
+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: 30102573 csrr a0,misa
+8000010c: 01e55513 srli a0,a0,0x1e
+80000110: 00100e93 li t4,1
+80000114: 00200193 li gp,2
+80000118: 03d51863 bne a0,t4,80000148 <fail>
+
+8000011c <test_3>:
+8000011c: f1402573 csrr a0,mhartid
+80000120: 00000e93 li t4,0
+80000124: 00300193 li gp,3
+80000128: 03d51063 bne a0,t4,80000148 <fail>
+8000012c: f1302573 csrr a0,mimpid
+80000130: f1202573 csrr a0,marchid
+80000134: f1102573 csrr a0,mvendorid
+80000138: 00000293 li t0,0
+8000013c: 3052a073 csrs mtvec,t0
+80000140: 3412a073 csrs mepc,t0
+80000144: 00301c63 bne zero,gp,8000015c <pass>
+
+80000148 <fail>:
+80000148: 0ff0000f fence
+8000014c: 00018063 beqz gp,8000014c <fail+0x4>
+80000150: 00119193 slli gp,gp,0x1
+80000154: 0011e193 ori gp,gp,1
+80000158: 00000073 ecall
+
+8000015c <pass>:
+8000015c: 0ff0000f fence
+80000160: 00100193 li gp,1
+80000164: 00000073 ecall
+80000168: c0001073 unimp
+8000016c: 0000 unimp
+8000016e: 0000 unimp
+80000170: 0000 unimp
+80000172: 0000 unimp
+80000174: 0000 unimp
+80000176: 0000 unimp
+80000178: 0000 unimp
+8000017a: 0000 unimp
+8000017c: 0000 unimp
+8000017e: 0000 unimp
+80000180: 0000 unimp
+80000182: 0000 unimp
diff --git a/test/riscv-tests/rv32mi-p-mcsr.elf b/test/riscv-tests/rv32mi-p-mcsr.elf
new file mode 100644
index 0000000..27de0e0
--- /dev/null
+++ b/test/riscv-tests/rv32mi-p-mcsr.elf
Binary files differ
diff --git a/test/riscv-tests/rv32mi-p-sbreak.dump b/test/riscv-tests/rv32mi-p-sbreak.dump
new file mode 100644
index 0000000..f895195
--- /dev/null
+++ b/test/riscv-tests/rv32mi-p-sbreak.dump
@@ -0,0 +1,130 @@
+
+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: 118f0f13 addi t5,t5,280 # 80000138 <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: 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: 00002537 lui a0,0x2
+800000ec: 80050513 addi a0,a0,-2048 # 1800 <_start-0x7fffe800>
+800000f0: 30052073 csrs mstatus,a0
+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: 00200193 li gp,2
+
+8000010c <do_break>:
+8000010c: 00100073 ebreak
+80000110: 0080006f j 80000118 <fail>
+80000114: 00301c63 bne zero,gp,8000012c <pass>
+
+80000118 <fail>:
+80000118: 0ff0000f fence
+8000011c: 00018063 beqz gp,8000011c <fail+0x4>
+80000120: 00119193 slli gp,gp,0x1
+80000124: 0011e193 ori gp,gp,1
+80000128: 00000073 ecall
+
+8000012c <pass>:
+8000012c: 0ff0000f fence
+80000130: 00100193 li gp,1
+80000134: 00000073 ecall
+
+80000138 <mtvec_handler>:
+80000138: 00300313 li t1,3
+8000013c: 342022f3 csrr t0,mcause
+80000140: fc629ce3 bne t0,t1,80000118 <fail>
+80000144: 00000317 auipc t1,0x0
+80000148: fc830313 addi t1,t1,-56 # 8000010c <do_break>
+8000014c: 341022f3 csrr t0,mepc
+80000150: fc6294e3 bne t0,t1,80000118 <fail>
+80000154: fd9ff06f j 8000012c <pass>
+80000158: c0001073 unimp
+8000015c: 0000 unimp
+8000015e: 0000 unimp
+80000160: 0000 unimp
+80000162: 0000 unimp
+80000164: 0000 unimp
+80000166: 0000 unimp
+80000168: 0000 unimp
+8000016a: 0000 unimp
+8000016c: 0000 unimp
+8000016e: 0000 unimp
+80000170: 0000 unimp
+80000172: 0000 unimp
+80000174: 0000 unimp
+80000176: 0000 unimp
+80000178: 0000 unimp
+8000017a: 0000 unimp
+8000017c: 0000 unimp
+8000017e: 0000 unimp
+80000180: 0000 unimp
+80000182: 0000 unimp
diff --git a/test/riscv-tests/rv32mi-p-sbreak.elf b/test/riscv-tests/rv32mi-p-sbreak.elf
new file mode 100644
index 0000000..3d681b2
--- /dev/null
+++ b/test/riscv-tests/rv32mi-p-sbreak.elf
Binary files differ
diff --git a/test/riscv-tests/rv32mi-p-scall.dump b/test/riscv-tests/rv32mi-p-scall.dump
new file mode 100644
index 0000000..769cd3b
--- /dev/null
+++ b/test/riscv-tests/rv32mi-p-scall.dump
@@ -0,0 +1,147 @@
+
+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: 158f0f13 addi t5,t5,344 # 80000178 <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: 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: 00002537 lui a0,0x2
+800000ec: 80050513 addi a0,a0,-2048 # 1800 <_start-0x7fffe800>
+800000f0: 30052073 csrs mstatus,a0
+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: 00200193 li gp,2
+8000010c: 00800313 li t1,8
+80000110: 000022b7 lui t0,0x2
+80000114: 80028293 addi t0,t0,-2048 # 1800 <_start-0x7fffe800>
+80000118: 3002b073 csrc mstatus,t0
+8000011c: 30002373 csrr t1,mstatus
+80000120: 0062f2b3 and t0,t0,t1
+80000124: 00028463 beqz t0,8000012c <reset_vector+0xe0>
+80000128: 00b00313 li t1,11
+8000012c: 000022b7 lui t0,0x2
+80000130: 80028293 addi t0,t0,-2048 # 1800 <_start-0x7fffe800>
+80000134: 3002b073 csrc mstatus,t0
+80000138: 00000297 auipc t0,0x0
+8000013c: 01028293 addi t0,t0,16 # 80000148 <reset_vector+0xfc>
+80000140: 34129073 csrw mepc,t0
+80000144: 30200073 mret
+80000148: 00100193 li gp,1
+
+8000014c <do_scall>:
+8000014c: 00000073 ecall
+80000150: 0080006f j 80000158 <fail>
+80000154: 00301c63 bne zero,gp,8000016c <pass>
+
+80000158 <fail>:
+80000158: 0ff0000f fence
+8000015c: 00018063 beqz gp,8000015c <fail+0x4>
+80000160: 00119193 slli gp,gp,0x1
+80000164: 0011e193 ori gp,gp,1
+80000168: 00000073 ecall
+
+8000016c <pass>:
+8000016c: 0ff0000f fence
+80000170: 00100193 li gp,1
+80000174: 00000073 ecall
+
+80000178 <mtvec_handler>:
+80000178: 342022f3 csrr t0,mcause
+8000017c: fc629ee3 bne t0,t1,80000158 <fail>
+80000180: 00000397 auipc t2,0x0
+80000184: fcc38393 addi t2,t2,-52 # 8000014c <do_scall>
+80000188: 341022f3 csrr t0,mepc
+8000018c: fc7296e3 bne t0,t2,80000158 <fail>
+80000190: fddff06f j 8000016c <pass>
+80000194: c0001073 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
diff --git a/test/riscv-tests/rv32mi-p-scall.elf b/test/riscv-tests/rv32mi-p-scall.elf
new file mode 100644
index 0000000..50e8d05
--- /dev/null
+++ b/test/riscv-tests/rv32mi-p-scall.elf
Binary files differ
diff --git a/test/riscv-tests/rv32mi-p-shamt.dump b/test/riscv-tests/rv32mi-p-shamt.dump
new file mode 100644
index 0000000..00b0f9a
--- /dev/null
+++ b/test/riscv-tests/rv32mi-p-shamt.dump
@@ -0,0 +1,128 @@
+
+rv32mi-p-shamt: 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: 130f0f13 addi t5,t5,304 # 80000150 <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: 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: 00002537 lui a0,0x2
+800000ec: 80050513 addi a0,a0,-2048 # 1800 <_start-0x7fffe800>
+800000f0: 30052073 csrs mstatus,a0
+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: 00100513 li a0,1
+8000010c: 01051513 slli a0,a0,0x10
+80000110: 00010eb7 lui t4,0x10
+80000114: 00200193 li gp,2
+80000118: 01d51c63 bne a0,t4,80000130 <fail>
+
+8000011c <test_3>:
+8000011c: 02051513 slli a0,a0,0x20
+80000120: 00100e93 li t4,1
+80000124: 00300193 li gp,3
+80000128: 01d01463 bne zero,t4,80000130 <fail>
+8000012c: 00301c63 bne zero,gp,80000144 <pass>
+
+80000130 <fail>:
+80000130: 0ff0000f fence
+80000134: 00018063 beqz gp,80000134 <fail+0x4>
+80000138: 00119193 slli gp,gp,0x1
+8000013c: 0011e193 ori gp,gp,1
+80000140: 00000073 ecall
+
+80000144 <pass>:
+80000144: 0ff0000f fence
+80000148: 00100193 li gp,1
+8000014c: 00000073 ecall
+
+80000150 <mtvec_handler>:
+80000150: 00200293 li t0,2
+80000154: fc519ee3 bne gp,t0,80000130 <fail>
+80000158: 342022f3 csrr t0,mcause
+8000015c: 00200313 li t1,2
+80000160: fc6298e3 bne t0,t1,80000130 <fail>
+80000164: fe1ff06f j 80000144 <pass>
+80000168: c0001073 unimp
+8000016c: 0000 unimp
+8000016e: 0000 unimp
+80000170: 0000 unimp
+80000172: 0000 unimp
+80000174: 0000 unimp
+80000176: 0000 unimp
+80000178: 0000 unimp
+8000017a: 0000 unimp
+8000017c: 0000 unimp
+8000017e: 0000 unimp
+80000180: 0000 unimp
+80000182: 0000 unimp
diff --git a/test/riscv-tests/rv32mi-p-shamt.elf b/test/riscv-tests/rv32mi-p-shamt.elf
new file mode 100644
index 0000000..72690be
--- /dev/null
+++ b/test/riscv-tests/rv32mi-p-shamt.elf
Binary files differ
diff --git a/test/riscv-tests/rv32si-p-csr.dump b/test/riscv-tests/rv32si-p-csr.dump
new file mode 100644
index 0000000..c7eca72
--- /dev/null
+++ b/test/riscv-tests/rv32si-p-csr.dump
@@ -0,0 +1,228 @@
+
+rv32si-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: 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: 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: 00000297 auipc t0,0x0
+800000c4: 14c28293 addi t0,t0,332 # 8000020c <stvec_handler>
+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: 00001537 lui a0,0x1
+800000ec: 80050513 addi a0,a0,-2048 # 800 <_start-0x7ffff800>
+800000f0: 30052073 csrs mstatus,a0
+800000f4: 02200513 li a0,34
+800000f8: 30352073 csrs mideleg,a0
+800000fc: 00000297 auipc t0,0x0
+80000100: 01428293 addi t0,t0,20 # 80000110 <reset_vector+0xc4>
+80000104: 34129073 csrw mepc,t0
+80000108: f1402573 csrr a0,mhartid
+8000010c: 30200073 mret
+80000110: 1401d073 csrwi sscratch,3
+
+80000114 <test_2>:
+80000114: 14002573 csrr a0,sscratch
+80000118: 00300e93 li t4,3
+8000011c: 00200193 li gp,2
+80000120: 0dd51663 bne a0,t4,800001ec <fail>
+
+80000124 <test_3>:
+80000124: 1400f5f3 csrrci a1,sscratch,1
+80000128: 00300e93 li t4,3
+8000012c: 00300193 li gp,3
+80000130: 0bd59e63 bne a1,t4,800001ec <fail>
+
+80000134 <test_4>:
+80000134: 14026673 csrrsi a2,sscratch,4
+80000138: 00200e93 li t4,2
+8000013c: 00400193 li gp,4
+80000140: 0bd61663 bne a2,t4,800001ec <fail>
+
+80000144 <test_5>:
+80000144: 140156f3 csrrwi a3,sscratch,2
+80000148: 00600e93 li t4,6
+8000014c: 00500193 li gp,5
+80000150: 09d69e63 bne a3,t4,800001ec <fail>
+
+80000154 <test_6>:
+80000154: 0bad2537 lui a0,0xbad2
+80000158: dea50513 addi a0,a0,-534 # bad1dea <_start-0x7452e216>
+8000015c: 140515f3 csrrw a1,sscratch,a0
+80000160: 00200e93 li t4,2
+80000164: 00600193 li gp,6
+80000168: 09d59263 bne a1,t4,800001ec <fail>
+
+8000016c <test_7>:
+8000016c: 00002537 lui a0,0x2
+80000170: dea50513 addi a0,a0,-534 # 1dea <_start-0x7fffe216>
+80000174: 14053573 csrrc a0,sscratch,a0
+80000178: 0bad2eb7 lui t4,0xbad2
+8000017c: deae8e93 addi t4,t4,-534 # bad1dea <_start-0x7452e216>
+80000180: 00700193 li gp,7
+80000184: 07d51463 bne a0,t4,800001ec <fail>
+
+80000188 <test_8>:
+80000188: 0000c537 lui a0,0xc
+8000018c: eef50513 addi a0,a0,-273 # beef <_start-0x7fff4111>
+80000190: 14052573 csrrs a0,sscratch,a0
+80000194: 0bad0eb7 lui t4,0xbad0
+80000198: 00800193 li gp,8
+8000019c: 05d51863 bne a0,t4,800001ec <fail>
+
+800001a0 <test_9>:
+800001a0: 14002573 csrr a0,sscratch
+800001a4: 0badceb7 lui t4,0xbadc
+800001a8: eefe8e93 addi t4,t4,-273 # badbeef <_start-0x74524111>
+800001ac: 00900193 li gp,9
+800001b0: 03d51e63 bne a0,t4,800001ec <fail>
+800001b4: 10000293 li t0,256
+800001b8: 1002b073 csrc sstatus,t0
+800001bc: 00000297 auipc t0,0x0
+800001c0: 01028293 addi t0,t0,16 # 800001cc <test_12>
+800001c4: 14129073 csrw sepc,t0
+800001c8: 10200073 sret
+
+800001cc <test_12>:
+800001cc: 00000013 nop
+800001d0: 00000e93 li t4,0
+800001d4: 00c00193 li gp,12
+800001d8: 01d01a63 bne zero,t4,800001ec <fail>
+
+800001dc <finish>:
+800001dc: 0ff0000f fence
+800001e0: 00100193 li gp,1
+800001e4: 00000073 ecall
+800001e8: 00301c63 bne zero,gp,80000200 <pass>
+
+800001ec <fail>:
+800001ec: 0ff0000f fence
+800001f0: 00018063 beqz gp,800001f0 <fail+0x4>
+800001f4: 00119193 slli gp,gp,0x1
+800001f8: 0011e193 ori gp,gp,1
+800001fc: 00000073 ecall
+
+80000200 <pass>:
+80000200: 0ff0000f fence
+80000204: 00100193 li gp,1
+80000208: 00000073 ecall
+
+8000020c <stvec_handler>:
+8000020c: 00900293 li t0,9
+80000210: 0051e663 bltu gp,t0,8000021c <stvec_handler+0x10>
+80000214: 00b00293 li t0,11
+80000218: 0032fe63 bleu gp,t0,80000234 <privileged>
+8000021c: 142022f3 csrr t0,scause
+80000220: 00800313 li t1,8
+80000224: fc6294e3 bne t0,t1,800001ec <fail>
+80000228: 0ff0000f fence
+8000022c: 00100193 li gp,1
+80000230: 00000073 ecall
+
+80000234 <privileged>:
+80000234: 142022f3 csrr t0,scause
+80000238: 00200313 li t1,2
+8000023c: fa6298e3 bne t0,t1,800001ec <fail>
+80000240: 141022f3 csrr t0,sepc
+80000244: 00428293 addi t0,t0,4
+80000248: 14129073 csrw sepc,t0
+8000024c: 10200073 sret
+80000250: c0001073 unimp
+80000254: 0000 unimp
+80000256: 0000 unimp
+80000258: 0000 unimp
+8000025a: 0000 unimp
+8000025c: 0000 unimp
+8000025e: 0000 unimp
+80000260: 0000 unimp
+80000262: 0000 unimp
+80000264: 0000 unimp
+80000266: 0000 unimp
+80000268: 0000 unimp
+8000026a: 0000 unimp
+8000026c: 0000 unimp
+8000026e: 0000 unimp
+80000270: 0000 unimp
+80000272: 0000 unimp
+80000274: 0000 unimp
+80000276: 0000 unimp
+80000278: 0000 unimp
+8000027a: 0000 unimp
+8000027c: 0000 unimp
+8000027e: 0000 unimp
+80000280: 0000 unimp
+80000282: 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
diff --git a/test/riscv-tests/rv32si-p-csr.elf b/test/riscv-tests/rv32si-p-csr.elf
new file mode 100644
index 0000000..f96edb6
--- /dev/null
+++ b/test/riscv-tests/rv32si-p-csr.elf
Binary files differ
diff --git a/test/riscv-tests/rv32si-p-dirty.dump b/test/riscv-tests/rv32si-p-dirty.dump
new file mode 100644
index 0000000..c38f7ae
--- /dev/null
+++ b/test/riscv-tests/rv32si-p-dirty.dump
@@ -0,0 +1,203 @@
+
+rv32si-p-dirty: 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: 1ccf0f13 addi t5,t5,460 # 800001ec <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: 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: 00002537 lui a0,0x2
+800000ec: 80050513 addi a0,a0,-2048 # 1800 <_start-0x7fffe800>
+800000f0: 30052073 csrs mstatus,a0
+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: 80000537 lui a0,0x80000
+8000010c: 00002597 auipc a1,0x2
+80000110: ef458593 addi a1,a1,-268 # 80002000 <begin_signature>
+80000114: 00c5d593 srli a1,a1,0xc
+80000118: 00a5e5b3 or a1,a1,a0
+8000011c: 18059073 csrw satp,a1
+80000120: 12000073 sfence.vma
+80000124: 000215b7 lui a1,0x21
+80000128: 80058593 addi a1,a1,-2048 # 20800 <_start-0x7ffdf800>
+8000012c: 3005a073 csrs mstatus,a1
+80000130: 00200193 li gp,2
+80000134: 00100393 li t2,1
+80000138: 80002517 auipc a0,0x80002
+8000013c: ec752823 sw t2,-304(a0) # 2008 <_start-0x7fffdff8>
+80000140: 00300193 li gp,3
+80000144: 000415b7 lui a1,0x41
+80000148: 80058593 addi a1,a1,-2048 # 40800 <_start-0x7ffbf800>
+8000014c: 3005a073 csrs mstatus,a1
+80000150: 80002297 auipc t0,0x80002
+80000154: eb82a283 lw t0,-328(t0) # 2008 <_start-0x7fffdff8>
+80000158: 10029063 bnez t0,80000258 <die>
+8000015c: 80002517 auipc a0,0x80002
+80000160: ea752623 sw t2,-340(a0) # 2008 <_start-0x7fffdff8>
+80000164: 80002297 auipc t0,0x80002
+80000168: ea42a283 lw t0,-348(t0) # 2008 <_start-0x7fffdff8>
+8000016c: 0e729663 bne t0,t2,80000258 <die>
+80000170: 000202b7 lui t0,0x20
+80000174: 3002b073 csrc mstatus,t0
+80000178: 00002297 auipc t0,0x2
+8000017c: e882a283 lw t0,-376(t0) # 80002000 <begin_signature>
+80000180: 0c000513 li a0,192
+80000184: 00a2f2b3 and t0,t0,a0
+80000188: 0ca29863 bne t0,a0,80000258 <die>
+8000018c: 000202b7 lui t0,0x20
+80000190: 3002a073 csrs mstatus,t0
+80000194: 00400193 li gp,4
+80000198: 80002517 auipc a0,0x80002
+8000019c: e6852503 lw a0,-408(a0) # 2000 <_start-0x7fffe000>
+800001a0: 40056513 ori a0,a0,1024
+800001a4: 80002297 auipc t0,0x80002
+800001a8: e4a2ae23 sw a0,-420(t0) # 2000 <_start-0x7fffe000>
+800001ac: 12000073 sfence.vma
+800001b0: 80002297 auipc t0,0x80002
+800001b4: e4a2a823 sw a0,-432(t0) # 2000 <_start-0x7fffe000>
+800001b8: 0a00006f j 80000258 <die>
+800001bc: 0ff0000f fence
+800001c0: 00100193 li gp,1
+800001c4: 00000073 ecall
+800001c8: 00301c63 bne zero,gp,800001e0 <pass>
+
+800001cc <fail>:
+800001cc: 0ff0000f fence
+800001d0: 00018063 beqz gp,800001d0 <fail+0x4>
+800001d4: 00119193 slli gp,gp,0x1
+800001d8: 0011e193 ori gp,gp,1
+800001dc: 00000073 ecall
+
+800001e0 <pass>:
+800001e0: 0ff0000f fence
+800001e4: 00100193 li gp,1
+800001e8: 00000073 ecall
+
+800001ec <mtvec_handler>:
+800001ec: 342022f3 csrr t0,mcause
+800001f0: ff128293 addi t0,t0,-15
+800001f4: 06029263 bnez t0,80000258 <die>
+800001f8: 00200313 li t1,2
+800001fc: 02619263 bne gp,t1,80000220 <skip+0x10>
+80000200: 00002297 auipc t0,0x2
+80000204: e002a283 lw t0,-512(t0) # 80002000 <begin_signature>
+80000208: 0802f313 andi t1,t0,128
+8000020c: 04031663 bnez t1,80000258 <die>
+
+80000210 <skip>:
+80000210: 341022f3 csrr t0,mepc
+80000214: 00428293 addi t0,t0,4
+80000218: 34129073 csrw mepc,t0
+8000021c: 30200073 mret
+80000220: 00300313 li t1,3
+80000224: 02619463 bne gp,t1,8000024c <skip+0x3c>
+80000228: 00002297 auipc t0,0x2
+8000022c: dd82a283 lw t0,-552(t0) # 80002000 <begin_signature>
+80000230: 0802f313 andi t1,t0,128
+80000234: 02031263 bnez t1,80000258 <die>
+80000238: 0802e293 ori t0,t0,128
+8000023c: 00002317 auipc t1,0x2
+80000240: dc532223 sw t0,-572(t1) # 80002000 <begin_signature>
+80000244: 12000073 sfence.vma
+80000248: 30200073 mret
+8000024c: 00400313 li t1,4
+80000250: 00619463 bne gp,t1,80000258 <die>
+80000254: f8dff06f j 800001e0 <pass>
+
+80000258 <die>:
+80000258: 0ff0000f fence
+8000025c: 00018063 beqz gp,8000025c <die+0x4>
+80000260: 00119193 slli gp,gp,0x1
+80000264: 0011e193 ori gp,gp,1
+80000268: 00000073 ecall
+8000026c: c0001073 unimp
+80000270: 0000 unimp
+80000272: 0000 unimp
+80000274: 0000 unimp
+80000276: 0000 unimp
+80000278: 0000 unimp
+8000027a: 0000 unimp
+8000027c: 0000 unimp
+8000027e: 0000 unimp
+80000280: 0000 unimp
+80000282: 0000 unimp
+
+Disassembly of section .data:
+
+80002000 <begin_signature>:
+80002000: 005f 2000 0000 0x2000005f
+80002006: 0000 unimp
+
+80002008 <dummy>:
+80002008: 0000 unimp
+8000200a: 0000 unimp
+8000200c: 0000 unimp
+8000200e: 0000 unimp
diff --git a/test/riscv-tests/rv32si-p-dirty.elf b/test/riscv-tests/rv32si-p-dirty.elf
new file mode 100644
index 0000000..e280275
--- /dev/null
+++ b/test/riscv-tests/rv32si-p-dirty.elf
Binary files differ
diff --git a/test/riscv-tests/rv32si-p-ma_fetch.dump b/test/riscv-tests/rv32si-p-ma_fetch.dump
new file mode 100644
index 0000000..2449040
--- /dev/null
+++ b/test/riscv-tests/rv32si-p-ma_fetch.dump
@@ -0,0 +1,175 @@
+
+rv32si-p-ma_fetch: 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: 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: 00000297 auipc t0,0x0
+800000c4: 11428293 addi t0,t0,276 # 800001d4 <stvec_handler>
+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: 00001537 lui a0,0x1
+800000ec: 80050513 addi a0,a0,-2048 # 800 <_start-0x7ffff800>
+800000f0: 30052073 csrs mstatus,a0
+800000f4: 02200513 li a0,34
+800000f8: 30352073 csrs mideleg,a0
+800000fc: 00000297 auipc t0,0x0
+80000100: 01428293 addi t0,t0,20 # 80000110 <reset_vector+0xc4>
+80000104: 34129073 csrw mepc,t0
+80000108: f1402573 csrr a0,mhartid
+8000010c: 30200073 mret
+80000110: 00200193 li gp,2
+80000114: 00000313 li t1,0
+80000118: 00000297 auipc t0,0x0
+8000011c: 00c28293 addi t0,t0,12 # 80000124 <reset_vector+0xd8>
+80000120: 00228367 jalr t1,2(t0)
+80000124: a011 j 80000128 <reset_vector+0xdc>
+80000126: a019 j 8000012c <reset_vector+0xe0>
+80000128: 08c0006f j 800001b4 <fail>
+8000012c: 00300193 li gp,3
+80000130: 00000297 auipc t0,0x0
+80000134: 00c28293 addi t0,t0,12 # 8000013c <reset_vector+0xf0>
+80000138: 00128367 jalr t1,1(t0)
+8000013c: 0080006f j 80000144 <reset_vector+0xf8>
+80000140: 0740006f j 800001b4 <fail>
+80000144: 00400193 li gp,4
+80000148: 00000313 li t1,0
+8000014c: 00000297 auipc t0,0x0
+80000150: 00c28293 addi t0,t0,12 # 80000158 <reset_vector+0x10c>
+80000154: 00328367 jalr t1,3(t0)
+80000158: a011 j 8000015c <reset_vector+0x110>
+8000015a: a019 j 80000160 <reset_vector+0x114>
+8000015c: 0580006f j 800001b4 <fail>
+80000160: 00500193 li gp,5
+80000164: 00000313 li t1,0
+80000168: 00000297 auipc t0,0x0
+8000016c: 00c28293 addi t0,t0,12 # 80000174 <reset_vector+0x128>
+80000170: 0060036f jal t1,80000176 <reset_vector+0x12a>
+80000174: a011 j 80000178 <reset_vector+0x12c>
+80000176: a019 j 8000017c <reset_vector+0x130>
+80000178: 03c0006f j 800001b4 <fail>
+8000017c: 00600193 li gp,6
+80000180: 00000313 li t1,0
+80000184: 00000297 auipc t0,0x0
+80000188: 00c28293 addi t0,t0,12 # 80000190 <reset_vector+0x144>
+8000018c: 00000363 beqz zero,80000192 <reset_vector+0x146>
+80000190: a011 j 80000194 <reset_vector+0x148>
+80000192: a019 j 80000198 <reset_vector+0x14c>
+80000194: 0200006f j 800001b4 <fail>
+80000198: 00700193 li gp,7
+8000019c: 00001563 bnez zero,800001a6 <reset_vector+0x15a>
+800001a0: 00c0006f j 800001ac <reset_vector+0x160>
+800001a4: a009 j 800001a6 <reset_vector+0x15a>
+800001a6: a009 j 800001a8 <reset_vector+0x15c>
+800001a8: 00c0006f j 800001b4 <fail>
+800001ac: 01c0006f j 800001c8 <pass>
+800001b0: 00301c63 bne zero,gp,800001c8 <pass>
+
+800001b4 <fail>:
+800001b4: 0ff0000f fence
+800001b8: 00018063 beqz gp,800001b8 <fail+0x4>
+800001bc: 00119193 slli gp,gp,0x1
+800001c0: 0011e193 ori gp,gp,1
+800001c4: 00000073 ecall
+
+800001c8 <pass>:
+800001c8: 0ff0000f fence
+800001cc: 00100193 li gp,1
+800001d0: 00000073 ecall
+
+800001d4 <stvec_handler>:
+800001d4: 00200513 li a0,2
+800001d8: 02a18063 beq gp,a0,800001f8 <stvec_handler+0x24>
+800001dc: 00400513 li a0,4
+800001e0: 00a18c63 beq gp,a0,800001f8 <stvec_handler+0x24>
+800001e4: 00500513 li a0,5
+800001e8: 00a18863 beq gp,a0,800001f8 <stvec_handler+0x24>
+800001ec: 00600513 li a0,6
+800001f0: 00a18463 beq gp,a0,800001f8 <stvec_handler+0x24>
+800001f4: fc1ff06f j 800001b4 <fail>
+800001f8: fa031ee3 bnez t1,800001b4 <fail>
+800001fc: 00000593 li a1,0
+80000200: 14202573 csrr a0,scause
+80000204: fab518e3 bne a0,a1,800001b4 <fail>
+80000208: 141025f3 csrr a1,sepc
+8000020c: 00458593 addi a1,a1,4
+80000210: fab292e3 bne t0,a1,800001b4 <fail>
+80000214: 14302573 csrr a0,sbadaddr
+80000218: 00050663 beqz a0,80000224 <stvec_handler+0x50>
+8000021c: ffe50513 addi a0,a0,-2
+80000220: f8551ae3 bne a0,t0,800001b4 <fail>
+80000224: 00c58593 addi a1,a1,12
+80000228: 14159073 csrw sepc,a1
+8000022c: 10200073 sret
+80000230: c0001073 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
diff --git a/test/riscv-tests/rv32si-p-ma_fetch.elf b/test/riscv-tests/rv32si-p-ma_fetch.elf
new file mode 100644
index 0000000..0ba668b
--- /dev/null
+++ b/test/riscv-tests/rv32si-p-ma_fetch.elf
Binary files differ
diff --git a/test/riscv-tests/rv32si-p-sbreak.dump b/test/riscv-tests/rv32si-p-sbreak.dump
new file mode 100644
index 0000000..a7d6303
--- /dev/null
+++ b/test/riscv-tests/rv32si-p-sbreak.dump
@@ -0,0 +1,128 @@
+
+rv32si-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: 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: 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: 00000297 auipc t0,0x0
+800000c4: 08028293 addi t0,t0,128 # 80000140 <stvec_handler>
+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: 00001537 lui a0,0x1
+800000ec: 80050513 addi a0,a0,-2048 # 800 <_start-0x7ffff800>
+800000f0: 30052073 csrs mstatus,a0
+800000f4: 02200513 li a0,34
+800000f8: 30352073 csrs mideleg,a0
+800000fc: 00000297 auipc t0,0x0
+80000100: 01428293 addi t0,t0,20 # 80000110 <reset_vector+0xc4>
+80000104: 34129073 csrw mepc,t0
+80000108: f1402573 csrr a0,mhartid
+8000010c: 30200073 mret
+80000110: 00200193 li gp,2
+
+80000114 <do_break>:
+80000114: 00100073 ebreak
+80000118: 0080006f j 80000120 <fail>
+8000011c: 00301c63 bne zero,gp,80000134 <pass>
+
+80000120 <fail>:
+80000120: 0ff0000f fence
+80000124: 00018063 beqz gp,80000124 <fail+0x4>
+80000128: 00119193 slli gp,gp,0x1
+8000012c: 0011e193 ori gp,gp,1
+80000130: 00000073 ecall
+
+80000134 <pass>:
+80000134: 0ff0000f fence
+80000138: 00100193 li gp,1
+8000013c: 00000073 ecall
+
+80000140 <stvec_handler>:
+80000140: 00300313 li t1,3
+80000144: 142022f3 csrr t0,scause
+80000148: fc629ce3 bne t0,t1,80000120 <fail>
+8000014c: 00000317 auipc t1,0x0
+80000150: fc830313 addi t1,t1,-56 # 80000114 <do_break>
+80000154: 141022f3 csrr t0,sepc
+80000158: fc6294e3 bne t0,t1,80000120 <fail>
+8000015c: fd9ff06f j 80000134 <pass>
+80000160: c0001073 unimp
+80000164: 0000 unimp
+80000166: 0000 unimp
+80000168: 0000 unimp
+8000016a: 0000 unimp
+8000016c: 0000 unimp
+8000016e: 0000 unimp
+80000170: 0000 unimp
+80000172: 0000 unimp
+80000174: 0000 unimp
+80000176: 0000 unimp
+80000178: 0000 unimp
+8000017a: 0000 unimp
+8000017c: 0000 unimp
+8000017e: 0000 unimp
+80000180: 0000 unimp
+80000182: 0000 unimp
diff --git a/test/riscv-tests/rv32si-p-sbreak.elf b/test/riscv-tests/rv32si-p-sbreak.elf
new file mode 100644
index 0000000..e671998
--- /dev/null
+++ b/test/riscv-tests/rv32si-p-sbreak.elf
Binary files differ
diff --git a/test/riscv-tests/rv32si-p-scall.dump b/test/riscv-tests/rv32si-p-scall.dump
new file mode 100644
index 0000000..baa2dbc
--- /dev/null
+++ b/test/riscv-tests/rv32si-p-scall.dump
@@ -0,0 +1,121 @@
+
+rv32si-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: 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: 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: 00000297 auipc t0,0x0
+800000c4: 0a028293 addi t0,t0,160 # 80000160 <stvec_handler>
+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: 00001537 lui a0,0x1
+800000ec: 80050513 addi a0,a0,-2048 # 800 <_start-0x7ffff800>
+800000f0: 30052073 csrs mstatus,a0
+800000f4: 02200513 li a0,34
+800000f8: 30352073 csrs mideleg,a0
+800000fc: 00000297 auipc t0,0x0
+80000100: 01428293 addi t0,t0,20 # 80000110 <reset_vector+0xc4>
+80000104: 34129073 csrw mepc,t0
+80000108: f1402573 csrr a0,mhartid
+8000010c: 30200073 mret
+80000110: 00200193 li gp,2
+80000114: 00800313 li t1,8
+80000118: 10000293 li t0,256
+8000011c: 1002b073 csrc sstatus,t0
+80000120: 00000297 auipc t0,0x0
+80000124: 01028293 addi t0,t0,16 # 80000130 <reset_vector+0xe4>
+80000128: 14129073 csrw sepc,t0
+8000012c: 10200073 sret
+80000130: 00100193 li gp,1
+
+80000134 <do_scall>:
+80000134: 00000073 ecall
+80000138: 0080006f j 80000140 <fail>
+8000013c: 00301c63 bne zero,gp,80000154 <pass>
+
+80000140 <fail>:
+80000140: 0ff0000f fence
+80000144: 00018063 beqz gp,80000144 <fail+0x4>
+80000148: 00119193 slli gp,gp,0x1
+8000014c: 0011e193 ori gp,gp,1
+80000150: 00000073 ecall
+
+80000154 <pass>:
+80000154: 0ff0000f fence
+80000158: 00100193 li gp,1
+8000015c: 00000073 ecall
+
+80000160 <stvec_handler>:
+80000160: 142022f3 csrr t0,scause
+80000164: fc629ee3 bne t0,t1,80000140 <fail>
+80000168: 00000397 auipc t2,0x0
+8000016c: fcc38393 addi t2,t2,-52 # 80000134 <do_scall>
+80000170: 141022f3 csrr t0,sepc
+80000174: fc7296e3 bne t0,t2,80000140 <fail>
+80000178: fddff06f j 80000154 <pass>
+8000017c: c0001073 unimp
+80000180: 0000 unimp
+80000182: 0000 unimp
diff --git a/test/riscv-tests/rv32si-p-scall.elf b/test/riscv-tests/rv32si-p-scall.elf
new file mode 100644
index 0000000..7b3e0cf
--- /dev/null
+++ b/test/riscv-tests/rv32si-p-scall.elf
Binary files differ
diff --git a/test/riscv-tests/rv32si-p-wfi.dump b/test/riscv-tests/rv32si-p-wfi.dump
new file mode 100644
index 0000000..8ba0753
--- /dev/null
+++ b/test/riscv-tests/rv32si-p-wfi.dump
@@ -0,0 +1,128 @@
+
+rv32si-p-wfi: 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: 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: 00001537 lui a0,0x1
+800000ec: 80050513 addi a0,a0,-2048 # 800 <_start-0x7ffff800>
+800000f0: 30052073 csrs mstatus,a0
+800000f4: 02200513 li a0,34
+800000f8: 30352073 csrs mideleg,a0
+800000fc: 00000297 auipc t0,0x0
+80000100: 01428293 addi t0,t0,20 # 80000110 <reset_vector+0xc4>
+80000104: 34129073 csrw mepc,t0
+80000108: f1402573 csrr a0,mhartid
+8000010c: 30200073 mret
+80000110: 10017073 csrci sstatus,2
+80000114: 10416073 csrsi sie,2
+80000118: 14416073 csrsi sip,2
+8000011c: 10500073 wfi
+80000120: 0ff0000f fence
+80000124: 00100193 li gp,1
+80000128: 00000073 ecall
+8000012c: 00301c63 bne zero,gp,80000144 <pass>
+
+80000130 <fail>:
+80000130: 0ff0000f fence
+80000134: 00018063 beqz gp,80000134 <fail+0x4>
+80000138: 00119193 slli gp,gp,0x1
+8000013c: 0011e193 ori gp,gp,1
+80000140: 00000073 ecall
+
+80000144 <pass>:
+80000144: 0ff0000f fence
+80000148: 00100193 li gp,1
+8000014c: 00000073 ecall
+80000150: c0001073 unimp
+80000154: 0000 unimp
+80000156: 0000 unimp
+80000158: 0000 unimp
+8000015a: 0000 unimp
+8000015c: 0000 unimp
+8000015e: 0000 unimp
+80000160: 0000 unimp
+80000162: 0000 unimp
+80000164: 0000 unimp
+80000166: 0000 unimp
+80000168: 0000 unimp
+8000016a: 0000 unimp
+8000016c: 0000 unimp
+8000016e: 0000 unimp
+80000170: 0000 unimp
+80000172: 0000 unimp
+80000174: 0000 unimp
+80000176: 0000 unimp
+80000178: 0000 unimp
+8000017a: 0000 unimp
+8000017c: 0000 unimp
+8000017e: 0000 unimp
+80000180: 0000 unimp
+80000182: 0000 unimp
diff --git a/test/riscv-tests/rv32si-p-wfi.elf b/test/riscv-tests/rv32si-p-wfi.elf
new file mode 100644
index 0000000..1dc9a8a
--- /dev/null
+++ b/test/riscv-tests/rv32si-p-wfi.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ua-p-amoadd_w.dump b/test/riscv-tests/rv32ua-p-amoadd_w.dump
new file mode 100644
index 0000000..0ae4d74
--- /dev/null
+++ b/test/riscv-tests/rv32ua-p-amoadd_w.dump
@@ -0,0 +1,124 @@
+
+rv32ua-p-amoadd_w: 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: 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: 80000537 lui a0,0x80000
+80000100: 80000593 li a1,-2048
+80000104: 00002697 auipc a3,0x2
+80000108: efc68693 addi a3,a3,-260 # 80002000 <begin_signature>
+8000010c: 00a6a023 sw a0,0(a3)
+80000110: 00b6a72f amoadd.w a4,a1,(a3)
+80000114: 80000eb7 lui t4,0x80000
+80000118: 00200193 li gp,2
+8000011c: 05d71263 bne a4,t4,80000160 <fail>
+
+80000120 <test_3>:
+80000120: 0006a783 lw a5,0(a3)
+80000124: 80000eb7 lui t4,0x80000
+80000128: 800e8e93 addi t4,t4,-2048 # 7ffff800 <_end+0xffffd7f8>
+8000012c: 00300193 li gp,3
+80000130: 03d79863 bne a5,t4,80000160 <fail>
+
+80000134 <test_4>:
+80000134: 800005b7 lui a1,0x80000
+80000138: 00b6a72f amoadd.w a4,a1,(a3)
+8000013c: 80000eb7 lui t4,0x80000
+80000140: 800e8e93 addi t4,t4,-2048 # 7ffff800 <_end+0xffffd7f8>
+80000144: 00400193 li gp,4
+80000148: 01d71c63 bne a4,t4,80000160 <fail>
+
+8000014c <test_5>:
+8000014c: 0006a783 lw a5,0(a3)
+80000150: 80000e93 li t4,-2048
+80000154: 00500193 li gp,5
+80000158: 01d79463 bne a5,t4,80000160 <fail>
+8000015c: 00301c63 bne zero,gp,80000174 <pass>
+
+80000160 <fail>:
+80000160: 0ff0000f fence
+80000164: 00018063 beqz gp,80000164 <fail+0x4>
+80000168: 00119193 slli gp,gp,0x1
+8000016c: 0011e193 ori gp,gp,1
+80000170: 00000073 ecall
+
+80000174 <pass>:
+80000174: 0ff0000f fence
+80000178: 00100193 li gp,1
+8000017c: 00000073 ecall
+80000180: c0001073 unimp
diff --git a/test/riscv-tests/rv32ua-p-amoadd_w.elf b/test/riscv-tests/rv32ua-p-amoadd_w.elf
new file mode 100644
index 0000000..588ba2e
--- /dev/null
+++ b/test/riscv-tests/rv32ua-p-amoadd_w.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ua-p-amoand_w.dump b/test/riscv-tests/rv32ua-p-amoand_w.dump
new file mode 100644
index 0000000..d82a55c
--- /dev/null
+++ b/test/riscv-tests/rv32ua-p-amoand_w.dump
@@ -0,0 +1,126 @@
+
+rv32ua-p-amoand_w: 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: 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: 80000537 lui a0,0x80000
+80000100: 80000593 li a1,-2048
+80000104: 00002697 auipc a3,0x2
+80000108: efc68693 addi a3,a3,-260 # 80002000 <begin_signature>
+8000010c: 00a6a023 sw a0,0(a3)
+80000110: 60b6a72f amoand.w a4,a1,(a3)
+80000114: 80000eb7 lui t4,0x80000
+80000118: 00200193 li gp,2
+8000011c: 03d71e63 bne a4,t4,80000158 <fail>
+
+80000120 <test_3>:
+80000120: 0006a783 lw a5,0(a3)
+80000124: 80000eb7 lui t4,0x80000
+80000128: 00300193 li gp,3
+8000012c: 03d79663 bne a5,t4,80000158 <fail>
+
+80000130 <test_4>:
+80000130: 800005b7 lui a1,0x80000
+80000134: 60b6a72f amoand.w a4,a1,(a3)
+80000138: 80000eb7 lui t4,0x80000
+8000013c: 00400193 li gp,4
+80000140: 01d71c63 bne a4,t4,80000158 <fail>
+
+80000144 <test_5>:
+80000144: 0006a783 lw a5,0(a3)
+80000148: 80000eb7 lui t4,0x80000
+8000014c: 00500193 li gp,5
+80000150: 01d79463 bne a5,t4,80000158 <fail>
+80000154: 00301c63 bne zero,gp,8000016c <pass>
+
+80000158 <fail>:
+80000158: 0ff0000f fence
+8000015c: 00018063 beqz gp,8000015c <fail+0x4>
+80000160: 00119193 slli gp,gp,0x1
+80000164: 0011e193 ori gp,gp,1
+80000168: 00000073 ecall
+
+8000016c <pass>:
+8000016c: 0ff0000f fence
+80000170: 00100193 li gp,1
+80000174: 00000073 ecall
+80000178: c0001073 unimp
+8000017c: 0000 unimp
+8000017e: 0000 unimp
+80000180: 0000 unimp
+80000182: 0000 unimp
diff --git a/test/riscv-tests/rv32ua-p-amoand_w.elf b/test/riscv-tests/rv32ua-p-amoand_w.elf
new file mode 100644
index 0000000..06f52ae
--- /dev/null
+++ b/test/riscv-tests/rv32ua-p-amoand_w.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ua-p-amomax_w.dump b/test/riscv-tests/rv32ua-p-amomax_w.dump
new file mode 100644
index 0000000..0ab8b2b
--- /dev/null
+++ b/test/riscv-tests/rv32ua-p-amomax_w.dump
@@ -0,0 +1,125 @@
+
+rv32ua-p-amomax_w: 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: 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: 80000537 lui a0,0x80000
+80000100: 80000593 li a1,-2048
+80000104: 00002697 auipc a3,0x2
+80000108: efc68693 addi a3,a3,-260 # 80002000 <begin_signature>
+8000010c: 00a6a023 sw a0,0(a3)
+80000110: a0b6a72f amomax.w a4,a1,(a3)
+80000114: 80000eb7 lui t4,0x80000
+80000118: 00200193 li gp,2
+8000011c: 05d71063 bne a4,t4,8000015c <fail>
+
+80000120 <test_3>:
+80000120: 0006a783 lw a5,0(a3)
+80000124: 80000e93 li t4,-2048
+80000128: 00300193 li gp,3
+8000012c: 03d79863 bne a5,t4,8000015c <fail>
+
+80000130 <test_4>:
+80000130: 00100593 li a1,1
+80000134: 0006a023 sw zero,0(a3)
+80000138: a0b6a72f amomax.w a4,a1,(a3)
+8000013c: 00000e93 li t4,0
+80000140: 00400193 li gp,4
+80000144: 01d71c63 bne a4,t4,8000015c <fail>
+
+80000148 <test_5>:
+80000148: 0006a783 lw a5,0(a3)
+8000014c: 00100e93 li t4,1
+80000150: 00500193 li gp,5
+80000154: 01d79463 bne a5,t4,8000015c <fail>
+80000158: 00301c63 bne zero,gp,80000170 <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: 00000073 ecall
+
+80000170 <pass>:
+80000170: 0ff0000f fence
+80000174: 00100193 li gp,1
+80000178: 00000073 ecall
+8000017c: c0001073 unimp
+80000180: 0000 unimp
+80000182: 0000 unimp
diff --git a/test/riscv-tests/rv32ua-p-amomax_w.elf b/test/riscv-tests/rv32ua-p-amomax_w.elf
new file mode 100644
index 0000000..3b02afa
--- /dev/null
+++ b/test/riscv-tests/rv32ua-p-amomax_w.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ua-p-amomaxu_w.dump b/test/riscv-tests/rv32ua-p-amomaxu_w.dump
new file mode 100644
index 0000000..154c0a4
--- /dev/null
+++ b/test/riscv-tests/rv32ua-p-amomaxu_w.dump
@@ -0,0 +1,125 @@
+
+rv32ua-p-amomaxu_w: 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: 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: 80000537 lui a0,0x80000
+80000100: 80000593 li a1,-2048
+80000104: 00002697 auipc a3,0x2
+80000108: efc68693 addi a3,a3,-260 # 80002000 <begin_signature>
+8000010c: 00a6a023 sw a0,0(a3)
+80000110: e0b6a72f amomaxu.w a4,a1,(a3)
+80000114: 80000eb7 lui t4,0x80000
+80000118: 00200193 li gp,2
+8000011c: 05d71063 bne a4,t4,8000015c <fail>
+
+80000120 <test_3>:
+80000120: 0006a783 lw a5,0(a3)
+80000124: 80000e93 li t4,-2048
+80000128: 00300193 li gp,3
+8000012c: 03d79863 bne a5,t4,8000015c <fail>
+
+80000130 <test_4>:
+80000130: fff00593 li a1,-1
+80000134: 0006a023 sw zero,0(a3)
+80000138: e0b6a72f amomaxu.w a4,a1,(a3)
+8000013c: 00000e93 li t4,0
+80000140: 00400193 li gp,4
+80000144: 01d71c63 bne a4,t4,8000015c <fail>
+
+80000148 <test_5>:
+80000148: 0006a783 lw a5,0(a3)
+8000014c: fff00e93 li t4,-1
+80000150: 00500193 li gp,5
+80000154: 01d79463 bne a5,t4,8000015c <fail>
+80000158: 00301c63 bne zero,gp,80000170 <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: 00000073 ecall
+
+80000170 <pass>:
+80000170: 0ff0000f fence
+80000174: 00100193 li gp,1
+80000178: 00000073 ecall
+8000017c: c0001073 unimp
+80000180: 0000 unimp
+80000182: 0000 unimp
diff --git a/test/riscv-tests/rv32ua-p-amomaxu_w.elf b/test/riscv-tests/rv32ua-p-amomaxu_w.elf
new file mode 100644
index 0000000..ef016f2
--- /dev/null
+++ b/test/riscv-tests/rv32ua-p-amomaxu_w.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ua-p-amomin_w.dump b/test/riscv-tests/rv32ua-p-amomin_w.dump
new file mode 100644
index 0000000..3b553f3
--- /dev/null
+++ b/test/riscv-tests/rv32ua-p-amomin_w.dump
@@ -0,0 +1,125 @@
+
+rv32ua-p-amomin_w: 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: 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: 80000537 lui a0,0x80000
+80000100: 80000593 li a1,-2048
+80000104: 00002697 auipc a3,0x2
+80000108: efc68693 addi a3,a3,-260 # 80002000 <begin_signature>
+8000010c: 00a6a023 sw a0,0(a3)
+80000110: 80b6a72f amomin.w a4,a1,(a3)
+80000114: 80000eb7 lui t4,0x80000
+80000118: 00200193 li gp,2
+8000011c: 05d71063 bne a4,t4,8000015c <fail>
+
+80000120 <test_3>:
+80000120: 0006a783 lw a5,0(a3)
+80000124: 80000eb7 lui t4,0x80000
+80000128: 00300193 li gp,3
+8000012c: 03d79863 bne a5,t4,8000015c <fail>
+
+80000130 <test_4>:
+80000130: fff00593 li a1,-1
+80000134: 0006a023 sw zero,0(a3)
+80000138: 80b6a72f amomin.w a4,a1,(a3)
+8000013c: 00000e93 li t4,0
+80000140: 00400193 li gp,4
+80000144: 01d71c63 bne a4,t4,8000015c <fail>
+
+80000148 <test_5>:
+80000148: 0006a783 lw a5,0(a3)
+8000014c: fff00e93 li t4,-1
+80000150: 00500193 li gp,5
+80000154: 01d79463 bne a5,t4,8000015c <fail>
+80000158: 00301c63 bne zero,gp,80000170 <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: 00000073 ecall
+
+80000170 <pass>:
+80000170: 0ff0000f fence
+80000174: 00100193 li gp,1
+80000178: 00000073 ecall
+8000017c: c0001073 unimp
+80000180: 0000 unimp
+80000182: 0000 unimp
diff --git a/test/riscv-tests/rv32ua-p-amomin_w.elf b/test/riscv-tests/rv32ua-p-amomin_w.elf
new file mode 100644
index 0000000..90c791d
--- /dev/null
+++ b/test/riscv-tests/rv32ua-p-amomin_w.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ua-p-amominu_w.dump b/test/riscv-tests/rv32ua-p-amominu_w.dump
new file mode 100644
index 0000000..d07572d
--- /dev/null
+++ b/test/riscv-tests/rv32ua-p-amominu_w.dump
@@ -0,0 +1,125 @@
+
+rv32ua-p-amominu_w: 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: 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: 80000537 lui a0,0x80000
+80000100: 80000593 li a1,-2048
+80000104: 00002697 auipc a3,0x2
+80000108: efc68693 addi a3,a3,-260 # 80002000 <begin_signature>
+8000010c: 00a6a023 sw a0,0(a3)
+80000110: c0b6a72f amominu.w a4,a1,(a3)
+80000114: 80000eb7 lui t4,0x80000
+80000118: 00200193 li gp,2
+8000011c: 05d71063 bne a4,t4,8000015c <fail>
+
+80000120 <test_3>:
+80000120: 0006a783 lw a5,0(a3)
+80000124: 80000eb7 lui t4,0x80000
+80000128: 00300193 li gp,3
+8000012c: 03d79863 bne a5,t4,8000015c <fail>
+
+80000130 <test_4>:
+80000130: fff00593 li a1,-1
+80000134: 0006a023 sw zero,0(a3)
+80000138: c0b6a72f amominu.w a4,a1,(a3)
+8000013c: 00000e93 li t4,0
+80000140: 00400193 li gp,4
+80000144: 01d71c63 bne a4,t4,8000015c <fail>
+
+80000148 <test_5>:
+80000148: 0006a783 lw a5,0(a3)
+8000014c: 00000e93 li t4,0
+80000150: 00500193 li gp,5
+80000154: 01d79463 bne a5,t4,8000015c <fail>
+80000158: 00301c63 bne zero,gp,80000170 <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: 00000073 ecall
+
+80000170 <pass>:
+80000170: 0ff0000f fence
+80000174: 00100193 li gp,1
+80000178: 00000073 ecall
+8000017c: c0001073 unimp
+80000180: 0000 unimp
+80000182: 0000 unimp
diff --git a/test/riscv-tests/rv32ua-p-amominu_w.elf b/test/riscv-tests/rv32ua-p-amominu_w.elf
new file mode 100644
index 0000000..21a18dd
--- /dev/null
+++ b/test/riscv-tests/rv32ua-p-amominu_w.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ua-p-amoor_w.dump b/test/riscv-tests/rv32ua-p-amoor_w.dump
new file mode 100644
index 0000000..0fd882b
--- /dev/null
+++ b/test/riscv-tests/rv32ua-p-amoor_w.dump
@@ -0,0 +1,126 @@
+
+rv32ua-p-amoor_w: 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: 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: 80000537 lui a0,0x80000
+80000100: 80000593 li a1,-2048
+80000104: 00002697 auipc a3,0x2
+80000108: efc68693 addi a3,a3,-260 # 80002000 <begin_signature>
+8000010c: 00a6a023 sw a0,0(a3)
+80000110: 40b6a72f amoor.w a4,a1,(a3)
+80000114: 80000eb7 lui t4,0x80000
+80000118: 00200193 li gp,2
+8000011c: 03d71e63 bne a4,t4,80000158 <fail>
+
+80000120 <test_3>:
+80000120: 0006a783 lw a5,0(a3)
+80000124: 80000e93 li t4,-2048
+80000128: 00300193 li gp,3
+8000012c: 03d79663 bne a5,t4,80000158 <fail>
+
+80000130 <test_4>:
+80000130: 00100593 li a1,1
+80000134: 40b6a72f amoor.w a4,a1,(a3)
+80000138: 80000e93 li t4,-2048
+8000013c: 00400193 li gp,4
+80000140: 01d71c63 bne a4,t4,80000158 <fail>
+
+80000144 <test_5>:
+80000144: 0006a783 lw a5,0(a3)
+80000148: 80100e93 li t4,-2047
+8000014c: 00500193 li gp,5
+80000150: 01d79463 bne a5,t4,80000158 <fail>
+80000154: 00301c63 bne zero,gp,8000016c <pass>
+
+80000158 <fail>:
+80000158: 0ff0000f fence
+8000015c: 00018063 beqz gp,8000015c <fail+0x4>
+80000160: 00119193 slli gp,gp,0x1
+80000164: 0011e193 ori gp,gp,1
+80000168: 00000073 ecall
+
+8000016c <pass>:
+8000016c: 0ff0000f fence
+80000170: 00100193 li gp,1
+80000174: 00000073 ecall
+80000178: c0001073 unimp
+8000017c: 0000 unimp
+8000017e: 0000 unimp
+80000180: 0000 unimp
+80000182: 0000 unimp
diff --git a/test/riscv-tests/rv32ua-p-amoor_w.elf b/test/riscv-tests/rv32ua-p-amoor_w.elf
new file mode 100644
index 0000000..16303b4
--- /dev/null
+++ b/test/riscv-tests/rv32ua-p-amoor_w.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ua-p-amoswap_w.dump b/test/riscv-tests/rv32ua-p-amoswap_w.dump
new file mode 100644
index 0000000..0a9b354
--- /dev/null
+++ b/test/riscv-tests/rv32ua-p-amoswap_w.dump
@@ -0,0 +1,126 @@
+
+rv32ua-p-amoswap_w: 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: 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: 80000537 lui a0,0x80000
+80000100: 80000593 li a1,-2048
+80000104: 00002697 auipc a3,0x2
+80000108: efc68693 addi a3,a3,-260 # 80002000 <begin_signature>
+8000010c: 00a6a023 sw a0,0(a3)
+80000110: 08b6a72f amoswap.w a4,a1,(a3)
+80000114: 80000eb7 lui t4,0x80000
+80000118: 00200193 li gp,2
+8000011c: 03d71e63 bne a4,t4,80000158 <fail>
+
+80000120 <test_3>:
+80000120: 0006a783 lw a5,0(a3)
+80000124: 80000e93 li t4,-2048
+80000128: 00300193 li gp,3
+8000012c: 03d79663 bne a5,t4,80000158 <fail>
+
+80000130 <test_4>:
+80000130: 800005b7 lui a1,0x80000
+80000134: 08b6a72f amoswap.w a4,a1,(a3)
+80000138: 80000e93 li t4,-2048
+8000013c: 00400193 li gp,4
+80000140: 01d71c63 bne a4,t4,80000158 <fail>
+
+80000144 <test_5>:
+80000144: 0006a783 lw a5,0(a3)
+80000148: 80000eb7 lui t4,0x80000
+8000014c: 00500193 li gp,5
+80000150: 01d79463 bne a5,t4,80000158 <fail>
+80000154: 00301c63 bne zero,gp,8000016c <pass>
+
+80000158 <fail>:
+80000158: 0ff0000f fence
+8000015c: 00018063 beqz gp,8000015c <fail+0x4>
+80000160: 00119193 slli gp,gp,0x1
+80000164: 0011e193 ori gp,gp,1
+80000168: 00000073 ecall
+
+8000016c <pass>:
+8000016c: 0ff0000f fence
+80000170: 00100193 li gp,1
+80000174: 00000073 ecall
+80000178: c0001073 unimp
+8000017c: 0000 unimp
+8000017e: 0000 unimp
+80000180: 0000 unimp
+80000182: 0000 unimp
diff --git a/test/riscv-tests/rv32ua-p-amoswap_w.elf b/test/riscv-tests/rv32ua-p-amoswap_w.elf
new file mode 100644
index 0000000..7477705
--- /dev/null
+++ b/test/riscv-tests/rv32ua-p-amoswap_w.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ua-p-amoxor_w.dump b/test/riscv-tests/rv32ua-p-amoxor_w.dump
new file mode 100644
index 0000000..a80465c
--- /dev/null
+++ b/test/riscv-tests/rv32ua-p-amoxor_w.dump
@@ -0,0 +1,154 @@
+
+rv32ua-p-amoxor_w: 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: 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: 80000537 lui a0,0x80000
+80000100: 80000593 li a1,-2048
+80000104: 00002697 auipc a3,0x2
+80000108: efc68693 addi a3,a3,-260 # 80002000 <begin_signature>
+8000010c: 00a6a023 sw a0,0(a3)
+80000110: 20b6a72f amoxor.w a4,a1,(a3)
+80000114: 80000eb7 lui t4,0x80000
+80000118: 00200193 li gp,2
+8000011c: 05d71663 bne a4,t4,80000168 <fail>
+
+80000120 <test_3>:
+80000120: 0006a783 lw a5,0(a3)
+80000124: 80000eb7 lui t4,0x80000
+80000128: 800e8e93 addi t4,t4,-2048 # 7ffff800 <_end+0xffffd7f8>
+8000012c: 00300193 li gp,3
+80000130: 03d79c63 bne a5,t4,80000168 <fail>
+
+80000134 <test_4>:
+80000134: c00005b7 lui a1,0xc0000
+80000138: 00158593 addi a1,a1,1 # c0000001 <_end+0x3fffdff9>
+8000013c: 20b6a72f amoxor.w a4,a1,(a3)
+80000140: 80000eb7 lui t4,0x80000
+80000144: 800e8e93 addi t4,t4,-2048 # 7ffff800 <_end+0xffffd7f8>
+80000148: 00400193 li gp,4
+8000014c: 01d71e63 bne a4,t4,80000168 <fail>
+
+80000150 <test_5>:
+80000150: 0006a783 lw a5,0(a3)
+80000154: c0000eb7 lui t4,0xc0000
+80000158: 801e8e93 addi t4,t4,-2047 # bffff801 <_end+0x3fffd7f9>
+8000015c: 00500193 li gp,5
+80000160: 01d79463 bne a5,t4,80000168 <fail>
+80000164: 00301c63 bne zero,gp,8000017c <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: 00000073 ecall
+
+8000017c <pass>:
+8000017c: 0ff0000f fence
+80000180: 00100193 li gp,1
+80000184: 00000073 ecall
+80000188: c0001073 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
+800001bc: 0000 unimp
+800001be: 0000 unimp
+800001c0: 0000 unimp
+800001c2: 0000 unimp
diff --git a/test/riscv-tests/rv32ua-p-amoxor_w.elf b/test/riscv-tests/rv32ua-p-amoxor_w.elf
new file mode 100644
index 0000000..9606228
--- /dev/null
+++ b/test/riscv-tests/rv32ua-p-amoxor_w.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ua-p-lrsc.dump b/test/riscv-tests/rv32ua-p-lrsc.dump
new file mode 100644
index 0000000..de3daa7
--- /dev/null
+++ b/test/riscv-tests/rv32ua-p-lrsc.dump
@@ -0,0 +1,178 @@
+
+rv32ua-p-lrsc: 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: 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 <reset_vector+0xb0>
+800000f0: 34129073 csrw mepc,t0
+800000f4: f1402573 csrr a0,mhartid
+800000f8: 30200073 mret
+800000fc: 00002517 auipc a0,0x2
+80000100: f0450513 addi a0,a0,-252 # 80002000 <begin_signature>
+80000104: 00100593 li a1,1
+80000108: 00b5262f amoadd.w a2,a1,(a0)
+8000010c: 00100693 li a3,1
+80000110: fed67ee3 bleu a3,a2,8000010c <reset_vector+0xc0>
+80000114: 00052583 lw a1,0(a0)
+80000118: fed5eee3 bltu a1,a3,80000114 <reset_vector+0xc8>
+
+8000011c <test_2>:
+8000011c: 00002517 auipc a0,0x2
+80000120: eec50513 addi a0,a0,-276 # 80002008 <foo>
+80000124: 1805272f sc.w a4,zero,(a0)
+80000128: 00100e93 li t4,1
+8000012c: 00200193 li gp,2
+80000130: 09d71863 bne a4,t4,800001c0 <fail>
+
+80000134 <test_3>:
+80000134: 00002517 auipc a0,0x2
+80000138: ed450513 addi a0,a0,-300 # 80002008 <foo>
+8000013c: 40050593 addi a1,a0,1024
+80000140: 1005a5af lr.w a1,(a1)
+80000144: 18b5272f sc.w a4,a1,(a0)
+80000148: 00100e93 li t4,1
+8000014c: 00300193 li gp,3
+80000150: 07d71863 bne a4,t4,800001c0 <fail>
+80000154: 00002517 auipc a0,0x2
+80000158: eb450513 addi a0,a0,-332 # 80002008 <foo>
+8000015c: 40000593 li a1,1024
+80000160: 00160613 addi a2,a2,1
+80000164: 1005272f lr.w a4,(a0)
+80000168: 00c70733 add a4,a4,a2
+8000016c: 18e5272f sc.w a4,a4,(a0)
+80000170: fe071ae3 bnez a4,80000164 <test_3+0x30>
+80000174: fff58593 addi a1,a1,-1
+80000178: fe0596e3 bnez a1,80000164 <test_3+0x30>
+8000017c: 00002517 auipc a0,0x2
+80000180: e8850513 addi a0,a0,-376 # 80002004 <barrier>
+80000184: 00100593 li a1,1
+80000188: 00b5202f amoadd.w zero,a1,(a0)
+8000018c: 00052583 lw a1,0(a0)
+80000190: fed5cee3 blt a1,a3,8000018c <test_3+0x58>
+80000194: 0ff0000f fence
+
+80000198 <test_4>:
+80000198: 00002517 auipc a0,0x2
+8000019c: e7052503 lw a0,-400(a0) # 80002008 <foo>
+800001a0: 00969593 slli a1,a3,0x9
+800001a4: 40b50533 sub a0,a0,a1
+800001a8: fff68693 addi a3,a3,-1
+800001ac: fe06dce3 bgez a3,800001a4 <test_4+0xc>
+800001b0: 00000e93 li t4,0
+800001b4: 00400193 li gp,4
+800001b8: 01d51463 bne a0,t4,800001c0 <fail>
+800001bc: 00301c63 bne zero,gp,800001d4 <pass>
+
+800001c0 <fail>:
+800001c0: 0ff0000f fence
+800001c4: 00018063 beqz gp,800001c4 <fail+0x4>
+800001c8: 00119193 slli gp,gp,0x1
+800001cc: 0011e193 ori gp,gp,1
+800001d0: 00000073 ecall
+
+800001d4 <pass>:
+800001d4: 0ff0000f fence
+800001d8: 00100193 li gp,1
+800001dc: 00000073 ecall
+800001e0: c0001073 unimp
+800001e4: 0000 unimp
+800001e6: 0000 unimp
+800001e8: 0000 unimp
+800001ea: 0000 unimp
+800001ec: 0000 unimp
+800001ee: 0000 unimp
+800001f0: 0000 unimp
+800001f2: 0000 unimp
+800001f4: 0000 unimp
+800001f6: 0000 unimp
+800001f8: 0000 unimp
+800001fa: 0000 unimp
+800001fc: 0000 unimp
+800001fe: 0000 unimp
+80000200: 0000 unimp
+80000202: 0000 unimp
+
+Disassembly of section .data:
+
+80002000 <begin_signature>:
+80002000: 0000 unimp
+80002002: 0000 unimp
+
+80002004 <barrier>:
+80002004: 0000 unimp
+80002006: 0000 unimp
+
+80002008 <foo>:
+80002008: 0000 unimp
+8000200a: 0000 unimp
+8000200c: 0000 unimp
+8000200e: 0000 unimp
diff --git a/test/riscv-tests/rv32ua-p-lrsc.elf b/test/riscv-tests/rv32ua-p-lrsc.elf
new file mode 100644
index 0000000..64c7e76
--- /dev/null
+++ b/test/riscv-tests/rv32ua-p-lrsc.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ua-v-amoadd_w.dump b/test/riscv-tests/rv32ua-v-amoadd_w.dump
new file mode 100644
index 0000000..2d40d2e
--- /dev/null
+++ b/test/riscv-tests/rv32ua-v-amoadd_w.dump
@@ -0,0 +1,941 @@
+
+rv32ua-v-amoadd_w: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00007117 auipc sp,0x7
+8000001c: 35010113 addi sp,sp,848 # 80007368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00002317 auipc t1,0x2
+80002370: c9430313 addi t1,t1,-876 # 80004000 <pt>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00004797 auipc a5,0x4
+8000238c: 06c78793 addi a5,a5,108 # 800063f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00004717 auipc a4,0x4
+800023a0: 05470713 addi a4,a4,84 # 800063f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00004697 auipc a3,0x4
+800023ac: 04f6a623 sw a5,76(a3) # 800063f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00004717 auipc a4,0x4
+800023dc: e2070713 addi a4,a4,-480 # 800061f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf9c08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00004797 auipc a5,0x4
+800024bc: f207ac23 sw zero,-200(a5) # 800063f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00000597 auipc a1,0x0
+800024cc: 79858593 addi a1,a1,1944 # 80002c60 <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00000597 auipc a1,0x0
+8000253c: 7b458593 addi a1,a1,1972 # 80002cec <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00000597 auipc a1,0x0
+800025a8: 76058593 addi a1,a1,1888 # 80002d04 <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00000597 auipc a1,0x0
+80002614: 69458593 addi a1,a1,1684 # 80002ca4 <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00000597 auipc a1,0x0
+8000274c: 68458593 addi a1,a1,1668 # 80002dcc <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00000597 auipc a1,0x0
+800027c0: 5ec58593 addi a1,a1,1516 # 80002da8 <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00004b17 auipc s6,0x4
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800061f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00001d17 auipc s10,0x1
+80002840: 7c4d0d13 addi s10,s10,1988 # 80004000 <pt>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00004717 auipc a4,0x4
+8000285c: b8f72c23 sw a5,-1128(a4) # 800063f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00004717 auipc a4,0x4
+800028e8: b0c70713 addi a4,a4,-1268 # 800063f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00004717 auipc a4,0x4
+800028fc: aef72c23 sw a5,-1288(a4) # 800063f0 <freelist_tail>
+80002900: 00004717 auipc a4,0x4
+80002904: aef72a23 sw a5,-1292(a4) # 800063f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00000617 auipc a2,0x0
+80002914: 4e860613 addi a2,a2,1256 # 80002df8 <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00000617 auipc a2,0x0
+80002980: 3f860613 addi a2,a2,1016 # 80002d74 <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 37860613 addi a2,a2,888 # 80002d40 <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00002797 auipc a5,0x2
+80002a4c: 5b878793 addi a5,a5,1464 # 80005000 <pt+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00001697 auipc a3,0x1
+80002a60: 5af6a223 sw a5,1444(a3) # 80004000 <pt>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00001717 auipc a4,0x1
+80002a6c: 59870713 addi a4,a4,1432 # 80004000 <pt>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00002697 auipc a3,0x2
+80002a7c: 58f6a223 sw a5,1412(a3) # 80004ffc <pt+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf9ccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc03797 auipc a5,0x7fc03
+80002aec: 51878793 addi a5,a5,1304 # ffc06000 <_end+0x7fbffc08>
+80002af0: 00004717 auipc a4,0x4
+80002af4: 90f72223 sw a5,-1788(a4) # 800063f4 <freelist_head>
+80002af8: 7fc03797 auipc a5,0x7fc03
+80002afc: 6f878793 addi a5,a5,1784 # ffc061f0 <_end+0x7fbffdf8>
+80002b00: 00004717 auipc a4,0x4
+80002b04: 8ef72823 sw a5,-1808(a4) # 800063f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00003717 auipc a4,0x3
+80002b10: 4f470713 addi a4,a4,1268 # 80006000 <freelist_nodes>
+80002b14: 00003317 auipc t1,0x3
+80002b18: 6e430313 addi t1,t1,1764 # 800061f8 <user_mapping>
+80002b1c: 01600793 li a5,22
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00003797 auipc a5,0x3
+80002b6c: 6807a623 sw zero,1676(a5) # 800061f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 074ab7b7 lui a5,0x74ab
+80002b9c: 00080637 lui a2,0x80
+80002ba0: aa678793 addi a5,a5,-1370 # 74aaaa6 <_start-0x78b5555a>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: 80000537 lui a0,0x80000
+80002be4: 80000593 li a1,-2048
+80002be8: 00000697 auipc a3,0x0
+80002bec: 41868693 addi a3,a3,1048 # 80003000 <begin_signature>
+80002bf0: 00a6a023 sw a0,0(a3)
+80002bf4: 00b6a72f amoadd.w a4,a1,(a3)
+80002bf8: 80000eb7 lui t4,0x80000
+80002bfc: 00200193 li gp,2
+80002c00: 05d71263 bne a4,t4,80002c44 <fail>
+
+80002c04 <test_3>:
+80002c04: 0006a783 lw a5,0(a3)
+80002c08: 80000eb7 lui t4,0x80000
+80002c0c: 800e8e93 addi t4,t4,-2048 # 7ffff800 <_end+0xffff9408>
+80002c10: 00300193 li gp,3
+80002c14: 03d79863 bne a5,t4,80002c44 <fail>
+
+80002c18 <test_4>:
+80002c18: 800005b7 lui a1,0x80000
+80002c1c: 00b6a72f amoadd.w a4,a1,(a3)
+80002c20: 80000eb7 lui t4,0x80000
+80002c24: 800e8e93 addi t4,t4,-2048 # 7ffff800 <_end+0xffff9408>
+80002c28: 00400193 li gp,4
+80002c2c: 01d71c63 bne a4,t4,80002c44 <fail>
+
+80002c30 <test_5>:
+80002c30: 0006a783 lw a5,0(a3)
+80002c34: 80000e93 li t4,-2048
+80002c38: 00500193 li gp,5
+80002c3c: 01d79463 bne a5,t4,80002c44 <fail>
+80002c40: 00301a63 bne zero,gp,80002c54 <pass>
+
+80002c44 <fail>:
+80002c44: 00119513 slli a0,gp,0x1
+80002c48: 00050063 beqz a0,80002c48 <fail+0x4>
+80002c4c: 00156513 ori a0,a0,1
+80002c50: 00000073 ecall
+
+80002c54 <pass>:
+80002c54: 00100513 li a0,1
+80002c58: 00000073 ecall
+80002c5c: c0001073 unimp
diff --git a/test/riscv-tests/rv32ua-v-amoadd_w.elf b/test/riscv-tests/rv32ua-v-amoadd_w.elf
new file mode 100644
index 0000000..813d52f
--- /dev/null
+++ b/test/riscv-tests/rv32ua-v-amoadd_w.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ua-v-amoand_w.dump b/test/riscv-tests/rv32ua-v-amoand_w.dump
new file mode 100644
index 0000000..fb10e74
--- /dev/null
+++ b/test/riscv-tests/rv32ua-v-amoand_w.dump
@@ -0,0 +1,939 @@
+
+rv32ua-v-amoand_w: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00007117 auipc sp,0x7
+8000001c: 35010113 addi sp,sp,848 # 80007368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00002317 auipc t1,0x2
+80002370: c9430313 addi t1,t1,-876 # 80004000 <pt>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00004797 auipc a5,0x4
+8000238c: 06c78793 addi a5,a5,108 # 800063f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00004717 auipc a4,0x4
+800023a0: 05470713 addi a4,a4,84 # 800063f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00004697 auipc a3,0x4
+800023ac: 04f6a623 sw a5,76(a3) # 800063f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00004717 auipc a4,0x4
+800023dc: e2070713 addi a4,a4,-480 # 800061f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf9c08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00004797 auipc a5,0x4
+800024bc: f207ac23 sw zero,-200(a5) # 800063f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00000597 auipc a1,0x0
+800024cc: 79058593 addi a1,a1,1936 # 80002c58 <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00000597 auipc a1,0x0
+8000253c: 7ac58593 addi a1,a1,1964 # 80002ce4 <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00000597 auipc a1,0x0
+800025a8: 75858593 addi a1,a1,1880 # 80002cfc <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00000597 auipc a1,0x0
+80002614: 68c58593 addi a1,a1,1676 # 80002c9c <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00000597 auipc a1,0x0
+8000274c: 67c58593 addi a1,a1,1660 # 80002dc4 <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00000597 auipc a1,0x0
+800027c0: 5e458593 addi a1,a1,1508 # 80002da0 <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00004b17 auipc s6,0x4
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800061f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00001d17 auipc s10,0x1
+80002840: 7c4d0d13 addi s10,s10,1988 # 80004000 <pt>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00004717 auipc a4,0x4
+8000285c: b8f72c23 sw a5,-1128(a4) # 800063f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00004717 auipc a4,0x4
+800028e8: b0c70713 addi a4,a4,-1268 # 800063f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00004717 auipc a4,0x4
+800028fc: aef72c23 sw a5,-1288(a4) # 800063f0 <freelist_tail>
+80002900: 00004717 auipc a4,0x4
+80002904: aef72a23 sw a5,-1292(a4) # 800063f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00000617 auipc a2,0x0
+80002914: 4e060613 addi a2,a2,1248 # 80002df0 <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00000617 auipc a2,0x0
+80002980: 3f060613 addi a2,a2,1008 # 80002d6c <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 37060613 addi a2,a2,880 # 80002d38 <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00002797 auipc a5,0x2
+80002a4c: 5b878793 addi a5,a5,1464 # 80005000 <pt+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00001697 auipc a3,0x1
+80002a60: 5af6a223 sw a5,1444(a3) # 80004000 <pt>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00001717 auipc a4,0x1
+80002a6c: 59870713 addi a4,a4,1432 # 80004000 <pt>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00002697 auipc a3,0x2
+80002a7c: 58f6a223 sw a5,1412(a3) # 80004ffc <pt+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf9ccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc03797 auipc a5,0x7fc03
+80002aec: 51878793 addi a5,a5,1304 # ffc06000 <_end+0x7fbffc08>
+80002af0: 00004717 auipc a4,0x4
+80002af4: 90f72223 sw a5,-1788(a4) # 800063f4 <freelist_head>
+80002af8: 7fc03797 auipc a5,0x7fc03
+80002afc: 6f878793 addi a5,a5,1784 # ffc061f0 <_end+0x7fbffdf8>
+80002b00: 00004717 auipc a4,0x4
+80002b04: 8ef72823 sw a5,-1808(a4) # 800063f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00003717 auipc a4,0x3
+80002b10: 4f470713 addi a4,a4,1268 # 80006000 <freelist_nodes>
+80002b14: 00003317 auipc t1,0x3
+80002b18: 6e430313 addi t1,t1,1764 # 800061f8 <user_mapping>
+80002b1c: 02200793 li a5,34
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00003797 auipc a5,0x3
+80002b6c: 6807a623 sw zero,1676(a5) # 800061f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 0a54c7b7 lui a5,0xa54c
+80002b9c: 00080637 lui a2,0x80
+80002ba0: 2ea78793 addi a5,a5,746 # a54c2ea <_start-0x75ab3d16>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: 80000537 lui a0,0x80000
+80002be4: 80000593 li a1,-2048
+80002be8: 00000697 auipc a3,0x0
+80002bec: 41868693 addi a3,a3,1048 # 80003000 <begin_signature>
+80002bf0: 00a6a023 sw a0,0(a3)
+80002bf4: 60b6a72f amoand.w a4,a1,(a3)
+80002bf8: 80000eb7 lui t4,0x80000
+80002bfc: 00200193 li gp,2
+80002c00: 03d71e63 bne a4,t4,80002c3c <fail>
+
+80002c04 <test_3>:
+80002c04: 0006a783 lw a5,0(a3)
+80002c08: 80000eb7 lui t4,0x80000
+80002c0c: 00300193 li gp,3
+80002c10: 03d79663 bne a5,t4,80002c3c <fail>
+
+80002c14 <test_4>:
+80002c14: 800005b7 lui a1,0x80000
+80002c18: 60b6a72f amoand.w a4,a1,(a3)
+80002c1c: 80000eb7 lui t4,0x80000
+80002c20: 00400193 li gp,4
+80002c24: 01d71c63 bne a4,t4,80002c3c <fail>
+
+80002c28 <test_5>:
+80002c28: 0006a783 lw a5,0(a3)
+80002c2c: 80000eb7 lui t4,0x80000
+80002c30: 00500193 li gp,5
+80002c34: 01d79463 bne a5,t4,80002c3c <fail>
+80002c38: 00301a63 bne zero,gp,80002c4c <pass>
+
+80002c3c <fail>:
+80002c3c: 00119513 slli a0,gp,0x1
+80002c40: 00050063 beqz a0,80002c40 <fail+0x4>
+80002c44: 00156513 ori a0,a0,1
+80002c48: 00000073 ecall
+
+80002c4c <pass>:
+80002c4c: 00100513 li a0,1
+80002c50: 00000073 ecall
+80002c54: c0001073 unimp
diff --git a/test/riscv-tests/rv32ua-v-amoand_w.elf b/test/riscv-tests/rv32ua-v-amoand_w.elf
new file mode 100644
index 0000000..499e10c
--- /dev/null
+++ b/test/riscv-tests/rv32ua-v-amoand_w.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ua-v-amomax_w.dump b/test/riscv-tests/rv32ua-v-amomax_w.dump
new file mode 100644
index 0000000..adaf83f
--- /dev/null
+++ b/test/riscv-tests/rv32ua-v-amomax_w.dump
@@ -0,0 +1,940 @@
+
+rv32ua-v-amomax_w: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00007117 auipc sp,0x7
+8000001c: 35010113 addi sp,sp,848 # 80007368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00002317 auipc t1,0x2
+80002370: c9430313 addi t1,t1,-876 # 80004000 <pt>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00004797 auipc a5,0x4
+8000238c: 06c78793 addi a5,a5,108 # 800063f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00004717 auipc a4,0x4
+800023a0: 05470713 addi a4,a4,84 # 800063f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00004697 auipc a3,0x4
+800023ac: 04f6a623 sw a5,76(a3) # 800063f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00004717 auipc a4,0x4
+800023dc: e2070713 addi a4,a4,-480 # 800061f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf9c08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00004797 auipc a5,0x4
+800024bc: f207ac23 sw zero,-200(a5) # 800063f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00000597 auipc a1,0x0
+800024cc: 79458593 addi a1,a1,1940 # 80002c5c <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00000597 auipc a1,0x0
+8000253c: 7b058593 addi a1,a1,1968 # 80002ce8 <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00000597 auipc a1,0x0
+800025a8: 75c58593 addi a1,a1,1884 # 80002d00 <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00000597 auipc a1,0x0
+80002614: 69058593 addi a1,a1,1680 # 80002ca0 <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00000597 auipc a1,0x0
+8000274c: 68058593 addi a1,a1,1664 # 80002dc8 <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00000597 auipc a1,0x0
+800027c0: 5e858593 addi a1,a1,1512 # 80002da4 <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00004b17 auipc s6,0x4
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800061f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00001d17 auipc s10,0x1
+80002840: 7c4d0d13 addi s10,s10,1988 # 80004000 <pt>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00004717 auipc a4,0x4
+8000285c: b8f72c23 sw a5,-1128(a4) # 800063f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00004717 auipc a4,0x4
+800028e8: b0c70713 addi a4,a4,-1268 # 800063f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00004717 auipc a4,0x4
+800028fc: aef72c23 sw a5,-1288(a4) # 800063f0 <freelist_tail>
+80002900: 00004717 auipc a4,0x4
+80002904: aef72a23 sw a5,-1292(a4) # 800063f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00000617 auipc a2,0x0
+80002914: 4e460613 addi a2,a2,1252 # 80002df4 <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00000617 auipc a2,0x0
+80002980: 3f460613 addi a2,a2,1012 # 80002d70 <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 37460613 addi a2,a2,884 # 80002d3c <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00002797 auipc a5,0x2
+80002a4c: 5b878793 addi a5,a5,1464 # 80005000 <pt+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00001697 auipc a3,0x1
+80002a60: 5af6a223 sw a5,1444(a3) # 80004000 <pt>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00001717 auipc a4,0x1
+80002a6c: 59870713 addi a4,a4,1432 # 80004000 <pt>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00002697 auipc a3,0x2
+80002a7c: 58f6a223 sw a5,1412(a3) # 80004ffc <pt+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf9ccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc03797 auipc a5,0x7fc03
+80002aec: 51878793 addi a5,a5,1304 # ffc06000 <_end+0x7fbffc08>
+80002af0: 00004717 auipc a4,0x4
+80002af4: 90f72223 sw a5,-1788(a4) # 800063f4 <freelist_head>
+80002af8: 7fc03797 auipc a5,0x7fc03
+80002afc: 6f878793 addi a5,a5,1784 # ffc061f0 <_end+0x7fbffdf8>
+80002b00: 00004717 auipc a4,0x4
+80002b04: 8ef72823 sw a5,-1808(a4) # 800063f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00003717 auipc a4,0x3
+80002b10: 4f470713 addi a4,a4,1268 # 80006000 <freelist_nodes>
+80002b14: 00003317 auipc t1,0x3
+80002b18: 6e430313 addi t1,t1,1764 # 800061f8 <user_mapping>
+80002b1c: 03900793 li a5,57
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00003797 auipc a5,0x3
+80002b6c: 6807a623 sw zero,1676(a5) # 800061f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 0a3d67b7 lui a5,0xa3d6
+80002b9c: 00080637 lui a2,0x80
+80002ba0: 9e278793 addi a5,a5,-1566 # a3d59e2 <_start-0x75c2a61e>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: 80000537 lui a0,0x80000
+80002be4: 80000593 li a1,-2048
+80002be8: 00000697 auipc a3,0x0
+80002bec: 41868693 addi a3,a3,1048 # 80003000 <begin_signature>
+80002bf0: 00a6a023 sw a0,0(a3)
+80002bf4: a0b6a72f amomax.w a4,a1,(a3)
+80002bf8: 80000eb7 lui t4,0x80000
+80002bfc: 00200193 li gp,2
+80002c00: 05d71063 bne a4,t4,80002c40 <fail>
+
+80002c04 <test_3>:
+80002c04: 0006a783 lw a5,0(a3)
+80002c08: 80000e93 li t4,-2048
+80002c0c: 00300193 li gp,3
+80002c10: 03d79863 bne a5,t4,80002c40 <fail>
+
+80002c14 <test_4>:
+80002c14: 00100593 li a1,1
+80002c18: 0006a023 sw zero,0(a3)
+80002c1c: a0b6a72f amomax.w a4,a1,(a3)
+80002c20: 00000e93 li t4,0
+80002c24: 00400193 li gp,4
+80002c28: 01d71c63 bne a4,t4,80002c40 <fail>
+
+80002c2c <test_5>:
+80002c2c: 0006a783 lw a5,0(a3)
+80002c30: 00100e93 li t4,1
+80002c34: 00500193 li gp,5
+80002c38: 01d79463 bne a5,t4,80002c40 <fail>
+80002c3c: 00301a63 bne zero,gp,80002c50 <pass>
+
+80002c40 <fail>:
+80002c40: 00119513 slli a0,gp,0x1
+80002c44: 00050063 beqz a0,80002c44 <fail+0x4>
+80002c48: 00156513 ori a0,a0,1
+80002c4c: 00000073 ecall
+
+80002c50 <pass>:
+80002c50: 00100513 li a0,1
+80002c54: 00000073 ecall
+80002c58: c0001073 unimp
diff --git a/test/riscv-tests/rv32ua-v-amomax_w.elf b/test/riscv-tests/rv32ua-v-amomax_w.elf
new file mode 100644
index 0000000..bc41c75
--- /dev/null
+++ b/test/riscv-tests/rv32ua-v-amomax_w.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ua-v-amomaxu_w.dump b/test/riscv-tests/rv32ua-v-amomaxu_w.dump
new file mode 100644
index 0000000..6e2a092
--- /dev/null
+++ b/test/riscv-tests/rv32ua-v-amomaxu_w.dump
@@ -0,0 +1,940 @@
+
+rv32ua-v-amomaxu_w: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00007117 auipc sp,0x7
+8000001c: 35010113 addi sp,sp,848 # 80007368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00002317 auipc t1,0x2
+80002370: c9430313 addi t1,t1,-876 # 80004000 <pt>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00004797 auipc a5,0x4
+8000238c: 06c78793 addi a5,a5,108 # 800063f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00004717 auipc a4,0x4
+800023a0: 05470713 addi a4,a4,84 # 800063f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00004697 auipc a3,0x4
+800023ac: 04f6a623 sw a5,76(a3) # 800063f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00004717 auipc a4,0x4
+800023dc: e2070713 addi a4,a4,-480 # 800061f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf9c08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00004797 auipc a5,0x4
+800024bc: f207ac23 sw zero,-200(a5) # 800063f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00000597 auipc a1,0x0
+800024cc: 79458593 addi a1,a1,1940 # 80002c5c <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00000597 auipc a1,0x0
+8000253c: 7b058593 addi a1,a1,1968 # 80002ce8 <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00000597 auipc a1,0x0
+800025a8: 75c58593 addi a1,a1,1884 # 80002d00 <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00000597 auipc a1,0x0
+80002614: 69058593 addi a1,a1,1680 # 80002ca0 <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00000597 auipc a1,0x0
+8000274c: 68058593 addi a1,a1,1664 # 80002dc8 <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00000597 auipc a1,0x0
+800027c0: 5e858593 addi a1,a1,1512 # 80002da4 <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00004b17 auipc s6,0x4
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800061f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00001d17 auipc s10,0x1
+80002840: 7c4d0d13 addi s10,s10,1988 # 80004000 <pt>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00004717 auipc a4,0x4
+8000285c: b8f72c23 sw a5,-1128(a4) # 800063f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00004717 auipc a4,0x4
+800028e8: b0c70713 addi a4,a4,-1268 # 800063f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00004717 auipc a4,0x4
+800028fc: aef72c23 sw a5,-1288(a4) # 800063f0 <freelist_tail>
+80002900: 00004717 auipc a4,0x4
+80002904: aef72a23 sw a5,-1292(a4) # 800063f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00000617 auipc a2,0x0
+80002914: 4e460613 addi a2,a2,1252 # 80002df4 <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00000617 auipc a2,0x0
+80002980: 3f460613 addi a2,a2,1012 # 80002d70 <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 37460613 addi a2,a2,884 # 80002d3c <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00002797 auipc a5,0x2
+80002a4c: 5b878793 addi a5,a5,1464 # 80005000 <pt+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00001697 auipc a3,0x1
+80002a60: 5af6a223 sw a5,1444(a3) # 80004000 <pt>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00001717 auipc a4,0x1
+80002a6c: 59870713 addi a4,a4,1432 # 80004000 <pt>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00002697 auipc a3,0x2
+80002a7c: 58f6a223 sw a5,1412(a3) # 80004ffc <pt+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf9ccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc03797 auipc a5,0x7fc03
+80002aec: 51878793 addi a5,a5,1304 # ffc06000 <_end+0x7fbffc08>
+80002af0: 00004717 auipc a4,0x4
+80002af4: 90f72223 sw a5,-1788(a4) # 800063f4 <freelist_head>
+80002af8: 7fc03797 auipc a5,0x7fc03
+80002afc: 6f878793 addi a5,a5,1784 # ffc061f0 <_end+0x7fbffdf8>
+80002b00: 00004717 auipc a4,0x4
+80002b04: 8ef72823 sw a5,-1808(a4) # 800063f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00003717 auipc a4,0x3
+80002b10: 4f470713 addi a4,a4,1268 # 80006000 <freelist_nodes>
+80002b14: 00003317 auipc t1,0x3
+80002b18: 6e430313 addi t1,t1,1764 # 800061f8 <user_mapping>
+80002b1c: 00400793 li a5,4
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00003797 auipc a5,0x3
+80002b6c: 6807a623 sw zero,1676(a5) # 800061f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 0ff5b7b7 lui a5,0xff5b
+80002b9c: 00080637 lui a2,0x80
+80002ba0: d2678793 addi a5,a5,-730 # ff5ad26 <_start-0x700a52da>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: 80000537 lui a0,0x80000
+80002be4: 80000593 li a1,-2048
+80002be8: 00000697 auipc a3,0x0
+80002bec: 41868693 addi a3,a3,1048 # 80003000 <begin_signature>
+80002bf0: 00a6a023 sw a0,0(a3)
+80002bf4: e0b6a72f amomaxu.w a4,a1,(a3)
+80002bf8: 80000eb7 lui t4,0x80000
+80002bfc: 00200193 li gp,2
+80002c00: 05d71063 bne a4,t4,80002c40 <fail>
+
+80002c04 <test_3>:
+80002c04: 0006a783 lw a5,0(a3)
+80002c08: 80000e93 li t4,-2048
+80002c0c: 00300193 li gp,3
+80002c10: 03d79863 bne a5,t4,80002c40 <fail>
+
+80002c14 <test_4>:
+80002c14: fff00593 li a1,-1
+80002c18: 0006a023 sw zero,0(a3)
+80002c1c: e0b6a72f amomaxu.w a4,a1,(a3)
+80002c20: 00000e93 li t4,0
+80002c24: 00400193 li gp,4
+80002c28: 01d71c63 bne a4,t4,80002c40 <fail>
+
+80002c2c <test_5>:
+80002c2c: 0006a783 lw a5,0(a3)
+80002c30: fff00e93 li t4,-1
+80002c34: 00500193 li gp,5
+80002c38: 01d79463 bne a5,t4,80002c40 <fail>
+80002c3c: 00301a63 bne zero,gp,80002c50 <pass>
+
+80002c40 <fail>:
+80002c40: 00119513 slli a0,gp,0x1
+80002c44: 00050063 beqz a0,80002c44 <fail+0x4>
+80002c48: 00156513 ori a0,a0,1
+80002c4c: 00000073 ecall
+
+80002c50 <pass>:
+80002c50: 00100513 li a0,1
+80002c54: 00000073 ecall
+80002c58: c0001073 unimp
diff --git a/test/riscv-tests/rv32ua-v-amomaxu_w.elf b/test/riscv-tests/rv32ua-v-amomaxu_w.elf
new file mode 100644
index 0000000..e0f36f3
--- /dev/null
+++ b/test/riscv-tests/rv32ua-v-amomaxu_w.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ua-v-amomin_w.dump b/test/riscv-tests/rv32ua-v-amomin_w.dump
new file mode 100644
index 0000000..39ef592
--- /dev/null
+++ b/test/riscv-tests/rv32ua-v-amomin_w.dump
@@ -0,0 +1,940 @@
+
+rv32ua-v-amomin_w: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00007117 auipc sp,0x7
+8000001c: 35010113 addi sp,sp,848 # 80007368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00002317 auipc t1,0x2
+80002370: c9430313 addi t1,t1,-876 # 80004000 <pt>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00004797 auipc a5,0x4
+8000238c: 06c78793 addi a5,a5,108 # 800063f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00004717 auipc a4,0x4
+800023a0: 05470713 addi a4,a4,84 # 800063f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00004697 auipc a3,0x4
+800023ac: 04f6a623 sw a5,76(a3) # 800063f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00004717 auipc a4,0x4
+800023dc: e2070713 addi a4,a4,-480 # 800061f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf9c08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00004797 auipc a5,0x4
+800024bc: f207ac23 sw zero,-200(a5) # 800063f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00000597 auipc a1,0x0
+800024cc: 79458593 addi a1,a1,1940 # 80002c5c <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00000597 auipc a1,0x0
+8000253c: 7b058593 addi a1,a1,1968 # 80002ce8 <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00000597 auipc a1,0x0
+800025a8: 75c58593 addi a1,a1,1884 # 80002d00 <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00000597 auipc a1,0x0
+80002614: 69058593 addi a1,a1,1680 # 80002ca0 <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00000597 auipc a1,0x0
+8000274c: 68058593 addi a1,a1,1664 # 80002dc8 <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00000597 auipc a1,0x0
+800027c0: 5e858593 addi a1,a1,1512 # 80002da4 <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00004b17 auipc s6,0x4
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800061f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00001d17 auipc s10,0x1
+80002840: 7c4d0d13 addi s10,s10,1988 # 80004000 <pt>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00004717 auipc a4,0x4
+8000285c: b8f72c23 sw a5,-1128(a4) # 800063f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00004717 auipc a4,0x4
+800028e8: b0c70713 addi a4,a4,-1268 # 800063f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00004717 auipc a4,0x4
+800028fc: aef72c23 sw a5,-1288(a4) # 800063f0 <freelist_tail>
+80002900: 00004717 auipc a4,0x4
+80002904: aef72a23 sw a5,-1292(a4) # 800063f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00000617 auipc a2,0x0
+80002914: 4e460613 addi a2,a2,1252 # 80002df4 <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00000617 auipc a2,0x0
+80002980: 3f460613 addi a2,a2,1012 # 80002d70 <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 37460613 addi a2,a2,884 # 80002d3c <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00002797 auipc a5,0x2
+80002a4c: 5b878793 addi a5,a5,1464 # 80005000 <pt+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00001697 auipc a3,0x1
+80002a60: 5af6a223 sw a5,1444(a3) # 80004000 <pt>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00001717 auipc a4,0x1
+80002a6c: 59870713 addi a4,a4,1432 # 80004000 <pt>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00002697 auipc a3,0x2
+80002a7c: 58f6a223 sw a5,1412(a3) # 80004ffc <pt+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf9ccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc03797 auipc a5,0x7fc03
+80002aec: 51878793 addi a5,a5,1304 # ffc06000 <_end+0x7fbffc08>
+80002af0: 00004717 auipc a4,0x4
+80002af4: 90f72223 sw a5,-1788(a4) # 800063f4 <freelist_head>
+80002af8: 7fc03797 auipc a5,0x7fc03
+80002afc: 6f878793 addi a5,a5,1784 # ffc061f0 <_end+0x7fbffdf8>
+80002b00: 00004717 auipc a4,0x4
+80002b04: 8ef72823 sw a5,-1808(a4) # 800063f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00003717 auipc a4,0x3
+80002b10: 4f470713 addi a4,a4,1268 # 80006000 <freelist_nodes>
+80002b14: 00003317 auipc t1,0x3
+80002b18: 6e430313 addi t1,t1,1764 # 800061f8 <user_mapping>
+80002b1c: 03e00793 li a5,62
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00003797 auipc a5,0x3
+80002b6c: 6807a623 sw zero,1676(a5) # 800061f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 004777b7 lui a5,0x477
+80002b9c: 00080637 lui a2,0x80
+80002ba0: fb678793 addi a5,a5,-74 # 476fb6 <_start-0x7fb8904a>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: 80000537 lui a0,0x80000
+80002be4: 80000593 li a1,-2048
+80002be8: 00000697 auipc a3,0x0
+80002bec: 41868693 addi a3,a3,1048 # 80003000 <begin_signature>
+80002bf0: 00a6a023 sw a0,0(a3)
+80002bf4: 80b6a72f amomin.w a4,a1,(a3)
+80002bf8: 80000eb7 lui t4,0x80000
+80002bfc: 00200193 li gp,2
+80002c00: 05d71063 bne a4,t4,80002c40 <fail>
+
+80002c04 <test_3>:
+80002c04: 0006a783 lw a5,0(a3)
+80002c08: 80000eb7 lui t4,0x80000
+80002c0c: 00300193 li gp,3
+80002c10: 03d79863 bne a5,t4,80002c40 <fail>
+
+80002c14 <test_4>:
+80002c14: fff00593 li a1,-1
+80002c18: 0006a023 sw zero,0(a3)
+80002c1c: 80b6a72f amomin.w a4,a1,(a3)
+80002c20: 00000e93 li t4,0
+80002c24: 00400193 li gp,4
+80002c28: 01d71c63 bne a4,t4,80002c40 <fail>
+
+80002c2c <test_5>:
+80002c2c: 0006a783 lw a5,0(a3)
+80002c30: fff00e93 li t4,-1
+80002c34: 00500193 li gp,5
+80002c38: 01d79463 bne a5,t4,80002c40 <fail>
+80002c3c: 00301a63 bne zero,gp,80002c50 <pass>
+
+80002c40 <fail>:
+80002c40: 00119513 slli a0,gp,0x1
+80002c44: 00050063 beqz a0,80002c44 <fail+0x4>
+80002c48: 00156513 ori a0,a0,1
+80002c4c: 00000073 ecall
+
+80002c50 <pass>:
+80002c50: 00100513 li a0,1
+80002c54: 00000073 ecall
+80002c58: c0001073 unimp
diff --git a/test/riscv-tests/rv32ua-v-amomin_w.elf b/test/riscv-tests/rv32ua-v-amomin_w.elf
new file mode 100644
index 0000000..f70515c
--- /dev/null
+++ b/test/riscv-tests/rv32ua-v-amomin_w.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ua-v-amominu_w.dump b/test/riscv-tests/rv32ua-v-amominu_w.dump
new file mode 100644
index 0000000..300f3d5
--- /dev/null
+++ b/test/riscv-tests/rv32ua-v-amominu_w.dump
@@ -0,0 +1,940 @@
+
+rv32ua-v-amominu_w: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00007117 auipc sp,0x7
+8000001c: 35010113 addi sp,sp,848 # 80007368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00002317 auipc t1,0x2
+80002370: c9430313 addi t1,t1,-876 # 80004000 <pt>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00004797 auipc a5,0x4
+8000238c: 06c78793 addi a5,a5,108 # 800063f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00004717 auipc a4,0x4
+800023a0: 05470713 addi a4,a4,84 # 800063f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00004697 auipc a3,0x4
+800023ac: 04f6a623 sw a5,76(a3) # 800063f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00004717 auipc a4,0x4
+800023dc: e2070713 addi a4,a4,-480 # 800061f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf9c08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00004797 auipc a5,0x4
+800024bc: f207ac23 sw zero,-200(a5) # 800063f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00000597 auipc a1,0x0
+800024cc: 79458593 addi a1,a1,1940 # 80002c5c <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00000597 auipc a1,0x0
+8000253c: 7b058593 addi a1,a1,1968 # 80002ce8 <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00000597 auipc a1,0x0
+800025a8: 75c58593 addi a1,a1,1884 # 80002d00 <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00000597 auipc a1,0x0
+80002614: 69058593 addi a1,a1,1680 # 80002ca0 <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00000597 auipc a1,0x0
+8000274c: 68058593 addi a1,a1,1664 # 80002dc8 <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00000597 auipc a1,0x0
+800027c0: 5e858593 addi a1,a1,1512 # 80002da4 <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00004b17 auipc s6,0x4
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800061f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00001d17 auipc s10,0x1
+80002840: 7c4d0d13 addi s10,s10,1988 # 80004000 <pt>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00004717 auipc a4,0x4
+8000285c: b8f72c23 sw a5,-1128(a4) # 800063f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00004717 auipc a4,0x4
+800028e8: b0c70713 addi a4,a4,-1268 # 800063f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00004717 auipc a4,0x4
+800028fc: aef72c23 sw a5,-1288(a4) # 800063f0 <freelist_tail>
+80002900: 00004717 auipc a4,0x4
+80002904: aef72a23 sw a5,-1292(a4) # 800063f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00000617 auipc a2,0x0
+80002914: 4e460613 addi a2,a2,1252 # 80002df4 <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00000617 auipc a2,0x0
+80002980: 3f460613 addi a2,a2,1012 # 80002d70 <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 37460613 addi a2,a2,884 # 80002d3c <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00002797 auipc a5,0x2
+80002a4c: 5b878793 addi a5,a5,1464 # 80005000 <pt+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00001697 auipc a3,0x1
+80002a60: 5af6a223 sw a5,1444(a3) # 80004000 <pt>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00001717 auipc a4,0x1
+80002a6c: 59870713 addi a4,a4,1432 # 80004000 <pt>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00002697 auipc a3,0x2
+80002a7c: 58f6a223 sw a5,1412(a3) # 80004ffc <pt+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf9ccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc03797 auipc a5,0x7fc03
+80002aec: 51878793 addi a5,a5,1304 # ffc06000 <_end+0x7fbffc08>
+80002af0: 00004717 auipc a4,0x4
+80002af4: 90f72223 sw a5,-1788(a4) # 800063f4 <freelist_head>
+80002af8: 7fc03797 auipc a5,0x7fc03
+80002afc: 6f878793 addi a5,a5,1784 # ffc061f0 <_end+0x7fbffdf8>
+80002b00: 00004717 auipc a4,0x4
+80002b04: 8ef72823 sw a5,-1808(a4) # 800063f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00003717 auipc a4,0x3
+80002b10: 4f470713 addi a4,a4,1268 # 80006000 <freelist_nodes>
+80002b14: 00003317 auipc t1,0x3
+80002b18: 6e430313 addi t1,t1,1764 # 800061f8 <user_mapping>
+80002b1c: 00c00793 li a5,12
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00003797 auipc a5,0x3
+80002b6c: 6807a623 sw zero,1676(a5) # 800061f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 03fa07b7 lui a5,0x3fa0
+80002b9c: 00080637 lui a2,0x80
+80002ba0: 22078793 addi a5,a5,544 # 3fa0220 <_start-0x7c05fde0>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: 80000537 lui a0,0x80000
+80002be4: 80000593 li a1,-2048
+80002be8: 00000697 auipc a3,0x0
+80002bec: 41868693 addi a3,a3,1048 # 80003000 <begin_signature>
+80002bf0: 00a6a023 sw a0,0(a3)
+80002bf4: c0b6a72f amominu.w a4,a1,(a3)
+80002bf8: 80000eb7 lui t4,0x80000
+80002bfc: 00200193 li gp,2
+80002c00: 05d71063 bne a4,t4,80002c40 <fail>
+
+80002c04 <test_3>:
+80002c04: 0006a783 lw a5,0(a3)
+80002c08: 80000eb7 lui t4,0x80000
+80002c0c: 00300193 li gp,3
+80002c10: 03d79863 bne a5,t4,80002c40 <fail>
+
+80002c14 <test_4>:
+80002c14: fff00593 li a1,-1
+80002c18: 0006a023 sw zero,0(a3)
+80002c1c: c0b6a72f amominu.w a4,a1,(a3)
+80002c20: 00000e93 li t4,0
+80002c24: 00400193 li gp,4
+80002c28: 01d71c63 bne a4,t4,80002c40 <fail>
+
+80002c2c <test_5>:
+80002c2c: 0006a783 lw a5,0(a3)
+80002c30: 00000e93 li t4,0
+80002c34: 00500193 li gp,5
+80002c38: 01d79463 bne a5,t4,80002c40 <fail>
+80002c3c: 00301a63 bne zero,gp,80002c50 <pass>
+
+80002c40 <fail>:
+80002c40: 00119513 slli a0,gp,0x1
+80002c44: 00050063 beqz a0,80002c44 <fail+0x4>
+80002c48: 00156513 ori a0,a0,1
+80002c4c: 00000073 ecall
+
+80002c50 <pass>:
+80002c50: 00100513 li a0,1
+80002c54: 00000073 ecall
+80002c58: c0001073 unimp
diff --git a/test/riscv-tests/rv32ua-v-amominu_w.elf b/test/riscv-tests/rv32ua-v-amominu_w.elf
new file mode 100644
index 0000000..275f1ba
--- /dev/null
+++ b/test/riscv-tests/rv32ua-v-amominu_w.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ua-v-amoor_w.dump b/test/riscv-tests/rv32ua-v-amoor_w.dump
new file mode 100644
index 0000000..4bea68e
--- /dev/null
+++ b/test/riscv-tests/rv32ua-v-amoor_w.dump
@@ -0,0 +1,939 @@
+
+rv32ua-v-amoor_w: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00007117 auipc sp,0x7
+8000001c: 35010113 addi sp,sp,848 # 80007368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00002317 auipc t1,0x2
+80002370: c9430313 addi t1,t1,-876 # 80004000 <pt>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00004797 auipc a5,0x4
+8000238c: 06c78793 addi a5,a5,108 # 800063f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00004717 auipc a4,0x4
+800023a0: 05470713 addi a4,a4,84 # 800063f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00004697 auipc a3,0x4
+800023ac: 04f6a623 sw a5,76(a3) # 800063f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00004717 auipc a4,0x4
+800023dc: e2070713 addi a4,a4,-480 # 800061f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf9c08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00004797 auipc a5,0x4
+800024bc: f207ac23 sw zero,-200(a5) # 800063f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00000597 auipc a1,0x0
+800024cc: 79058593 addi a1,a1,1936 # 80002c58 <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00000597 auipc a1,0x0
+8000253c: 7ac58593 addi a1,a1,1964 # 80002ce4 <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00000597 auipc a1,0x0
+800025a8: 75858593 addi a1,a1,1880 # 80002cfc <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00000597 auipc a1,0x0
+80002614: 68c58593 addi a1,a1,1676 # 80002c9c <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00000597 auipc a1,0x0
+8000274c: 67c58593 addi a1,a1,1660 # 80002dc4 <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00000597 auipc a1,0x0
+800027c0: 5e458593 addi a1,a1,1508 # 80002da0 <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00004b17 auipc s6,0x4
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800061f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00001d17 auipc s10,0x1
+80002840: 7c4d0d13 addi s10,s10,1988 # 80004000 <pt>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00004717 auipc a4,0x4
+8000285c: b8f72c23 sw a5,-1128(a4) # 800063f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00004717 auipc a4,0x4
+800028e8: b0c70713 addi a4,a4,-1268 # 800063f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00004717 auipc a4,0x4
+800028fc: aef72c23 sw a5,-1288(a4) # 800063f0 <freelist_tail>
+80002900: 00004717 auipc a4,0x4
+80002904: aef72a23 sw a5,-1292(a4) # 800063f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00000617 auipc a2,0x0
+80002914: 4e060613 addi a2,a2,1248 # 80002df0 <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00000617 auipc a2,0x0
+80002980: 3f060613 addi a2,a2,1008 # 80002d6c <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 37060613 addi a2,a2,880 # 80002d38 <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00002797 auipc a5,0x2
+80002a4c: 5b878793 addi a5,a5,1464 # 80005000 <pt+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00001697 auipc a3,0x1
+80002a60: 5af6a223 sw a5,1444(a3) # 80004000 <pt>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00001717 auipc a4,0x1
+80002a6c: 59870713 addi a4,a4,1432 # 80004000 <pt>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00002697 auipc a3,0x2
+80002a7c: 58f6a223 sw a5,1412(a3) # 80004ffc <pt+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf9ccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc03797 auipc a5,0x7fc03
+80002aec: 51878793 addi a5,a5,1304 # ffc06000 <_end+0x7fbffc08>
+80002af0: 00004717 auipc a4,0x4
+80002af4: 90f72223 sw a5,-1788(a4) # 800063f4 <freelist_head>
+80002af8: 7fc03797 auipc a5,0x7fc03
+80002afc: 6f878793 addi a5,a5,1784 # ffc061f0 <_end+0x7fbffdf8>
+80002b00: 00004717 auipc a4,0x4
+80002b04: 8ef72823 sw a5,-1808(a4) # 800063f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00003717 auipc a4,0x3
+80002b10: 4f470713 addi a4,a4,1268 # 80006000 <freelist_nodes>
+80002b14: 00003317 auipc t1,0x3
+80002b18: 6e430313 addi t1,t1,1764 # 800061f8 <user_mapping>
+80002b1c: 00e00793 li a5,14
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00003797 auipc a5,0x3
+80002b6c: 6807a623 sw zero,1676(a5) # 800061f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 05ac37b7 lui a5,0x5ac3
+80002b9c: 00080637 lui a2,0x80
+80002ba0: c2978793 addi a5,a5,-983 # 5ac2c29 <_start-0x7a53d3d7>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: 80000537 lui a0,0x80000
+80002be4: 80000593 li a1,-2048
+80002be8: 00000697 auipc a3,0x0
+80002bec: 41868693 addi a3,a3,1048 # 80003000 <begin_signature>
+80002bf0: 00a6a023 sw a0,0(a3)
+80002bf4: 40b6a72f amoor.w a4,a1,(a3)
+80002bf8: 80000eb7 lui t4,0x80000
+80002bfc: 00200193 li gp,2
+80002c00: 03d71e63 bne a4,t4,80002c3c <fail>
+
+80002c04 <test_3>:
+80002c04: 0006a783 lw a5,0(a3)
+80002c08: 80000e93 li t4,-2048
+80002c0c: 00300193 li gp,3
+80002c10: 03d79663 bne a5,t4,80002c3c <fail>
+
+80002c14 <test_4>:
+80002c14: 00100593 li a1,1
+80002c18: 40b6a72f amoor.w a4,a1,(a3)
+80002c1c: 80000e93 li t4,-2048
+80002c20: 00400193 li gp,4
+80002c24: 01d71c63 bne a4,t4,80002c3c <fail>
+
+80002c28 <test_5>:
+80002c28: 0006a783 lw a5,0(a3)
+80002c2c: 80100e93 li t4,-2047
+80002c30: 00500193 li gp,5
+80002c34: 01d79463 bne a5,t4,80002c3c <fail>
+80002c38: 00301a63 bne zero,gp,80002c4c <pass>
+
+80002c3c <fail>:
+80002c3c: 00119513 slli a0,gp,0x1
+80002c40: 00050063 beqz a0,80002c40 <fail+0x4>
+80002c44: 00156513 ori a0,a0,1
+80002c48: 00000073 ecall
+
+80002c4c <pass>:
+80002c4c: 00100513 li a0,1
+80002c50: 00000073 ecall
+80002c54: c0001073 unimp
diff --git a/test/riscv-tests/rv32ua-v-amoor_w.elf b/test/riscv-tests/rv32ua-v-amoor_w.elf
new file mode 100644
index 0000000..88a70d6
--- /dev/null
+++ b/test/riscv-tests/rv32ua-v-amoor_w.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ua-v-amoswap_w.dump b/test/riscv-tests/rv32ua-v-amoswap_w.dump
new file mode 100644
index 0000000..23eb81f
--- /dev/null
+++ b/test/riscv-tests/rv32ua-v-amoswap_w.dump
@@ -0,0 +1,939 @@
+
+rv32ua-v-amoswap_w: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00007117 auipc sp,0x7
+8000001c: 35010113 addi sp,sp,848 # 80007368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00002317 auipc t1,0x2
+80002370: c9430313 addi t1,t1,-876 # 80004000 <pt>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00004797 auipc a5,0x4
+8000238c: 06c78793 addi a5,a5,108 # 800063f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00004717 auipc a4,0x4
+800023a0: 05470713 addi a4,a4,84 # 800063f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00004697 auipc a3,0x4
+800023ac: 04f6a623 sw a5,76(a3) # 800063f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00004717 auipc a4,0x4
+800023dc: e2070713 addi a4,a4,-480 # 800061f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf9c08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00004797 auipc a5,0x4
+800024bc: f207ac23 sw zero,-200(a5) # 800063f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00000597 auipc a1,0x0
+800024cc: 79058593 addi a1,a1,1936 # 80002c58 <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00000597 auipc a1,0x0
+8000253c: 7ac58593 addi a1,a1,1964 # 80002ce4 <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00000597 auipc a1,0x0
+800025a8: 75858593 addi a1,a1,1880 # 80002cfc <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00000597 auipc a1,0x0
+80002614: 68c58593 addi a1,a1,1676 # 80002c9c <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00000597 auipc a1,0x0
+8000274c: 67c58593 addi a1,a1,1660 # 80002dc4 <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00000597 auipc a1,0x0
+800027c0: 5e458593 addi a1,a1,1508 # 80002da0 <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00004b17 auipc s6,0x4
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800061f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00001d17 auipc s10,0x1
+80002840: 7c4d0d13 addi s10,s10,1988 # 80004000 <pt>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00004717 auipc a4,0x4
+8000285c: b8f72c23 sw a5,-1128(a4) # 800063f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00004717 auipc a4,0x4
+800028e8: b0c70713 addi a4,a4,-1268 # 800063f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00004717 auipc a4,0x4
+800028fc: aef72c23 sw a5,-1288(a4) # 800063f0 <freelist_tail>
+80002900: 00004717 auipc a4,0x4
+80002904: aef72a23 sw a5,-1292(a4) # 800063f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00000617 auipc a2,0x0
+80002914: 4e060613 addi a2,a2,1248 # 80002df0 <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00000617 auipc a2,0x0
+80002980: 3f060613 addi a2,a2,1008 # 80002d6c <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 37060613 addi a2,a2,880 # 80002d38 <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00002797 auipc a5,0x2
+80002a4c: 5b878793 addi a5,a5,1464 # 80005000 <pt+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00001697 auipc a3,0x1
+80002a60: 5af6a223 sw a5,1444(a3) # 80004000 <pt>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00001717 auipc a4,0x1
+80002a6c: 59870713 addi a4,a4,1432 # 80004000 <pt>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00002697 auipc a3,0x2
+80002a7c: 58f6a223 sw a5,1412(a3) # 80004ffc <pt+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf9ccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc03797 auipc a5,0x7fc03
+80002aec: 51878793 addi a5,a5,1304 # ffc06000 <_end+0x7fbffc08>
+80002af0: 00004717 auipc a4,0x4
+80002af4: 90f72223 sw a5,-1788(a4) # 800063f4 <freelist_head>
+80002af8: 7fc03797 auipc a5,0x7fc03
+80002afc: 6f878793 addi a5,a5,1784 # ffc061f0 <_end+0x7fbffdf8>
+80002b00: 00004717 auipc a4,0x4
+80002b04: 8ef72823 sw a5,-1808(a4) # 800063f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00003717 auipc a4,0x3
+80002b10: 4f470713 addi a4,a4,1268 # 80006000 <freelist_nodes>
+80002b14: 00003317 auipc t1,0x3
+80002b18: 6e430313 addi t1,t1,1764 # 800061f8 <user_mapping>
+80002b1c: 02b00793 li a5,43
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00003797 auipc a5,0x3
+80002b6c: 6807a623 sw zero,1676(a5) # 800061f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 042307b7 lui a5,0x4230
+80002b9c: 00080637 lui a2,0x80
+80002ba0: bbf78793 addi a5,a5,-1089 # 422fbbf <_start-0x7bdd0441>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: 80000537 lui a0,0x80000
+80002be4: 80000593 li a1,-2048
+80002be8: 00000697 auipc a3,0x0
+80002bec: 41868693 addi a3,a3,1048 # 80003000 <begin_signature>
+80002bf0: 00a6a023 sw a0,0(a3)
+80002bf4: 08b6a72f amoswap.w a4,a1,(a3)
+80002bf8: 80000eb7 lui t4,0x80000
+80002bfc: 00200193 li gp,2
+80002c00: 03d71e63 bne a4,t4,80002c3c <fail>
+
+80002c04 <test_3>:
+80002c04: 0006a783 lw a5,0(a3)
+80002c08: 80000e93 li t4,-2048
+80002c0c: 00300193 li gp,3
+80002c10: 03d79663 bne a5,t4,80002c3c <fail>
+
+80002c14 <test_4>:
+80002c14: 800005b7 lui a1,0x80000
+80002c18: 08b6a72f amoswap.w a4,a1,(a3)
+80002c1c: 80000e93 li t4,-2048
+80002c20: 00400193 li gp,4
+80002c24: 01d71c63 bne a4,t4,80002c3c <fail>
+
+80002c28 <test_5>:
+80002c28: 0006a783 lw a5,0(a3)
+80002c2c: 80000eb7 lui t4,0x80000
+80002c30: 00500193 li gp,5
+80002c34: 01d79463 bne a5,t4,80002c3c <fail>
+80002c38: 00301a63 bne zero,gp,80002c4c <pass>
+
+80002c3c <fail>:
+80002c3c: 00119513 slli a0,gp,0x1
+80002c40: 00050063 beqz a0,80002c40 <fail+0x4>
+80002c44: 00156513 ori a0,a0,1
+80002c48: 00000073 ecall
+
+80002c4c <pass>:
+80002c4c: 00100513 li a0,1
+80002c50: 00000073 ecall
+80002c54: c0001073 unimp
diff --git a/test/riscv-tests/rv32ua-v-amoswap_w.elf b/test/riscv-tests/rv32ua-v-amoswap_w.elf
new file mode 100644
index 0000000..a7e4636
--- /dev/null
+++ b/test/riscv-tests/rv32ua-v-amoswap_w.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ua-v-amoxor_w.dump b/test/riscv-tests/rv32ua-v-amoxor_w.dump
new file mode 100644
index 0000000..098c0c1
--- /dev/null
+++ b/test/riscv-tests/rv32ua-v-amoxor_w.dump
@@ -0,0 +1,943 @@
+
+rv32ua-v-amoxor_w: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00007117 auipc sp,0x7
+8000001c: 35010113 addi sp,sp,848 # 80007368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00002317 auipc t1,0x2
+80002370: c9430313 addi t1,t1,-876 # 80004000 <pt>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00004797 auipc a5,0x4
+8000238c: 06c78793 addi a5,a5,108 # 800063f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00004717 auipc a4,0x4
+800023a0: 05470713 addi a4,a4,84 # 800063f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00004697 auipc a3,0x4
+800023ac: 04f6a623 sw a5,76(a3) # 800063f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00004717 auipc a4,0x4
+800023dc: e2070713 addi a4,a4,-480 # 800061f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf9c08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00004797 auipc a5,0x4
+800024bc: f207ac23 sw zero,-200(a5) # 800063f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00000597 auipc a1,0x0
+800024cc: 7a058593 addi a1,a1,1952 # 80002c68 <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00000597 auipc a1,0x0
+8000253c: 7bc58593 addi a1,a1,1980 # 80002cf4 <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00000597 auipc a1,0x0
+800025a8: 76858593 addi a1,a1,1896 # 80002d0c <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00000597 auipc a1,0x0
+80002614: 69c58593 addi a1,a1,1692 # 80002cac <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00000597 auipc a1,0x0
+8000274c: 68c58593 addi a1,a1,1676 # 80002dd4 <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00000597 auipc a1,0x0
+800027c0: 5f458593 addi a1,a1,1524 # 80002db0 <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00004b17 auipc s6,0x4
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800061f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00001d17 auipc s10,0x1
+80002840: 7c4d0d13 addi s10,s10,1988 # 80004000 <pt>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00004717 auipc a4,0x4
+8000285c: b8f72c23 sw a5,-1128(a4) # 800063f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00004717 auipc a4,0x4
+800028e8: b0c70713 addi a4,a4,-1268 # 800063f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00004717 auipc a4,0x4
+800028fc: aef72c23 sw a5,-1288(a4) # 800063f0 <freelist_tail>
+80002900: 00004717 auipc a4,0x4
+80002904: aef72a23 sw a5,-1292(a4) # 800063f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00000617 auipc a2,0x0
+80002914: 4f060613 addi a2,a2,1264 # 80002e00 <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00000617 auipc a2,0x0
+80002980: 40060613 addi a2,a2,1024 # 80002d7c <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 38060613 addi a2,a2,896 # 80002d48 <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00002797 auipc a5,0x2
+80002a4c: 5b878793 addi a5,a5,1464 # 80005000 <pt+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00001697 auipc a3,0x1
+80002a60: 5af6a223 sw a5,1444(a3) # 80004000 <pt>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00001717 auipc a4,0x1
+80002a6c: 59870713 addi a4,a4,1432 # 80004000 <pt>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00002697 auipc a3,0x2
+80002a7c: 58f6a223 sw a5,1412(a3) # 80004ffc <pt+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf9ccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc03797 auipc a5,0x7fc03
+80002aec: 51878793 addi a5,a5,1304 # ffc06000 <_end+0x7fbffc08>
+80002af0: 00004717 auipc a4,0x4
+80002af4: 90f72223 sw a5,-1788(a4) # 800063f4 <freelist_head>
+80002af8: 7fc03797 auipc a5,0x7fc03
+80002afc: 6f878793 addi a5,a5,1784 # ffc061f0 <_end+0x7fbffdf8>
+80002b00: 00004717 auipc a4,0x4
+80002b04: 8ef72823 sw a5,-1808(a4) # 800063f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00003717 auipc a4,0x3
+80002b10: 4f470713 addi a4,a4,1268 # 80006000 <freelist_nodes>
+80002b14: 00003317 auipc t1,0x3
+80002b18: 6e430313 addi t1,t1,1764 # 800061f8 <user_mapping>
+80002b1c: 03500793 li a5,53
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00003797 auipc a5,0x3
+80002b6c: 6807a623 sw zero,1676(a5) # 800061f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 0146a7b7 lui a5,0x146a
+80002b9c: 00080637 lui a2,0x80
+80002ba0: 03778793 addi a5,a5,55 # 146a037 <_start-0x7eb95fc9>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: 80000537 lui a0,0x80000
+80002be4: 80000593 li a1,-2048
+80002be8: 00000697 auipc a3,0x0
+80002bec: 41868693 addi a3,a3,1048 # 80003000 <begin_signature>
+80002bf0: 00a6a023 sw a0,0(a3)
+80002bf4: 20b6a72f amoxor.w a4,a1,(a3)
+80002bf8: 80000eb7 lui t4,0x80000
+80002bfc: 00200193 li gp,2
+80002c00: 05d71663 bne a4,t4,80002c4c <fail>
+
+80002c04 <test_3>:
+80002c04: 0006a783 lw a5,0(a3)
+80002c08: 80000eb7 lui t4,0x80000
+80002c0c: 800e8e93 addi t4,t4,-2048 # 7ffff800 <_end+0xffff9408>
+80002c10: 00300193 li gp,3
+80002c14: 03d79c63 bne a5,t4,80002c4c <fail>
+
+80002c18 <test_4>:
+80002c18: c00005b7 lui a1,0xc0000
+80002c1c: 00158593 addi a1,a1,1 # c0000001 <_end+0x3fff9c09>
+80002c20: 20b6a72f amoxor.w a4,a1,(a3)
+80002c24: 80000eb7 lui t4,0x80000
+80002c28: 800e8e93 addi t4,t4,-2048 # 7ffff800 <_end+0xffff9408>
+80002c2c: 00400193 li gp,4
+80002c30: 01d71e63 bne a4,t4,80002c4c <fail>
+
+80002c34 <test_5>:
+80002c34: 0006a783 lw a5,0(a3)
+80002c38: c0000eb7 lui t4,0xc0000
+80002c3c: 801e8e93 addi t4,t4,-2047 # bffff801 <_end+0x3fff9409>
+80002c40: 00500193 li gp,5
+80002c44: 01d79463 bne a5,t4,80002c4c <fail>
+80002c48: 00301a63 bne zero,gp,80002c5c <pass>
+
+80002c4c <fail>:
+80002c4c: 00119513 slli a0,gp,0x1
+80002c50: 00050063 beqz a0,80002c50 <fail+0x4>
+80002c54: 00156513 ori a0,a0,1
+80002c58: 00000073 ecall
+
+80002c5c <pass>:
+80002c5c: 00100513 li a0,1
+80002c60: 00000073 ecall
+80002c64: c0001073 unimp
diff --git a/test/riscv-tests/rv32ua-v-amoxor_w.elf b/test/riscv-tests/rv32ua-v-amoxor_w.elf
new file mode 100644
index 0000000..ecf52a6
--- /dev/null
+++ b/test/riscv-tests/rv32ua-v-amoxor_w.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ua-v-lrsc.dump b/test/riscv-tests/rv32ua-v-lrsc.dump
new file mode 100644
index 0000000..cf552e8
--- /dev/null
+++ b/test/riscv-tests/rv32ua-v-lrsc.dump
@@ -0,0 +1,979 @@
+
+rv32ua-v-lrsc: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00007117 auipc sp,0x7
+8000001c: 35010113 addi sp,sp,848 # 80007368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00002317 auipc t1,0x2
+80002370: c9430313 addi t1,t1,-876 # 80004000 <pt>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00004797 auipc a5,0x4
+8000238c: 06c78793 addi a5,a5,108 # 800063f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00004717 auipc a4,0x4
+800023a0: 05470713 addi a4,a4,84 # 800063f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00004697 auipc a3,0x4
+800023ac: 04f6a623 sw a5,76(a3) # 800063f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00004717 auipc a4,0x4
+800023dc: e2070713 addi a4,a4,-480 # 800061f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf9c08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00004797 auipc a5,0x4
+800024bc: f207ac23 sw zero,-200(a5) # 800063f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00000597 auipc a1,0x0
+800024cc: 7f858593 addi a1,a1,2040 # 80002cc0 <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00001597 auipc a1,0x1
+8000253c: 81458593 addi a1,a1,-2028 # 80002d4c <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00000597 auipc a1,0x0
+800025a8: 7c058593 addi a1,a1,1984 # 80002d64 <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00000597 auipc a1,0x0
+80002614: 6f458593 addi a1,a1,1780 # 80002d04 <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00000597 auipc a1,0x0
+8000274c: 6e458593 addi a1,a1,1764 # 80002e2c <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00000597 auipc a1,0x0
+800027c0: 64c58593 addi a1,a1,1612 # 80002e08 <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00004b17 auipc s6,0x4
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800061f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00001d17 auipc s10,0x1
+80002840: 7c4d0d13 addi s10,s10,1988 # 80004000 <pt>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00004717 auipc a4,0x4
+8000285c: b8f72c23 sw a5,-1128(a4) # 800063f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00004717 auipc a4,0x4
+800028e8: b0c70713 addi a4,a4,-1268 # 800063f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00004717 auipc a4,0x4
+800028fc: aef72c23 sw a5,-1288(a4) # 800063f0 <freelist_tail>
+80002900: 00004717 auipc a4,0x4
+80002904: aef72a23 sw a5,-1292(a4) # 800063f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00000617 auipc a2,0x0
+80002914: 54860613 addi a2,a2,1352 # 80002e58 <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00000617 auipc a2,0x0
+80002980: 45860613 addi a2,a2,1112 # 80002dd4 <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 3d860613 addi a2,a2,984 # 80002da0 <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00002797 auipc a5,0x2
+80002a4c: 5b878793 addi a5,a5,1464 # 80005000 <pt+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00001697 auipc a3,0x1
+80002a60: 5af6a223 sw a5,1444(a3) # 80004000 <pt>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00001717 auipc a4,0x1
+80002a6c: 59870713 addi a4,a4,1432 # 80004000 <pt>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00002697 auipc a3,0x2
+80002a7c: 58f6a223 sw a5,1412(a3) # 80004ffc <pt+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf9ccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc03797 auipc a5,0x7fc03
+80002aec: 51878793 addi a5,a5,1304 # ffc06000 <_end+0x7fbffc08>
+80002af0: 00004717 auipc a4,0x4
+80002af4: 90f72223 sw a5,-1788(a4) # 800063f4 <freelist_head>
+80002af8: 7fc03797 auipc a5,0x7fc03
+80002afc: 6f878793 addi a5,a5,1784 # ffc061f0 <_end+0x7fbffdf8>
+80002b00: 00004717 auipc a4,0x4
+80002b04: 8ef72823 sw a5,-1808(a4) # 800063f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00003717 auipc a4,0x3
+80002b10: 4f470713 addi a4,a4,1268 # 80006000 <freelist_nodes>
+80002b14: 00003317 auipc t1,0x3
+80002b18: 6e430313 addi t1,t1,1764 # 800061f8 <user_mapping>
+80002b1c: 00500793 li a5,5
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00003797 auipc a5,0x3
+80002b6c: 6807a623 sw zero,1676(a5) # 800061f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 01a297b7 lui a5,0x1a29
+80002b9c: 00080637 lui a2,0x80
+80002ba0: cbe78793 addi a5,a5,-834 # 1a28cbe <_start-0x7e5d7342>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: 00000517 auipc a0,0x0
+80002be4: 42050513 addi a0,a0,1056 # 80003000 <begin_signature>
+80002be8: 00100593 li a1,1
+80002bec: 00b5262f amoadd.w a2,a1,(a0)
+80002bf0: 00100693 li a3,1
+80002bf4: fed67ee3 bleu a3,a2,80002bf0 <userstart+0x10>
+80002bf8: 00052583 lw a1,0(a0)
+80002bfc: fed5eee3 bltu a1,a3,80002bf8 <userstart+0x18>
+
+80002c00 <test_2>:
+80002c00: 00000517 auipc a0,0x0
+80002c04: 40850513 addi a0,a0,1032 # 80003008 <foo>
+80002c08: 1805272f sc.w a4,zero,(a0)
+80002c0c: 00100e93 li t4,1
+80002c10: 00200193 li gp,2
+80002c14: 09d71863 bne a4,t4,80002ca4 <fail>
+
+80002c18 <test_3>:
+80002c18: 00000517 auipc a0,0x0
+80002c1c: 3f050513 addi a0,a0,1008 # 80003008 <foo>
+80002c20: 40050593 addi a1,a0,1024
+80002c24: 1005a5af lr.w a1,(a1)
+80002c28: 18b5272f sc.w a4,a1,(a0)
+80002c2c: 00100e93 li t4,1
+80002c30: 00300193 li gp,3
+80002c34: 07d71863 bne a4,t4,80002ca4 <fail>
+80002c38: 00000517 auipc a0,0x0
+80002c3c: 3d050513 addi a0,a0,976 # 80003008 <foo>
+80002c40: 40000593 li a1,1024
+80002c44: 00160613 addi a2,a2,1
+80002c48: 1005272f lr.w a4,(a0)
+80002c4c: 00c70733 add a4,a4,a2
+80002c50: 18e5272f sc.w a4,a4,(a0)
+80002c54: fe071ae3 bnez a4,80002c48 <test_3+0x30>
+80002c58: fff58593 addi a1,a1,-1 # 7fffffff <_end+0xffff9c07>
+80002c5c: fe0596e3 bnez a1,80002c48 <test_3+0x30>
+80002c60: 00000517 auipc a0,0x0
+80002c64: 3a450513 addi a0,a0,932 # 80003004 <barrier>
+80002c68: 00100593 li a1,1
+80002c6c: 00b5202f amoadd.w zero,a1,(a0)
+80002c70: 00052583 lw a1,0(a0)
+80002c74: fed5cee3 blt a1,a3,80002c70 <test_3+0x58>
+80002c78: 0ff0000f fence
+
+80002c7c <test_4>:
+80002c7c: 00000517 auipc a0,0x0
+80002c80: 38c52503 lw a0,908(a0) # 80003008 <foo>
+80002c84: 00969593 slli a1,a3,0x9
+80002c88: 40b50533 sub a0,a0,a1
+80002c8c: fff68693 addi a3,a3,-1
+80002c90: fe06dce3 bgez a3,80002c88 <test_4+0xc>
+80002c94: 00000e93 li t4,0
+80002c98: 00400193 li gp,4
+80002c9c: 01d51463 bne a0,t4,80002ca4 <fail>
+80002ca0: 00301a63 bne zero,gp,80002cb4 <pass>
+
+80002ca4 <fail>:
+80002ca4: 00119513 slli a0,gp,0x1
+80002ca8: 00050063 beqz a0,80002ca8 <fail+0x4>
+80002cac: 00156513 ori a0,a0,1
+80002cb0: 00000073 ecall
+
+80002cb4 <pass>:
+80002cb4: 00100513 li a0,1
+80002cb8: 00000073 ecall
+80002cbc: c0001073 unimp
+
+Disassembly of section .data:
+
+80003000 <begin_signature>:
+80003000: 0000 unimp
+80003002: 0000 unimp
+
+80003004 <barrier>:
+80003004: 0000 unimp
+80003006: 0000 unimp
+
+80003008 <foo>:
+80003008: 0000 unimp
+8000300a: 0000 unimp
diff --git a/test/riscv-tests/rv32ua-v-lrsc.elf b/test/riscv-tests/rv32ua-v-lrsc.elf
new file mode 100644
index 0000000..028bd28
--- /dev/null
+++ b/test/riscv-tests/rv32ua-v-lrsc.elf
Binary files differ
diff --git a/test/riscv-tests/rv32uc-p-rvc.dump b/test/riscv-tests/rv32uc-p-rvc.dump
new file mode 100644
index 0000000..adfa4c2
--- /dev/null
+++ b/test/riscv-tests/rv32uc-p-rvc.dump
@@ -0,0 +1,4904 @@
+
+rv32uc-p-rvc: 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: 00003f17 auipc t5,0x3
+80000044: fc3f2023 sw gp,-64(t5) # 80003000 <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: 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 <reset_vector+0xb0>
+800000f0: 34129073 csrw mepc,t0
+800000f4: f1402573 csrr a0,mhartid
+800000f8: 30200073 mret
+800000fc: 00200193 li gp,2
+80000100: 29a00593 li a1,666
+
+80000104 <test_2>:
+80000104: 6fb0106f j 80001ffe <data+0x1ef6>
+
+80000108 <data>:
+80000108: 3210 fld fa2,32(a2)
+8000010a: 7654 flw fa3,44(a2)
+8000010c: ba98 fsd fa4,48(a3)
+8000010e: fedc fsw fa5,60(a3)
+80000110: 3210 fld fa2,32(a2)
+80000112: 7654 flw fa3,44(a2)
+80000114: ba98 fsd fa4,48(a3)
+80000116: fedc fsw fa5,60(a3)
+80000118: 00000013 nop
+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: 00000013 nop
+80000144: 00000013 nop
+80000148: 00000013 nop
+8000014c: 00000013 nop
+80000150: 00000013 nop
+80000154: 00000013 nop
+80000158: 00000013 nop
+8000015c: 00000013 nop
+80000160: 00000013 nop
+80000164: 00000013 nop
+80000168: 00000013 nop
+8000016c: 00000013 nop
+80000170: 00000013 nop
+80000174: 00000013 nop
+80000178: 00000013 nop
+8000017c: 00000013 nop
+80000180: 00000013 nop
+80000184: 00000013 nop
+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: 00000013 nop
+800001c4: 00000013 nop
+800001c8: 00000013 nop
+800001cc: 00000013 nop
+800001d0: 00000013 nop
+800001d4: 00000013 nop
+800001d8: 00000013 nop
+800001dc: 00000013 nop
+800001e0: 00000013 nop
+800001e4: 00000013 nop
+800001e8: 00000013 nop
+800001ec: 00000013 nop
+800001f0: 00000013 nop
+800001f4: 00000013 nop
+800001f8: 00000013 nop
+800001fc: 00000013 nop
+80000200: 00000013 nop
+80000204: 00000013 nop
+80000208: 00000013 nop
+8000020c: 00000013 nop
+80000210: 00000013 nop
+80000214: 00000013 nop
+80000218: 00000013 nop
+8000021c: 00000013 nop
+80000220: 00000013 nop
+80000224: 00000013 nop
+80000228: 00000013 nop
+8000022c: 00000013 nop
+80000230: 00000013 nop
+80000234: 00000013 nop
+80000238: 00000013 nop
+8000023c: 00000013 nop
+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: 00000013 nop
+80000304: 00000013 nop
+80000308: 00000013 nop
+8000030c: 00000013 nop
+80000310: 00000013 nop
+80000314: 00000013 nop
+80000318: 00000013 nop
+8000031c: 00000013 nop
+80000320: 00000013 nop
+80000324: 00000013 nop
+80000328: 00000013 nop
+8000032c: 00000013 nop
+80000330: 00000013 nop
+80000334: 00000013 nop
+80000338: 00000013 nop
+8000033c: 00000013 nop
+80000340: 00000013 nop
+80000344: 00000013 nop
+80000348: 00000013 nop
+8000034c: 00000013 nop
+80000350: 00000013 nop
+80000354: 00000013 nop
+80000358: 00000013 nop
+8000035c: 00000013 nop
+80000360: 00000013 nop
+80000364: 00000013 nop
+80000368: 00000013 nop
+8000036c: 00000013 nop
+80000370: 00000013 nop
+80000374: 00000013 nop
+80000378: 00000013 nop
+8000037c: 00000013 nop
+80000380: 00000013 nop
+80000384: 00000013 nop
+80000388: 00000013 nop
+8000038c: 00000013 nop
+80000390: 00000013 nop
+80000394: 00000013 nop
+80000398: 00000013 nop
+8000039c: 00000013 nop
+800003a0: 00000013 nop
+800003a4: 00000013 nop
+800003a8: 00000013 nop
+800003ac: 00000013 nop
+800003b0: 00000013 nop
+800003b4: 00000013 nop
+800003b8: 00000013 nop
+800003bc: 00000013 nop
+800003c0: 00000013 nop
+800003c4: 00000013 nop
+800003c8: 00000013 nop
+800003cc: 00000013 nop
+800003d0: 00000013 nop
+800003d4: 00000013 nop
+800003d8: 00000013 nop
+800003dc: 00000013 nop
+800003e0: 00000013 nop
+800003e4: 00000013 nop
+800003e8: 00000013 nop
+800003ec: 00000013 nop
+800003f0: 00000013 nop
+800003f4: 00000013 nop
+800003f8: 00000013 nop
+800003fc: 00000013 nop
+80000400: 00000013 nop
+80000404: 00000013 nop
+80000408: 00000013 nop
+8000040c: 00000013 nop
+80000410: 00000013 nop
+80000414: 00000013 nop
+80000418: 00000013 nop
+8000041c: 00000013 nop
+80000420: 00000013 nop
+80000424: 00000013 nop
+80000428: 00000013 nop
+8000042c: 00000013 nop
+80000430: 00000013 nop
+80000434: 00000013 nop
+80000438: 00000013 nop
+8000043c: 00000013 nop
+80000440: 00000013 nop
+80000444: 00000013 nop
+80000448: 00000013 nop
+8000044c: 00000013 nop
+80000450: 00000013 nop
+80000454: 00000013 nop
+80000458: 00000013 nop
+8000045c: 00000013 nop
+80000460: 00000013 nop
+80000464: 00000013 nop
+80000468: 00000013 nop
+8000046c: 00000013 nop
+80000470: 00000013 nop
+80000474: 00000013 nop
+80000478: 00000013 nop
+8000047c: 00000013 nop
+80000480: 00000013 nop
+80000484: 00000013 nop
+80000488: 00000013 nop
+8000048c: 00000013 nop
+80000490: 00000013 nop
+80000494: 00000013 nop
+80000498: 00000013 nop
+8000049c: 00000013 nop
+800004a0: 00000013 nop
+800004a4: 00000013 nop
+800004a8: 00000013 nop
+800004ac: 00000013 nop
+800004b0: 00000013 nop
+800004b4: 00000013 nop
+800004b8: 00000013 nop
+800004bc: 00000013 nop
+800004c0: 00000013 nop
+800004c4: 00000013 nop
+800004c8: 00000013 nop
+800004cc: 00000013 nop
+800004d0: 00000013 nop
+800004d4: 00000013 nop
+800004d8: 00000013 nop
+800004dc: 00000013 nop
+800004e0: 00000013 nop
+800004e4: 00000013 nop
+800004e8: 00000013 nop
+800004ec: 00000013 nop
+800004f0: 00000013 nop
+800004f4: 00000013 nop
+800004f8: 00000013 nop
+800004fc: 00000013 nop
+80000500: 00000013 nop
+80000504: 00000013 nop
+80000508: 00000013 nop
+8000050c: 00000013 nop
+80000510: 00000013 nop
+80000514: 00000013 nop
+80000518: 00000013 nop
+8000051c: 00000013 nop
+80000520: 00000013 nop
+80000524: 00000013 nop
+80000528: 00000013 nop
+8000052c: 00000013 nop
+80000530: 00000013 nop
+80000534: 00000013 nop
+80000538: 00000013 nop
+8000053c: 00000013 nop
+80000540: 00000013 nop
+80000544: 00000013 nop
+80000548: 00000013 nop
+8000054c: 00000013 nop
+80000550: 00000013 nop
+80000554: 00000013 nop
+80000558: 00000013 nop
+8000055c: 00000013 nop
+80000560: 00000013 nop
+80000564: 00000013 nop
+80000568: 00000013 nop
+8000056c: 00000013 nop
+80000570: 00000013 nop
+80000574: 00000013 nop
+80000578: 00000013 nop
+8000057c: 00000013 nop
+80000580: 00000013 nop
+80000584: 00000013 nop
+80000588: 00000013 nop
+8000058c: 00000013 nop
+80000590: 00000013 nop
+80000594: 00000013 nop
+80000598: 00000013 nop
+8000059c: 00000013 nop
+800005a0: 00000013 nop
+800005a4: 00000013 nop
+800005a8: 00000013 nop
+800005ac: 00000013 nop
+800005b0: 00000013 nop
+800005b4: 00000013 nop
+800005b8: 00000013 nop
+800005bc: 00000013 nop
+800005c0: 00000013 nop
+800005c4: 00000013 nop
+800005c8: 00000013 nop
+800005cc: 00000013 nop
+800005d0: 00000013 nop
+800005d4: 00000013 nop
+800005d8: 00000013 nop
+800005dc: 00000013 nop
+800005e0: 00000013 nop
+800005e4: 00000013 nop
+800005e8: 00000013 nop
+800005ec: 00000013 nop
+800005f0: 00000013 nop
+800005f4: 00000013 nop
+800005f8: 00000013 nop
+800005fc: 00000013 nop
+80000600: 00000013 nop
+80000604: 00000013 nop
+80000608: 00000013 nop
+8000060c: 00000013 nop
+80000610: 00000013 nop
+80000614: 00000013 nop
+80000618: 00000013 nop
+8000061c: 00000013 nop
+80000620: 00000013 nop
+80000624: 00000013 nop
+80000628: 00000013 nop
+8000062c: 00000013 nop
+80000630: 00000013 nop
+80000634: 00000013 nop
+80000638: 00000013 nop
+8000063c: 00000013 nop
+80000640: 00000013 nop
+80000644: 00000013 nop
+80000648: 00000013 nop
+8000064c: 00000013 nop
+80000650: 00000013 nop
+80000654: 00000013 nop
+80000658: 00000013 nop
+8000065c: 00000013 nop
+80000660: 00000013 nop
+80000664: 00000013 nop
+80000668: 00000013 nop
+8000066c: 00000013 nop
+80000670: 00000013 nop
+80000674: 00000013 nop
+80000678: 00000013 nop
+8000067c: 00000013 nop
+80000680: 00000013 nop
+80000684: 00000013 nop
+80000688: 00000013 nop
+8000068c: 00000013 nop
+80000690: 00000013 nop
+80000694: 00000013 nop
+80000698: 00000013 nop
+8000069c: 00000013 nop
+800006a0: 00000013 nop
+800006a4: 00000013 nop
+800006a8: 00000013 nop
+800006ac: 00000013 nop
+800006b0: 00000013 nop
+800006b4: 00000013 nop
+800006b8: 00000013 nop
+800006bc: 00000013 nop
+800006c0: 00000013 nop
+800006c4: 00000013 nop
+800006c8: 00000013 nop
+800006cc: 00000013 nop
+800006d0: 00000013 nop
+800006d4: 00000013 nop
+800006d8: 00000013 nop
+800006dc: 00000013 nop
+800006e0: 00000013 nop
+800006e4: 00000013 nop
+800006e8: 00000013 nop
+800006ec: 00000013 nop
+800006f0: 00000013 nop
+800006f4: 00000013 nop
+800006f8: 00000013 nop
+800006fc: 00000013 nop
+80000700: 00000013 nop
+80000704: 00000013 nop
+80000708: 00000013 nop
+8000070c: 00000013 nop
+80000710: 00000013 nop
+80000714: 00000013 nop
+80000718: 00000013 nop
+8000071c: 00000013 nop
+80000720: 00000013 nop
+80000724: 00000013 nop
+80000728: 00000013 nop
+8000072c: 00000013 nop
+80000730: 00000013 nop
+80000734: 00000013 nop
+80000738: 00000013 nop
+8000073c: 00000013 nop
+80000740: 00000013 nop
+80000744: 00000013 nop
+80000748: 00000013 nop
+8000074c: 00000013 nop
+80000750: 00000013 nop
+80000754: 00000013 nop
+80000758: 00000013 nop
+8000075c: 00000013 nop
+80000760: 00000013 nop
+80000764: 00000013 nop
+80000768: 00000013 nop
+8000076c: 00000013 nop
+80000770: 00000013 nop
+80000774: 00000013 nop
+80000778: 00000013 nop
+8000077c: 00000013 nop
+80000780: 00000013 nop
+80000784: 00000013 nop
+80000788: 00000013 nop
+8000078c: 00000013 nop
+80000790: 00000013 nop
+80000794: 00000013 nop
+80000798: 00000013 nop
+8000079c: 00000013 nop
+800007a0: 00000013 nop
+800007a4: 00000013 nop
+800007a8: 00000013 nop
+800007ac: 00000013 nop
+800007b0: 00000013 nop
+800007b4: 00000013 nop
+800007b8: 00000013 nop
+800007bc: 00000013 nop
+800007c0: 00000013 nop
+800007c4: 00000013 nop
+800007c8: 00000013 nop
+800007cc: 00000013 nop
+800007d0: 00000013 nop
+800007d4: 00000013 nop
+800007d8: 00000013 nop
+800007dc: 00000013 nop
+800007e0: 00000013 nop
+800007e4: 00000013 nop
+800007e8: 00000013 nop
+800007ec: 00000013 nop
+800007f0: 00000013 nop
+800007f4: 00000013 nop
+800007f8: 00000013 nop
+800007fc: 00000013 nop
+80000800: 00000013 nop
+80000804: 00000013 nop
+80000808: 00000013 nop
+8000080c: 00000013 nop
+80000810: 00000013 nop
+80000814: 00000013 nop
+80000818: 00000013 nop
+8000081c: 00000013 nop
+80000820: 00000013 nop
+80000824: 00000013 nop
+80000828: 00000013 nop
+8000082c: 00000013 nop
+80000830: 00000013 nop
+80000834: 00000013 nop
+80000838: 00000013 nop
+8000083c: 00000013 nop
+80000840: 00000013 nop
+80000844: 00000013 nop
+80000848: 00000013 nop
+8000084c: 00000013 nop
+80000850: 00000013 nop
+80000854: 00000013 nop
+80000858: 00000013 nop
+8000085c: 00000013 nop
+80000860: 00000013 nop
+80000864: 00000013 nop
+80000868: 00000013 nop
+8000086c: 00000013 nop
+80000870: 00000013 nop
+80000874: 00000013 nop
+80000878: 00000013 nop
+8000087c: 00000013 nop
+80000880: 00000013 nop
+80000884: 00000013 nop
+80000888: 00000013 nop
+8000088c: 00000013 nop
+80000890: 00000013 nop
+80000894: 00000013 nop
+80000898: 00000013 nop
+8000089c: 00000013 nop
+800008a0: 00000013 nop
+800008a4: 00000013 nop
+800008a8: 00000013 nop
+800008ac: 00000013 nop
+800008b0: 00000013 nop
+800008b4: 00000013 nop
+800008b8: 00000013 nop
+800008bc: 00000013 nop
+800008c0: 00000013 nop
+800008c4: 00000013 nop
+800008c8: 00000013 nop
+800008cc: 00000013 nop
+800008d0: 00000013 nop
+800008d4: 00000013 nop
+800008d8: 00000013 nop
+800008dc: 00000013 nop
+800008e0: 00000013 nop
+800008e4: 00000013 nop
+800008e8: 00000013 nop
+800008ec: 00000013 nop
+800008f0: 00000013 nop
+800008f4: 00000013 nop
+800008f8: 00000013 nop
+800008fc: 00000013 nop
+80000900: 00000013 nop
+80000904: 00000013 nop
+80000908: 00000013 nop
+8000090c: 00000013 nop
+80000910: 00000013 nop
+80000914: 00000013 nop
+80000918: 00000013 nop
+8000091c: 00000013 nop
+80000920: 00000013 nop
+80000924: 00000013 nop
+80000928: 00000013 nop
+8000092c: 00000013 nop
+80000930: 00000013 nop
+80000934: 00000013 nop
+80000938: 00000013 nop
+8000093c: 00000013 nop
+80000940: 00000013 nop
+80000944: 00000013 nop
+80000948: 00000013 nop
+8000094c: 00000013 nop
+80000950: 00000013 nop
+80000954: 00000013 nop
+80000958: 00000013 nop
+8000095c: 00000013 nop
+80000960: 00000013 nop
+80000964: 00000013 nop
+80000968: 00000013 nop
+8000096c: 00000013 nop
+80000970: 00000013 nop
+80000974: 00000013 nop
+80000978: 00000013 nop
+8000097c: 00000013 nop
+80000980: 00000013 nop
+80000984: 00000013 nop
+80000988: 00000013 nop
+8000098c: 00000013 nop
+80000990: 00000013 nop
+80000994: 00000013 nop
+80000998: 00000013 nop
+8000099c: 00000013 nop
+800009a0: 00000013 nop
+800009a4: 00000013 nop
+800009a8: 00000013 nop
+800009ac: 00000013 nop
+800009b0: 00000013 nop
+800009b4: 00000013 nop
+800009b8: 00000013 nop
+800009bc: 00000013 nop
+800009c0: 00000013 nop
+800009c4: 00000013 nop
+800009c8: 00000013 nop
+800009cc: 00000013 nop
+800009d0: 00000013 nop
+800009d4: 00000013 nop
+800009d8: 00000013 nop
+800009dc: 00000013 nop
+800009e0: 00000013 nop
+800009e4: 00000013 nop
+800009e8: 00000013 nop
+800009ec: 00000013 nop
+800009f0: 00000013 nop
+800009f4: 00000013 nop
+800009f8: 00000013 nop
+800009fc: 00000013 nop
+80000a00: 00000013 nop
+80000a04: 00000013 nop
+80000a08: 00000013 nop
+80000a0c: 00000013 nop
+80000a10: 00000013 nop
+80000a14: 00000013 nop
+80000a18: 00000013 nop
+80000a1c: 00000013 nop
+80000a20: 00000013 nop
+80000a24: 00000013 nop
+80000a28: 00000013 nop
+80000a2c: 00000013 nop
+80000a30: 00000013 nop
+80000a34: 00000013 nop
+80000a38: 00000013 nop
+80000a3c: 00000013 nop
+80000a40: 00000013 nop
+80000a44: 00000013 nop
+80000a48: 00000013 nop
+80000a4c: 00000013 nop
+80000a50: 00000013 nop
+80000a54: 00000013 nop
+80000a58: 00000013 nop
+80000a5c: 00000013 nop
+80000a60: 00000013 nop
+80000a64: 00000013 nop
+80000a68: 00000013 nop
+80000a6c: 00000013 nop
+80000a70: 00000013 nop
+80000a74: 00000013 nop
+80000a78: 00000013 nop
+80000a7c: 00000013 nop
+80000a80: 00000013 nop
+80000a84: 00000013 nop
+80000a88: 00000013 nop
+80000a8c: 00000013 nop
+80000a90: 00000013 nop
+80000a94: 00000013 nop
+80000a98: 00000013 nop
+80000a9c: 00000013 nop
+80000aa0: 00000013 nop
+80000aa4: 00000013 nop
+80000aa8: 00000013 nop
+80000aac: 00000013 nop
+80000ab0: 00000013 nop
+80000ab4: 00000013 nop
+80000ab8: 00000013 nop
+80000abc: 00000013 nop
+80000ac0: 00000013 nop
+80000ac4: 00000013 nop
+80000ac8: 00000013 nop
+80000acc: 00000013 nop
+80000ad0: 00000013 nop
+80000ad4: 00000013 nop
+80000ad8: 00000013 nop
+80000adc: 00000013 nop
+80000ae0: 00000013 nop
+80000ae4: 00000013 nop
+80000ae8: 00000013 nop
+80000aec: 00000013 nop
+80000af0: 00000013 nop
+80000af4: 00000013 nop
+80000af8: 00000013 nop
+80000afc: 00000013 nop
+80000b00: 00000013 nop
+80000b04: 00000013 nop
+80000b08: 00000013 nop
+80000b0c: 00000013 nop
+80000b10: 00000013 nop
+80000b14: 00000013 nop
+80000b18: 00000013 nop
+80000b1c: 00000013 nop
+80000b20: 00000013 nop
+80000b24: 00000013 nop
+80000b28: 00000013 nop
+80000b2c: 00000013 nop
+80000b30: 00000013 nop
+80000b34: 00000013 nop
+80000b38: 00000013 nop
+80000b3c: 00000013 nop
+80000b40: 00000013 nop
+80000b44: 00000013 nop
+80000b48: 00000013 nop
+80000b4c: 00000013 nop
+80000b50: 00000013 nop
+80000b54: 00000013 nop
+80000b58: 00000013 nop
+80000b5c: 00000013 nop
+80000b60: 00000013 nop
+80000b64: 00000013 nop
+80000b68: 00000013 nop
+80000b6c: 00000013 nop
+80000b70: 00000013 nop
+80000b74: 00000013 nop
+80000b78: 00000013 nop
+80000b7c: 00000013 nop
+80000b80: 00000013 nop
+80000b84: 00000013 nop
+80000b88: 00000013 nop
+80000b8c: 00000013 nop
+80000b90: 00000013 nop
+80000b94: 00000013 nop
+80000b98: 00000013 nop
+80000b9c: 00000013 nop
+80000ba0: 00000013 nop
+80000ba4: 00000013 nop
+80000ba8: 00000013 nop
+80000bac: 00000013 nop
+80000bb0: 00000013 nop
+80000bb4: 00000013 nop
+80000bb8: 00000013 nop
+80000bbc: 00000013 nop
+80000bc0: 00000013 nop
+80000bc4: 00000013 nop
+80000bc8: 00000013 nop
+80000bcc: 00000013 nop
+80000bd0: 00000013 nop
+80000bd4: 00000013 nop
+80000bd8: 00000013 nop
+80000bdc: 00000013 nop
+80000be0: 00000013 nop
+80000be4: 00000013 nop
+80000be8: 00000013 nop
+80000bec: 00000013 nop
+80000bf0: 00000013 nop
+80000bf4: 00000013 nop
+80000bf8: 00000013 nop
+80000bfc: 00000013 nop
+80000c00: 00000013 nop
+80000c04: 00000013 nop
+80000c08: 00000013 nop
+80000c0c: 00000013 nop
+80000c10: 00000013 nop
+80000c14: 00000013 nop
+80000c18: 00000013 nop
+80000c1c: 00000013 nop
+80000c20: 00000013 nop
+80000c24: 00000013 nop
+80000c28: 00000013 nop
+80000c2c: 00000013 nop
+80000c30: 00000013 nop
+80000c34: 00000013 nop
+80000c38: 00000013 nop
+80000c3c: 00000013 nop
+80000c40: 00000013 nop
+80000c44: 00000013 nop
+80000c48: 00000013 nop
+80000c4c: 00000013 nop
+80000c50: 00000013 nop
+80000c54: 00000013 nop
+80000c58: 00000013 nop
+80000c5c: 00000013 nop
+80000c60: 00000013 nop
+80000c64: 00000013 nop
+80000c68: 00000013 nop
+80000c6c: 00000013 nop
+80000c70: 00000013 nop
+80000c74: 00000013 nop
+80000c78: 00000013 nop
+80000c7c: 00000013 nop
+80000c80: 00000013 nop
+80000c84: 00000013 nop
+80000c88: 00000013 nop
+80000c8c: 00000013 nop
+80000c90: 00000013 nop
+80000c94: 00000013 nop
+80000c98: 00000013 nop
+80000c9c: 00000013 nop
+80000ca0: 00000013 nop
+80000ca4: 00000013 nop
+80000ca8: 00000013 nop
+80000cac: 00000013 nop
+80000cb0: 00000013 nop
+80000cb4: 00000013 nop
+80000cb8: 00000013 nop
+80000cbc: 00000013 nop
+80000cc0: 00000013 nop
+80000cc4: 00000013 nop
+80000cc8: 00000013 nop
+80000ccc: 00000013 nop
+80000cd0: 00000013 nop
+80000cd4: 00000013 nop
+80000cd8: 00000013 nop
+80000cdc: 00000013 nop
+80000ce0: 00000013 nop
+80000ce4: 00000013 nop
+80000ce8: 00000013 nop
+80000cec: 00000013 nop
+80000cf0: 00000013 nop
+80000cf4: 00000013 nop
+80000cf8: 00000013 nop
+80000cfc: 00000013 nop
+80000d00: 00000013 nop
+80000d04: 00000013 nop
+80000d08: 00000013 nop
+80000d0c: 00000013 nop
+80000d10: 00000013 nop
+80000d14: 00000013 nop
+80000d18: 00000013 nop
+80000d1c: 00000013 nop
+80000d20: 00000013 nop
+80000d24: 00000013 nop
+80000d28: 00000013 nop
+80000d2c: 00000013 nop
+80000d30: 00000013 nop
+80000d34: 00000013 nop
+80000d38: 00000013 nop
+80000d3c: 00000013 nop
+80000d40: 00000013 nop
+80000d44: 00000013 nop
+80000d48: 00000013 nop
+80000d4c: 00000013 nop
+80000d50: 00000013 nop
+80000d54: 00000013 nop
+80000d58: 00000013 nop
+80000d5c: 00000013 nop
+80000d60: 00000013 nop
+80000d64: 00000013 nop
+80000d68: 00000013 nop
+80000d6c: 00000013 nop
+80000d70: 00000013 nop
+80000d74: 00000013 nop
+80000d78: 00000013 nop
+80000d7c: 00000013 nop
+80000d80: 00000013 nop
+80000d84: 00000013 nop
+80000d88: 00000013 nop
+80000d8c: 00000013 nop
+80000d90: 00000013 nop
+80000d94: 00000013 nop
+80000d98: 00000013 nop
+80000d9c: 00000013 nop
+80000da0: 00000013 nop
+80000da4: 00000013 nop
+80000da8: 00000013 nop
+80000dac: 00000013 nop
+80000db0: 00000013 nop
+80000db4: 00000013 nop
+80000db8: 00000013 nop
+80000dbc: 00000013 nop
+80000dc0: 00000013 nop
+80000dc4: 00000013 nop
+80000dc8: 00000013 nop
+80000dcc: 00000013 nop
+80000dd0: 00000013 nop
+80000dd4: 00000013 nop
+80000dd8: 00000013 nop
+80000ddc: 00000013 nop
+80000de0: 00000013 nop
+80000de4: 00000013 nop
+80000de8: 00000013 nop
+80000dec: 00000013 nop
+80000df0: 00000013 nop
+80000df4: 00000013 nop
+80000df8: 00000013 nop
+80000dfc: 00000013 nop
+80000e00: 00000013 nop
+80000e04: 00000013 nop
+80000e08: 00000013 nop
+80000e0c: 00000013 nop
+80000e10: 00000013 nop
+80000e14: 00000013 nop
+80000e18: 00000013 nop
+80000e1c: 00000013 nop
+80000e20: 00000013 nop
+80000e24: 00000013 nop
+80000e28: 00000013 nop
+80000e2c: 00000013 nop
+80000e30: 00000013 nop
+80000e34: 00000013 nop
+80000e38: 00000013 nop
+80000e3c: 00000013 nop
+80000e40: 00000013 nop
+80000e44: 00000013 nop
+80000e48: 00000013 nop
+80000e4c: 00000013 nop
+80000e50: 00000013 nop
+80000e54: 00000013 nop
+80000e58: 00000013 nop
+80000e5c: 00000013 nop
+80000e60: 00000013 nop
+80000e64: 00000013 nop
+80000e68: 00000013 nop
+80000e6c: 00000013 nop
+80000e70: 00000013 nop
+80000e74: 00000013 nop
+80000e78: 00000013 nop
+80000e7c: 00000013 nop
+80000e80: 00000013 nop
+80000e84: 00000013 nop
+80000e88: 00000013 nop
+80000e8c: 00000013 nop
+80000e90: 00000013 nop
+80000e94: 00000013 nop
+80000e98: 00000013 nop
+80000e9c: 00000013 nop
+80000ea0: 00000013 nop
+80000ea4: 00000013 nop
+80000ea8: 00000013 nop
+80000eac: 00000013 nop
+80000eb0: 00000013 nop
+80000eb4: 00000013 nop
+80000eb8: 00000013 nop
+80000ebc: 00000013 nop
+80000ec0: 00000013 nop
+80000ec4: 00000013 nop
+80000ec8: 00000013 nop
+80000ecc: 00000013 nop
+80000ed0: 00000013 nop
+80000ed4: 00000013 nop
+80000ed8: 00000013 nop
+80000edc: 00000013 nop
+80000ee0: 00000013 nop
+80000ee4: 00000013 nop
+80000ee8: 00000013 nop
+80000eec: 00000013 nop
+80000ef0: 00000013 nop
+80000ef4: 00000013 nop
+80000ef8: 00000013 nop
+80000efc: 00000013 nop
+80000f00: 00000013 nop
+80000f04: 00000013 nop
+80000f08: 00000013 nop
+80000f0c: 00000013 nop
+80000f10: 00000013 nop
+80000f14: 00000013 nop
+80000f18: 00000013 nop
+80000f1c: 00000013 nop
+80000f20: 00000013 nop
+80000f24: 00000013 nop
+80000f28: 00000013 nop
+80000f2c: 00000013 nop
+80000f30: 00000013 nop
+80000f34: 00000013 nop
+80000f38: 00000013 nop
+80000f3c: 00000013 nop
+80000f40: 00000013 nop
+80000f44: 00000013 nop
+80000f48: 00000013 nop
+80000f4c: 00000013 nop
+80000f50: 00000013 nop
+80000f54: 00000013 nop
+80000f58: 00000013 nop
+80000f5c: 00000013 nop
+80000f60: 00000013 nop
+80000f64: 00000013 nop
+80000f68: 00000013 nop
+80000f6c: 00000013 nop
+80000f70: 00000013 nop
+80000f74: 00000013 nop
+80000f78: 00000013 nop
+80000f7c: 00000013 nop
+80000f80: 00000013 nop
+80000f84: 00000013 nop
+80000f88: 00000013 nop
+80000f8c: 00000013 nop
+80000f90: 00000013 nop
+80000f94: 00000013 nop
+80000f98: 00000013 nop
+80000f9c: 00000013 nop
+80000fa0: 00000013 nop
+80000fa4: 00000013 nop
+80000fa8: 00000013 nop
+80000fac: 00000013 nop
+80000fb0: 00000013 nop
+80000fb4: 00000013 nop
+80000fb8: 00000013 nop
+80000fbc: 00000013 nop
+80000fc0: 00000013 nop
+80000fc4: 00000013 nop
+80000fc8: 00000013 nop
+80000fcc: 00000013 nop
+80000fd0: 00000013 nop
+80000fd4: 00000013 nop
+80000fd8: 00000013 nop
+80000fdc: 00000013 nop
+80000fe0: 00000013 nop
+80000fe4: 00000013 nop
+80000fe8: 00000013 nop
+80000fec: 00000013 nop
+80000ff0: 00000013 nop
+80000ff4: 00000013 nop
+80000ff8: 00000013 nop
+80000ffc: 00000013 nop
+80001000: 0000 unimp
+80001002: 0000 unimp
+80001004: 0000 unimp
+80001006: 0000 unimp
+80001008: 0000 unimp
+8000100a: 0000 unimp
+8000100c: 0000 unimp
+8000100e: 0000 unimp
+80001010: 0000 unimp
+80001012: 0000 unimp
+80001014: 0000 unimp
+80001016: 0000 unimp
+80001018: 0000 unimp
+8000101a: 0000 unimp
+8000101c: 0000 unimp
+8000101e: 0000 unimp
+80001020: 0000 unimp
+80001022: 0000 unimp
+80001024: 0000 unimp
+80001026: 0000 unimp
+80001028: 0000 unimp
+8000102a: 0000 unimp
+8000102c: 0000 unimp
+8000102e: 0000 unimp
+80001030: 0000 unimp
+80001032: 0000 unimp
+80001034: 0000 unimp
+80001036: 0000 unimp
+80001038: 0000 unimp
+8000103a: 0000 unimp
+8000103c: 0000 unimp
+8000103e: 0000 unimp
+80001040: 0000 unimp
+80001042: 0000 unimp
+80001044: 0000 unimp
+80001046: 0000 unimp
+80001048: 0000 unimp
+8000104a: 0000 unimp
+8000104c: 0000 unimp
+8000104e: 0000 unimp
+80001050: 0000 unimp
+80001052: 0000 unimp
+80001054: 0000 unimp
+80001056: 0000 unimp
+80001058: 0000 unimp
+8000105a: 0000 unimp
+8000105c: 0000 unimp
+8000105e: 0000 unimp
+80001060: 0000 unimp
+80001062: 0000 unimp
+80001064: 0000 unimp
+80001066: 0000 unimp
+80001068: 0000 unimp
+8000106a: 0000 unimp
+8000106c: 0000 unimp
+8000106e: 0000 unimp
+80001070: 0000 unimp
+80001072: 0000 unimp
+80001074: 0000 unimp
+80001076: 0000 unimp
+80001078: 0000 unimp
+8000107a: 0000 unimp
+8000107c: 0000 unimp
+8000107e: 0000 unimp
+80001080: 0000 unimp
+80001082: 0000 unimp
+80001084: 0000 unimp
+80001086: 0000 unimp
+80001088: 0000 unimp
+8000108a: 0000 unimp
+8000108c: 0000 unimp
+8000108e: 0000 unimp
+80001090: 0000 unimp
+80001092: 0000 unimp
+80001094: 0000 unimp
+80001096: 0000 unimp
+80001098: 0000 unimp
+8000109a: 0000 unimp
+8000109c: 0000 unimp
+8000109e: 0000 unimp
+800010a0: 0000 unimp
+800010a2: 0000 unimp
+800010a4: 0000 unimp
+800010a6: 0000 unimp
+800010a8: 0000 unimp
+800010aa: 0000 unimp
+800010ac: 0000 unimp
+800010ae: 0000 unimp
+800010b0: 0000 unimp
+800010b2: 0000 unimp
+800010b4: 0000 unimp
+800010b6: 0000 unimp
+800010b8: 0000 unimp
+800010ba: 0000 unimp
+800010bc: 0000 unimp
+800010be: 0000 unimp
+800010c0: 0000 unimp
+800010c2: 0000 unimp
+800010c4: 0000 unimp
+800010c6: 0000 unimp
+800010c8: 0000 unimp
+800010ca: 0000 unimp
+800010cc: 0000 unimp
+800010ce: 0000 unimp
+800010d0: 0000 unimp
+800010d2: 0000 unimp
+800010d4: 0000 unimp
+800010d6: 0000 unimp
+800010d8: 0000 unimp
+800010da: 0000 unimp
+800010dc: 0000 unimp
+800010de: 0000 unimp
+800010e0: 0000 unimp
+800010e2: 0000 unimp
+800010e4: 0000 unimp
+800010e6: 0000 unimp
+800010e8: 0000 unimp
+800010ea: 0000 unimp
+800010ec: 0000 unimp
+800010ee: 0000 unimp
+800010f0: 0000 unimp
+800010f2: 0000 unimp
+800010f4: 0000 unimp
+800010f6: 0000 unimp
+800010f8: 0000 unimp
+800010fa: 0000 unimp
+800010fc: 0000 unimp
+800010fe: 0000 unimp
+80001100: 0000 unimp
+80001102: 0000 unimp
+80001104: 0000 unimp
+80001106: 0000 unimp
+80001108: 0000 unimp
+8000110a: 0000 unimp
+8000110c: 0000 unimp
+8000110e: 0000 unimp
+80001110: 0000 unimp
+80001112: 0000 unimp
+80001114: 0000 unimp
+80001116: 0000 unimp
+80001118: 0000 unimp
+8000111a: 0000 unimp
+8000111c: 0000 unimp
+8000111e: 0000 unimp
+80001120: 0000 unimp
+80001122: 0000 unimp
+80001124: 0000 unimp
+80001126: 0000 unimp
+80001128: 0000 unimp
+8000112a: 0000 unimp
+8000112c: 0000 unimp
+8000112e: 0000 unimp
+80001130: 0000 unimp
+80001132: 0000 unimp
+80001134: 0000 unimp
+80001136: 0000 unimp
+80001138: 0000 unimp
+8000113a: 0000 unimp
+8000113c: 0000 unimp
+8000113e: 0000 unimp
+80001140: 0000 unimp
+80001142: 0000 unimp
+80001144: 0000 unimp
+80001146: 0000 unimp
+80001148: 0000 unimp
+8000114a: 0000 unimp
+8000114c: 0000 unimp
+8000114e: 0000 unimp
+80001150: 0000 unimp
+80001152: 0000 unimp
+80001154: 0000 unimp
+80001156: 0000 unimp
+80001158: 0000 unimp
+8000115a: 0000 unimp
+8000115c: 0000 unimp
+8000115e: 0000 unimp
+80001160: 0000 unimp
+80001162: 0000 unimp
+80001164: 0000 unimp
+80001166: 0000 unimp
+80001168: 0000 unimp
+8000116a: 0000 unimp
+8000116c: 0000 unimp
+8000116e: 0000 unimp
+80001170: 0000 unimp
+80001172: 0000 unimp
+80001174: 0000 unimp
+80001176: 0000 unimp
+80001178: 0000 unimp
+8000117a: 0000 unimp
+8000117c: 0000 unimp
+8000117e: 0000 unimp
+80001180: 0000 unimp
+80001182: 0000 unimp
+80001184: 0000 unimp
+80001186: 0000 unimp
+80001188: 0000 unimp
+8000118a: 0000 unimp
+8000118c: 0000 unimp
+8000118e: 0000 unimp
+80001190: 0000 unimp
+80001192: 0000 unimp
+80001194: 0000 unimp
+80001196: 0000 unimp
+80001198: 0000 unimp
+8000119a: 0000 unimp
+8000119c: 0000 unimp
+8000119e: 0000 unimp
+800011a0: 0000 unimp
+800011a2: 0000 unimp
+800011a4: 0000 unimp
+800011a6: 0000 unimp
+800011a8: 0000 unimp
+800011aa: 0000 unimp
+800011ac: 0000 unimp
+800011ae: 0000 unimp
+800011b0: 0000 unimp
+800011b2: 0000 unimp
+800011b4: 0000 unimp
+800011b6: 0000 unimp
+800011b8: 0000 unimp
+800011ba: 0000 unimp
+800011bc: 0000 unimp
+800011be: 0000 unimp
+800011c0: 0000 unimp
+800011c2: 0000 unimp
+800011c4: 0000 unimp
+800011c6: 0000 unimp
+800011c8: 0000 unimp
+800011ca: 0000 unimp
+800011cc: 0000 unimp
+800011ce: 0000 unimp
+800011d0: 0000 unimp
+800011d2: 0000 unimp
+800011d4: 0000 unimp
+800011d6: 0000 unimp
+800011d8: 0000 unimp
+800011da: 0000 unimp
+800011dc: 0000 unimp
+800011de: 0000 unimp
+800011e0: 0000 unimp
+800011e2: 0000 unimp
+800011e4: 0000 unimp
+800011e6: 0000 unimp
+800011e8: 0000 unimp
+800011ea: 0000 unimp
+800011ec: 0000 unimp
+800011ee: 0000 unimp
+800011f0: 0000 unimp
+800011f2: 0000 unimp
+800011f4: 0000 unimp
+800011f6: 0000 unimp
+800011f8: 0000 unimp
+800011fa: 0000 unimp
+800011fc: 0000 unimp
+800011fe: 0000 unimp
+80001200: 0000 unimp
+80001202: 0000 unimp
+80001204: 0000 unimp
+80001206: 0000 unimp
+80001208: 0000 unimp
+8000120a: 0000 unimp
+8000120c: 0000 unimp
+8000120e: 0000 unimp
+80001210: 0000 unimp
+80001212: 0000 unimp
+80001214: 0000 unimp
+80001216: 0000 unimp
+80001218: 0000 unimp
+8000121a: 0000 unimp
+8000121c: 0000 unimp
+8000121e: 0000 unimp
+80001220: 0000 unimp
+80001222: 0000 unimp
+80001224: 0000 unimp
+80001226: 0000 unimp
+80001228: 0000 unimp
+8000122a: 0000 unimp
+8000122c: 0000 unimp
+8000122e: 0000 unimp
+80001230: 0000 unimp
+80001232: 0000 unimp
+80001234: 0000 unimp
+80001236: 0000 unimp
+80001238: 0000 unimp
+8000123a: 0000 unimp
+8000123c: 0000 unimp
+8000123e: 0000 unimp
+80001240: 0000 unimp
+80001242: 0000 unimp
+80001244: 0000 unimp
+80001246: 0000 unimp
+80001248: 0000 unimp
+8000124a: 0000 unimp
+8000124c: 0000 unimp
+8000124e: 0000 unimp
+80001250: 0000 unimp
+80001252: 0000 unimp
+80001254: 0000 unimp
+80001256: 0000 unimp
+80001258: 0000 unimp
+8000125a: 0000 unimp
+8000125c: 0000 unimp
+8000125e: 0000 unimp
+80001260: 0000 unimp
+80001262: 0000 unimp
+80001264: 0000 unimp
+80001266: 0000 unimp
+80001268: 0000 unimp
+8000126a: 0000 unimp
+8000126c: 0000 unimp
+8000126e: 0000 unimp
+80001270: 0000 unimp
+80001272: 0000 unimp
+80001274: 0000 unimp
+80001276: 0000 unimp
+80001278: 0000 unimp
+8000127a: 0000 unimp
+8000127c: 0000 unimp
+8000127e: 0000 unimp
+80001280: 0000 unimp
+80001282: 0000 unimp
+80001284: 0000 unimp
+80001286: 0000 unimp
+80001288: 0000 unimp
+8000128a: 0000 unimp
+8000128c: 0000 unimp
+8000128e: 0000 unimp
+80001290: 0000 unimp
+80001292: 0000 unimp
+80001294: 0000 unimp
+80001296: 0000 unimp
+80001298: 0000 unimp
+8000129a: 0000 unimp
+8000129c: 0000 unimp
+8000129e: 0000 unimp
+800012a0: 0000 unimp
+800012a2: 0000 unimp
+800012a4: 0000 unimp
+800012a6: 0000 unimp
+800012a8: 0000 unimp
+800012aa: 0000 unimp
+800012ac: 0000 unimp
+800012ae: 0000 unimp
+800012b0: 0000 unimp
+800012b2: 0000 unimp
+800012b4: 0000 unimp
+800012b6: 0000 unimp
+800012b8: 0000 unimp
+800012ba: 0000 unimp
+800012bc: 0000 unimp
+800012be: 0000 unimp
+800012c0: 0000 unimp
+800012c2: 0000 unimp
+800012c4: 0000 unimp
+800012c6: 0000 unimp
+800012c8: 0000 unimp
+800012ca: 0000 unimp
+800012cc: 0000 unimp
+800012ce: 0000 unimp
+800012d0: 0000 unimp
+800012d2: 0000 unimp
+800012d4: 0000 unimp
+800012d6: 0000 unimp
+800012d8: 0000 unimp
+800012da: 0000 unimp
+800012dc: 0000 unimp
+800012de: 0000 unimp
+800012e0: 0000 unimp
+800012e2: 0000 unimp
+800012e4: 0000 unimp
+800012e6: 0000 unimp
+800012e8: 0000 unimp
+800012ea: 0000 unimp
+800012ec: 0000 unimp
+800012ee: 0000 unimp
+800012f0: 0000 unimp
+800012f2: 0000 unimp
+800012f4: 0000 unimp
+800012f6: 0000 unimp
+800012f8: 0000 unimp
+800012fa: 0000 unimp
+800012fc: 0000 unimp
+800012fe: 0000 unimp
+80001300: 0000 unimp
+80001302: 0000 unimp
+80001304: 0000 unimp
+80001306: 0000 unimp
+80001308: 0000 unimp
+8000130a: 0000 unimp
+8000130c: 0000 unimp
+8000130e: 0000 unimp
+80001310: 0000 unimp
+80001312: 0000 unimp
+80001314: 0000 unimp
+80001316: 0000 unimp
+80001318: 0000 unimp
+8000131a: 0000 unimp
+8000131c: 0000 unimp
+8000131e: 0000 unimp
+80001320: 0000 unimp
+80001322: 0000 unimp
+80001324: 0000 unimp
+80001326: 0000 unimp
+80001328: 0000 unimp
+8000132a: 0000 unimp
+8000132c: 0000 unimp
+8000132e: 0000 unimp
+80001330: 0000 unimp
+80001332: 0000 unimp
+80001334: 0000 unimp
+80001336: 0000 unimp
+80001338: 0000 unimp
+8000133a: 0000 unimp
+8000133c: 0000 unimp
+8000133e: 0000 unimp
+80001340: 0000 unimp
+80001342: 0000 unimp
+80001344: 0000 unimp
+80001346: 0000 unimp
+80001348: 0000 unimp
+8000134a: 0000 unimp
+8000134c: 0000 unimp
+8000134e: 0000 unimp
+80001350: 0000 unimp
+80001352: 0000 unimp
+80001354: 0000 unimp
+80001356: 0000 unimp
+80001358: 0000 unimp
+8000135a: 0000 unimp
+8000135c: 0000 unimp
+8000135e: 0000 unimp
+80001360: 0000 unimp
+80001362: 0000 unimp
+80001364: 0000 unimp
+80001366: 0000 unimp
+80001368: 0000 unimp
+8000136a: 0000 unimp
+8000136c: 0000 unimp
+8000136e: 0000 unimp
+80001370: 0000 unimp
+80001372: 0000 unimp
+80001374: 0000 unimp
+80001376: 0000 unimp
+80001378: 0000 unimp
+8000137a: 0000 unimp
+8000137c: 0000 unimp
+8000137e: 0000 unimp
+80001380: 0000 unimp
+80001382: 0000 unimp
+80001384: 0000 unimp
+80001386: 0000 unimp
+80001388: 0000 unimp
+8000138a: 0000 unimp
+8000138c: 0000 unimp
+8000138e: 0000 unimp
+80001390: 0000 unimp
+80001392: 0000 unimp
+80001394: 0000 unimp
+80001396: 0000 unimp
+80001398: 0000 unimp
+8000139a: 0000 unimp
+8000139c: 0000 unimp
+8000139e: 0000 unimp
+800013a0: 0000 unimp
+800013a2: 0000 unimp
+800013a4: 0000 unimp
+800013a6: 0000 unimp
+800013a8: 0000 unimp
+800013aa: 0000 unimp
+800013ac: 0000 unimp
+800013ae: 0000 unimp
+800013b0: 0000 unimp
+800013b2: 0000 unimp
+800013b4: 0000 unimp
+800013b6: 0000 unimp
+800013b8: 0000 unimp
+800013ba: 0000 unimp
+800013bc: 0000 unimp
+800013be: 0000 unimp
+800013c0: 0000 unimp
+800013c2: 0000 unimp
+800013c4: 0000 unimp
+800013c6: 0000 unimp
+800013c8: 0000 unimp
+800013ca: 0000 unimp
+800013cc: 0000 unimp
+800013ce: 0000 unimp
+800013d0: 0000 unimp
+800013d2: 0000 unimp
+800013d4: 0000 unimp
+800013d6: 0000 unimp
+800013d8: 0000 unimp
+800013da: 0000 unimp
+800013dc: 0000 unimp
+800013de: 0000 unimp
+800013e0: 0000 unimp
+800013e2: 0000 unimp
+800013e4: 0000 unimp
+800013e6: 0000 unimp
+800013e8: 0000 unimp
+800013ea: 0000 unimp
+800013ec: 0000 unimp
+800013ee: 0000 unimp
+800013f0: 0000 unimp
+800013f2: 0000 unimp
+800013f4: 0000 unimp
+800013f6: 0000 unimp
+800013f8: 0000 unimp
+800013fa: 0000 unimp
+800013fc: 0000 unimp
+800013fe: 0000 unimp
+80001400: 0000 unimp
+80001402: 0000 unimp
+80001404: 0000 unimp
+80001406: 0000 unimp
+80001408: 0000 unimp
+8000140a: 0000 unimp
+8000140c: 0000 unimp
+8000140e: 0000 unimp
+80001410: 0000 unimp
+80001412: 0000 unimp
+80001414: 0000 unimp
+80001416: 0000 unimp
+80001418: 0000 unimp
+8000141a: 0000 unimp
+8000141c: 0000 unimp
+8000141e: 0000 unimp
+80001420: 0000 unimp
+80001422: 0000 unimp
+80001424: 0000 unimp
+80001426: 0000 unimp
+80001428: 0000 unimp
+8000142a: 0000 unimp
+8000142c: 0000 unimp
+8000142e: 0000 unimp
+80001430: 0000 unimp
+80001432: 0000 unimp
+80001434: 0000 unimp
+80001436: 0000 unimp
+80001438: 0000 unimp
+8000143a: 0000 unimp
+8000143c: 0000 unimp
+8000143e: 0000 unimp
+80001440: 0000 unimp
+80001442: 0000 unimp
+80001444: 0000 unimp
+80001446: 0000 unimp
+80001448: 0000 unimp
+8000144a: 0000 unimp
+8000144c: 0000 unimp
+8000144e: 0000 unimp
+80001450: 0000 unimp
+80001452: 0000 unimp
+80001454: 0000 unimp
+80001456: 0000 unimp
+80001458: 0000 unimp
+8000145a: 0000 unimp
+8000145c: 0000 unimp
+8000145e: 0000 unimp
+80001460: 0000 unimp
+80001462: 0000 unimp
+80001464: 0000 unimp
+80001466: 0000 unimp
+80001468: 0000 unimp
+8000146a: 0000 unimp
+8000146c: 0000 unimp
+8000146e: 0000 unimp
+80001470: 0000 unimp
+80001472: 0000 unimp
+80001474: 0000 unimp
+80001476: 0000 unimp
+80001478: 0000 unimp
+8000147a: 0000 unimp
+8000147c: 0000 unimp
+8000147e: 0000 unimp
+80001480: 0000 unimp
+80001482: 0000 unimp
+80001484: 0000 unimp
+80001486: 0000 unimp
+80001488: 0000 unimp
+8000148a: 0000 unimp
+8000148c: 0000 unimp
+8000148e: 0000 unimp
+80001490: 0000 unimp
+80001492: 0000 unimp
+80001494: 0000 unimp
+80001496: 0000 unimp
+80001498: 0000 unimp
+8000149a: 0000 unimp
+8000149c: 0000 unimp
+8000149e: 0000 unimp
+800014a0: 0000 unimp
+800014a2: 0000 unimp
+800014a4: 0000 unimp
+800014a6: 0000 unimp
+800014a8: 0000 unimp
+800014aa: 0000 unimp
+800014ac: 0000 unimp
+800014ae: 0000 unimp
+800014b0: 0000 unimp
+800014b2: 0000 unimp
+800014b4: 0000 unimp
+800014b6: 0000 unimp
+800014b8: 0000 unimp
+800014ba: 0000 unimp
+800014bc: 0000 unimp
+800014be: 0000 unimp
+800014c0: 0000 unimp
+800014c2: 0000 unimp
+800014c4: 0000 unimp
+800014c6: 0000 unimp
+800014c8: 0000 unimp
+800014ca: 0000 unimp
+800014cc: 0000 unimp
+800014ce: 0000 unimp
+800014d0: 0000 unimp
+800014d2: 0000 unimp
+800014d4: 0000 unimp
+800014d6: 0000 unimp
+800014d8: 0000 unimp
+800014da: 0000 unimp
+800014dc: 0000 unimp
+800014de: 0000 unimp
+800014e0: 0000 unimp
+800014e2: 0000 unimp
+800014e4: 0000 unimp
+800014e6: 0000 unimp
+800014e8: 0000 unimp
+800014ea: 0000 unimp
+800014ec: 0000 unimp
+800014ee: 0000 unimp
+800014f0: 0000 unimp
+800014f2: 0000 unimp
+800014f4: 0000 unimp
+800014f6: 0000 unimp
+800014f8: 0000 unimp
+800014fa: 0000 unimp
+800014fc: 0000 unimp
+800014fe: 0000 unimp
+80001500: 0000 unimp
+80001502: 0000 unimp
+80001504: 0000 unimp
+80001506: 0000 unimp
+80001508: 0000 unimp
+8000150a: 0000 unimp
+8000150c: 0000 unimp
+8000150e: 0000 unimp
+80001510: 0000 unimp
+80001512: 0000 unimp
+80001514: 0000 unimp
+80001516: 0000 unimp
+80001518: 0000 unimp
+8000151a: 0000 unimp
+8000151c: 0000 unimp
+8000151e: 0000 unimp
+80001520: 0000 unimp
+80001522: 0000 unimp
+80001524: 0000 unimp
+80001526: 0000 unimp
+80001528: 0000 unimp
+8000152a: 0000 unimp
+8000152c: 0000 unimp
+8000152e: 0000 unimp
+80001530: 0000 unimp
+80001532: 0000 unimp
+80001534: 0000 unimp
+80001536: 0000 unimp
+80001538: 0000 unimp
+8000153a: 0000 unimp
+8000153c: 0000 unimp
+8000153e: 0000 unimp
+80001540: 0000 unimp
+80001542: 0000 unimp
+80001544: 0000 unimp
+80001546: 0000 unimp
+80001548: 0000 unimp
+8000154a: 0000 unimp
+8000154c: 0000 unimp
+8000154e: 0000 unimp
+80001550: 0000 unimp
+80001552: 0000 unimp
+80001554: 0000 unimp
+80001556: 0000 unimp
+80001558: 0000 unimp
+8000155a: 0000 unimp
+8000155c: 0000 unimp
+8000155e: 0000 unimp
+80001560: 0000 unimp
+80001562: 0000 unimp
+80001564: 0000 unimp
+80001566: 0000 unimp
+80001568: 0000 unimp
+8000156a: 0000 unimp
+8000156c: 0000 unimp
+8000156e: 0000 unimp
+80001570: 0000 unimp
+80001572: 0000 unimp
+80001574: 0000 unimp
+80001576: 0000 unimp
+80001578: 0000 unimp
+8000157a: 0000 unimp
+8000157c: 0000 unimp
+8000157e: 0000 unimp
+80001580: 0000 unimp
+80001582: 0000 unimp
+80001584: 0000 unimp
+80001586: 0000 unimp
+80001588: 0000 unimp
+8000158a: 0000 unimp
+8000158c: 0000 unimp
+8000158e: 0000 unimp
+80001590: 0000 unimp
+80001592: 0000 unimp
+80001594: 0000 unimp
+80001596: 0000 unimp
+80001598: 0000 unimp
+8000159a: 0000 unimp
+8000159c: 0000 unimp
+8000159e: 0000 unimp
+800015a0: 0000 unimp
+800015a2: 0000 unimp
+800015a4: 0000 unimp
+800015a6: 0000 unimp
+800015a8: 0000 unimp
+800015aa: 0000 unimp
+800015ac: 0000 unimp
+800015ae: 0000 unimp
+800015b0: 0000 unimp
+800015b2: 0000 unimp
+800015b4: 0000 unimp
+800015b6: 0000 unimp
+800015b8: 0000 unimp
+800015ba: 0000 unimp
+800015bc: 0000 unimp
+800015be: 0000 unimp
+800015c0: 0000 unimp
+800015c2: 0000 unimp
+800015c4: 0000 unimp
+800015c6: 0000 unimp
+800015c8: 0000 unimp
+800015ca: 0000 unimp
+800015cc: 0000 unimp
+800015ce: 0000 unimp
+800015d0: 0000 unimp
+800015d2: 0000 unimp
+800015d4: 0000 unimp
+800015d6: 0000 unimp
+800015d8: 0000 unimp
+800015da: 0000 unimp
+800015dc: 0000 unimp
+800015de: 0000 unimp
+800015e0: 0000 unimp
+800015e2: 0000 unimp
+800015e4: 0000 unimp
+800015e6: 0000 unimp
+800015e8: 0000 unimp
+800015ea: 0000 unimp
+800015ec: 0000 unimp
+800015ee: 0000 unimp
+800015f0: 0000 unimp
+800015f2: 0000 unimp
+800015f4: 0000 unimp
+800015f6: 0000 unimp
+800015f8: 0000 unimp
+800015fa: 0000 unimp
+800015fc: 0000 unimp
+800015fe: 0000 unimp
+80001600: 0000 unimp
+80001602: 0000 unimp
+80001604: 0000 unimp
+80001606: 0000 unimp
+80001608: 0000 unimp
+8000160a: 0000 unimp
+8000160c: 0000 unimp
+8000160e: 0000 unimp
+80001610: 0000 unimp
+80001612: 0000 unimp
+80001614: 0000 unimp
+80001616: 0000 unimp
+80001618: 0000 unimp
+8000161a: 0000 unimp
+8000161c: 0000 unimp
+8000161e: 0000 unimp
+80001620: 0000 unimp
+80001622: 0000 unimp
+80001624: 0000 unimp
+80001626: 0000 unimp
+80001628: 0000 unimp
+8000162a: 0000 unimp
+8000162c: 0000 unimp
+8000162e: 0000 unimp
+80001630: 0000 unimp
+80001632: 0000 unimp
+80001634: 0000 unimp
+80001636: 0000 unimp
+80001638: 0000 unimp
+8000163a: 0000 unimp
+8000163c: 0000 unimp
+8000163e: 0000 unimp
+80001640: 0000 unimp
+80001642: 0000 unimp
+80001644: 0000 unimp
+80001646: 0000 unimp
+80001648: 0000 unimp
+8000164a: 0000 unimp
+8000164c: 0000 unimp
+8000164e: 0000 unimp
+80001650: 0000 unimp
+80001652: 0000 unimp
+80001654: 0000 unimp
+80001656: 0000 unimp
+80001658: 0000 unimp
+8000165a: 0000 unimp
+8000165c: 0000 unimp
+8000165e: 0000 unimp
+80001660: 0000 unimp
+80001662: 0000 unimp
+80001664: 0000 unimp
+80001666: 0000 unimp
+80001668: 0000 unimp
+8000166a: 0000 unimp
+8000166c: 0000 unimp
+8000166e: 0000 unimp
+80001670: 0000 unimp
+80001672: 0000 unimp
+80001674: 0000 unimp
+80001676: 0000 unimp
+80001678: 0000 unimp
+8000167a: 0000 unimp
+8000167c: 0000 unimp
+8000167e: 0000 unimp
+80001680: 0000 unimp
+80001682: 0000 unimp
+80001684: 0000 unimp
+80001686: 0000 unimp
+80001688: 0000 unimp
+8000168a: 0000 unimp
+8000168c: 0000 unimp
+8000168e: 0000 unimp
+80001690: 0000 unimp
+80001692: 0000 unimp
+80001694: 0000 unimp
+80001696: 0000 unimp
+80001698: 0000 unimp
+8000169a: 0000 unimp
+8000169c: 0000 unimp
+8000169e: 0000 unimp
+800016a0: 0000 unimp
+800016a2: 0000 unimp
+800016a4: 0000 unimp
+800016a6: 0000 unimp
+800016a8: 0000 unimp
+800016aa: 0000 unimp
+800016ac: 0000 unimp
+800016ae: 0000 unimp
+800016b0: 0000 unimp
+800016b2: 0000 unimp
+800016b4: 0000 unimp
+800016b6: 0000 unimp
+800016b8: 0000 unimp
+800016ba: 0000 unimp
+800016bc: 0000 unimp
+800016be: 0000 unimp
+800016c0: 0000 unimp
+800016c2: 0000 unimp
+800016c4: 0000 unimp
+800016c6: 0000 unimp
+800016c8: 0000 unimp
+800016ca: 0000 unimp
+800016cc: 0000 unimp
+800016ce: 0000 unimp
+800016d0: 0000 unimp
+800016d2: 0000 unimp
+800016d4: 0000 unimp
+800016d6: 0000 unimp
+800016d8: 0000 unimp
+800016da: 0000 unimp
+800016dc: 0000 unimp
+800016de: 0000 unimp
+800016e0: 0000 unimp
+800016e2: 0000 unimp
+800016e4: 0000 unimp
+800016e6: 0000 unimp
+800016e8: 0000 unimp
+800016ea: 0000 unimp
+800016ec: 0000 unimp
+800016ee: 0000 unimp
+800016f0: 0000 unimp
+800016f2: 0000 unimp
+800016f4: 0000 unimp
+800016f6: 0000 unimp
+800016f8: 0000 unimp
+800016fa: 0000 unimp
+800016fc: 0000 unimp
+800016fe: 0000 unimp
+80001700: 0000 unimp
+80001702: 0000 unimp
+80001704: 0000 unimp
+80001706: 0000 unimp
+80001708: 0000 unimp
+8000170a: 0000 unimp
+8000170c: 0000 unimp
+8000170e: 0000 unimp
+80001710: 0000 unimp
+80001712: 0000 unimp
+80001714: 0000 unimp
+80001716: 0000 unimp
+80001718: 0000 unimp
+8000171a: 0000 unimp
+8000171c: 0000 unimp
+8000171e: 0000 unimp
+80001720: 0000 unimp
+80001722: 0000 unimp
+80001724: 0000 unimp
+80001726: 0000 unimp
+80001728: 0000 unimp
+8000172a: 0000 unimp
+8000172c: 0000 unimp
+8000172e: 0000 unimp
+80001730: 0000 unimp
+80001732: 0000 unimp
+80001734: 0000 unimp
+80001736: 0000 unimp
+80001738: 0000 unimp
+8000173a: 0000 unimp
+8000173c: 0000 unimp
+8000173e: 0000 unimp
+80001740: 0000 unimp
+80001742: 0000 unimp
+80001744: 0000 unimp
+80001746: 0000 unimp
+80001748: 0000 unimp
+8000174a: 0000 unimp
+8000174c: 0000 unimp
+8000174e: 0000 unimp
+80001750: 0000 unimp
+80001752: 0000 unimp
+80001754: 0000 unimp
+80001756: 0000 unimp
+80001758: 0000 unimp
+8000175a: 0000 unimp
+8000175c: 0000 unimp
+8000175e: 0000 unimp
+80001760: 0000 unimp
+80001762: 0000 unimp
+80001764: 0000 unimp
+80001766: 0000 unimp
+80001768: 0000 unimp
+8000176a: 0000 unimp
+8000176c: 0000 unimp
+8000176e: 0000 unimp
+80001770: 0000 unimp
+80001772: 0000 unimp
+80001774: 0000 unimp
+80001776: 0000 unimp
+80001778: 0000 unimp
+8000177a: 0000 unimp
+8000177c: 0000 unimp
+8000177e: 0000 unimp
+80001780: 0000 unimp
+80001782: 0000 unimp
+80001784: 0000 unimp
+80001786: 0000 unimp
+80001788: 0000 unimp
+8000178a: 0000 unimp
+8000178c: 0000 unimp
+8000178e: 0000 unimp
+80001790: 0000 unimp
+80001792: 0000 unimp
+80001794: 0000 unimp
+80001796: 0000 unimp
+80001798: 0000 unimp
+8000179a: 0000 unimp
+8000179c: 0000 unimp
+8000179e: 0000 unimp
+800017a0: 0000 unimp
+800017a2: 0000 unimp
+800017a4: 0000 unimp
+800017a6: 0000 unimp
+800017a8: 0000 unimp
+800017aa: 0000 unimp
+800017ac: 0000 unimp
+800017ae: 0000 unimp
+800017b0: 0000 unimp
+800017b2: 0000 unimp
+800017b4: 0000 unimp
+800017b6: 0000 unimp
+800017b8: 0000 unimp
+800017ba: 0000 unimp
+800017bc: 0000 unimp
+800017be: 0000 unimp
+800017c0: 0000 unimp
+800017c2: 0000 unimp
+800017c4: 0000 unimp
+800017c6: 0000 unimp
+800017c8: 0000 unimp
+800017ca: 0000 unimp
+800017cc: 0000 unimp
+800017ce: 0000 unimp
+800017d0: 0000 unimp
+800017d2: 0000 unimp
+800017d4: 0000 unimp
+800017d6: 0000 unimp
+800017d8: 0000 unimp
+800017da: 0000 unimp
+800017dc: 0000 unimp
+800017de: 0000 unimp
+800017e0: 0000 unimp
+800017e2: 0000 unimp
+800017e4: 0000 unimp
+800017e6: 0000 unimp
+800017e8: 0000 unimp
+800017ea: 0000 unimp
+800017ec: 0000 unimp
+800017ee: 0000 unimp
+800017f0: 0000 unimp
+800017f2: 0000 unimp
+800017f4: 0000 unimp
+800017f6: 0000 unimp
+800017f8: 0000 unimp
+800017fa: 0000 unimp
+800017fc: 0000 unimp
+800017fe: 0000 unimp
+80001800: 0000 unimp
+80001802: 0000 unimp
+80001804: 0000 unimp
+80001806: 0000 unimp
+80001808: 0000 unimp
+8000180a: 0000 unimp
+8000180c: 0000 unimp
+8000180e: 0000 unimp
+80001810: 0000 unimp
+80001812: 0000 unimp
+80001814: 0000 unimp
+80001816: 0000 unimp
+80001818: 0000 unimp
+8000181a: 0000 unimp
+8000181c: 0000 unimp
+8000181e: 0000 unimp
+80001820: 0000 unimp
+80001822: 0000 unimp
+80001824: 0000 unimp
+80001826: 0000 unimp
+80001828: 0000 unimp
+8000182a: 0000 unimp
+8000182c: 0000 unimp
+8000182e: 0000 unimp
+80001830: 0000 unimp
+80001832: 0000 unimp
+80001834: 0000 unimp
+80001836: 0000 unimp
+80001838: 0000 unimp
+8000183a: 0000 unimp
+8000183c: 0000 unimp
+8000183e: 0000 unimp
+80001840: 0000 unimp
+80001842: 0000 unimp
+80001844: 0000 unimp
+80001846: 0000 unimp
+80001848: 0000 unimp
+8000184a: 0000 unimp
+8000184c: 0000 unimp
+8000184e: 0000 unimp
+80001850: 0000 unimp
+80001852: 0000 unimp
+80001854: 0000 unimp
+80001856: 0000 unimp
+80001858: 0000 unimp
+8000185a: 0000 unimp
+8000185c: 0000 unimp
+8000185e: 0000 unimp
+80001860: 0000 unimp
+80001862: 0000 unimp
+80001864: 0000 unimp
+80001866: 0000 unimp
+80001868: 0000 unimp
+8000186a: 0000 unimp
+8000186c: 0000 unimp
+8000186e: 0000 unimp
+80001870: 0000 unimp
+80001872: 0000 unimp
+80001874: 0000 unimp
+80001876: 0000 unimp
+80001878: 0000 unimp
+8000187a: 0000 unimp
+8000187c: 0000 unimp
+8000187e: 0000 unimp
+80001880: 0000 unimp
+80001882: 0000 unimp
+80001884: 0000 unimp
+80001886: 0000 unimp
+80001888: 0000 unimp
+8000188a: 0000 unimp
+8000188c: 0000 unimp
+8000188e: 0000 unimp
+80001890: 0000 unimp
+80001892: 0000 unimp
+80001894: 0000 unimp
+80001896: 0000 unimp
+80001898: 0000 unimp
+8000189a: 0000 unimp
+8000189c: 0000 unimp
+8000189e: 0000 unimp
+800018a0: 0000 unimp
+800018a2: 0000 unimp
+800018a4: 0000 unimp
+800018a6: 0000 unimp
+800018a8: 0000 unimp
+800018aa: 0000 unimp
+800018ac: 0000 unimp
+800018ae: 0000 unimp
+800018b0: 0000 unimp
+800018b2: 0000 unimp
+800018b4: 0000 unimp
+800018b6: 0000 unimp
+800018b8: 0000 unimp
+800018ba: 0000 unimp
+800018bc: 0000 unimp
+800018be: 0000 unimp
+800018c0: 0000 unimp
+800018c2: 0000 unimp
+800018c4: 0000 unimp
+800018c6: 0000 unimp
+800018c8: 0000 unimp
+800018ca: 0000 unimp
+800018cc: 0000 unimp
+800018ce: 0000 unimp
+800018d0: 0000 unimp
+800018d2: 0000 unimp
+800018d4: 0000 unimp
+800018d6: 0000 unimp
+800018d8: 0000 unimp
+800018da: 0000 unimp
+800018dc: 0000 unimp
+800018de: 0000 unimp
+800018e0: 0000 unimp
+800018e2: 0000 unimp
+800018e4: 0000 unimp
+800018e6: 0000 unimp
+800018e8: 0000 unimp
+800018ea: 0000 unimp
+800018ec: 0000 unimp
+800018ee: 0000 unimp
+800018f0: 0000 unimp
+800018f2: 0000 unimp
+800018f4: 0000 unimp
+800018f6: 0000 unimp
+800018f8: 0000 unimp
+800018fa: 0000 unimp
+800018fc: 0000 unimp
+800018fe: 0000 unimp
+80001900: 0000 unimp
+80001902: 0000 unimp
+80001904: 0000 unimp
+80001906: 0000 unimp
+80001908: 0000 unimp
+8000190a: 0000 unimp
+8000190c: 0000 unimp
+8000190e: 0000 unimp
+80001910: 0000 unimp
+80001912: 0000 unimp
+80001914: 0000 unimp
+80001916: 0000 unimp
+80001918: 0000 unimp
+8000191a: 0000 unimp
+8000191c: 0000 unimp
+8000191e: 0000 unimp
+80001920: 0000 unimp
+80001922: 0000 unimp
+80001924: 0000 unimp
+80001926: 0000 unimp
+80001928: 0000 unimp
+8000192a: 0000 unimp
+8000192c: 0000 unimp
+8000192e: 0000 unimp
+80001930: 0000 unimp
+80001932: 0000 unimp
+80001934: 0000 unimp
+80001936: 0000 unimp
+80001938: 0000 unimp
+8000193a: 0000 unimp
+8000193c: 0000 unimp
+8000193e: 0000 unimp
+80001940: 0000 unimp
+80001942: 0000 unimp
+80001944: 0000 unimp
+80001946: 0000 unimp
+80001948: 0000 unimp
+8000194a: 0000 unimp
+8000194c: 0000 unimp
+8000194e: 0000 unimp
+80001950: 0000 unimp
+80001952: 0000 unimp
+80001954: 0000 unimp
+80001956: 0000 unimp
+80001958: 0000 unimp
+8000195a: 0000 unimp
+8000195c: 0000 unimp
+8000195e: 0000 unimp
+80001960: 0000 unimp
+80001962: 0000 unimp
+80001964: 0000 unimp
+80001966: 0000 unimp
+80001968: 0000 unimp
+8000196a: 0000 unimp
+8000196c: 0000 unimp
+8000196e: 0000 unimp
+80001970: 0000 unimp
+80001972: 0000 unimp
+80001974: 0000 unimp
+80001976: 0000 unimp
+80001978: 0000 unimp
+8000197a: 0000 unimp
+8000197c: 0000 unimp
+8000197e: 0000 unimp
+80001980: 0000 unimp
+80001982: 0000 unimp
+80001984: 0000 unimp
+80001986: 0000 unimp
+80001988: 0000 unimp
+8000198a: 0000 unimp
+8000198c: 0000 unimp
+8000198e: 0000 unimp
+80001990: 0000 unimp
+80001992: 0000 unimp
+80001994: 0000 unimp
+80001996: 0000 unimp
+80001998: 0000 unimp
+8000199a: 0000 unimp
+8000199c: 0000 unimp
+8000199e: 0000 unimp
+800019a0: 0000 unimp
+800019a2: 0000 unimp
+800019a4: 0000 unimp
+800019a6: 0000 unimp
+800019a8: 0000 unimp
+800019aa: 0000 unimp
+800019ac: 0000 unimp
+800019ae: 0000 unimp
+800019b0: 0000 unimp
+800019b2: 0000 unimp
+800019b4: 0000 unimp
+800019b6: 0000 unimp
+800019b8: 0000 unimp
+800019ba: 0000 unimp
+800019bc: 0000 unimp
+800019be: 0000 unimp
+800019c0: 0000 unimp
+800019c2: 0000 unimp
+800019c4: 0000 unimp
+800019c6: 0000 unimp
+800019c8: 0000 unimp
+800019ca: 0000 unimp
+800019cc: 0000 unimp
+800019ce: 0000 unimp
+800019d0: 0000 unimp
+800019d2: 0000 unimp
+800019d4: 0000 unimp
+800019d6: 0000 unimp
+800019d8: 0000 unimp
+800019da: 0000 unimp
+800019dc: 0000 unimp
+800019de: 0000 unimp
+800019e0: 0000 unimp
+800019e2: 0000 unimp
+800019e4: 0000 unimp
+800019e6: 0000 unimp
+800019e8: 0000 unimp
+800019ea: 0000 unimp
+800019ec: 0000 unimp
+800019ee: 0000 unimp
+800019f0: 0000 unimp
+800019f2: 0000 unimp
+800019f4: 0000 unimp
+800019f6: 0000 unimp
+800019f8: 0000 unimp
+800019fa: 0000 unimp
+800019fc: 0000 unimp
+800019fe: 0000 unimp
+80001a00: 0000 unimp
+80001a02: 0000 unimp
+80001a04: 0000 unimp
+80001a06: 0000 unimp
+80001a08: 0000 unimp
+80001a0a: 0000 unimp
+80001a0c: 0000 unimp
+80001a0e: 0000 unimp
+80001a10: 0000 unimp
+80001a12: 0000 unimp
+80001a14: 0000 unimp
+80001a16: 0000 unimp
+80001a18: 0000 unimp
+80001a1a: 0000 unimp
+80001a1c: 0000 unimp
+80001a1e: 0000 unimp
+80001a20: 0000 unimp
+80001a22: 0000 unimp
+80001a24: 0000 unimp
+80001a26: 0000 unimp
+80001a28: 0000 unimp
+80001a2a: 0000 unimp
+80001a2c: 0000 unimp
+80001a2e: 0000 unimp
+80001a30: 0000 unimp
+80001a32: 0000 unimp
+80001a34: 0000 unimp
+80001a36: 0000 unimp
+80001a38: 0000 unimp
+80001a3a: 0000 unimp
+80001a3c: 0000 unimp
+80001a3e: 0000 unimp
+80001a40: 0000 unimp
+80001a42: 0000 unimp
+80001a44: 0000 unimp
+80001a46: 0000 unimp
+80001a48: 0000 unimp
+80001a4a: 0000 unimp
+80001a4c: 0000 unimp
+80001a4e: 0000 unimp
+80001a50: 0000 unimp
+80001a52: 0000 unimp
+80001a54: 0000 unimp
+80001a56: 0000 unimp
+80001a58: 0000 unimp
+80001a5a: 0000 unimp
+80001a5c: 0000 unimp
+80001a5e: 0000 unimp
+80001a60: 0000 unimp
+80001a62: 0000 unimp
+80001a64: 0000 unimp
+80001a66: 0000 unimp
+80001a68: 0000 unimp
+80001a6a: 0000 unimp
+80001a6c: 0000 unimp
+80001a6e: 0000 unimp
+80001a70: 0000 unimp
+80001a72: 0000 unimp
+80001a74: 0000 unimp
+80001a76: 0000 unimp
+80001a78: 0000 unimp
+80001a7a: 0000 unimp
+80001a7c: 0000 unimp
+80001a7e: 0000 unimp
+80001a80: 0000 unimp
+80001a82: 0000 unimp
+80001a84: 0000 unimp
+80001a86: 0000 unimp
+80001a88: 0000 unimp
+80001a8a: 0000 unimp
+80001a8c: 0000 unimp
+80001a8e: 0000 unimp
+80001a90: 0000 unimp
+80001a92: 0000 unimp
+80001a94: 0000 unimp
+80001a96: 0000 unimp
+80001a98: 0000 unimp
+80001a9a: 0000 unimp
+80001a9c: 0000 unimp
+80001a9e: 0000 unimp
+80001aa0: 0000 unimp
+80001aa2: 0000 unimp
+80001aa4: 0000 unimp
+80001aa6: 0000 unimp
+80001aa8: 0000 unimp
+80001aaa: 0000 unimp
+80001aac: 0000 unimp
+80001aae: 0000 unimp
+80001ab0: 0000 unimp
+80001ab2: 0000 unimp
+80001ab4: 0000 unimp
+80001ab6: 0000 unimp
+80001ab8: 0000 unimp
+80001aba: 0000 unimp
+80001abc: 0000 unimp
+80001abe: 0000 unimp
+80001ac0: 0000 unimp
+80001ac2: 0000 unimp
+80001ac4: 0000 unimp
+80001ac6: 0000 unimp
+80001ac8: 0000 unimp
+80001aca: 0000 unimp
+80001acc: 0000 unimp
+80001ace: 0000 unimp
+80001ad0: 0000 unimp
+80001ad2: 0000 unimp
+80001ad4: 0000 unimp
+80001ad6: 0000 unimp
+80001ad8: 0000 unimp
+80001ada: 0000 unimp
+80001adc: 0000 unimp
+80001ade: 0000 unimp
+80001ae0: 0000 unimp
+80001ae2: 0000 unimp
+80001ae4: 0000 unimp
+80001ae6: 0000 unimp
+80001ae8: 0000 unimp
+80001aea: 0000 unimp
+80001aec: 0000 unimp
+80001aee: 0000 unimp
+80001af0: 0000 unimp
+80001af2: 0000 unimp
+80001af4: 0000 unimp
+80001af6: 0000 unimp
+80001af8: 0000 unimp
+80001afa: 0000 unimp
+80001afc: 0000 unimp
+80001afe: 0000 unimp
+80001b00: 0000 unimp
+80001b02: 0000 unimp
+80001b04: 0000 unimp
+80001b06: 0000 unimp
+80001b08: 0000 unimp
+80001b0a: 0000 unimp
+80001b0c: 0000 unimp
+80001b0e: 0000 unimp
+80001b10: 0000 unimp
+80001b12: 0000 unimp
+80001b14: 0000 unimp
+80001b16: 0000 unimp
+80001b18: 0000 unimp
+80001b1a: 0000 unimp
+80001b1c: 0000 unimp
+80001b1e: 0000 unimp
+80001b20: 0000 unimp
+80001b22: 0000 unimp
+80001b24: 0000 unimp
+80001b26: 0000 unimp
+80001b28: 0000 unimp
+80001b2a: 0000 unimp
+80001b2c: 0000 unimp
+80001b2e: 0000 unimp
+80001b30: 0000 unimp
+80001b32: 0000 unimp
+80001b34: 0000 unimp
+80001b36: 0000 unimp
+80001b38: 0000 unimp
+80001b3a: 0000 unimp
+80001b3c: 0000 unimp
+80001b3e: 0000 unimp
+80001b40: 0000 unimp
+80001b42: 0000 unimp
+80001b44: 0000 unimp
+80001b46: 0000 unimp
+80001b48: 0000 unimp
+80001b4a: 0000 unimp
+80001b4c: 0000 unimp
+80001b4e: 0000 unimp
+80001b50: 0000 unimp
+80001b52: 0000 unimp
+80001b54: 0000 unimp
+80001b56: 0000 unimp
+80001b58: 0000 unimp
+80001b5a: 0000 unimp
+80001b5c: 0000 unimp
+80001b5e: 0000 unimp
+80001b60: 0000 unimp
+80001b62: 0000 unimp
+80001b64: 0000 unimp
+80001b66: 0000 unimp
+80001b68: 0000 unimp
+80001b6a: 0000 unimp
+80001b6c: 0000 unimp
+80001b6e: 0000 unimp
+80001b70: 0000 unimp
+80001b72: 0000 unimp
+80001b74: 0000 unimp
+80001b76: 0000 unimp
+80001b78: 0000 unimp
+80001b7a: 0000 unimp
+80001b7c: 0000 unimp
+80001b7e: 0000 unimp
+80001b80: 0000 unimp
+80001b82: 0000 unimp
+80001b84: 0000 unimp
+80001b86: 0000 unimp
+80001b88: 0000 unimp
+80001b8a: 0000 unimp
+80001b8c: 0000 unimp
+80001b8e: 0000 unimp
+80001b90: 0000 unimp
+80001b92: 0000 unimp
+80001b94: 0000 unimp
+80001b96: 0000 unimp
+80001b98: 0000 unimp
+80001b9a: 0000 unimp
+80001b9c: 0000 unimp
+80001b9e: 0000 unimp
+80001ba0: 0000 unimp
+80001ba2: 0000 unimp
+80001ba4: 0000 unimp
+80001ba6: 0000 unimp
+80001ba8: 0000 unimp
+80001baa: 0000 unimp
+80001bac: 0000 unimp
+80001bae: 0000 unimp
+80001bb0: 0000 unimp
+80001bb2: 0000 unimp
+80001bb4: 0000 unimp
+80001bb6: 0000 unimp
+80001bb8: 0000 unimp
+80001bba: 0000 unimp
+80001bbc: 0000 unimp
+80001bbe: 0000 unimp
+80001bc0: 0000 unimp
+80001bc2: 0000 unimp
+80001bc4: 0000 unimp
+80001bc6: 0000 unimp
+80001bc8: 0000 unimp
+80001bca: 0000 unimp
+80001bcc: 0000 unimp
+80001bce: 0000 unimp
+80001bd0: 0000 unimp
+80001bd2: 0000 unimp
+80001bd4: 0000 unimp
+80001bd6: 0000 unimp
+80001bd8: 0000 unimp
+80001bda: 0000 unimp
+80001bdc: 0000 unimp
+80001bde: 0000 unimp
+80001be0: 0000 unimp
+80001be2: 0000 unimp
+80001be4: 0000 unimp
+80001be6: 0000 unimp
+80001be8: 0000 unimp
+80001bea: 0000 unimp
+80001bec: 0000 unimp
+80001bee: 0000 unimp
+80001bf0: 0000 unimp
+80001bf2: 0000 unimp
+80001bf4: 0000 unimp
+80001bf6: 0000 unimp
+80001bf8: 0000 unimp
+80001bfa: 0000 unimp
+80001bfc: 0000 unimp
+80001bfe: 0000 unimp
+80001c00: 0000 unimp
+80001c02: 0000 unimp
+80001c04: 0000 unimp
+80001c06: 0000 unimp
+80001c08: 0000 unimp
+80001c0a: 0000 unimp
+80001c0c: 0000 unimp
+80001c0e: 0000 unimp
+80001c10: 0000 unimp
+80001c12: 0000 unimp
+80001c14: 0000 unimp
+80001c16: 0000 unimp
+80001c18: 0000 unimp
+80001c1a: 0000 unimp
+80001c1c: 0000 unimp
+80001c1e: 0000 unimp
+80001c20: 0000 unimp
+80001c22: 0000 unimp
+80001c24: 0000 unimp
+80001c26: 0000 unimp
+80001c28: 0000 unimp
+80001c2a: 0000 unimp
+80001c2c: 0000 unimp
+80001c2e: 0000 unimp
+80001c30: 0000 unimp
+80001c32: 0000 unimp
+80001c34: 0000 unimp
+80001c36: 0000 unimp
+80001c38: 0000 unimp
+80001c3a: 0000 unimp
+80001c3c: 0000 unimp
+80001c3e: 0000 unimp
+80001c40: 0000 unimp
+80001c42: 0000 unimp
+80001c44: 0000 unimp
+80001c46: 0000 unimp
+80001c48: 0000 unimp
+80001c4a: 0000 unimp
+80001c4c: 0000 unimp
+80001c4e: 0000 unimp
+80001c50: 0000 unimp
+80001c52: 0000 unimp
+80001c54: 0000 unimp
+80001c56: 0000 unimp
+80001c58: 0000 unimp
+80001c5a: 0000 unimp
+80001c5c: 0000 unimp
+80001c5e: 0000 unimp
+80001c60: 0000 unimp
+80001c62: 0000 unimp
+80001c64: 0000 unimp
+80001c66: 0000 unimp
+80001c68: 0000 unimp
+80001c6a: 0000 unimp
+80001c6c: 0000 unimp
+80001c6e: 0000 unimp
+80001c70: 0000 unimp
+80001c72: 0000 unimp
+80001c74: 0000 unimp
+80001c76: 0000 unimp
+80001c78: 0000 unimp
+80001c7a: 0000 unimp
+80001c7c: 0000 unimp
+80001c7e: 0000 unimp
+80001c80: 0000 unimp
+80001c82: 0000 unimp
+80001c84: 0000 unimp
+80001c86: 0000 unimp
+80001c88: 0000 unimp
+80001c8a: 0000 unimp
+80001c8c: 0000 unimp
+80001c8e: 0000 unimp
+80001c90: 0000 unimp
+80001c92: 0000 unimp
+80001c94: 0000 unimp
+80001c96: 0000 unimp
+80001c98: 0000 unimp
+80001c9a: 0000 unimp
+80001c9c: 0000 unimp
+80001c9e: 0000 unimp
+80001ca0: 0000 unimp
+80001ca2: 0000 unimp
+80001ca4: 0000 unimp
+80001ca6: 0000 unimp
+80001ca8: 0000 unimp
+80001caa: 0000 unimp
+80001cac: 0000 unimp
+80001cae: 0000 unimp
+80001cb0: 0000 unimp
+80001cb2: 0000 unimp
+80001cb4: 0000 unimp
+80001cb6: 0000 unimp
+80001cb8: 0000 unimp
+80001cba: 0000 unimp
+80001cbc: 0000 unimp
+80001cbe: 0000 unimp
+80001cc0: 0000 unimp
+80001cc2: 0000 unimp
+80001cc4: 0000 unimp
+80001cc6: 0000 unimp
+80001cc8: 0000 unimp
+80001cca: 0000 unimp
+80001ccc: 0000 unimp
+80001cce: 0000 unimp
+80001cd0: 0000 unimp
+80001cd2: 0000 unimp
+80001cd4: 0000 unimp
+80001cd6: 0000 unimp
+80001cd8: 0000 unimp
+80001cda: 0000 unimp
+80001cdc: 0000 unimp
+80001cde: 0000 unimp
+80001ce0: 0000 unimp
+80001ce2: 0000 unimp
+80001ce4: 0000 unimp
+80001ce6: 0000 unimp
+80001ce8: 0000 unimp
+80001cea: 0000 unimp
+80001cec: 0000 unimp
+80001cee: 0000 unimp
+80001cf0: 0000 unimp
+80001cf2: 0000 unimp
+80001cf4: 0000 unimp
+80001cf6: 0000 unimp
+80001cf8: 0000 unimp
+80001cfa: 0000 unimp
+80001cfc: 0000 unimp
+80001cfe: 0000 unimp
+80001d00: 0000 unimp
+80001d02: 0000 unimp
+80001d04: 0000 unimp
+80001d06: 0000 unimp
+80001d08: 0000 unimp
+80001d0a: 0000 unimp
+80001d0c: 0000 unimp
+80001d0e: 0000 unimp
+80001d10: 0000 unimp
+80001d12: 0000 unimp
+80001d14: 0000 unimp
+80001d16: 0000 unimp
+80001d18: 0000 unimp
+80001d1a: 0000 unimp
+80001d1c: 0000 unimp
+80001d1e: 0000 unimp
+80001d20: 0000 unimp
+80001d22: 0000 unimp
+80001d24: 0000 unimp
+80001d26: 0000 unimp
+80001d28: 0000 unimp
+80001d2a: 0000 unimp
+80001d2c: 0000 unimp
+80001d2e: 0000 unimp
+80001d30: 0000 unimp
+80001d32: 0000 unimp
+80001d34: 0000 unimp
+80001d36: 0000 unimp
+80001d38: 0000 unimp
+80001d3a: 0000 unimp
+80001d3c: 0000 unimp
+80001d3e: 0000 unimp
+80001d40: 0000 unimp
+80001d42: 0000 unimp
+80001d44: 0000 unimp
+80001d46: 0000 unimp
+80001d48: 0000 unimp
+80001d4a: 0000 unimp
+80001d4c: 0000 unimp
+80001d4e: 0000 unimp
+80001d50: 0000 unimp
+80001d52: 0000 unimp
+80001d54: 0000 unimp
+80001d56: 0000 unimp
+80001d58: 0000 unimp
+80001d5a: 0000 unimp
+80001d5c: 0000 unimp
+80001d5e: 0000 unimp
+80001d60: 0000 unimp
+80001d62: 0000 unimp
+80001d64: 0000 unimp
+80001d66: 0000 unimp
+80001d68: 0000 unimp
+80001d6a: 0000 unimp
+80001d6c: 0000 unimp
+80001d6e: 0000 unimp
+80001d70: 0000 unimp
+80001d72: 0000 unimp
+80001d74: 0000 unimp
+80001d76: 0000 unimp
+80001d78: 0000 unimp
+80001d7a: 0000 unimp
+80001d7c: 0000 unimp
+80001d7e: 0000 unimp
+80001d80: 0000 unimp
+80001d82: 0000 unimp
+80001d84: 0000 unimp
+80001d86: 0000 unimp
+80001d88: 0000 unimp
+80001d8a: 0000 unimp
+80001d8c: 0000 unimp
+80001d8e: 0000 unimp
+80001d90: 0000 unimp
+80001d92: 0000 unimp
+80001d94: 0000 unimp
+80001d96: 0000 unimp
+80001d98: 0000 unimp
+80001d9a: 0000 unimp
+80001d9c: 0000 unimp
+80001d9e: 0000 unimp
+80001da0: 0000 unimp
+80001da2: 0000 unimp
+80001da4: 0000 unimp
+80001da6: 0000 unimp
+80001da8: 0000 unimp
+80001daa: 0000 unimp
+80001dac: 0000 unimp
+80001dae: 0000 unimp
+80001db0: 0000 unimp
+80001db2: 0000 unimp
+80001db4: 0000 unimp
+80001db6: 0000 unimp
+80001db8: 0000 unimp
+80001dba: 0000 unimp
+80001dbc: 0000 unimp
+80001dbe: 0000 unimp
+80001dc0: 0000 unimp
+80001dc2: 0000 unimp
+80001dc4: 0000 unimp
+80001dc6: 0000 unimp
+80001dc8: 0000 unimp
+80001dca: 0000 unimp
+80001dcc: 0000 unimp
+80001dce: 0000 unimp
+80001dd0: 0000 unimp
+80001dd2: 0000 unimp
+80001dd4: 0000 unimp
+80001dd6: 0000 unimp
+80001dd8: 0000 unimp
+80001dda: 0000 unimp
+80001ddc: 0000 unimp
+80001dde: 0000 unimp
+80001de0: 0000 unimp
+80001de2: 0000 unimp
+80001de4: 0000 unimp
+80001de6: 0000 unimp
+80001de8: 0000 unimp
+80001dea: 0000 unimp
+80001dec: 0000 unimp
+80001dee: 0000 unimp
+80001df0: 0000 unimp
+80001df2: 0000 unimp
+80001df4: 0000 unimp
+80001df6: 0000 unimp
+80001df8: 0000 unimp
+80001dfa: 0000 unimp
+80001dfc: 0000 unimp
+80001dfe: 0000 unimp
+80001e00: 0000 unimp
+80001e02: 0000 unimp
+80001e04: 0000 unimp
+80001e06: 0000 unimp
+80001e08: 0000 unimp
+80001e0a: 0000 unimp
+80001e0c: 0000 unimp
+80001e0e: 0000 unimp
+80001e10: 0000 unimp
+80001e12: 0000 unimp
+80001e14: 0000 unimp
+80001e16: 0000 unimp
+80001e18: 0000 unimp
+80001e1a: 0000 unimp
+80001e1c: 0000 unimp
+80001e1e: 0000 unimp
+80001e20: 0000 unimp
+80001e22: 0000 unimp
+80001e24: 0000 unimp
+80001e26: 0000 unimp
+80001e28: 0000 unimp
+80001e2a: 0000 unimp
+80001e2c: 0000 unimp
+80001e2e: 0000 unimp
+80001e30: 0000 unimp
+80001e32: 0000 unimp
+80001e34: 0000 unimp
+80001e36: 0000 unimp
+80001e38: 0000 unimp
+80001e3a: 0000 unimp
+80001e3c: 0000 unimp
+80001e3e: 0000 unimp
+80001e40: 0000 unimp
+80001e42: 0000 unimp
+80001e44: 0000 unimp
+80001e46: 0000 unimp
+80001e48: 0000 unimp
+80001e4a: 0000 unimp
+80001e4c: 0000 unimp
+80001e4e: 0000 unimp
+80001e50: 0000 unimp
+80001e52: 0000 unimp
+80001e54: 0000 unimp
+80001e56: 0000 unimp
+80001e58: 0000 unimp
+80001e5a: 0000 unimp
+80001e5c: 0000 unimp
+80001e5e: 0000 unimp
+80001e60: 0000 unimp
+80001e62: 0000 unimp
+80001e64: 0000 unimp
+80001e66: 0000 unimp
+80001e68: 0000 unimp
+80001e6a: 0000 unimp
+80001e6c: 0000 unimp
+80001e6e: 0000 unimp
+80001e70: 0000 unimp
+80001e72: 0000 unimp
+80001e74: 0000 unimp
+80001e76: 0000 unimp
+80001e78: 0000 unimp
+80001e7a: 0000 unimp
+80001e7c: 0000 unimp
+80001e7e: 0000 unimp
+80001e80: 0000 unimp
+80001e82: 0000 unimp
+80001e84: 0000 unimp
+80001e86: 0000 unimp
+80001e88: 0000 unimp
+80001e8a: 0000 unimp
+80001e8c: 0000 unimp
+80001e8e: 0000 unimp
+80001e90: 0000 unimp
+80001e92: 0000 unimp
+80001e94: 0000 unimp
+80001e96: 0000 unimp
+80001e98: 0000 unimp
+80001e9a: 0000 unimp
+80001e9c: 0000 unimp
+80001e9e: 0000 unimp
+80001ea0: 0000 unimp
+80001ea2: 0000 unimp
+80001ea4: 0000 unimp
+80001ea6: 0000 unimp
+80001ea8: 0000 unimp
+80001eaa: 0000 unimp
+80001eac: 0000 unimp
+80001eae: 0000 unimp
+80001eb0: 0000 unimp
+80001eb2: 0000 unimp
+80001eb4: 0000 unimp
+80001eb6: 0000 unimp
+80001eb8: 0000 unimp
+80001eba: 0000 unimp
+80001ebc: 0000 unimp
+80001ebe: 0000 unimp
+80001ec0: 0000 unimp
+80001ec2: 0000 unimp
+80001ec4: 0000 unimp
+80001ec6: 0000 unimp
+80001ec8: 0000 unimp
+80001eca: 0000 unimp
+80001ecc: 0000 unimp
+80001ece: 0000 unimp
+80001ed0: 0000 unimp
+80001ed2: 0000 unimp
+80001ed4: 0000 unimp
+80001ed6: 0000 unimp
+80001ed8: 0000 unimp
+80001eda: 0000 unimp
+80001edc: 0000 unimp
+80001ede: 0000 unimp
+80001ee0: 0000 unimp
+80001ee2: 0000 unimp
+80001ee4: 0000 unimp
+80001ee6: 0000 unimp
+80001ee8: 0000 unimp
+80001eea: 0000 unimp
+80001eec: 0000 unimp
+80001eee: 0000 unimp
+80001ef0: 0000 unimp
+80001ef2: 0000 unimp
+80001ef4: 0000 unimp
+80001ef6: 0000 unimp
+80001ef8: 0000 unimp
+80001efa: 0000 unimp
+80001efc: 0000 unimp
+80001efe: 0000 unimp
+80001f00: 0000 unimp
+80001f02: 0000 unimp
+80001f04: 0000 unimp
+80001f06: 0000 unimp
+80001f08: 0000 unimp
+80001f0a: 0000 unimp
+80001f0c: 0000 unimp
+80001f0e: 0000 unimp
+80001f10: 0000 unimp
+80001f12: 0000 unimp
+80001f14: 0000 unimp
+80001f16: 0000 unimp
+80001f18: 0000 unimp
+80001f1a: 0000 unimp
+80001f1c: 0000 unimp
+80001f1e: 0000 unimp
+80001f20: 0000 unimp
+80001f22: 0000 unimp
+80001f24: 0000 unimp
+80001f26: 0000 unimp
+80001f28: 0000 unimp
+80001f2a: 0000 unimp
+80001f2c: 0000 unimp
+80001f2e: 0000 unimp
+80001f30: 0000 unimp
+80001f32: 0000 unimp
+80001f34: 0000 unimp
+80001f36: 0000 unimp
+80001f38: 0000 unimp
+80001f3a: 0000 unimp
+80001f3c: 0000 unimp
+80001f3e: 0000 unimp
+80001f40: 0000 unimp
+80001f42: 0000 unimp
+80001f44: 0000 unimp
+80001f46: 0000 unimp
+80001f48: 0000 unimp
+80001f4a: 0000 unimp
+80001f4c: 0000 unimp
+80001f4e: 0000 unimp
+80001f50: 0000 unimp
+80001f52: 0000 unimp
+80001f54: 0000 unimp
+80001f56: 0000 unimp
+80001f58: 0000 unimp
+80001f5a: 0000 unimp
+80001f5c: 0000 unimp
+80001f5e: 0000 unimp
+80001f60: 0000 unimp
+80001f62: 0000 unimp
+80001f64: 0000 unimp
+80001f66: 0000 unimp
+80001f68: 0000 unimp
+80001f6a: 0000 unimp
+80001f6c: 0000 unimp
+80001f6e: 0000 unimp
+80001f70: 0000 unimp
+80001f72: 0000 unimp
+80001f74: 0000 unimp
+80001f76: 0000 unimp
+80001f78: 0000 unimp
+80001f7a: 0000 unimp
+80001f7c: 0000 unimp
+80001f7e: 0000 unimp
+80001f80: 0000 unimp
+80001f82: 0000 unimp
+80001f84: 0000 unimp
+80001f86: 0000 unimp
+80001f88: 0000 unimp
+80001f8a: 0000 unimp
+80001f8c: 0000 unimp
+80001f8e: 0000 unimp
+80001f90: 0000 unimp
+80001f92: 0000 unimp
+80001f94: 0000 unimp
+80001f96: 0000 unimp
+80001f98: 0000 unimp
+80001f9a: 0000 unimp
+80001f9c: 0000 unimp
+80001f9e: 0000 unimp
+80001fa0: 0000 unimp
+80001fa2: 0000 unimp
+80001fa4: 0000 unimp
+80001fa6: 0000 unimp
+80001fa8: 0000 unimp
+80001faa: 0000 unimp
+80001fac: 0000 unimp
+80001fae: 0000 unimp
+80001fb0: 0000 unimp
+80001fb2: 0000 unimp
+80001fb4: 0000 unimp
+80001fb6: 0000 unimp
+80001fb8: 0000 unimp
+80001fba: 0000 unimp
+80001fbc: 0000 unimp
+80001fbe: 0000 unimp
+80001fc0: 0000 unimp
+80001fc2: 0000 unimp
+80001fc4: 0000 unimp
+80001fc6: 0000 unimp
+80001fc8: 0000 unimp
+80001fca: 0000 unimp
+80001fcc: 0000 unimp
+80001fce: 0000 unimp
+80001fd0: 0000 unimp
+80001fd2: 0000 unimp
+80001fd4: 0000 unimp
+80001fd6: 0000 unimp
+80001fd8: 0000 unimp
+80001fda: 0000 unimp
+80001fdc: 0000 unimp
+80001fde: 0000 unimp
+80001fe0: 0000 unimp
+80001fe2: 0000 unimp
+80001fe4: 0000 unimp
+80001fe6: 0000 unimp
+80001fe8: 0000 unimp
+80001fea: 0000 unimp
+80001fec: 0000 unimp
+80001fee: 0000 unimp
+80001ff0: 0000 unimp
+80001ff2: 0000 unimp
+80001ff4: 0000 unimp
+80001ff6: 0000 unimp
+80001ff8: 0000 unimp
+80001ffa: 0000 unimp
+80001ffc: 0000 unimp
+80001ffe: 00158593 addi a1,a1,1
+80002002: 29b00e93 li t4,667
+80002006: 00200193 li gp,2
+8000200a: 23d59f63 bne a1,t4,80002248 <fail>
+8000200e: 00001137 lui sp,0x1
+80002012: 23410113 addi sp,sp,564 # 1234 <_start-0x7fffedcc>
+
+80002016 <test_3>:
+80002016: 1fe8 addi a0,sp,1020
+80002018: 00001eb7 lui t4,0x1
+8000201c: 630e8e93 addi t4,t4,1584 # 1630 <_start-0x7fffe9d0>
+80002020: 00300193 li gp,3
+80002024: 23d51263 bne a0,t4,80002248 <fail>
+
+80002028 <test_4>:
+80002028: 617d addi sp,sp,496
+8000202a: 0001 nop
+8000202c: 00001eb7 lui t4,0x1
+80002030: 424e8e93 addi t4,t4,1060 # 1424 <_start-0x7fffebdc>
+80002034: 00400193 li gp,4
+80002038: 21d11863 bne sp,t4,80002248 <fail>
+
+8000203c <test_5>:
+8000203c: 7101 addi sp,sp,-512
+8000203e: 0001 nop
+80002040: 00001eb7 lui t4,0x1
+80002044: 224e8e93 addi t4,t4,548 # 1224 <_start-0x7fffeddc>
+80002048: 00500193 li gp,5
+8000204c: 1fd11e63 bne sp,t4,80002248 <fail>
+80002050: ffffe597 auipc a1,0xffffe
+80002054: 0b858593 addi a1,a1,184 # 80000108 <data>
+
+80002058 <test_6>:
+80002058: 41c8 lw a0,4(a1)
+8000205a: 0505 addi a0,a0,1
+8000205c: c1c8 sw a0,4(a1)
+8000205e: 41d0 lw a2,4(a1)
+80002060: fedcceb7 lui t4,0xfedcc
+80002064: a99e8e93 addi t4,t4,-1383 # fedcba99 <_end+0x7edc7a99>
+80002068: 00600193 li gp,6
+8000206c: 1dd61e63 bne a2,t4,80002248 <fail>
+
+80002070 <test_8>:
+80002070: 00106513 ori a0,zero,1
+80002074: 1541 addi a0,a0,-16
+80002076: 0001 nop
+80002078: ff100e93 li t4,-15
+8000207c: 00800193 li gp,8
+80002080: 1dd51463 bne a0,t4,80002248 <fail>
+
+80002084 <test_9>:
+80002084: 00106793 ori a5,zero,1
+80002088: 57c1 li a5,-16
+8000208a: 0001 nop
+8000208c: ff000e93 li t4,-16
+80002090: 00900193 li gp,9
+80002094: 1bd79a63 bne a5,t4,80002248 <fail>
+
+80002098 <test_11>:
+80002098: 7405 lui s0,0xfffe1
+8000209a: 8431 srai s0,s0,0xc
+8000209c: fe100e93 li t4,-31
+800020a0: 00b00193 li gp,11
+800020a4: 1bd41263 bne s0,t4,80002248 <fail>
+
+800020a8 <test_12>:
+800020a8: 7405 lui s0,0xfffe1
+800020aa: 8031 srli s0,s0,0xc
+800020ac: 00100eb7 lui t4,0x100
+800020b0: fe1e8e93 addi t4,t4,-31 # fffe1 <_start-0x7ff0001f>
+800020b4: 00c00193 li gp,12
+800020b8: 19d41863 bne s0,t4,80002248 <fail>
+
+800020bc <test_14>:
+800020bc: 5479 li s0,-2
+800020be: 983d andi s0,s0,-17
+800020c0: fee00e93 li t4,-18
+800020c4: 00e00193 li gp,14
+800020c8: 19d41063 bne s0,t4,80002248 <fail>
+
+800020cc <test_15>:
+800020cc: 44d1 li s1,20
+800020ce: 4519 li a0,6
+800020d0: 8c89 sub s1,s1,a0
+800020d2: 0001 nop
+800020d4: 00e00e93 li t4,14
+800020d8: 00f00193 li gp,15
+800020dc: 17d49663 bne s1,t4,80002248 <fail>
+
+800020e0 <test_16>:
+800020e0: 44d1 li s1,20
+800020e2: 4519 li a0,6
+800020e4: 8ca9 xor s1,s1,a0
+800020e6: 0001 nop
+800020e8: 01200e93 li t4,18
+800020ec: 01000193 li gp,16
+800020f0: 15d49c63 bne s1,t4,80002248 <fail>
+
+800020f4 <test_17>:
+800020f4: 44d1 li s1,20
+800020f6: 4519 li a0,6
+800020f8: 8cc9 or s1,s1,a0
+800020fa: 0001 nop
+800020fc: 01600e93 li t4,22
+80002100: 01100193 li gp,17
+80002104: 15d49263 bne s1,t4,80002248 <fail>
+
+80002108 <test_18>:
+80002108: 44d1 li s1,20
+8000210a: 4519 li a0,6
+8000210c: 8ce9 and s1,s1,a0
+8000210e: 0001 nop
+80002110: 00400e93 li t4,4
+80002114: 01200193 li gp,18
+80002118: 13d49863 bne s1,t4,80002248 <fail>
+
+8000211c <test_21>:
+8000211c: 00001437 lui s0,0x1
+80002120: 23440413 addi s0,s0,564 # 1234 <_start-0x7fffedcc>
+80002124: 0412 slli s0,s0,0x4
+80002126: 0001 nop
+80002128: 00012eb7 lui t4,0x12
+8000212c: 340e8e93 addi t4,t4,832 # 12340 <_start-0x7ffedcc0>
+80002130: 01500193 li gp,21
+80002134: 11d41a63 bne s0,t4,80002248 <fail>
+
+80002138 <test_30>:
+80002138: 4081 li ra,0
+8000213a: a011 j 8000213e <test_30+0x6>
+8000213c: a011 j 80002140 <test_30+0x8>
+8000213e: a011 j 80002142 <test_30+0xa>
+80002140: a221 j 80002248 <fail>
+80002142: 0001 nop
+80002144: 00000e93 li t4,0
+80002148: 01e00193 li gp,30
+8000214c: 0fd09e63 bne ra,t4,80002248 <fail>
+
+80002150 <test_31>:
+80002150: 4501 li a0,0
+80002152: c111 beqz a0,80002156 <test_31+0x6>
+80002154: a011 j 80002158 <test_31+0x8>
+80002156: a011 j 8000215a <test_31+0xa>
+80002158: a8c5 j 80002248 <fail>
+8000215a: 0001 nop
+8000215c: 00000e93 li t4,0
+80002160: 01f00193 li gp,31
+80002164: 0fd01263 bne zero,t4,80002248 <fail>
+
+80002168 <test_32>:
+80002168: 4505 li a0,1
+8000216a: e111 bnez a0,8000216e <test_32+0x6>
+8000216c: a011 j 80002170 <test_32+0x8>
+8000216e: a011 j 80002172 <test_32+0xa>
+80002170: a8e1 j 80002248 <fail>
+80002172: 0001 nop
+80002174: 00000e93 li t4,0
+80002178: 02000193 li gp,32
+8000217c: 0dd01663 bne zero,t4,80002248 <fail>
+
+80002180 <test_33>:
+80002180: 4505 li a0,1
+80002182: c111 beqz a0,80002186 <test_33+0x6>
+80002184: a011 j 80002188 <test_33+0x8>
+80002186: a0c9 j 80002248 <fail>
+80002188: 00000e93 li t4,0
+8000218c: 02100193 li gp,33
+80002190: 0bd01c63 bne zero,t4,80002248 <fail>
+
+80002194 <test_34>:
+80002194: 4501 li a0,0
+80002196: e111 bnez a0,8000219a <test_34+0x6>
+80002198: a011 j 8000219c <test_34+0x8>
+8000219a: a07d j 80002248 <fail>
+8000219c: 00000e93 li t4,0
+800021a0: 02200193 li gp,34
+800021a4: 0bd01263 bne zero,t4,80002248 <fail>
+
+800021a8 <test_35>:
+800021a8: 00000297 auipc t0,0x0
+800021ac: 00e28293 addi t0,t0,14 # 800021b6 <test_35+0xe>
+800021b0: 4081 li ra,0
+800021b2: 8282 jr t0
+800021b4: a011 j 800021b8 <test_35+0x10>
+800021b6: a011 j 800021ba <test_35+0x12>
+800021b8: a841 j 80002248 <fail>
+800021ba: 0001 nop
+800021bc: 00000e93 li t4,0
+800021c0: 02300193 li gp,35
+800021c4: 09d09263 bne ra,t4,80002248 <fail>
+
+800021c8 <test_36>:
+800021c8: 00000297 auipc t0,0x0
+800021cc: 00e28293 addi t0,t0,14 # 800021d6 <test_36+0xe>
+800021d0: 4081 li ra,0
+800021d2: 9282 jalr t0
+800021d4: a011 j 800021d8 <test_36+0x10>
+800021d6: a011 j 800021da <test_36+0x12>
+800021d8: a885 j 80002248 <fail>
+800021da: 405080b3 sub ra,ra,t0
+800021de: 0001 nop
+800021e0: ffe00e93 li t4,-2
+800021e4: 02400193 li gp,36
+800021e8: 07d09063 bne ra,t4,80002248 <fail>
+
+800021ec <test_37>:
+800021ec: 00000297 auipc t0,0x0
+800021f0: 00e28293 addi t0,t0,14 # 800021fa <test_37+0xe>
+800021f4: 4081 li ra,0
+800021f6: 2011 jal 800021fa <test_37+0xe>
+800021f8: a011 j 800021fc <test_37+0x10>
+800021fa: a011 j 800021fe <test_37+0x12>
+800021fc: a0b1 j 80002248 <fail>
+800021fe: 405080b3 sub ra,ra,t0
+80002202: 0001 nop
+80002204: ffe00e93 li t4,-2
+80002208: 02500193 li gp,37
+8000220c: 03d09e63 bne ra,t4,80002248 <fail>
+80002210: ffffe117 auipc sp,0xffffe
+80002214: ef810113 addi sp,sp,-264 # 80000108 <data>
+
+80002218 <test_40>:
+80002218: 4532 lw a0,12(sp)
+8000221a: 0505 addi a0,a0,1
+8000221c: c62a sw a0,12(sp)
+8000221e: 4632 lw a2,12(sp)
+80002220: fedcceb7 lui t4,0xfedcc
+80002224: a99e8e93 addi t4,t4,-1383 # fedcba99 <_end+0x7edc7a99>
+80002228: 02800193 li gp,40
+8000222c: 01d61e63 bne a2,t4,80002248 <fail>
+
+80002230 <test_42>:
+80002230: 12300513 li a0,291
+80002234: 82aa mv t0,a0
+80002236: 92aa add t0,t0,a0
+80002238: 24600e93 li t4,582
+8000223c: 02a00193 li gp,42
+80002240: 01d29463 bne t0,t4,80002248 <fail>
+80002244: 00301c63 bne zero,gp,8000225c <pass>
+
+80002248 <fail>:
+80002248: 0ff0000f fence
+8000224c: 00018063 beqz gp,8000224c <fail+0x4>
+80002250: 00119193 slli gp,gp,0x1
+80002254: 0011e193 ori gp,gp,1
+80002258: 00000073 ecall
+
+8000225c <pass>:
+8000225c: 0ff0000f fence
+80002260: 00100193 li gp,1
+80002264: 00000073 ecall
+80002268: c0001073 unimp
+8000226c: 0000 unimp
+8000226e: 0000 unimp
+80002270: 0000 unimp
+80002272: 0000 unimp
+80002274: 0000 unimp
+80002276: 0000 unimp
+80002278: 0000 unimp
+8000227a: 0000 unimp
+8000227c: 0000 unimp
+8000227e: 0000 unimp
+80002280: 0000 unimp
+80002282: 0000 unimp
+80002284: 0000 unimp
+80002286: 0000 unimp
+80002288: 0000 unimp
+8000228a: 0000 unimp
+8000228c: 0000 unimp
+8000228e: 0000 unimp
+80002290: 0000 unimp
+80002292: 0000 unimp
+80002294: 0000 unimp
+80002296: 0000 unimp
+80002298: 0000 unimp
+8000229a: 0000 unimp
+8000229c: 0000 unimp
+8000229e: 0000 unimp
+800022a0: 0000 unimp
+800022a2: 0000 unimp
+800022a4: 0000 unimp
+800022a6: 0000 unimp
+800022a8: 0000 unimp
+800022aa: 0000 unimp
+800022ac: 0000 unimp
+800022ae: 0000 unimp
+800022b0: 0000 unimp
+800022b2: 0000 unimp
+800022b4: 0000 unimp
+800022b6: 0000 unimp
+800022b8: 0000 unimp
+800022ba: 0000 unimp
+800022bc: 0000 unimp
+800022be: 0000 unimp
+800022c0: 0000 unimp
+800022c2: 0000 unimp
+800022c4: 0000 unimp
+800022c6: 0000 unimp
+800022c8: 0000 unimp
+800022ca: 0000 unimp
+800022cc: 0000 unimp
+800022ce: 0000 unimp
+800022d0: 0000 unimp
+800022d2: 0000 unimp
+800022d4: 0000 unimp
+800022d6: 0000 unimp
+800022d8: 0000 unimp
+800022da: 0000 unimp
+800022dc: 0000 unimp
+800022de: 0000 unimp
+800022e0: 0000 unimp
+800022e2: 0000 unimp
+800022e4: 0000 unimp
+800022e6: 0000 unimp
+800022e8: 0000 unimp
+800022ea: 0000 unimp
+800022ec: 0000 unimp
+800022ee: 0000 unimp
+800022f0: 0000 unimp
+800022f2: 0000 unimp
+800022f4: 0000 unimp
+800022f6: 0000 unimp
+800022f8: 0000 unimp
+800022fa: 0000 unimp
+800022fc: 0000 unimp
+800022fe: 0000 unimp
+80002300: 0000 unimp
+80002302: 0000 unimp
+80002304: 0000 unimp
+80002306: 0000 unimp
+80002308: 0000 unimp
+8000230a: 0000 unimp
+8000230c: 0000 unimp
+8000230e: 0000 unimp
+80002310: 0000 unimp
+80002312: 0000 unimp
+80002314: 0000 unimp
+80002316: 0000 unimp
+80002318: 0000 unimp
+8000231a: 0000 unimp
+8000231c: 0000 unimp
+8000231e: 0000 unimp
+80002320: 0000 unimp
+80002322: 0000 unimp
+80002324: 0000 unimp
+80002326: 0000 unimp
+80002328: 0000 unimp
+8000232a: 0000 unimp
+8000232c: 0000 unimp
+8000232e: 0000 unimp
+80002330: 0000 unimp
+80002332: 0000 unimp
+80002334: 0000 unimp
+80002336: 0000 unimp
+80002338: 0000 unimp
+8000233a: 0000 unimp
+8000233c: 0000 unimp
+8000233e: 0000 unimp
+80002340: 0000 unimp
+80002342: 0000 unimp
+80002344: 0000 unimp
+80002346: 0000 unimp
+80002348: 0000 unimp
+8000234a: 0000 unimp
+8000234c: 0000 unimp
+8000234e: 0000 unimp
+80002350: 0000 unimp
+80002352: 0000 unimp
+80002354: 0000 unimp
+80002356: 0000 unimp
+80002358: 0000 unimp
+8000235a: 0000 unimp
+8000235c: 0000 unimp
+8000235e: 0000 unimp
+80002360: 0000 unimp
+80002362: 0000 unimp
+80002364: 0000 unimp
+80002366: 0000 unimp
+80002368: 0000 unimp
+8000236a: 0000 unimp
+8000236c: 0000 unimp
+8000236e: 0000 unimp
+80002370: 0000 unimp
+80002372: 0000 unimp
+80002374: 0000 unimp
+80002376: 0000 unimp
+80002378: 0000 unimp
+8000237a: 0000 unimp
+8000237c: 0000 unimp
+8000237e: 0000 unimp
+80002380: 0000 unimp
+80002382: 0000 unimp
+80002384: 0000 unimp
+80002386: 0000 unimp
+80002388: 0000 unimp
+8000238a: 0000 unimp
+8000238c: 0000 unimp
+8000238e: 0000 unimp
+80002390: 0000 unimp
+80002392: 0000 unimp
+80002394: 0000 unimp
+80002396: 0000 unimp
+80002398: 0000 unimp
+8000239a: 0000 unimp
+8000239c: 0000 unimp
+8000239e: 0000 unimp
+800023a0: 0000 unimp
+800023a2: 0000 unimp
+800023a4: 0000 unimp
+800023a6: 0000 unimp
+800023a8: 0000 unimp
+800023aa: 0000 unimp
+800023ac: 0000 unimp
+800023ae: 0000 unimp
+800023b0: 0000 unimp
+800023b2: 0000 unimp
+800023b4: 0000 unimp
+800023b6: 0000 unimp
+800023b8: 0000 unimp
+800023ba: 0000 unimp
+800023bc: 0000 unimp
+800023be: 0000 unimp
+800023c0: 0000 unimp
+800023c2: 0000 unimp
+800023c4: 0000 unimp
+800023c6: 0000 unimp
+800023c8: 0000 unimp
+800023ca: 0000 unimp
+800023cc: 0000 unimp
+800023ce: 0000 unimp
+800023d0: 0000 unimp
+800023d2: 0000 unimp
+800023d4: 0000 unimp
+800023d6: 0000 unimp
+800023d8: 0000 unimp
+800023da: 0000 unimp
+800023dc: 0000 unimp
+800023de: 0000 unimp
+800023e0: 0000 unimp
+800023e2: 0000 unimp
+800023e4: 0000 unimp
+800023e6: 0000 unimp
+800023e8: 0000 unimp
+800023ea: 0000 unimp
+800023ec: 0000 unimp
+800023ee: 0000 unimp
+800023f0: 0000 unimp
+800023f2: 0000 unimp
+800023f4: 0000 unimp
+800023f6: 0000 unimp
+800023f8: 0000 unimp
+800023fa: 0000 unimp
+800023fc: 0000 unimp
+800023fe: 0000 unimp
+80002400: 0000 unimp
+80002402: 0000 unimp
+80002404: 0000 unimp
+80002406: 0000 unimp
+80002408: 0000 unimp
+8000240a: 0000 unimp
+8000240c: 0000 unimp
+8000240e: 0000 unimp
+80002410: 0000 unimp
+80002412: 0000 unimp
+80002414: 0000 unimp
+80002416: 0000 unimp
+80002418: 0000 unimp
+8000241a: 0000 unimp
+8000241c: 0000 unimp
+8000241e: 0000 unimp
+80002420: 0000 unimp
+80002422: 0000 unimp
+80002424: 0000 unimp
+80002426: 0000 unimp
+80002428: 0000 unimp
+8000242a: 0000 unimp
+8000242c: 0000 unimp
+8000242e: 0000 unimp
+80002430: 0000 unimp
+80002432: 0000 unimp
+80002434: 0000 unimp
+80002436: 0000 unimp
+80002438: 0000 unimp
+8000243a: 0000 unimp
+8000243c: 0000 unimp
+8000243e: 0000 unimp
+80002440: 0000 unimp
+80002442: 0000 unimp
+80002444: 0000 unimp
+80002446: 0000 unimp
+80002448: 0000 unimp
+8000244a: 0000 unimp
+8000244c: 0000 unimp
+8000244e: 0000 unimp
+80002450: 0000 unimp
+80002452: 0000 unimp
+80002454: 0000 unimp
+80002456: 0000 unimp
+80002458: 0000 unimp
+8000245a: 0000 unimp
+8000245c: 0000 unimp
+8000245e: 0000 unimp
+80002460: 0000 unimp
+80002462: 0000 unimp
+80002464: 0000 unimp
+80002466: 0000 unimp
+80002468: 0000 unimp
+8000246a: 0000 unimp
+8000246c: 0000 unimp
+8000246e: 0000 unimp
+80002470: 0000 unimp
+80002472: 0000 unimp
+80002474: 0000 unimp
+80002476: 0000 unimp
+80002478: 0000 unimp
+8000247a: 0000 unimp
+8000247c: 0000 unimp
+8000247e: 0000 unimp
+80002480: 0000 unimp
+80002482: 0000 unimp
+80002484: 0000 unimp
+80002486: 0000 unimp
+80002488: 0000 unimp
+8000248a: 0000 unimp
+8000248c: 0000 unimp
+8000248e: 0000 unimp
+80002490: 0000 unimp
+80002492: 0000 unimp
+80002494: 0000 unimp
+80002496: 0000 unimp
+80002498: 0000 unimp
+8000249a: 0000 unimp
+8000249c: 0000 unimp
+8000249e: 0000 unimp
+800024a0: 0000 unimp
+800024a2: 0000 unimp
+800024a4: 0000 unimp
+800024a6: 0000 unimp
+800024a8: 0000 unimp
+800024aa: 0000 unimp
+800024ac: 0000 unimp
+800024ae: 0000 unimp
+800024b0: 0000 unimp
+800024b2: 0000 unimp
+800024b4: 0000 unimp
+800024b6: 0000 unimp
+800024b8: 0000 unimp
+800024ba: 0000 unimp
+800024bc: 0000 unimp
+800024be: 0000 unimp
+800024c0: 0000 unimp
+800024c2: 0000 unimp
+800024c4: 0000 unimp
+800024c6: 0000 unimp
+800024c8: 0000 unimp
+800024ca: 0000 unimp
+800024cc: 0000 unimp
+800024ce: 0000 unimp
+800024d0: 0000 unimp
+800024d2: 0000 unimp
+800024d4: 0000 unimp
+800024d6: 0000 unimp
+800024d8: 0000 unimp
+800024da: 0000 unimp
+800024dc: 0000 unimp
+800024de: 0000 unimp
+800024e0: 0000 unimp
+800024e2: 0000 unimp
+800024e4: 0000 unimp
+800024e6: 0000 unimp
+800024e8: 0000 unimp
+800024ea: 0000 unimp
+800024ec: 0000 unimp
+800024ee: 0000 unimp
+800024f0: 0000 unimp
+800024f2: 0000 unimp
+800024f4: 0000 unimp
+800024f6: 0000 unimp
+800024f8: 0000 unimp
+800024fa: 0000 unimp
+800024fc: 0000 unimp
+800024fe: 0000 unimp
+80002500: 0000 unimp
+80002502: 0000 unimp
+80002504: 0000 unimp
+80002506: 0000 unimp
+80002508: 0000 unimp
+8000250a: 0000 unimp
+8000250c: 0000 unimp
+8000250e: 0000 unimp
+80002510: 0000 unimp
+80002512: 0000 unimp
+80002514: 0000 unimp
+80002516: 0000 unimp
+80002518: 0000 unimp
+8000251a: 0000 unimp
+8000251c: 0000 unimp
+8000251e: 0000 unimp
+80002520: 0000 unimp
+80002522: 0000 unimp
+80002524: 0000 unimp
+80002526: 0000 unimp
+80002528: 0000 unimp
+8000252a: 0000 unimp
+8000252c: 0000 unimp
+8000252e: 0000 unimp
+80002530: 0000 unimp
+80002532: 0000 unimp
+80002534: 0000 unimp
+80002536: 0000 unimp
+80002538: 0000 unimp
+8000253a: 0000 unimp
+8000253c: 0000 unimp
+8000253e: 0000 unimp
+80002540: 0000 unimp
+80002542: 0000 unimp
+80002544: 0000 unimp
+80002546: 0000 unimp
+80002548: 0000 unimp
+8000254a: 0000 unimp
+8000254c: 0000 unimp
+8000254e: 0000 unimp
+80002550: 0000 unimp
+80002552: 0000 unimp
+80002554: 0000 unimp
+80002556: 0000 unimp
+80002558: 0000 unimp
+8000255a: 0000 unimp
+8000255c: 0000 unimp
+8000255e: 0000 unimp
+80002560: 0000 unimp
+80002562: 0000 unimp
+80002564: 0000 unimp
+80002566: 0000 unimp
+80002568: 0000 unimp
+8000256a: 0000 unimp
+8000256c: 0000 unimp
+8000256e: 0000 unimp
+80002570: 0000 unimp
+80002572: 0000 unimp
+80002574: 0000 unimp
+80002576: 0000 unimp
+80002578: 0000 unimp
+8000257a: 0000 unimp
+8000257c: 0000 unimp
+8000257e: 0000 unimp
+80002580: 0000 unimp
+80002582: 0000 unimp
+80002584: 0000 unimp
+80002586: 0000 unimp
+80002588: 0000 unimp
+8000258a: 0000 unimp
+8000258c: 0000 unimp
+8000258e: 0000 unimp
+80002590: 0000 unimp
+80002592: 0000 unimp
+80002594: 0000 unimp
+80002596: 0000 unimp
+80002598: 0000 unimp
+8000259a: 0000 unimp
+8000259c: 0000 unimp
+8000259e: 0000 unimp
+800025a0: 0000 unimp
+800025a2: 0000 unimp
+800025a4: 0000 unimp
+800025a6: 0000 unimp
+800025a8: 0000 unimp
+800025aa: 0000 unimp
+800025ac: 0000 unimp
+800025ae: 0000 unimp
+800025b0: 0000 unimp
+800025b2: 0000 unimp
+800025b4: 0000 unimp
+800025b6: 0000 unimp
+800025b8: 0000 unimp
+800025ba: 0000 unimp
+800025bc: 0000 unimp
+800025be: 0000 unimp
+800025c0: 0000 unimp
+800025c2: 0000 unimp
+800025c4: 0000 unimp
+800025c6: 0000 unimp
+800025c8: 0000 unimp
+800025ca: 0000 unimp
+800025cc: 0000 unimp
+800025ce: 0000 unimp
+800025d0: 0000 unimp
+800025d2: 0000 unimp
+800025d4: 0000 unimp
+800025d6: 0000 unimp
+800025d8: 0000 unimp
+800025da: 0000 unimp
+800025dc: 0000 unimp
+800025de: 0000 unimp
+800025e0: 0000 unimp
+800025e2: 0000 unimp
+800025e4: 0000 unimp
+800025e6: 0000 unimp
+800025e8: 0000 unimp
+800025ea: 0000 unimp
+800025ec: 0000 unimp
+800025ee: 0000 unimp
+800025f0: 0000 unimp
+800025f2: 0000 unimp
+800025f4: 0000 unimp
+800025f6: 0000 unimp
+800025f8: 0000 unimp
+800025fa: 0000 unimp
+800025fc: 0000 unimp
+800025fe: 0000 unimp
+80002600: 0000 unimp
+80002602: 0000 unimp
+80002604: 0000 unimp
+80002606: 0000 unimp
+80002608: 0000 unimp
+8000260a: 0000 unimp
+8000260c: 0000 unimp
+8000260e: 0000 unimp
+80002610: 0000 unimp
+80002612: 0000 unimp
+80002614: 0000 unimp
+80002616: 0000 unimp
+80002618: 0000 unimp
+8000261a: 0000 unimp
+8000261c: 0000 unimp
+8000261e: 0000 unimp
+80002620: 0000 unimp
+80002622: 0000 unimp
+80002624: 0000 unimp
+80002626: 0000 unimp
+80002628: 0000 unimp
+8000262a: 0000 unimp
+8000262c: 0000 unimp
+8000262e: 0000 unimp
+80002630: 0000 unimp
+80002632: 0000 unimp
+80002634: 0000 unimp
+80002636: 0000 unimp
+80002638: 0000 unimp
+8000263a: 0000 unimp
+8000263c: 0000 unimp
+8000263e: 0000 unimp
+80002640: 0000 unimp
+80002642: 0000 unimp
+80002644: 0000 unimp
+80002646: 0000 unimp
+80002648: 0000 unimp
+8000264a: 0000 unimp
+8000264c: 0000 unimp
+8000264e: 0000 unimp
+80002650: 0000 unimp
+80002652: 0000 unimp
+80002654: 0000 unimp
+80002656: 0000 unimp
+80002658: 0000 unimp
+8000265a: 0000 unimp
+8000265c: 0000 unimp
+8000265e: 0000 unimp
+80002660: 0000 unimp
+80002662: 0000 unimp
+80002664: 0000 unimp
+80002666: 0000 unimp
+80002668: 0000 unimp
+8000266a: 0000 unimp
+8000266c: 0000 unimp
+8000266e: 0000 unimp
+80002670: 0000 unimp
+80002672: 0000 unimp
+80002674: 0000 unimp
+80002676: 0000 unimp
+80002678: 0000 unimp
+8000267a: 0000 unimp
+8000267c: 0000 unimp
+8000267e: 0000 unimp
+80002680: 0000 unimp
+80002682: 0000 unimp
+80002684: 0000 unimp
+80002686: 0000 unimp
+80002688: 0000 unimp
+8000268a: 0000 unimp
+8000268c: 0000 unimp
+8000268e: 0000 unimp
+80002690: 0000 unimp
+80002692: 0000 unimp
+80002694: 0000 unimp
+80002696: 0000 unimp
+80002698: 0000 unimp
+8000269a: 0000 unimp
+8000269c: 0000 unimp
+8000269e: 0000 unimp
+800026a0: 0000 unimp
+800026a2: 0000 unimp
+800026a4: 0000 unimp
+800026a6: 0000 unimp
+800026a8: 0000 unimp
+800026aa: 0000 unimp
+800026ac: 0000 unimp
+800026ae: 0000 unimp
+800026b0: 0000 unimp
+800026b2: 0000 unimp
+800026b4: 0000 unimp
+800026b6: 0000 unimp
+800026b8: 0000 unimp
+800026ba: 0000 unimp
+800026bc: 0000 unimp
+800026be: 0000 unimp
+800026c0: 0000 unimp
+800026c2: 0000 unimp
+800026c4: 0000 unimp
+800026c6: 0000 unimp
+800026c8: 0000 unimp
+800026ca: 0000 unimp
+800026cc: 0000 unimp
+800026ce: 0000 unimp
+800026d0: 0000 unimp
+800026d2: 0000 unimp
+800026d4: 0000 unimp
+800026d6: 0000 unimp
+800026d8: 0000 unimp
+800026da: 0000 unimp
+800026dc: 0000 unimp
+800026de: 0000 unimp
+800026e0: 0000 unimp
+800026e2: 0000 unimp
+800026e4: 0000 unimp
+800026e6: 0000 unimp
+800026e8: 0000 unimp
+800026ea: 0000 unimp
+800026ec: 0000 unimp
+800026ee: 0000 unimp
+800026f0: 0000 unimp
+800026f2: 0000 unimp
+800026f4: 0000 unimp
+800026f6: 0000 unimp
+800026f8: 0000 unimp
+800026fa: 0000 unimp
+800026fc: 0000 unimp
+800026fe: 0000 unimp
+80002700: 0000 unimp
+80002702: 0000 unimp
+80002704: 0000 unimp
+80002706: 0000 unimp
+80002708: 0000 unimp
+8000270a: 0000 unimp
+8000270c: 0000 unimp
+8000270e: 0000 unimp
+80002710: 0000 unimp
+80002712: 0000 unimp
+80002714: 0000 unimp
+80002716: 0000 unimp
+80002718: 0000 unimp
+8000271a: 0000 unimp
+8000271c: 0000 unimp
+8000271e: 0000 unimp
+80002720: 0000 unimp
+80002722: 0000 unimp
+80002724: 0000 unimp
+80002726: 0000 unimp
+80002728: 0000 unimp
+8000272a: 0000 unimp
+8000272c: 0000 unimp
+8000272e: 0000 unimp
+80002730: 0000 unimp
+80002732: 0000 unimp
+80002734: 0000 unimp
+80002736: 0000 unimp
+80002738: 0000 unimp
+8000273a: 0000 unimp
+8000273c: 0000 unimp
+8000273e: 0000 unimp
+80002740: 0000 unimp
+80002742: 0000 unimp
+80002744: 0000 unimp
+80002746: 0000 unimp
+80002748: 0000 unimp
+8000274a: 0000 unimp
+8000274c: 0000 unimp
+8000274e: 0000 unimp
+80002750: 0000 unimp
+80002752: 0000 unimp
+80002754: 0000 unimp
+80002756: 0000 unimp
+80002758: 0000 unimp
+8000275a: 0000 unimp
+8000275c: 0000 unimp
+8000275e: 0000 unimp
+80002760: 0000 unimp
+80002762: 0000 unimp
+80002764: 0000 unimp
+80002766: 0000 unimp
+80002768: 0000 unimp
+8000276a: 0000 unimp
+8000276c: 0000 unimp
+8000276e: 0000 unimp
+80002770: 0000 unimp
+80002772: 0000 unimp
+80002774: 0000 unimp
+80002776: 0000 unimp
+80002778: 0000 unimp
+8000277a: 0000 unimp
+8000277c: 0000 unimp
+8000277e: 0000 unimp
+80002780: 0000 unimp
+80002782: 0000 unimp
+80002784: 0000 unimp
+80002786: 0000 unimp
+80002788: 0000 unimp
+8000278a: 0000 unimp
+8000278c: 0000 unimp
+8000278e: 0000 unimp
+80002790: 0000 unimp
+80002792: 0000 unimp
+80002794: 0000 unimp
+80002796: 0000 unimp
+80002798: 0000 unimp
+8000279a: 0000 unimp
+8000279c: 0000 unimp
+8000279e: 0000 unimp
+800027a0: 0000 unimp
+800027a2: 0000 unimp
+800027a4: 0000 unimp
+800027a6: 0000 unimp
+800027a8: 0000 unimp
+800027aa: 0000 unimp
+800027ac: 0000 unimp
+800027ae: 0000 unimp
+800027b0: 0000 unimp
+800027b2: 0000 unimp
+800027b4: 0000 unimp
+800027b6: 0000 unimp
+800027b8: 0000 unimp
+800027ba: 0000 unimp
+800027bc: 0000 unimp
+800027be: 0000 unimp
+800027c0: 0000 unimp
+800027c2: 0000 unimp
+800027c4: 0000 unimp
+800027c6: 0000 unimp
+800027c8: 0000 unimp
+800027ca: 0000 unimp
+800027cc: 0000 unimp
+800027ce: 0000 unimp
+800027d0: 0000 unimp
+800027d2: 0000 unimp
+800027d4: 0000 unimp
+800027d6: 0000 unimp
+800027d8: 0000 unimp
+800027da: 0000 unimp
+800027dc: 0000 unimp
+800027de: 0000 unimp
+800027e0: 0000 unimp
+800027e2: 0000 unimp
+800027e4: 0000 unimp
+800027e6: 0000 unimp
+800027e8: 0000 unimp
+800027ea: 0000 unimp
+800027ec: 0000 unimp
+800027ee: 0000 unimp
+800027f0: 0000 unimp
+800027f2: 0000 unimp
+800027f4: 0000 unimp
+800027f6: 0000 unimp
+800027f8: 0000 unimp
+800027fa: 0000 unimp
+800027fc: 0000 unimp
+800027fe: 0000 unimp
+80002800: 0000 unimp
+80002802: 0000 unimp
+80002804: 0000 unimp
+80002806: 0000 unimp
+80002808: 0000 unimp
+8000280a: 0000 unimp
+8000280c: 0000 unimp
+8000280e: 0000 unimp
+80002810: 0000 unimp
+80002812: 0000 unimp
+80002814: 0000 unimp
+80002816: 0000 unimp
+80002818: 0000 unimp
+8000281a: 0000 unimp
+8000281c: 0000 unimp
+8000281e: 0000 unimp
+80002820: 0000 unimp
+80002822: 0000 unimp
+80002824: 0000 unimp
+80002826: 0000 unimp
+80002828: 0000 unimp
+8000282a: 0000 unimp
+8000282c: 0000 unimp
+8000282e: 0000 unimp
+80002830: 0000 unimp
+80002832: 0000 unimp
+80002834: 0000 unimp
+80002836: 0000 unimp
+80002838: 0000 unimp
+8000283a: 0000 unimp
+8000283c: 0000 unimp
+8000283e: 0000 unimp
+80002840: 0000 unimp
+80002842: 0000 unimp
+80002844: 0000 unimp
+80002846: 0000 unimp
+80002848: 0000 unimp
+8000284a: 0000 unimp
+8000284c: 0000 unimp
+8000284e: 0000 unimp
+80002850: 0000 unimp
+80002852: 0000 unimp
+80002854: 0000 unimp
+80002856: 0000 unimp
+80002858: 0000 unimp
+8000285a: 0000 unimp
+8000285c: 0000 unimp
+8000285e: 0000 unimp
+80002860: 0000 unimp
+80002862: 0000 unimp
+80002864: 0000 unimp
+80002866: 0000 unimp
+80002868: 0000 unimp
+8000286a: 0000 unimp
+8000286c: 0000 unimp
+8000286e: 0000 unimp
+80002870: 0000 unimp
+80002872: 0000 unimp
+80002874: 0000 unimp
+80002876: 0000 unimp
+80002878: 0000 unimp
+8000287a: 0000 unimp
+8000287c: 0000 unimp
+8000287e: 0000 unimp
+80002880: 0000 unimp
+80002882: 0000 unimp
+80002884: 0000 unimp
+80002886: 0000 unimp
+80002888: 0000 unimp
+8000288a: 0000 unimp
+8000288c: 0000 unimp
+8000288e: 0000 unimp
+80002890: 0000 unimp
+80002892: 0000 unimp
+80002894: 0000 unimp
+80002896: 0000 unimp
+80002898: 0000 unimp
+8000289a: 0000 unimp
+8000289c: 0000 unimp
+8000289e: 0000 unimp
+800028a0: 0000 unimp
+800028a2: 0000 unimp
+800028a4: 0000 unimp
+800028a6: 0000 unimp
+800028a8: 0000 unimp
+800028aa: 0000 unimp
+800028ac: 0000 unimp
+800028ae: 0000 unimp
+800028b0: 0000 unimp
+800028b2: 0000 unimp
+800028b4: 0000 unimp
+800028b6: 0000 unimp
+800028b8: 0000 unimp
+800028ba: 0000 unimp
+800028bc: 0000 unimp
+800028be: 0000 unimp
+800028c0: 0000 unimp
+800028c2: 0000 unimp
+800028c4: 0000 unimp
+800028c6: 0000 unimp
+800028c8: 0000 unimp
+800028ca: 0000 unimp
+800028cc: 0000 unimp
+800028ce: 0000 unimp
+800028d0: 0000 unimp
+800028d2: 0000 unimp
+800028d4: 0000 unimp
+800028d6: 0000 unimp
+800028d8: 0000 unimp
+800028da: 0000 unimp
+800028dc: 0000 unimp
+800028de: 0000 unimp
+800028e0: 0000 unimp
+800028e2: 0000 unimp
+800028e4: 0000 unimp
+800028e6: 0000 unimp
+800028e8: 0000 unimp
+800028ea: 0000 unimp
+800028ec: 0000 unimp
+800028ee: 0000 unimp
+800028f0: 0000 unimp
+800028f2: 0000 unimp
+800028f4: 0000 unimp
+800028f6: 0000 unimp
+800028f8: 0000 unimp
+800028fa: 0000 unimp
+800028fc: 0000 unimp
+800028fe: 0000 unimp
+80002900: 0000 unimp
+80002902: 0000 unimp
+80002904: 0000 unimp
+80002906: 0000 unimp
+80002908: 0000 unimp
+8000290a: 0000 unimp
+8000290c: 0000 unimp
+8000290e: 0000 unimp
+80002910: 0000 unimp
+80002912: 0000 unimp
+80002914: 0000 unimp
+80002916: 0000 unimp
+80002918: 0000 unimp
+8000291a: 0000 unimp
+8000291c: 0000 unimp
+8000291e: 0000 unimp
+80002920: 0000 unimp
+80002922: 0000 unimp
+80002924: 0000 unimp
+80002926: 0000 unimp
+80002928: 0000 unimp
+8000292a: 0000 unimp
+8000292c: 0000 unimp
+8000292e: 0000 unimp
+80002930: 0000 unimp
+80002932: 0000 unimp
+80002934: 0000 unimp
+80002936: 0000 unimp
+80002938: 0000 unimp
+8000293a: 0000 unimp
+8000293c: 0000 unimp
+8000293e: 0000 unimp
+80002940: 0000 unimp
+80002942: 0000 unimp
+80002944: 0000 unimp
+80002946: 0000 unimp
+80002948: 0000 unimp
+8000294a: 0000 unimp
+8000294c: 0000 unimp
+8000294e: 0000 unimp
+80002950: 0000 unimp
+80002952: 0000 unimp
+80002954: 0000 unimp
+80002956: 0000 unimp
+80002958: 0000 unimp
+8000295a: 0000 unimp
+8000295c: 0000 unimp
+8000295e: 0000 unimp
+80002960: 0000 unimp
+80002962: 0000 unimp
+80002964: 0000 unimp
+80002966: 0000 unimp
+80002968: 0000 unimp
+8000296a: 0000 unimp
+8000296c: 0000 unimp
+8000296e: 0000 unimp
+80002970: 0000 unimp
+80002972: 0000 unimp
+80002974: 0000 unimp
+80002976: 0000 unimp
+80002978: 0000 unimp
+8000297a: 0000 unimp
+8000297c: 0000 unimp
+8000297e: 0000 unimp
+80002980: 0000 unimp
+80002982: 0000 unimp
+80002984: 0000 unimp
+80002986: 0000 unimp
+80002988: 0000 unimp
+8000298a: 0000 unimp
+8000298c: 0000 unimp
+8000298e: 0000 unimp
+80002990: 0000 unimp
+80002992: 0000 unimp
+80002994: 0000 unimp
+80002996: 0000 unimp
+80002998: 0000 unimp
+8000299a: 0000 unimp
+8000299c: 0000 unimp
+8000299e: 0000 unimp
+800029a0: 0000 unimp
+800029a2: 0000 unimp
+800029a4: 0000 unimp
+800029a6: 0000 unimp
+800029a8: 0000 unimp
+800029aa: 0000 unimp
+800029ac: 0000 unimp
+800029ae: 0000 unimp
+800029b0: 0000 unimp
+800029b2: 0000 unimp
+800029b4: 0000 unimp
+800029b6: 0000 unimp
+800029b8: 0000 unimp
+800029ba: 0000 unimp
+800029bc: 0000 unimp
+800029be: 0000 unimp
+800029c0: 0000 unimp
+800029c2: 0000 unimp
+800029c4: 0000 unimp
+800029c6: 0000 unimp
+800029c8: 0000 unimp
+800029ca: 0000 unimp
+800029cc: 0000 unimp
+800029ce: 0000 unimp
+800029d0: 0000 unimp
+800029d2: 0000 unimp
+800029d4: 0000 unimp
+800029d6: 0000 unimp
+800029d8: 0000 unimp
+800029da: 0000 unimp
+800029dc: 0000 unimp
+800029de: 0000 unimp
+800029e0: 0000 unimp
+800029e2: 0000 unimp
+800029e4: 0000 unimp
+800029e6: 0000 unimp
+800029e8: 0000 unimp
+800029ea: 0000 unimp
+800029ec: 0000 unimp
+800029ee: 0000 unimp
+800029f0: 0000 unimp
+800029f2: 0000 unimp
+800029f4: 0000 unimp
+800029f6: 0000 unimp
+800029f8: 0000 unimp
+800029fa: 0000 unimp
+800029fc: 0000 unimp
+800029fe: 0000 unimp
+80002a00: 0000 unimp
+80002a02: 0000 unimp
+80002a04: 0000 unimp
+80002a06: 0000 unimp
+80002a08: 0000 unimp
+80002a0a: 0000 unimp
+80002a0c: 0000 unimp
+80002a0e: 0000 unimp
+80002a10: 0000 unimp
+80002a12: 0000 unimp
+80002a14: 0000 unimp
+80002a16: 0000 unimp
+80002a18: 0000 unimp
+80002a1a: 0000 unimp
+80002a1c: 0000 unimp
+80002a1e: 0000 unimp
+80002a20: 0000 unimp
+80002a22: 0000 unimp
+80002a24: 0000 unimp
+80002a26: 0000 unimp
+80002a28: 0000 unimp
+80002a2a: 0000 unimp
+80002a2c: 0000 unimp
+80002a2e: 0000 unimp
+80002a30: 0000 unimp
+80002a32: 0000 unimp
+80002a34: 0000 unimp
+80002a36: 0000 unimp
+80002a38: 0000 unimp
+80002a3a: 0000 unimp
+80002a3c: 0000 unimp
+80002a3e: 0000 unimp
+80002a40: 0000 unimp
+80002a42: 0000 unimp
+80002a44: 0000 unimp
+80002a46: 0000 unimp
+80002a48: 0000 unimp
+80002a4a: 0000 unimp
+80002a4c: 0000 unimp
+80002a4e: 0000 unimp
+80002a50: 0000 unimp
+80002a52: 0000 unimp
+80002a54: 0000 unimp
+80002a56: 0000 unimp
+80002a58: 0000 unimp
+80002a5a: 0000 unimp
+80002a5c: 0000 unimp
+80002a5e: 0000 unimp
+80002a60: 0000 unimp
+80002a62: 0000 unimp
+80002a64: 0000 unimp
+80002a66: 0000 unimp
+80002a68: 0000 unimp
+80002a6a: 0000 unimp
+80002a6c: 0000 unimp
+80002a6e: 0000 unimp
+80002a70: 0000 unimp
+80002a72: 0000 unimp
+80002a74: 0000 unimp
+80002a76: 0000 unimp
+80002a78: 0000 unimp
+80002a7a: 0000 unimp
+80002a7c: 0000 unimp
+80002a7e: 0000 unimp
+80002a80: 0000 unimp
+80002a82: 0000 unimp
+80002a84: 0000 unimp
+80002a86: 0000 unimp
+80002a88: 0000 unimp
+80002a8a: 0000 unimp
+80002a8c: 0000 unimp
+80002a8e: 0000 unimp
+80002a90: 0000 unimp
+80002a92: 0000 unimp
+80002a94: 0000 unimp
+80002a96: 0000 unimp
+80002a98: 0000 unimp
+80002a9a: 0000 unimp
+80002a9c: 0000 unimp
+80002a9e: 0000 unimp
+80002aa0: 0000 unimp
+80002aa2: 0000 unimp
+80002aa4: 0000 unimp
+80002aa6: 0000 unimp
+80002aa8: 0000 unimp
+80002aaa: 0000 unimp
+80002aac: 0000 unimp
+80002aae: 0000 unimp
+80002ab0: 0000 unimp
+80002ab2: 0000 unimp
+80002ab4: 0000 unimp
+80002ab6: 0000 unimp
+80002ab8: 0000 unimp
+80002aba: 0000 unimp
+80002abc: 0000 unimp
+80002abe: 0000 unimp
+80002ac0: 0000 unimp
+80002ac2: 0000 unimp
+80002ac4: 0000 unimp
+80002ac6: 0000 unimp
+80002ac8: 0000 unimp
+80002aca: 0000 unimp
+80002acc: 0000 unimp
+80002ace: 0000 unimp
+80002ad0: 0000 unimp
+80002ad2: 0000 unimp
+80002ad4: 0000 unimp
+80002ad6: 0000 unimp
+80002ad8: 0000 unimp
+80002ada: 0000 unimp
+80002adc: 0000 unimp
+80002ade: 0000 unimp
+80002ae0: 0000 unimp
+80002ae2: 0000 unimp
+80002ae4: 0000 unimp
+80002ae6: 0000 unimp
+80002ae8: 0000 unimp
+80002aea: 0000 unimp
+80002aec: 0000 unimp
+80002aee: 0000 unimp
+80002af0: 0000 unimp
+80002af2: 0000 unimp
+80002af4: 0000 unimp
+80002af6: 0000 unimp
+80002af8: 0000 unimp
+80002afa: 0000 unimp
+80002afc: 0000 unimp
+80002afe: 0000 unimp
+80002b00: 0000 unimp
+80002b02: 0000 unimp
+80002b04: 0000 unimp
+80002b06: 0000 unimp
+80002b08: 0000 unimp
+80002b0a: 0000 unimp
+80002b0c: 0000 unimp
+80002b0e: 0000 unimp
+80002b10: 0000 unimp
+80002b12: 0000 unimp
+80002b14: 0000 unimp
+80002b16: 0000 unimp
+80002b18: 0000 unimp
+80002b1a: 0000 unimp
+80002b1c: 0000 unimp
+80002b1e: 0000 unimp
+80002b20: 0000 unimp
+80002b22: 0000 unimp
+80002b24: 0000 unimp
+80002b26: 0000 unimp
+80002b28: 0000 unimp
+80002b2a: 0000 unimp
+80002b2c: 0000 unimp
+80002b2e: 0000 unimp
+80002b30: 0000 unimp
+80002b32: 0000 unimp
+80002b34: 0000 unimp
+80002b36: 0000 unimp
+80002b38: 0000 unimp
+80002b3a: 0000 unimp
+80002b3c: 0000 unimp
+80002b3e: 0000 unimp
+80002b40: 0000 unimp
+80002b42: 0000 unimp
+80002b44: 0000 unimp
+80002b46: 0000 unimp
+80002b48: 0000 unimp
+80002b4a: 0000 unimp
+80002b4c: 0000 unimp
+80002b4e: 0000 unimp
+80002b50: 0000 unimp
+80002b52: 0000 unimp
+80002b54: 0000 unimp
+80002b56: 0000 unimp
+80002b58: 0000 unimp
+80002b5a: 0000 unimp
+80002b5c: 0000 unimp
+80002b5e: 0000 unimp
+80002b60: 0000 unimp
+80002b62: 0000 unimp
+80002b64: 0000 unimp
+80002b66: 0000 unimp
+80002b68: 0000 unimp
+80002b6a: 0000 unimp
+80002b6c: 0000 unimp
+80002b6e: 0000 unimp
+80002b70: 0000 unimp
+80002b72: 0000 unimp
+80002b74: 0000 unimp
+80002b76: 0000 unimp
+80002b78: 0000 unimp
+80002b7a: 0000 unimp
+80002b7c: 0000 unimp
+80002b7e: 0000 unimp
+80002b80: 0000 unimp
+80002b82: 0000 unimp
+80002b84: 0000 unimp
+80002b86: 0000 unimp
+80002b88: 0000 unimp
+80002b8a: 0000 unimp
+80002b8c: 0000 unimp
+80002b8e: 0000 unimp
+80002b90: 0000 unimp
+80002b92: 0000 unimp
+80002b94: 0000 unimp
+80002b96: 0000 unimp
+80002b98: 0000 unimp
+80002b9a: 0000 unimp
+80002b9c: 0000 unimp
+80002b9e: 0000 unimp
+80002ba0: 0000 unimp
+80002ba2: 0000 unimp
+80002ba4: 0000 unimp
+80002ba6: 0000 unimp
+80002ba8: 0000 unimp
+80002baa: 0000 unimp
+80002bac: 0000 unimp
+80002bae: 0000 unimp
+80002bb0: 0000 unimp
+80002bb2: 0000 unimp
+80002bb4: 0000 unimp
+80002bb6: 0000 unimp
+80002bb8: 0000 unimp
+80002bba: 0000 unimp
+80002bbc: 0000 unimp
+80002bbe: 0000 unimp
+80002bc0: 0000 unimp
+80002bc2: 0000 unimp
+80002bc4: 0000 unimp
+80002bc6: 0000 unimp
+80002bc8: 0000 unimp
+80002bca: 0000 unimp
+80002bcc: 0000 unimp
+80002bce: 0000 unimp
+80002bd0: 0000 unimp
+80002bd2: 0000 unimp
+80002bd4: 0000 unimp
+80002bd6: 0000 unimp
+80002bd8: 0000 unimp
+80002bda: 0000 unimp
+80002bdc: 0000 unimp
+80002bde: 0000 unimp
+80002be0: 0000 unimp
+80002be2: 0000 unimp
+80002be4: 0000 unimp
+80002be6: 0000 unimp
+80002be8: 0000 unimp
+80002bea: 0000 unimp
+80002bec: 0000 unimp
+80002bee: 0000 unimp
+80002bf0: 0000 unimp
+80002bf2: 0000 unimp
+80002bf4: 0000 unimp
+80002bf6: 0000 unimp
+80002bf8: 0000 unimp
+80002bfa: 0000 unimp
+80002bfc: 0000 unimp
+80002bfe: 0000 unimp
+80002c00: 0000 unimp
+80002c02: 0000 unimp
+80002c04: 0000 unimp
+80002c06: 0000 unimp
+80002c08: 0000 unimp
+80002c0a: 0000 unimp
+80002c0c: 0000 unimp
+80002c0e: 0000 unimp
+80002c10: 0000 unimp
+80002c12: 0000 unimp
+80002c14: 0000 unimp
+80002c16: 0000 unimp
+80002c18: 0000 unimp
+80002c1a: 0000 unimp
+80002c1c: 0000 unimp
+80002c1e: 0000 unimp
+80002c20: 0000 unimp
+80002c22: 0000 unimp
+80002c24: 0000 unimp
+80002c26: 0000 unimp
+80002c28: 0000 unimp
+80002c2a: 0000 unimp
+80002c2c: 0000 unimp
+80002c2e: 0000 unimp
+80002c30: 0000 unimp
+80002c32: 0000 unimp
+80002c34: 0000 unimp
+80002c36: 0000 unimp
+80002c38: 0000 unimp
+80002c3a: 0000 unimp
+80002c3c: 0000 unimp
+80002c3e: 0000 unimp
+80002c40: 0000 unimp
+80002c42: 0000 unimp
+80002c44: 0000 unimp
+80002c46: 0000 unimp
+80002c48: 0000 unimp
+80002c4a: 0000 unimp
+80002c4c: 0000 unimp
+80002c4e: 0000 unimp
+80002c50: 0000 unimp
+80002c52: 0000 unimp
+80002c54: 0000 unimp
+80002c56: 0000 unimp
+80002c58: 0000 unimp
+80002c5a: 0000 unimp
+80002c5c: 0000 unimp
+80002c5e: 0000 unimp
+80002c60: 0000 unimp
+80002c62: 0000 unimp
+80002c64: 0000 unimp
+80002c66: 0000 unimp
+80002c68: 0000 unimp
+80002c6a: 0000 unimp
+80002c6c: 0000 unimp
+80002c6e: 0000 unimp
+80002c70: 0000 unimp
+80002c72: 0000 unimp
+80002c74: 0000 unimp
+80002c76: 0000 unimp
+80002c78: 0000 unimp
+80002c7a: 0000 unimp
+80002c7c: 0000 unimp
+80002c7e: 0000 unimp
+80002c80: 0000 unimp
+80002c82: 0000 unimp
+80002c84: 0000 unimp
+80002c86: 0000 unimp
+80002c88: 0000 unimp
+80002c8a: 0000 unimp
+80002c8c: 0000 unimp
+80002c8e: 0000 unimp
+80002c90: 0000 unimp
+80002c92: 0000 unimp
+80002c94: 0000 unimp
+80002c96: 0000 unimp
+80002c98: 0000 unimp
+80002c9a: 0000 unimp
+80002c9c: 0000 unimp
+80002c9e: 0000 unimp
+80002ca0: 0000 unimp
+80002ca2: 0000 unimp
+80002ca4: 0000 unimp
+80002ca6: 0000 unimp
+80002ca8: 0000 unimp
+80002caa: 0000 unimp
+80002cac: 0000 unimp
+80002cae: 0000 unimp
+80002cb0: 0000 unimp
+80002cb2: 0000 unimp
+80002cb4: 0000 unimp
+80002cb6: 0000 unimp
+80002cb8: 0000 unimp
+80002cba: 0000 unimp
+80002cbc: 0000 unimp
+80002cbe: 0000 unimp
+80002cc0: 0000 unimp
+80002cc2: 0000 unimp
+80002cc4: 0000 unimp
+80002cc6: 0000 unimp
+80002cc8: 0000 unimp
+80002cca: 0000 unimp
+80002ccc: 0000 unimp
+80002cce: 0000 unimp
+80002cd0: 0000 unimp
+80002cd2: 0000 unimp
+80002cd4: 0000 unimp
+80002cd6: 0000 unimp
+80002cd8: 0000 unimp
+80002cda: 0000 unimp
+80002cdc: 0000 unimp
+80002cde: 0000 unimp
+80002ce0: 0000 unimp
+80002ce2: 0000 unimp
+80002ce4: 0000 unimp
+80002ce6: 0000 unimp
+80002ce8: 0000 unimp
+80002cea: 0000 unimp
+80002cec: 0000 unimp
+80002cee: 0000 unimp
+80002cf0: 0000 unimp
+80002cf2: 0000 unimp
+80002cf4: 0000 unimp
+80002cf6: 0000 unimp
+80002cf8: 0000 unimp
+80002cfa: 0000 unimp
+80002cfc: 0000 unimp
+80002cfe: 0000 unimp
+80002d00: 0000 unimp
+80002d02: 0000 unimp
+80002d04: 0000 unimp
+80002d06: 0000 unimp
+80002d08: 0000 unimp
+80002d0a: 0000 unimp
+80002d0c: 0000 unimp
+80002d0e: 0000 unimp
+80002d10: 0000 unimp
+80002d12: 0000 unimp
+80002d14: 0000 unimp
+80002d16: 0000 unimp
+80002d18: 0000 unimp
+80002d1a: 0000 unimp
+80002d1c: 0000 unimp
+80002d1e: 0000 unimp
+80002d20: 0000 unimp
+80002d22: 0000 unimp
+80002d24: 0000 unimp
+80002d26: 0000 unimp
+80002d28: 0000 unimp
+80002d2a: 0000 unimp
+80002d2c: 0000 unimp
+80002d2e: 0000 unimp
+80002d30: 0000 unimp
+80002d32: 0000 unimp
+80002d34: 0000 unimp
+80002d36: 0000 unimp
+80002d38: 0000 unimp
+80002d3a: 0000 unimp
+80002d3c: 0000 unimp
+80002d3e: 0000 unimp
+80002d40: 0000 unimp
+80002d42: 0000 unimp
+80002d44: 0000 unimp
+80002d46: 0000 unimp
+80002d48: 0000 unimp
+80002d4a: 0000 unimp
+80002d4c: 0000 unimp
+80002d4e: 0000 unimp
+80002d50: 0000 unimp
+80002d52: 0000 unimp
+80002d54: 0000 unimp
+80002d56: 0000 unimp
+80002d58: 0000 unimp
+80002d5a: 0000 unimp
+80002d5c: 0000 unimp
+80002d5e: 0000 unimp
+80002d60: 0000 unimp
+80002d62: 0000 unimp
+80002d64: 0000 unimp
+80002d66: 0000 unimp
+80002d68: 0000 unimp
+80002d6a: 0000 unimp
+80002d6c: 0000 unimp
+80002d6e: 0000 unimp
+80002d70: 0000 unimp
+80002d72: 0000 unimp
+80002d74: 0000 unimp
+80002d76: 0000 unimp
+80002d78: 0000 unimp
+80002d7a: 0000 unimp
+80002d7c: 0000 unimp
+80002d7e: 0000 unimp
+80002d80: 0000 unimp
+80002d82: 0000 unimp
+80002d84: 0000 unimp
+80002d86: 0000 unimp
+80002d88: 0000 unimp
+80002d8a: 0000 unimp
+80002d8c: 0000 unimp
+80002d8e: 0000 unimp
+80002d90: 0000 unimp
+80002d92: 0000 unimp
+80002d94: 0000 unimp
+80002d96: 0000 unimp
+80002d98: 0000 unimp
+80002d9a: 0000 unimp
+80002d9c: 0000 unimp
+80002d9e: 0000 unimp
+80002da0: 0000 unimp
+80002da2: 0000 unimp
+80002da4: 0000 unimp
+80002da6: 0000 unimp
+80002da8: 0000 unimp
+80002daa: 0000 unimp
+80002dac: 0000 unimp
+80002dae: 0000 unimp
+80002db0: 0000 unimp
+80002db2: 0000 unimp
+80002db4: 0000 unimp
+80002db6: 0000 unimp
+80002db8: 0000 unimp
+80002dba: 0000 unimp
+80002dbc: 0000 unimp
+80002dbe: 0000 unimp
+80002dc0: 0000 unimp
+80002dc2: 0000 unimp
+80002dc4: 0000 unimp
+80002dc6: 0000 unimp
+80002dc8: 0000 unimp
+80002dca: 0000 unimp
+80002dcc: 0000 unimp
+80002dce: 0000 unimp
+80002dd0: 0000 unimp
+80002dd2: 0000 unimp
+80002dd4: 0000 unimp
+80002dd6: 0000 unimp
+80002dd8: 0000 unimp
+80002dda: 0000 unimp
+80002ddc: 0000 unimp
+80002dde: 0000 unimp
+80002de0: 0000 unimp
+80002de2: 0000 unimp
+80002de4: 0000 unimp
+80002de6: 0000 unimp
+80002de8: 0000 unimp
+80002dea: 0000 unimp
+80002dec: 0000 unimp
+80002dee: 0000 unimp
+80002df0: 0000 unimp
+80002df2: 0000 unimp
+80002df4: 0000 unimp
+80002df6: 0000 unimp
+80002df8: 0000 unimp
+80002dfa: 0000 unimp
+80002dfc: 0000 unimp
+80002dfe: 0000 unimp
+80002e00: 0000 unimp
+80002e02: 0000 unimp
+80002e04: 0000 unimp
+80002e06: 0000 unimp
+80002e08: 0000 unimp
+80002e0a: 0000 unimp
+80002e0c: 0000 unimp
+80002e0e: 0000 unimp
+80002e10: 0000 unimp
+80002e12: 0000 unimp
+80002e14: 0000 unimp
+80002e16: 0000 unimp
+80002e18: 0000 unimp
+80002e1a: 0000 unimp
+80002e1c: 0000 unimp
+80002e1e: 0000 unimp
+80002e20: 0000 unimp
+80002e22: 0000 unimp
+80002e24: 0000 unimp
+80002e26: 0000 unimp
+80002e28: 0000 unimp
+80002e2a: 0000 unimp
+80002e2c: 0000 unimp
+80002e2e: 0000 unimp
+80002e30: 0000 unimp
+80002e32: 0000 unimp
+80002e34: 0000 unimp
+80002e36: 0000 unimp
+80002e38: 0000 unimp
+80002e3a: 0000 unimp
+80002e3c: 0000 unimp
+80002e3e: 0000 unimp
+80002e40: 0000 unimp
+80002e42: 0000 unimp
+80002e44: 0000 unimp
+80002e46: 0000 unimp
+80002e48: 0000 unimp
+80002e4a: 0000 unimp
+80002e4c: 0000 unimp
+80002e4e: 0000 unimp
+80002e50: 0000 unimp
+80002e52: 0000 unimp
+80002e54: 0000 unimp
+80002e56: 0000 unimp
+80002e58: 0000 unimp
+80002e5a: 0000 unimp
+80002e5c: 0000 unimp
+80002e5e: 0000 unimp
+80002e60: 0000 unimp
+80002e62: 0000 unimp
+80002e64: 0000 unimp
+80002e66: 0000 unimp
+80002e68: 0000 unimp
+80002e6a: 0000 unimp
+80002e6c: 0000 unimp
+80002e6e: 0000 unimp
+80002e70: 0000 unimp
+80002e72: 0000 unimp
+80002e74: 0000 unimp
+80002e76: 0000 unimp
+80002e78: 0000 unimp
+80002e7a: 0000 unimp
+80002e7c: 0000 unimp
+80002e7e: 0000 unimp
+80002e80: 0000 unimp
+80002e82: 0000 unimp
+80002e84: 0000 unimp
+80002e86: 0000 unimp
+80002e88: 0000 unimp
+80002e8a: 0000 unimp
+80002e8c: 0000 unimp
+80002e8e: 0000 unimp
+80002e90: 0000 unimp
+80002e92: 0000 unimp
+80002e94: 0000 unimp
+80002e96: 0000 unimp
+80002e98: 0000 unimp
diff --git a/test/riscv-tests/rv32uc-p-rvc.elf b/test/riscv-tests/rv32uc-p-rvc.elf
new file mode 100644
index 0000000..1bf660c
--- /dev/null
+++ b/test/riscv-tests/rv32uc-p-rvc.elf
Binary files differ
diff --git a/test/riscv-tests/rv32uc-v-rvc.dump b/test/riscv-tests/rv32uc-v-rvc.dump
new file mode 100644
index 0000000..5f5fe02
--- /dev/null
+++ b/test/riscv-tests/rv32uc-v-rvc.dump
@@ -0,0 +1,6474 @@
+
+rv32uc-v-rvc: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 0000a117 auipc sp,0xa
+8000001c: 35010113 addi sp,sp,848 # 8000a368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: fd050513 addi a0,a0,-48 # 80003000 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00005317 auipc t1,0x5
+80002370: c9430313 addi t1,t1,-876 # 80007000 <begin_signature>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00007797 auipc a5,0x7
+8000238c: 06c78793 addi a5,a5,108 # 800093f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00007717 auipc a4,0x7
+800023a0: 05470713 addi a4,a4,84 # 800093f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00007697 auipc a3,0x7
+800023ac: 04f6a623 sw a5,76(a3) # 800093f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00007717 auipc a4,0x7
+800023dc: e2070713 addi a4,a4,-480 # 800091f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf6c08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00007797 auipc a5,0x7
+800024bc: f207ac23 sw zero,-200(a5) # 800093f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00004597 auipc a1,0x4
+800024cc: b0c58593 addi a1,a1,-1268 # 80005fd4 <pass+0xd7c>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00004597 auipc a1,0x4
+8000253c: b2858593 addi a1,a1,-1240 # 80006060 <pass+0xe08>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00004597 auipc a1,0x4
+800025a8: ad458593 addi a1,a1,-1324 # 80006078 <pass+0xe20>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00004597 auipc a1,0x4
+80002614: a0858593 addi a1,a1,-1528 # 80006018 <pass+0xdc0>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00004597 auipc a1,0x4
+8000274c: 9f858593 addi a1,a1,-1544 # 80006140 <pass+0xee8>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00004597 auipc a1,0x4
+800027c0: 96058593 addi a1,a1,-1696 # 8000611c <pass+0xec4>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00007b17 auipc s6,0x7
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800091f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00004d17 auipc s10,0x4
+80002840: 7c4d0d13 addi s10,s10,1988 # 80007000 <begin_signature>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00007717 auipc a4,0x7
+8000285c: b8f72c23 sw a5,-1128(a4) # 800093f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00007717 auipc a4,0x7
+800028e8: b0c70713 addi a4,a4,-1268 # 800093f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00007717 auipc a4,0x7
+800028fc: aef72c23 sw a5,-1288(a4) # 800093f0 <freelist_tail>
+80002900: 00007717 auipc a4,0x7
+80002904: aef72a23 sw a5,-1292(a4) # 800093f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00004617 auipc a2,0x4
+80002914: 85c60613 addi a2,a2,-1956 # 8000616c <pass+0xf14>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00003617 auipc a2,0x3
+80002980: 76c60613 addi a2,a2,1900 # 800060e8 <pass+0xe90>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00003617 auipc a2,0x3
+800029cc: 6ec60613 addi a2,a2,1772 # 800060b4 <pass+0xe5c>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00005797 auipc a5,0x5
+80002a4c: 5b878793 addi a5,a5,1464 # 80008000 <begin_signature+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00004697 auipc a3,0x4
+80002a60: 5af6a223 sw a5,1444(a3) # 80007000 <begin_signature>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00004717 auipc a4,0x4
+80002a6c: 59870713 addi a4,a4,1432 # 80007000 <begin_signature>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00005697 auipc a3,0x5
+80002a7c: 58f6a223 sw a5,1412(a3) # 80007ffc <begin_signature+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf6ccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc06797 auipc a5,0x7fc06
+80002aec: 51878793 addi a5,a5,1304 # ffc09000 <_end+0x7fbffc08>
+80002af0: 00007717 auipc a4,0x7
+80002af4: 90f72223 sw a5,-1788(a4) # 800093f4 <freelist_head>
+80002af8: 7fc06797 auipc a5,0x7fc06
+80002afc: 6f878793 addi a5,a5,1784 # ffc091f0 <_end+0x7fbffdf8>
+80002b00: 00007717 auipc a4,0x7
+80002b04: 8ef72823 sw a5,-1808(a4) # 800093f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00006717 auipc a4,0x6
+80002b10: 4f470713 addi a4,a4,1268 # 80009000 <freelist_nodes>
+80002b14: 00006317 auipc t1,0x6
+80002b18: 6e430313 addi t1,t1,1764 # 800091f8 <user_mapping>
+80002b1c: 01d00793 li a5,29
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00006797 auipc a5,0x6
+80002b6c: 6807a623 sw zero,1676(a5) # 800091f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 077307b7 lui a5,0x7730
+80002b9c: 00080637 lui a2,0x80
+80002ba0: 04778793 addi a5,a5,71 # 7730047 <_start-0x788cffb9>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+80002be0: 0000 unimp
+80002be2: 0000 unimp
+80002be4: 0000 unimp
+80002be6: 0000 unimp
+80002be8: 0000 unimp
+80002bea: 0000 unimp
+80002bec: 0000 unimp
+80002bee: 0000 unimp
+80002bf0: 0000 unimp
+80002bf2: 0000 unimp
+80002bf4: 0000 unimp
+80002bf6: 0000 unimp
+80002bf8: 0000 unimp
+80002bfa: 0000 unimp
+80002bfc: 0000 unimp
+80002bfe: 0000 unimp
+80002c00: 0000 unimp
+80002c02: 0000 unimp
+80002c04: 0000 unimp
+80002c06: 0000 unimp
+80002c08: 0000 unimp
+80002c0a: 0000 unimp
+80002c0c: 0000 unimp
+80002c0e: 0000 unimp
+80002c10: 0000 unimp
+80002c12: 0000 unimp
+80002c14: 0000 unimp
+80002c16: 0000 unimp
+80002c18: 0000 unimp
+80002c1a: 0000 unimp
+80002c1c: 0000 unimp
+80002c1e: 0000 unimp
+80002c20: 0000 unimp
+80002c22: 0000 unimp
+80002c24: 0000 unimp
+80002c26: 0000 unimp
+80002c28: 0000 unimp
+80002c2a: 0000 unimp
+80002c2c: 0000 unimp
+80002c2e: 0000 unimp
+80002c30: 0000 unimp
+80002c32: 0000 unimp
+80002c34: 0000 unimp
+80002c36: 0000 unimp
+80002c38: 0000 unimp
+80002c3a: 0000 unimp
+80002c3c: 0000 unimp
+80002c3e: 0000 unimp
+80002c40: 0000 unimp
+80002c42: 0000 unimp
+80002c44: 0000 unimp
+80002c46: 0000 unimp
+80002c48: 0000 unimp
+80002c4a: 0000 unimp
+80002c4c: 0000 unimp
+80002c4e: 0000 unimp
+80002c50: 0000 unimp
+80002c52: 0000 unimp
+80002c54: 0000 unimp
+80002c56: 0000 unimp
+80002c58: 0000 unimp
+80002c5a: 0000 unimp
+80002c5c: 0000 unimp
+80002c5e: 0000 unimp
+80002c60: 0000 unimp
+80002c62: 0000 unimp
+80002c64: 0000 unimp
+80002c66: 0000 unimp
+80002c68: 0000 unimp
+80002c6a: 0000 unimp
+80002c6c: 0000 unimp
+80002c6e: 0000 unimp
+80002c70: 0000 unimp
+80002c72: 0000 unimp
+80002c74: 0000 unimp
+80002c76: 0000 unimp
+80002c78: 0000 unimp
+80002c7a: 0000 unimp
+80002c7c: 0000 unimp
+80002c7e: 0000 unimp
+80002c80: 0000 unimp
+80002c82: 0000 unimp
+80002c84: 0000 unimp
+80002c86: 0000 unimp
+80002c88: 0000 unimp
+80002c8a: 0000 unimp
+80002c8c: 0000 unimp
+80002c8e: 0000 unimp
+80002c90: 0000 unimp
+80002c92: 0000 unimp
+80002c94: 0000 unimp
+80002c96: 0000 unimp
+80002c98: 0000 unimp
+80002c9a: 0000 unimp
+80002c9c: 0000 unimp
+80002c9e: 0000 unimp
+80002ca0: 0000 unimp
+80002ca2: 0000 unimp
+80002ca4: 0000 unimp
+80002ca6: 0000 unimp
+80002ca8: 0000 unimp
+80002caa: 0000 unimp
+80002cac: 0000 unimp
+80002cae: 0000 unimp
+80002cb0: 0000 unimp
+80002cb2: 0000 unimp
+80002cb4: 0000 unimp
+80002cb6: 0000 unimp
+80002cb8: 0000 unimp
+80002cba: 0000 unimp
+80002cbc: 0000 unimp
+80002cbe: 0000 unimp
+80002cc0: 0000 unimp
+80002cc2: 0000 unimp
+80002cc4: 0000 unimp
+80002cc6: 0000 unimp
+80002cc8: 0000 unimp
+80002cca: 0000 unimp
+80002ccc: 0000 unimp
+80002cce: 0000 unimp
+80002cd0: 0000 unimp
+80002cd2: 0000 unimp
+80002cd4: 0000 unimp
+80002cd6: 0000 unimp
+80002cd8: 0000 unimp
+80002cda: 0000 unimp
+80002cdc: 0000 unimp
+80002cde: 0000 unimp
+80002ce0: 0000 unimp
+80002ce2: 0000 unimp
+80002ce4: 0000 unimp
+80002ce6: 0000 unimp
+80002ce8: 0000 unimp
+80002cea: 0000 unimp
+80002cec: 0000 unimp
+80002cee: 0000 unimp
+80002cf0: 0000 unimp
+80002cf2: 0000 unimp
+80002cf4: 0000 unimp
+80002cf6: 0000 unimp
+80002cf8: 0000 unimp
+80002cfa: 0000 unimp
+80002cfc: 0000 unimp
+80002cfe: 0000 unimp
+80002d00: 0000 unimp
+80002d02: 0000 unimp
+80002d04: 0000 unimp
+80002d06: 0000 unimp
+80002d08: 0000 unimp
+80002d0a: 0000 unimp
+80002d0c: 0000 unimp
+80002d0e: 0000 unimp
+80002d10: 0000 unimp
+80002d12: 0000 unimp
+80002d14: 0000 unimp
+80002d16: 0000 unimp
+80002d18: 0000 unimp
+80002d1a: 0000 unimp
+80002d1c: 0000 unimp
+80002d1e: 0000 unimp
+80002d20: 0000 unimp
+80002d22: 0000 unimp
+80002d24: 0000 unimp
+80002d26: 0000 unimp
+80002d28: 0000 unimp
+80002d2a: 0000 unimp
+80002d2c: 0000 unimp
+80002d2e: 0000 unimp
+80002d30: 0000 unimp
+80002d32: 0000 unimp
+80002d34: 0000 unimp
+80002d36: 0000 unimp
+80002d38: 0000 unimp
+80002d3a: 0000 unimp
+80002d3c: 0000 unimp
+80002d3e: 0000 unimp
+80002d40: 0000 unimp
+80002d42: 0000 unimp
+80002d44: 0000 unimp
+80002d46: 0000 unimp
+80002d48: 0000 unimp
+80002d4a: 0000 unimp
+80002d4c: 0000 unimp
+80002d4e: 0000 unimp
+80002d50: 0000 unimp
+80002d52: 0000 unimp
+80002d54: 0000 unimp
+80002d56: 0000 unimp
+80002d58: 0000 unimp
+80002d5a: 0000 unimp
+80002d5c: 0000 unimp
+80002d5e: 0000 unimp
+80002d60: 0000 unimp
+80002d62: 0000 unimp
+80002d64: 0000 unimp
+80002d66: 0000 unimp
+80002d68: 0000 unimp
+80002d6a: 0000 unimp
+80002d6c: 0000 unimp
+80002d6e: 0000 unimp
+80002d70: 0000 unimp
+80002d72: 0000 unimp
+80002d74: 0000 unimp
+80002d76: 0000 unimp
+80002d78: 0000 unimp
+80002d7a: 0000 unimp
+80002d7c: 0000 unimp
+80002d7e: 0000 unimp
+80002d80: 0000 unimp
+80002d82: 0000 unimp
+80002d84: 0000 unimp
+80002d86: 0000 unimp
+80002d88: 0000 unimp
+80002d8a: 0000 unimp
+80002d8c: 0000 unimp
+80002d8e: 0000 unimp
+80002d90: 0000 unimp
+80002d92: 0000 unimp
+80002d94: 0000 unimp
+80002d96: 0000 unimp
+80002d98: 0000 unimp
+80002d9a: 0000 unimp
+80002d9c: 0000 unimp
+80002d9e: 0000 unimp
+80002da0: 0000 unimp
+80002da2: 0000 unimp
+80002da4: 0000 unimp
+80002da6: 0000 unimp
+80002da8: 0000 unimp
+80002daa: 0000 unimp
+80002dac: 0000 unimp
+80002dae: 0000 unimp
+80002db0: 0000 unimp
+80002db2: 0000 unimp
+80002db4: 0000 unimp
+80002db6: 0000 unimp
+80002db8: 0000 unimp
+80002dba: 0000 unimp
+80002dbc: 0000 unimp
+80002dbe: 0000 unimp
+80002dc0: 0000 unimp
+80002dc2: 0000 unimp
+80002dc4: 0000 unimp
+80002dc6: 0000 unimp
+80002dc8: 0000 unimp
+80002dca: 0000 unimp
+80002dcc: 0000 unimp
+80002dce: 0000 unimp
+80002dd0: 0000 unimp
+80002dd2: 0000 unimp
+80002dd4: 0000 unimp
+80002dd6: 0000 unimp
+80002dd8: 0000 unimp
+80002dda: 0000 unimp
+80002ddc: 0000 unimp
+80002dde: 0000 unimp
+80002de0: 0000 unimp
+80002de2: 0000 unimp
+80002de4: 0000 unimp
+80002de6: 0000 unimp
+80002de8: 0000 unimp
+80002dea: 0000 unimp
+80002dec: 0000 unimp
+80002dee: 0000 unimp
+80002df0: 0000 unimp
+80002df2: 0000 unimp
+80002df4: 0000 unimp
+80002df6: 0000 unimp
+80002df8: 0000 unimp
+80002dfa: 0000 unimp
+80002dfc: 0000 unimp
+80002dfe: 0000 unimp
+80002e00: 0000 unimp
+80002e02: 0000 unimp
+80002e04: 0000 unimp
+80002e06: 0000 unimp
+80002e08: 0000 unimp
+80002e0a: 0000 unimp
+80002e0c: 0000 unimp
+80002e0e: 0000 unimp
+80002e10: 0000 unimp
+80002e12: 0000 unimp
+80002e14: 0000 unimp
+80002e16: 0000 unimp
+80002e18: 0000 unimp
+80002e1a: 0000 unimp
+80002e1c: 0000 unimp
+80002e1e: 0000 unimp
+80002e20: 0000 unimp
+80002e22: 0000 unimp
+80002e24: 0000 unimp
+80002e26: 0000 unimp
+80002e28: 0000 unimp
+80002e2a: 0000 unimp
+80002e2c: 0000 unimp
+80002e2e: 0000 unimp
+80002e30: 0000 unimp
+80002e32: 0000 unimp
+80002e34: 0000 unimp
+80002e36: 0000 unimp
+80002e38: 0000 unimp
+80002e3a: 0000 unimp
+80002e3c: 0000 unimp
+80002e3e: 0000 unimp
+80002e40: 0000 unimp
+80002e42: 0000 unimp
+80002e44: 0000 unimp
+80002e46: 0000 unimp
+80002e48: 0000 unimp
+80002e4a: 0000 unimp
+80002e4c: 0000 unimp
+80002e4e: 0000 unimp
+80002e50: 0000 unimp
+80002e52: 0000 unimp
+80002e54: 0000 unimp
+80002e56: 0000 unimp
+80002e58: 0000 unimp
+80002e5a: 0000 unimp
+80002e5c: 0000 unimp
+80002e5e: 0000 unimp
+80002e60: 0000 unimp
+80002e62: 0000 unimp
+80002e64: 0000 unimp
+80002e66: 0000 unimp
+80002e68: 0000 unimp
+80002e6a: 0000 unimp
+80002e6c: 0000 unimp
+80002e6e: 0000 unimp
+80002e70: 0000 unimp
+80002e72: 0000 unimp
+80002e74: 0000 unimp
+80002e76: 0000 unimp
+80002e78: 0000 unimp
+80002e7a: 0000 unimp
+80002e7c: 0000 unimp
+80002e7e: 0000 unimp
+80002e80: 0000 unimp
+80002e82: 0000 unimp
+80002e84: 0000 unimp
+80002e86: 0000 unimp
+80002e88: 0000 unimp
+80002e8a: 0000 unimp
+80002e8c: 0000 unimp
+80002e8e: 0000 unimp
+80002e90: 0000 unimp
+80002e92: 0000 unimp
+80002e94: 0000 unimp
+80002e96: 0000 unimp
+80002e98: 0000 unimp
+80002e9a: 0000 unimp
+80002e9c: 0000 unimp
+80002e9e: 0000 unimp
+80002ea0: 0000 unimp
+80002ea2: 0000 unimp
+80002ea4: 0000 unimp
+80002ea6: 0000 unimp
+80002ea8: 0000 unimp
+80002eaa: 0000 unimp
+80002eac: 0000 unimp
+80002eae: 0000 unimp
+80002eb0: 0000 unimp
+80002eb2: 0000 unimp
+80002eb4: 0000 unimp
+80002eb6: 0000 unimp
+80002eb8: 0000 unimp
+80002eba: 0000 unimp
+80002ebc: 0000 unimp
+80002ebe: 0000 unimp
+80002ec0: 0000 unimp
+80002ec2: 0000 unimp
+80002ec4: 0000 unimp
+80002ec6: 0000 unimp
+80002ec8: 0000 unimp
+80002eca: 0000 unimp
+80002ecc: 0000 unimp
+80002ece: 0000 unimp
+80002ed0: 0000 unimp
+80002ed2: 0000 unimp
+80002ed4: 0000 unimp
+80002ed6: 0000 unimp
+80002ed8: 0000 unimp
+80002eda: 0000 unimp
+80002edc: 0000 unimp
+80002ede: 0000 unimp
+80002ee0: 0000 unimp
+80002ee2: 0000 unimp
+80002ee4: 0000 unimp
+80002ee6: 0000 unimp
+80002ee8: 0000 unimp
+80002eea: 0000 unimp
+80002eec: 0000 unimp
+80002eee: 0000 unimp
+80002ef0: 0000 unimp
+80002ef2: 0000 unimp
+80002ef4: 0000 unimp
+80002ef6: 0000 unimp
+80002ef8: 0000 unimp
+80002efa: 0000 unimp
+80002efc: 0000 unimp
+80002efe: 0000 unimp
+80002f00: 0000 unimp
+80002f02: 0000 unimp
+80002f04: 0000 unimp
+80002f06: 0000 unimp
+80002f08: 0000 unimp
+80002f0a: 0000 unimp
+80002f0c: 0000 unimp
+80002f0e: 0000 unimp
+80002f10: 0000 unimp
+80002f12: 0000 unimp
+80002f14: 0000 unimp
+80002f16: 0000 unimp
+80002f18: 0000 unimp
+80002f1a: 0000 unimp
+80002f1c: 0000 unimp
+80002f1e: 0000 unimp
+80002f20: 0000 unimp
+80002f22: 0000 unimp
+80002f24: 0000 unimp
+80002f26: 0000 unimp
+80002f28: 0000 unimp
+80002f2a: 0000 unimp
+80002f2c: 0000 unimp
+80002f2e: 0000 unimp
+80002f30: 0000 unimp
+80002f32: 0000 unimp
+80002f34: 0000 unimp
+80002f36: 0000 unimp
+80002f38: 0000 unimp
+80002f3a: 0000 unimp
+80002f3c: 0000 unimp
+80002f3e: 0000 unimp
+80002f40: 0000 unimp
+80002f42: 0000 unimp
+80002f44: 0000 unimp
+80002f46: 0000 unimp
+80002f48: 0000 unimp
+80002f4a: 0000 unimp
+80002f4c: 0000 unimp
+80002f4e: 0000 unimp
+80002f50: 0000 unimp
+80002f52: 0000 unimp
+80002f54: 0000 unimp
+80002f56: 0000 unimp
+80002f58: 0000 unimp
+80002f5a: 0000 unimp
+80002f5c: 0000 unimp
+80002f5e: 0000 unimp
+80002f60: 0000 unimp
+80002f62: 0000 unimp
+80002f64: 0000 unimp
+80002f66: 0000 unimp
+80002f68: 0000 unimp
+80002f6a: 0000 unimp
+80002f6c: 0000 unimp
+80002f6e: 0000 unimp
+80002f70: 0000 unimp
+80002f72: 0000 unimp
+80002f74: 0000 unimp
+80002f76: 0000 unimp
+80002f78: 0000 unimp
+80002f7a: 0000 unimp
+80002f7c: 0000 unimp
+80002f7e: 0000 unimp
+80002f80: 0000 unimp
+80002f82: 0000 unimp
+80002f84: 0000 unimp
+80002f86: 0000 unimp
+80002f88: 0000 unimp
+80002f8a: 0000 unimp
+80002f8c: 0000 unimp
+80002f8e: 0000 unimp
+80002f90: 0000 unimp
+80002f92: 0000 unimp
+80002f94: 0000 unimp
+80002f96: 0000 unimp
+80002f98: 0000 unimp
+80002f9a: 0000 unimp
+80002f9c: 0000 unimp
+80002f9e: 0000 unimp
+80002fa0: 0000 unimp
+80002fa2: 0000 unimp
+80002fa4: 0000 unimp
+80002fa6: 0000 unimp
+80002fa8: 0000 unimp
+80002faa: 0000 unimp
+80002fac: 0000 unimp
+80002fae: 0000 unimp
+80002fb0: 0000 unimp
+80002fb2: 0000 unimp
+80002fb4: 0000 unimp
+80002fb6: 0000 unimp
+80002fb8: 0000 unimp
+80002fba: 0000 unimp
+80002fbc: 0000 unimp
+80002fbe: 0000 unimp
+80002fc0: 0000 unimp
+80002fc2: 0000 unimp
+80002fc4: 0000 unimp
+80002fc6: 0000 unimp
+80002fc8: 0000 unimp
+80002fca: 0000 unimp
+80002fcc: 0000 unimp
+80002fce: 0000 unimp
+80002fd0: 0000 unimp
+80002fd2: 0000 unimp
+80002fd4: 0000 unimp
+80002fd6: 0000 unimp
+80002fd8: 0000 unimp
+80002fda: 0000 unimp
+80002fdc: 0000 unimp
+80002fde: 0000 unimp
+80002fe0: 0000 unimp
+80002fe2: 0000 unimp
+80002fe4: 0000 unimp
+80002fe6: 0000 unimp
+80002fe8: 0000 unimp
+80002fea: 0000 unimp
+80002fec: 0000 unimp
+80002fee: 0000 unimp
+80002ff0: 0000 unimp
+80002ff2: 0000 unimp
+80002ff4: 0000 unimp
+80002ff6: 0000 unimp
+80002ff8: 0000 unimp
+80002ffa: 0000 unimp
+80002ffc: 0000 unimp
+80002ffe: 0000 unimp
+
+80003000 <userstart>:
+80003000: 00200193 li gp,2
+80003004: 29a00593 li a1,666
+
+80003008 <test_2>:
+80003008: 7f70106f j 80004ffe <data+0x1fee>
+8000300c: 00000013 nop
+
+80003010 <data>:
+80003010: 3210 fld fa2,32(a2)
+80003012: 7654 flw fa3,44(a2)
+80003014: ba98 fsd fa4,48(a3)
+80003016: fedc fsw fa5,60(a3)
+80003018: 3210 fld fa2,32(a2)
+8000301a: 7654 flw fa3,44(a2)
+8000301c: ba98 fsd fa4,48(a3)
+8000301e: fedc fsw fa5,60(a3)
+80003020: 00000013 nop
+80003024: 00000013 nop
+80003028: 00000013 nop
+8000302c: 00000013 nop
+80003030: 00000013 nop
+80003034: 00000013 nop
+80003038: 00000013 nop
+8000303c: 00000013 nop
+80003040: 00000013 nop
+80003044: 00000013 nop
+80003048: 00000013 nop
+8000304c: 00000013 nop
+80003050: 00000013 nop
+80003054: 00000013 nop
+80003058: 00000013 nop
+8000305c: 00000013 nop
+80003060: 00000013 nop
+80003064: 00000013 nop
+80003068: 00000013 nop
+8000306c: 00000013 nop
+80003070: 00000013 nop
+80003074: 00000013 nop
+80003078: 00000013 nop
+8000307c: 00000013 nop
+80003080: 00000013 nop
+80003084: 00000013 nop
+80003088: 00000013 nop
+8000308c: 00000013 nop
+80003090: 00000013 nop
+80003094: 00000013 nop
+80003098: 00000013 nop
+8000309c: 00000013 nop
+800030a0: 00000013 nop
+800030a4: 00000013 nop
+800030a8: 00000013 nop
+800030ac: 00000013 nop
+800030b0: 00000013 nop
+800030b4: 00000013 nop
+800030b8: 00000013 nop
+800030bc: 00000013 nop
+800030c0: 00000013 nop
+800030c4: 00000013 nop
+800030c8: 00000013 nop
+800030cc: 00000013 nop
+800030d0: 00000013 nop
+800030d4: 00000013 nop
+800030d8: 00000013 nop
+800030dc: 00000013 nop
+800030e0: 00000013 nop
+800030e4: 00000013 nop
+800030e8: 00000013 nop
+800030ec: 00000013 nop
+800030f0: 00000013 nop
+800030f4: 00000013 nop
+800030f8: 00000013 nop
+800030fc: 00000013 nop
+80003100: 00000013 nop
+80003104: 00000013 nop
+80003108: 00000013 nop
+8000310c: 00000013 nop
+80003110: 00000013 nop
+80003114: 00000013 nop
+80003118: 00000013 nop
+8000311c: 00000013 nop
+80003120: 00000013 nop
+80003124: 00000013 nop
+80003128: 00000013 nop
+8000312c: 00000013 nop
+80003130: 00000013 nop
+80003134: 00000013 nop
+80003138: 00000013 nop
+8000313c: 00000013 nop
+80003140: 00000013 nop
+80003144: 00000013 nop
+80003148: 00000013 nop
+8000314c: 00000013 nop
+80003150: 00000013 nop
+80003154: 00000013 nop
+80003158: 00000013 nop
+8000315c: 00000013 nop
+80003160: 00000013 nop
+80003164: 00000013 nop
+80003168: 00000013 nop
+8000316c: 00000013 nop
+80003170: 00000013 nop
+80003174: 00000013 nop
+80003178: 00000013 nop
+8000317c: 00000013 nop
+80003180: 00000013 nop
+80003184: 00000013 nop
+80003188: 00000013 nop
+8000318c: 00000013 nop
+80003190: 00000013 nop
+80003194: 00000013 nop
+80003198: 00000013 nop
+8000319c: 00000013 nop
+800031a0: 00000013 nop
+800031a4: 00000013 nop
+800031a8: 00000013 nop
+800031ac: 00000013 nop
+800031b0: 00000013 nop
+800031b4: 00000013 nop
+800031b8: 00000013 nop
+800031bc: 00000013 nop
+800031c0: 00000013 nop
+800031c4: 00000013 nop
+800031c8: 00000013 nop
+800031cc: 00000013 nop
+800031d0: 00000013 nop
+800031d4: 00000013 nop
+800031d8: 00000013 nop
+800031dc: 00000013 nop
+800031e0: 00000013 nop
+800031e4: 00000013 nop
+800031e8: 00000013 nop
+800031ec: 00000013 nop
+800031f0: 00000013 nop
+800031f4: 00000013 nop
+800031f8: 00000013 nop
+800031fc: 00000013 nop
+80003200: 00000013 nop
+80003204: 00000013 nop
+80003208: 00000013 nop
+8000320c: 00000013 nop
+80003210: 00000013 nop
+80003214: 00000013 nop
+80003218: 00000013 nop
+8000321c: 00000013 nop
+80003220: 00000013 nop
+80003224: 00000013 nop
+80003228: 00000013 nop
+8000322c: 00000013 nop
+80003230: 00000013 nop
+80003234: 00000013 nop
+80003238: 00000013 nop
+8000323c: 00000013 nop
+80003240: 00000013 nop
+80003244: 00000013 nop
+80003248: 00000013 nop
+8000324c: 00000013 nop
+80003250: 00000013 nop
+80003254: 00000013 nop
+80003258: 00000013 nop
+8000325c: 00000013 nop
+80003260: 00000013 nop
+80003264: 00000013 nop
+80003268: 00000013 nop
+8000326c: 00000013 nop
+80003270: 00000013 nop
+80003274: 00000013 nop
+80003278: 00000013 nop
+8000327c: 00000013 nop
+80003280: 00000013 nop
+80003284: 00000013 nop
+80003288: 00000013 nop
+8000328c: 00000013 nop
+80003290: 00000013 nop
+80003294: 00000013 nop
+80003298: 00000013 nop
+8000329c: 00000013 nop
+800032a0: 00000013 nop
+800032a4: 00000013 nop
+800032a8: 00000013 nop
+800032ac: 00000013 nop
+800032b0: 00000013 nop
+800032b4: 00000013 nop
+800032b8: 00000013 nop
+800032bc: 00000013 nop
+800032c0: 00000013 nop
+800032c4: 00000013 nop
+800032c8: 00000013 nop
+800032cc: 00000013 nop
+800032d0: 00000013 nop
+800032d4: 00000013 nop
+800032d8: 00000013 nop
+800032dc: 00000013 nop
+800032e0: 00000013 nop
+800032e4: 00000013 nop
+800032e8: 00000013 nop
+800032ec: 00000013 nop
+800032f0: 00000013 nop
+800032f4: 00000013 nop
+800032f8: 00000013 nop
+800032fc: 00000013 nop
+80003300: 00000013 nop
+80003304: 00000013 nop
+80003308: 00000013 nop
+8000330c: 00000013 nop
+80003310: 00000013 nop
+80003314: 00000013 nop
+80003318: 00000013 nop
+8000331c: 00000013 nop
+80003320: 00000013 nop
+80003324: 00000013 nop
+80003328: 00000013 nop
+8000332c: 00000013 nop
+80003330: 00000013 nop
+80003334: 00000013 nop
+80003338: 00000013 nop
+8000333c: 00000013 nop
+80003340: 00000013 nop
+80003344: 00000013 nop
+80003348: 00000013 nop
+8000334c: 00000013 nop
+80003350: 00000013 nop
+80003354: 00000013 nop
+80003358: 00000013 nop
+8000335c: 00000013 nop
+80003360: 00000013 nop
+80003364: 00000013 nop
+80003368: 00000013 nop
+8000336c: 00000013 nop
+80003370: 00000013 nop
+80003374: 00000013 nop
+80003378: 00000013 nop
+8000337c: 00000013 nop
+80003380: 00000013 nop
+80003384: 00000013 nop
+80003388: 00000013 nop
+8000338c: 00000013 nop
+80003390: 00000013 nop
+80003394: 00000013 nop
+80003398: 00000013 nop
+8000339c: 00000013 nop
+800033a0: 00000013 nop
+800033a4: 00000013 nop
+800033a8: 00000013 nop
+800033ac: 00000013 nop
+800033b0: 00000013 nop
+800033b4: 00000013 nop
+800033b8: 00000013 nop
+800033bc: 00000013 nop
+800033c0: 00000013 nop
+800033c4: 00000013 nop
+800033c8: 00000013 nop
+800033cc: 00000013 nop
+800033d0: 00000013 nop
+800033d4: 00000013 nop
+800033d8: 00000013 nop
+800033dc: 00000013 nop
+800033e0: 00000013 nop
+800033e4: 00000013 nop
+800033e8: 00000013 nop
+800033ec: 00000013 nop
+800033f0: 00000013 nop
+800033f4: 00000013 nop
+800033f8: 00000013 nop
+800033fc: 00000013 nop
+80003400: 00000013 nop
+80003404: 00000013 nop
+80003408: 00000013 nop
+8000340c: 00000013 nop
+80003410: 00000013 nop
+80003414: 00000013 nop
+80003418: 00000013 nop
+8000341c: 00000013 nop
+80003420: 00000013 nop
+80003424: 00000013 nop
+80003428: 00000013 nop
+8000342c: 00000013 nop
+80003430: 00000013 nop
+80003434: 00000013 nop
+80003438: 00000013 nop
+8000343c: 00000013 nop
+80003440: 00000013 nop
+80003444: 00000013 nop
+80003448: 00000013 nop
+8000344c: 00000013 nop
+80003450: 00000013 nop
+80003454: 00000013 nop
+80003458: 00000013 nop
+8000345c: 00000013 nop
+80003460: 00000013 nop
+80003464: 00000013 nop
+80003468: 00000013 nop
+8000346c: 00000013 nop
+80003470: 00000013 nop
+80003474: 00000013 nop
+80003478: 00000013 nop
+8000347c: 00000013 nop
+80003480: 00000013 nop
+80003484: 00000013 nop
+80003488: 00000013 nop
+8000348c: 00000013 nop
+80003490: 00000013 nop
+80003494: 00000013 nop
+80003498: 00000013 nop
+8000349c: 00000013 nop
+800034a0: 00000013 nop
+800034a4: 00000013 nop
+800034a8: 00000013 nop
+800034ac: 00000013 nop
+800034b0: 00000013 nop
+800034b4: 00000013 nop
+800034b8: 00000013 nop
+800034bc: 00000013 nop
+800034c0: 00000013 nop
+800034c4: 00000013 nop
+800034c8: 00000013 nop
+800034cc: 00000013 nop
+800034d0: 00000013 nop
+800034d4: 00000013 nop
+800034d8: 00000013 nop
+800034dc: 00000013 nop
+800034e0: 00000013 nop
+800034e4: 00000013 nop
+800034e8: 00000013 nop
+800034ec: 00000013 nop
+800034f0: 00000013 nop
+800034f4: 00000013 nop
+800034f8: 00000013 nop
+800034fc: 00000013 nop
+80003500: 00000013 nop
+80003504: 00000013 nop
+80003508: 00000013 nop
+8000350c: 00000013 nop
+80003510: 00000013 nop
+80003514: 00000013 nop
+80003518: 00000013 nop
+8000351c: 00000013 nop
+80003520: 00000013 nop
+80003524: 00000013 nop
+80003528: 00000013 nop
+8000352c: 00000013 nop
+80003530: 00000013 nop
+80003534: 00000013 nop
+80003538: 00000013 nop
+8000353c: 00000013 nop
+80003540: 00000013 nop
+80003544: 00000013 nop
+80003548: 00000013 nop
+8000354c: 00000013 nop
+80003550: 00000013 nop
+80003554: 00000013 nop
+80003558: 00000013 nop
+8000355c: 00000013 nop
+80003560: 00000013 nop
+80003564: 00000013 nop
+80003568: 00000013 nop
+8000356c: 00000013 nop
+80003570: 00000013 nop
+80003574: 00000013 nop
+80003578: 00000013 nop
+8000357c: 00000013 nop
+80003580: 00000013 nop
+80003584: 00000013 nop
+80003588: 00000013 nop
+8000358c: 00000013 nop
+80003590: 00000013 nop
+80003594: 00000013 nop
+80003598: 00000013 nop
+8000359c: 00000013 nop
+800035a0: 00000013 nop
+800035a4: 00000013 nop
+800035a8: 00000013 nop
+800035ac: 00000013 nop
+800035b0: 00000013 nop
+800035b4: 00000013 nop
+800035b8: 00000013 nop
+800035bc: 00000013 nop
+800035c0: 00000013 nop
+800035c4: 00000013 nop
+800035c8: 00000013 nop
+800035cc: 00000013 nop
+800035d0: 00000013 nop
+800035d4: 00000013 nop
+800035d8: 00000013 nop
+800035dc: 00000013 nop
+800035e0: 00000013 nop
+800035e4: 00000013 nop
+800035e8: 00000013 nop
+800035ec: 00000013 nop
+800035f0: 00000013 nop
+800035f4: 00000013 nop
+800035f8: 00000013 nop
+800035fc: 00000013 nop
+80003600: 00000013 nop
+80003604: 00000013 nop
+80003608: 00000013 nop
+8000360c: 00000013 nop
+80003610: 00000013 nop
+80003614: 00000013 nop
+80003618: 00000013 nop
+8000361c: 00000013 nop
+80003620: 00000013 nop
+80003624: 00000013 nop
+80003628: 00000013 nop
+8000362c: 00000013 nop
+80003630: 00000013 nop
+80003634: 00000013 nop
+80003638: 00000013 nop
+8000363c: 00000013 nop
+80003640: 00000013 nop
+80003644: 00000013 nop
+80003648: 00000013 nop
+8000364c: 00000013 nop
+80003650: 00000013 nop
+80003654: 00000013 nop
+80003658: 00000013 nop
+8000365c: 00000013 nop
+80003660: 00000013 nop
+80003664: 00000013 nop
+80003668: 00000013 nop
+8000366c: 00000013 nop
+80003670: 00000013 nop
+80003674: 00000013 nop
+80003678: 00000013 nop
+8000367c: 00000013 nop
+80003680: 00000013 nop
+80003684: 00000013 nop
+80003688: 00000013 nop
+8000368c: 00000013 nop
+80003690: 00000013 nop
+80003694: 00000013 nop
+80003698: 00000013 nop
+8000369c: 00000013 nop
+800036a0: 00000013 nop
+800036a4: 00000013 nop
+800036a8: 00000013 nop
+800036ac: 00000013 nop
+800036b0: 00000013 nop
+800036b4: 00000013 nop
+800036b8: 00000013 nop
+800036bc: 00000013 nop
+800036c0: 00000013 nop
+800036c4: 00000013 nop
+800036c8: 00000013 nop
+800036cc: 00000013 nop
+800036d0: 00000013 nop
+800036d4: 00000013 nop
+800036d8: 00000013 nop
+800036dc: 00000013 nop
+800036e0: 00000013 nop
+800036e4: 00000013 nop
+800036e8: 00000013 nop
+800036ec: 00000013 nop
+800036f0: 00000013 nop
+800036f4: 00000013 nop
+800036f8: 00000013 nop
+800036fc: 00000013 nop
+80003700: 00000013 nop
+80003704: 00000013 nop
+80003708: 00000013 nop
+8000370c: 00000013 nop
+80003710: 00000013 nop
+80003714: 00000013 nop
+80003718: 00000013 nop
+8000371c: 00000013 nop
+80003720: 00000013 nop
+80003724: 00000013 nop
+80003728: 00000013 nop
+8000372c: 00000013 nop
+80003730: 00000013 nop
+80003734: 00000013 nop
+80003738: 00000013 nop
+8000373c: 00000013 nop
+80003740: 00000013 nop
+80003744: 00000013 nop
+80003748: 00000013 nop
+8000374c: 00000013 nop
+80003750: 00000013 nop
+80003754: 00000013 nop
+80003758: 00000013 nop
+8000375c: 00000013 nop
+80003760: 00000013 nop
+80003764: 00000013 nop
+80003768: 00000013 nop
+8000376c: 00000013 nop
+80003770: 00000013 nop
+80003774: 00000013 nop
+80003778: 00000013 nop
+8000377c: 00000013 nop
+80003780: 00000013 nop
+80003784: 00000013 nop
+80003788: 00000013 nop
+8000378c: 00000013 nop
+80003790: 00000013 nop
+80003794: 00000013 nop
+80003798: 00000013 nop
+8000379c: 00000013 nop
+800037a0: 00000013 nop
+800037a4: 00000013 nop
+800037a8: 00000013 nop
+800037ac: 00000013 nop
+800037b0: 00000013 nop
+800037b4: 00000013 nop
+800037b8: 00000013 nop
+800037bc: 00000013 nop
+800037c0: 00000013 nop
+800037c4: 00000013 nop
+800037c8: 00000013 nop
+800037cc: 00000013 nop
+800037d0: 00000013 nop
+800037d4: 00000013 nop
+800037d8: 00000013 nop
+800037dc: 00000013 nop
+800037e0: 00000013 nop
+800037e4: 00000013 nop
+800037e8: 00000013 nop
+800037ec: 00000013 nop
+800037f0: 00000013 nop
+800037f4: 00000013 nop
+800037f8: 00000013 nop
+800037fc: 00000013 nop
+80003800: 00000013 nop
+80003804: 00000013 nop
+80003808: 00000013 nop
+8000380c: 00000013 nop
+80003810: 00000013 nop
+80003814: 00000013 nop
+80003818: 00000013 nop
+8000381c: 00000013 nop
+80003820: 00000013 nop
+80003824: 00000013 nop
+80003828: 00000013 nop
+8000382c: 00000013 nop
+80003830: 00000013 nop
+80003834: 00000013 nop
+80003838: 00000013 nop
+8000383c: 00000013 nop
+80003840: 00000013 nop
+80003844: 00000013 nop
+80003848: 00000013 nop
+8000384c: 00000013 nop
+80003850: 00000013 nop
+80003854: 00000013 nop
+80003858: 00000013 nop
+8000385c: 00000013 nop
+80003860: 00000013 nop
+80003864: 00000013 nop
+80003868: 00000013 nop
+8000386c: 00000013 nop
+80003870: 00000013 nop
+80003874: 00000013 nop
+80003878: 00000013 nop
+8000387c: 00000013 nop
+80003880: 00000013 nop
+80003884: 00000013 nop
+80003888: 00000013 nop
+8000388c: 00000013 nop
+80003890: 00000013 nop
+80003894: 00000013 nop
+80003898: 00000013 nop
+8000389c: 00000013 nop
+800038a0: 00000013 nop
+800038a4: 00000013 nop
+800038a8: 00000013 nop
+800038ac: 00000013 nop
+800038b0: 00000013 nop
+800038b4: 00000013 nop
+800038b8: 00000013 nop
+800038bc: 00000013 nop
+800038c0: 00000013 nop
+800038c4: 00000013 nop
+800038c8: 00000013 nop
+800038cc: 00000013 nop
+800038d0: 00000013 nop
+800038d4: 00000013 nop
+800038d8: 00000013 nop
+800038dc: 00000013 nop
+800038e0: 00000013 nop
+800038e4: 00000013 nop
+800038e8: 00000013 nop
+800038ec: 00000013 nop
+800038f0: 00000013 nop
+800038f4: 00000013 nop
+800038f8: 00000013 nop
+800038fc: 00000013 nop
+80003900: 00000013 nop
+80003904: 00000013 nop
+80003908: 00000013 nop
+8000390c: 00000013 nop
+80003910: 00000013 nop
+80003914: 00000013 nop
+80003918: 00000013 nop
+8000391c: 00000013 nop
+80003920: 00000013 nop
+80003924: 00000013 nop
+80003928: 00000013 nop
+8000392c: 00000013 nop
+80003930: 00000013 nop
+80003934: 00000013 nop
+80003938: 00000013 nop
+8000393c: 00000013 nop
+80003940: 00000013 nop
+80003944: 00000013 nop
+80003948: 00000013 nop
+8000394c: 00000013 nop
+80003950: 00000013 nop
+80003954: 00000013 nop
+80003958: 00000013 nop
+8000395c: 00000013 nop
+80003960: 00000013 nop
+80003964: 00000013 nop
+80003968: 00000013 nop
+8000396c: 00000013 nop
+80003970: 00000013 nop
+80003974: 00000013 nop
+80003978: 00000013 nop
+8000397c: 00000013 nop
+80003980: 00000013 nop
+80003984: 00000013 nop
+80003988: 00000013 nop
+8000398c: 00000013 nop
+80003990: 00000013 nop
+80003994: 00000013 nop
+80003998: 00000013 nop
+8000399c: 00000013 nop
+800039a0: 00000013 nop
+800039a4: 00000013 nop
+800039a8: 00000013 nop
+800039ac: 00000013 nop
+800039b0: 00000013 nop
+800039b4: 00000013 nop
+800039b8: 00000013 nop
+800039bc: 00000013 nop
+800039c0: 00000013 nop
+800039c4: 00000013 nop
+800039c8: 00000013 nop
+800039cc: 00000013 nop
+800039d0: 00000013 nop
+800039d4: 00000013 nop
+800039d8: 00000013 nop
+800039dc: 00000013 nop
+800039e0: 00000013 nop
+800039e4: 00000013 nop
+800039e8: 00000013 nop
+800039ec: 00000013 nop
+800039f0: 00000013 nop
+800039f4: 00000013 nop
+800039f8: 00000013 nop
+800039fc: 00000013 nop
+80003a00: 00000013 nop
+80003a04: 00000013 nop
+80003a08: 00000013 nop
+80003a0c: 00000013 nop
+80003a10: 00000013 nop
+80003a14: 00000013 nop
+80003a18: 00000013 nop
+80003a1c: 00000013 nop
+80003a20: 00000013 nop
+80003a24: 00000013 nop
+80003a28: 00000013 nop
+80003a2c: 00000013 nop
+80003a30: 00000013 nop
+80003a34: 00000013 nop
+80003a38: 00000013 nop
+80003a3c: 00000013 nop
+80003a40: 00000013 nop
+80003a44: 00000013 nop
+80003a48: 00000013 nop
+80003a4c: 00000013 nop
+80003a50: 00000013 nop
+80003a54: 00000013 nop
+80003a58: 00000013 nop
+80003a5c: 00000013 nop
+80003a60: 00000013 nop
+80003a64: 00000013 nop
+80003a68: 00000013 nop
+80003a6c: 00000013 nop
+80003a70: 00000013 nop
+80003a74: 00000013 nop
+80003a78: 00000013 nop
+80003a7c: 00000013 nop
+80003a80: 00000013 nop
+80003a84: 00000013 nop
+80003a88: 00000013 nop
+80003a8c: 00000013 nop
+80003a90: 00000013 nop
+80003a94: 00000013 nop
+80003a98: 00000013 nop
+80003a9c: 00000013 nop
+80003aa0: 00000013 nop
+80003aa4: 00000013 nop
+80003aa8: 00000013 nop
+80003aac: 00000013 nop
+80003ab0: 00000013 nop
+80003ab4: 00000013 nop
+80003ab8: 00000013 nop
+80003abc: 00000013 nop
+80003ac0: 00000013 nop
+80003ac4: 00000013 nop
+80003ac8: 00000013 nop
+80003acc: 00000013 nop
+80003ad0: 00000013 nop
+80003ad4: 00000013 nop
+80003ad8: 00000013 nop
+80003adc: 00000013 nop
+80003ae0: 00000013 nop
+80003ae4: 00000013 nop
+80003ae8: 00000013 nop
+80003aec: 00000013 nop
+80003af0: 00000013 nop
+80003af4: 00000013 nop
+80003af8: 00000013 nop
+80003afc: 00000013 nop
+80003b00: 00000013 nop
+80003b04: 00000013 nop
+80003b08: 00000013 nop
+80003b0c: 00000013 nop
+80003b10: 00000013 nop
+80003b14: 00000013 nop
+80003b18: 00000013 nop
+80003b1c: 00000013 nop
+80003b20: 00000013 nop
+80003b24: 00000013 nop
+80003b28: 00000013 nop
+80003b2c: 00000013 nop
+80003b30: 00000013 nop
+80003b34: 00000013 nop
+80003b38: 00000013 nop
+80003b3c: 00000013 nop
+80003b40: 00000013 nop
+80003b44: 00000013 nop
+80003b48: 00000013 nop
+80003b4c: 00000013 nop
+80003b50: 00000013 nop
+80003b54: 00000013 nop
+80003b58: 00000013 nop
+80003b5c: 00000013 nop
+80003b60: 00000013 nop
+80003b64: 00000013 nop
+80003b68: 00000013 nop
+80003b6c: 00000013 nop
+80003b70: 00000013 nop
+80003b74: 00000013 nop
+80003b78: 00000013 nop
+80003b7c: 00000013 nop
+80003b80: 00000013 nop
+80003b84: 00000013 nop
+80003b88: 00000013 nop
+80003b8c: 00000013 nop
+80003b90: 00000013 nop
+80003b94: 00000013 nop
+80003b98: 00000013 nop
+80003b9c: 00000013 nop
+80003ba0: 00000013 nop
+80003ba4: 00000013 nop
+80003ba8: 00000013 nop
+80003bac: 00000013 nop
+80003bb0: 00000013 nop
+80003bb4: 00000013 nop
+80003bb8: 00000013 nop
+80003bbc: 00000013 nop
+80003bc0: 00000013 nop
+80003bc4: 00000013 nop
+80003bc8: 00000013 nop
+80003bcc: 00000013 nop
+80003bd0: 00000013 nop
+80003bd4: 00000013 nop
+80003bd8: 00000013 nop
+80003bdc: 00000013 nop
+80003be0: 00000013 nop
+80003be4: 00000013 nop
+80003be8: 00000013 nop
+80003bec: 00000013 nop
+80003bf0: 00000013 nop
+80003bf4: 00000013 nop
+80003bf8: 00000013 nop
+80003bfc: 00000013 nop
+80003c00: 00000013 nop
+80003c04: 00000013 nop
+80003c08: 00000013 nop
+80003c0c: 00000013 nop
+80003c10: 00000013 nop
+80003c14: 00000013 nop
+80003c18: 00000013 nop
+80003c1c: 00000013 nop
+80003c20: 00000013 nop
+80003c24: 00000013 nop
+80003c28: 00000013 nop
+80003c2c: 00000013 nop
+80003c30: 00000013 nop
+80003c34: 00000013 nop
+80003c38: 00000013 nop
+80003c3c: 00000013 nop
+80003c40: 00000013 nop
+80003c44: 00000013 nop
+80003c48: 00000013 nop
+80003c4c: 00000013 nop
+80003c50: 00000013 nop
+80003c54: 00000013 nop
+80003c58: 00000013 nop
+80003c5c: 00000013 nop
+80003c60: 00000013 nop
+80003c64: 00000013 nop
+80003c68: 00000013 nop
+80003c6c: 00000013 nop
+80003c70: 00000013 nop
+80003c74: 00000013 nop
+80003c78: 00000013 nop
+80003c7c: 00000013 nop
+80003c80: 00000013 nop
+80003c84: 00000013 nop
+80003c88: 00000013 nop
+80003c8c: 00000013 nop
+80003c90: 00000013 nop
+80003c94: 00000013 nop
+80003c98: 00000013 nop
+80003c9c: 00000013 nop
+80003ca0: 00000013 nop
+80003ca4: 00000013 nop
+80003ca8: 00000013 nop
+80003cac: 00000013 nop
+80003cb0: 00000013 nop
+80003cb4: 00000013 nop
+80003cb8: 00000013 nop
+80003cbc: 00000013 nop
+80003cc0: 00000013 nop
+80003cc4: 00000013 nop
+80003cc8: 00000013 nop
+80003ccc: 00000013 nop
+80003cd0: 00000013 nop
+80003cd4: 00000013 nop
+80003cd8: 00000013 nop
+80003cdc: 00000013 nop
+80003ce0: 00000013 nop
+80003ce4: 00000013 nop
+80003ce8: 00000013 nop
+80003cec: 00000013 nop
+80003cf0: 00000013 nop
+80003cf4: 00000013 nop
+80003cf8: 00000013 nop
+80003cfc: 00000013 nop
+80003d00: 00000013 nop
+80003d04: 00000013 nop
+80003d08: 00000013 nop
+80003d0c: 00000013 nop
+80003d10: 00000013 nop
+80003d14: 00000013 nop
+80003d18: 00000013 nop
+80003d1c: 00000013 nop
+80003d20: 00000013 nop
+80003d24: 00000013 nop
+80003d28: 00000013 nop
+80003d2c: 00000013 nop
+80003d30: 00000013 nop
+80003d34: 00000013 nop
+80003d38: 00000013 nop
+80003d3c: 00000013 nop
+80003d40: 00000013 nop
+80003d44: 00000013 nop
+80003d48: 00000013 nop
+80003d4c: 00000013 nop
+80003d50: 00000013 nop
+80003d54: 00000013 nop
+80003d58: 00000013 nop
+80003d5c: 00000013 nop
+80003d60: 00000013 nop
+80003d64: 00000013 nop
+80003d68: 00000013 nop
+80003d6c: 00000013 nop
+80003d70: 00000013 nop
+80003d74: 00000013 nop
+80003d78: 00000013 nop
+80003d7c: 00000013 nop
+80003d80: 00000013 nop
+80003d84: 00000013 nop
+80003d88: 00000013 nop
+80003d8c: 00000013 nop
+80003d90: 00000013 nop
+80003d94: 00000013 nop
+80003d98: 00000013 nop
+80003d9c: 00000013 nop
+80003da0: 00000013 nop
+80003da4: 00000013 nop
+80003da8: 00000013 nop
+80003dac: 00000013 nop
+80003db0: 00000013 nop
+80003db4: 00000013 nop
+80003db8: 00000013 nop
+80003dbc: 00000013 nop
+80003dc0: 00000013 nop
+80003dc4: 00000013 nop
+80003dc8: 00000013 nop
+80003dcc: 00000013 nop
+80003dd0: 00000013 nop
+80003dd4: 00000013 nop
+80003dd8: 00000013 nop
+80003ddc: 00000013 nop
+80003de0: 00000013 nop
+80003de4: 00000013 nop
+80003de8: 00000013 nop
+80003dec: 00000013 nop
+80003df0: 00000013 nop
+80003df4: 00000013 nop
+80003df8: 00000013 nop
+80003dfc: 00000013 nop
+80003e00: 00000013 nop
+80003e04: 00000013 nop
+80003e08: 00000013 nop
+80003e0c: 00000013 nop
+80003e10: 00000013 nop
+80003e14: 00000013 nop
+80003e18: 00000013 nop
+80003e1c: 00000013 nop
+80003e20: 00000013 nop
+80003e24: 00000013 nop
+80003e28: 00000013 nop
+80003e2c: 00000013 nop
+80003e30: 00000013 nop
+80003e34: 00000013 nop
+80003e38: 00000013 nop
+80003e3c: 00000013 nop
+80003e40: 00000013 nop
+80003e44: 00000013 nop
+80003e48: 00000013 nop
+80003e4c: 00000013 nop
+80003e50: 00000013 nop
+80003e54: 00000013 nop
+80003e58: 00000013 nop
+80003e5c: 00000013 nop
+80003e60: 00000013 nop
+80003e64: 00000013 nop
+80003e68: 00000013 nop
+80003e6c: 00000013 nop
+80003e70: 00000013 nop
+80003e74: 00000013 nop
+80003e78: 00000013 nop
+80003e7c: 00000013 nop
+80003e80: 00000013 nop
+80003e84: 00000013 nop
+80003e88: 00000013 nop
+80003e8c: 00000013 nop
+80003e90: 00000013 nop
+80003e94: 00000013 nop
+80003e98: 00000013 nop
+80003e9c: 00000013 nop
+80003ea0: 00000013 nop
+80003ea4: 00000013 nop
+80003ea8: 00000013 nop
+80003eac: 00000013 nop
+80003eb0: 00000013 nop
+80003eb4: 00000013 nop
+80003eb8: 00000013 nop
+80003ebc: 00000013 nop
+80003ec0: 00000013 nop
+80003ec4: 00000013 nop
+80003ec8: 00000013 nop
+80003ecc: 00000013 nop
+80003ed0: 00000013 nop
+80003ed4: 00000013 nop
+80003ed8: 00000013 nop
+80003edc: 00000013 nop
+80003ee0: 00000013 nop
+80003ee4: 00000013 nop
+80003ee8: 00000013 nop
+80003eec: 00000013 nop
+80003ef0: 00000013 nop
+80003ef4: 00000013 nop
+80003ef8: 00000013 nop
+80003efc: 00000013 nop
+80003f00: 00000013 nop
+80003f04: 00000013 nop
+80003f08: 00000013 nop
+80003f0c: 00000013 nop
+80003f10: 00000013 nop
+80003f14: 00000013 nop
+80003f18: 00000013 nop
+80003f1c: 00000013 nop
+80003f20: 00000013 nop
+80003f24: 00000013 nop
+80003f28: 00000013 nop
+80003f2c: 00000013 nop
+80003f30: 00000013 nop
+80003f34: 00000013 nop
+80003f38: 00000013 nop
+80003f3c: 00000013 nop
+80003f40: 00000013 nop
+80003f44: 00000013 nop
+80003f48: 00000013 nop
+80003f4c: 00000013 nop
+80003f50: 00000013 nop
+80003f54: 00000013 nop
+80003f58: 00000013 nop
+80003f5c: 00000013 nop
+80003f60: 00000013 nop
+80003f64: 00000013 nop
+80003f68: 00000013 nop
+80003f6c: 00000013 nop
+80003f70: 00000013 nop
+80003f74: 00000013 nop
+80003f78: 00000013 nop
+80003f7c: 00000013 nop
+80003f80: 00000013 nop
+80003f84: 00000013 nop
+80003f88: 00000013 nop
+80003f8c: 00000013 nop
+80003f90: 00000013 nop
+80003f94: 00000013 nop
+80003f98: 00000013 nop
+80003f9c: 00000013 nop
+80003fa0: 00000013 nop
+80003fa4: 00000013 nop
+80003fa8: 00000013 nop
+80003fac: 00000013 nop
+80003fb0: 00000013 nop
+80003fb4: 00000013 nop
+80003fb8: 00000013 nop
+80003fbc: 00000013 nop
+80003fc0: 00000013 nop
+80003fc4: 00000013 nop
+80003fc8: 00000013 nop
+80003fcc: 00000013 nop
+80003fd0: 00000013 nop
+80003fd4: 00000013 nop
+80003fd8: 00000013 nop
+80003fdc: 00000013 nop
+80003fe0: 00000013 nop
+80003fe4: 00000013 nop
+80003fe8: 00000013 nop
+80003fec: 00000013 nop
+80003ff0: 00000013 nop
+80003ff4: 00000013 nop
+80003ff8: 00000013 nop
+80003ffc: 00000013 nop
+80004000: 0000 unimp
+80004002: 0000 unimp
+80004004: 0000 unimp
+80004006: 0000 unimp
+80004008: 0000 unimp
+8000400a: 0000 unimp
+8000400c: 0000 unimp
+8000400e: 0000 unimp
+80004010: 0000 unimp
+80004012: 0000 unimp
+80004014: 0000 unimp
+80004016: 0000 unimp
+80004018: 0000 unimp
+8000401a: 0000 unimp
+8000401c: 0000 unimp
+8000401e: 0000 unimp
+80004020: 0000 unimp
+80004022: 0000 unimp
+80004024: 0000 unimp
+80004026: 0000 unimp
+80004028: 0000 unimp
+8000402a: 0000 unimp
+8000402c: 0000 unimp
+8000402e: 0000 unimp
+80004030: 0000 unimp
+80004032: 0000 unimp
+80004034: 0000 unimp
+80004036: 0000 unimp
+80004038: 0000 unimp
+8000403a: 0000 unimp
+8000403c: 0000 unimp
+8000403e: 0000 unimp
+80004040: 0000 unimp
+80004042: 0000 unimp
+80004044: 0000 unimp
+80004046: 0000 unimp
+80004048: 0000 unimp
+8000404a: 0000 unimp
+8000404c: 0000 unimp
+8000404e: 0000 unimp
+80004050: 0000 unimp
+80004052: 0000 unimp
+80004054: 0000 unimp
+80004056: 0000 unimp
+80004058: 0000 unimp
+8000405a: 0000 unimp
+8000405c: 0000 unimp
+8000405e: 0000 unimp
+80004060: 0000 unimp
+80004062: 0000 unimp
+80004064: 0000 unimp
+80004066: 0000 unimp
+80004068: 0000 unimp
+8000406a: 0000 unimp
+8000406c: 0000 unimp
+8000406e: 0000 unimp
+80004070: 0000 unimp
+80004072: 0000 unimp
+80004074: 0000 unimp
+80004076: 0000 unimp
+80004078: 0000 unimp
+8000407a: 0000 unimp
+8000407c: 0000 unimp
+8000407e: 0000 unimp
+80004080: 0000 unimp
+80004082: 0000 unimp
+80004084: 0000 unimp
+80004086: 0000 unimp
+80004088: 0000 unimp
+8000408a: 0000 unimp
+8000408c: 0000 unimp
+8000408e: 0000 unimp
+80004090: 0000 unimp
+80004092: 0000 unimp
+80004094: 0000 unimp
+80004096: 0000 unimp
+80004098: 0000 unimp
+8000409a: 0000 unimp
+8000409c: 0000 unimp
+8000409e: 0000 unimp
+800040a0: 0000 unimp
+800040a2: 0000 unimp
+800040a4: 0000 unimp
+800040a6: 0000 unimp
+800040a8: 0000 unimp
+800040aa: 0000 unimp
+800040ac: 0000 unimp
+800040ae: 0000 unimp
+800040b0: 0000 unimp
+800040b2: 0000 unimp
+800040b4: 0000 unimp
+800040b6: 0000 unimp
+800040b8: 0000 unimp
+800040ba: 0000 unimp
+800040bc: 0000 unimp
+800040be: 0000 unimp
+800040c0: 0000 unimp
+800040c2: 0000 unimp
+800040c4: 0000 unimp
+800040c6: 0000 unimp
+800040c8: 0000 unimp
+800040ca: 0000 unimp
+800040cc: 0000 unimp
+800040ce: 0000 unimp
+800040d0: 0000 unimp
+800040d2: 0000 unimp
+800040d4: 0000 unimp
+800040d6: 0000 unimp
+800040d8: 0000 unimp
+800040da: 0000 unimp
+800040dc: 0000 unimp
+800040de: 0000 unimp
+800040e0: 0000 unimp
+800040e2: 0000 unimp
+800040e4: 0000 unimp
+800040e6: 0000 unimp
+800040e8: 0000 unimp
+800040ea: 0000 unimp
+800040ec: 0000 unimp
+800040ee: 0000 unimp
+800040f0: 0000 unimp
+800040f2: 0000 unimp
+800040f4: 0000 unimp
+800040f6: 0000 unimp
+800040f8: 0000 unimp
+800040fa: 0000 unimp
+800040fc: 0000 unimp
+800040fe: 0000 unimp
+80004100: 0000 unimp
+80004102: 0000 unimp
+80004104: 0000 unimp
+80004106: 0000 unimp
+80004108: 0000 unimp
+8000410a: 0000 unimp
+8000410c: 0000 unimp
+8000410e: 0000 unimp
+80004110: 0000 unimp
+80004112: 0000 unimp
+80004114: 0000 unimp
+80004116: 0000 unimp
+80004118: 0000 unimp
+8000411a: 0000 unimp
+8000411c: 0000 unimp
+8000411e: 0000 unimp
+80004120: 0000 unimp
+80004122: 0000 unimp
+80004124: 0000 unimp
+80004126: 0000 unimp
+80004128: 0000 unimp
+8000412a: 0000 unimp
+8000412c: 0000 unimp
+8000412e: 0000 unimp
+80004130: 0000 unimp
+80004132: 0000 unimp
+80004134: 0000 unimp
+80004136: 0000 unimp
+80004138: 0000 unimp
+8000413a: 0000 unimp
+8000413c: 0000 unimp
+8000413e: 0000 unimp
+80004140: 0000 unimp
+80004142: 0000 unimp
+80004144: 0000 unimp
+80004146: 0000 unimp
+80004148: 0000 unimp
+8000414a: 0000 unimp
+8000414c: 0000 unimp
+8000414e: 0000 unimp
+80004150: 0000 unimp
+80004152: 0000 unimp
+80004154: 0000 unimp
+80004156: 0000 unimp
+80004158: 0000 unimp
+8000415a: 0000 unimp
+8000415c: 0000 unimp
+8000415e: 0000 unimp
+80004160: 0000 unimp
+80004162: 0000 unimp
+80004164: 0000 unimp
+80004166: 0000 unimp
+80004168: 0000 unimp
+8000416a: 0000 unimp
+8000416c: 0000 unimp
+8000416e: 0000 unimp
+80004170: 0000 unimp
+80004172: 0000 unimp
+80004174: 0000 unimp
+80004176: 0000 unimp
+80004178: 0000 unimp
+8000417a: 0000 unimp
+8000417c: 0000 unimp
+8000417e: 0000 unimp
+80004180: 0000 unimp
+80004182: 0000 unimp
+80004184: 0000 unimp
+80004186: 0000 unimp
+80004188: 0000 unimp
+8000418a: 0000 unimp
+8000418c: 0000 unimp
+8000418e: 0000 unimp
+80004190: 0000 unimp
+80004192: 0000 unimp
+80004194: 0000 unimp
+80004196: 0000 unimp
+80004198: 0000 unimp
+8000419a: 0000 unimp
+8000419c: 0000 unimp
+8000419e: 0000 unimp
+800041a0: 0000 unimp
+800041a2: 0000 unimp
+800041a4: 0000 unimp
+800041a6: 0000 unimp
+800041a8: 0000 unimp
+800041aa: 0000 unimp
+800041ac: 0000 unimp
+800041ae: 0000 unimp
+800041b0: 0000 unimp
+800041b2: 0000 unimp
+800041b4: 0000 unimp
+800041b6: 0000 unimp
+800041b8: 0000 unimp
+800041ba: 0000 unimp
+800041bc: 0000 unimp
+800041be: 0000 unimp
+800041c0: 0000 unimp
+800041c2: 0000 unimp
+800041c4: 0000 unimp
+800041c6: 0000 unimp
+800041c8: 0000 unimp
+800041ca: 0000 unimp
+800041cc: 0000 unimp
+800041ce: 0000 unimp
+800041d0: 0000 unimp
+800041d2: 0000 unimp
+800041d4: 0000 unimp
+800041d6: 0000 unimp
+800041d8: 0000 unimp
+800041da: 0000 unimp
+800041dc: 0000 unimp
+800041de: 0000 unimp
+800041e0: 0000 unimp
+800041e2: 0000 unimp
+800041e4: 0000 unimp
+800041e6: 0000 unimp
+800041e8: 0000 unimp
+800041ea: 0000 unimp
+800041ec: 0000 unimp
+800041ee: 0000 unimp
+800041f0: 0000 unimp
+800041f2: 0000 unimp
+800041f4: 0000 unimp
+800041f6: 0000 unimp
+800041f8: 0000 unimp
+800041fa: 0000 unimp
+800041fc: 0000 unimp
+800041fe: 0000 unimp
+80004200: 0000 unimp
+80004202: 0000 unimp
+80004204: 0000 unimp
+80004206: 0000 unimp
+80004208: 0000 unimp
+8000420a: 0000 unimp
+8000420c: 0000 unimp
+8000420e: 0000 unimp
+80004210: 0000 unimp
+80004212: 0000 unimp
+80004214: 0000 unimp
+80004216: 0000 unimp
+80004218: 0000 unimp
+8000421a: 0000 unimp
+8000421c: 0000 unimp
+8000421e: 0000 unimp
+80004220: 0000 unimp
+80004222: 0000 unimp
+80004224: 0000 unimp
+80004226: 0000 unimp
+80004228: 0000 unimp
+8000422a: 0000 unimp
+8000422c: 0000 unimp
+8000422e: 0000 unimp
+80004230: 0000 unimp
+80004232: 0000 unimp
+80004234: 0000 unimp
+80004236: 0000 unimp
+80004238: 0000 unimp
+8000423a: 0000 unimp
+8000423c: 0000 unimp
+8000423e: 0000 unimp
+80004240: 0000 unimp
+80004242: 0000 unimp
+80004244: 0000 unimp
+80004246: 0000 unimp
+80004248: 0000 unimp
+8000424a: 0000 unimp
+8000424c: 0000 unimp
+8000424e: 0000 unimp
+80004250: 0000 unimp
+80004252: 0000 unimp
+80004254: 0000 unimp
+80004256: 0000 unimp
+80004258: 0000 unimp
+8000425a: 0000 unimp
+8000425c: 0000 unimp
+8000425e: 0000 unimp
+80004260: 0000 unimp
+80004262: 0000 unimp
+80004264: 0000 unimp
+80004266: 0000 unimp
+80004268: 0000 unimp
+8000426a: 0000 unimp
+8000426c: 0000 unimp
+8000426e: 0000 unimp
+80004270: 0000 unimp
+80004272: 0000 unimp
+80004274: 0000 unimp
+80004276: 0000 unimp
+80004278: 0000 unimp
+8000427a: 0000 unimp
+8000427c: 0000 unimp
+8000427e: 0000 unimp
+80004280: 0000 unimp
+80004282: 0000 unimp
+80004284: 0000 unimp
+80004286: 0000 unimp
+80004288: 0000 unimp
+8000428a: 0000 unimp
+8000428c: 0000 unimp
+8000428e: 0000 unimp
+80004290: 0000 unimp
+80004292: 0000 unimp
+80004294: 0000 unimp
+80004296: 0000 unimp
+80004298: 0000 unimp
+8000429a: 0000 unimp
+8000429c: 0000 unimp
+8000429e: 0000 unimp
+800042a0: 0000 unimp
+800042a2: 0000 unimp
+800042a4: 0000 unimp
+800042a6: 0000 unimp
+800042a8: 0000 unimp
+800042aa: 0000 unimp
+800042ac: 0000 unimp
+800042ae: 0000 unimp
+800042b0: 0000 unimp
+800042b2: 0000 unimp
+800042b4: 0000 unimp
+800042b6: 0000 unimp
+800042b8: 0000 unimp
+800042ba: 0000 unimp
+800042bc: 0000 unimp
+800042be: 0000 unimp
+800042c0: 0000 unimp
+800042c2: 0000 unimp
+800042c4: 0000 unimp
+800042c6: 0000 unimp
+800042c8: 0000 unimp
+800042ca: 0000 unimp
+800042cc: 0000 unimp
+800042ce: 0000 unimp
+800042d0: 0000 unimp
+800042d2: 0000 unimp
+800042d4: 0000 unimp
+800042d6: 0000 unimp
+800042d8: 0000 unimp
+800042da: 0000 unimp
+800042dc: 0000 unimp
+800042de: 0000 unimp
+800042e0: 0000 unimp
+800042e2: 0000 unimp
+800042e4: 0000 unimp
+800042e6: 0000 unimp
+800042e8: 0000 unimp
+800042ea: 0000 unimp
+800042ec: 0000 unimp
+800042ee: 0000 unimp
+800042f0: 0000 unimp
+800042f2: 0000 unimp
+800042f4: 0000 unimp
+800042f6: 0000 unimp
+800042f8: 0000 unimp
+800042fa: 0000 unimp
+800042fc: 0000 unimp
+800042fe: 0000 unimp
+80004300: 0000 unimp
+80004302: 0000 unimp
+80004304: 0000 unimp
+80004306: 0000 unimp
+80004308: 0000 unimp
+8000430a: 0000 unimp
+8000430c: 0000 unimp
+8000430e: 0000 unimp
+80004310: 0000 unimp
+80004312: 0000 unimp
+80004314: 0000 unimp
+80004316: 0000 unimp
+80004318: 0000 unimp
+8000431a: 0000 unimp
+8000431c: 0000 unimp
+8000431e: 0000 unimp
+80004320: 0000 unimp
+80004322: 0000 unimp
+80004324: 0000 unimp
+80004326: 0000 unimp
+80004328: 0000 unimp
+8000432a: 0000 unimp
+8000432c: 0000 unimp
+8000432e: 0000 unimp
+80004330: 0000 unimp
+80004332: 0000 unimp
+80004334: 0000 unimp
+80004336: 0000 unimp
+80004338: 0000 unimp
+8000433a: 0000 unimp
+8000433c: 0000 unimp
+8000433e: 0000 unimp
+80004340: 0000 unimp
+80004342: 0000 unimp
+80004344: 0000 unimp
+80004346: 0000 unimp
+80004348: 0000 unimp
+8000434a: 0000 unimp
+8000434c: 0000 unimp
+8000434e: 0000 unimp
+80004350: 0000 unimp
+80004352: 0000 unimp
+80004354: 0000 unimp
+80004356: 0000 unimp
+80004358: 0000 unimp
+8000435a: 0000 unimp
+8000435c: 0000 unimp
+8000435e: 0000 unimp
+80004360: 0000 unimp
+80004362: 0000 unimp
+80004364: 0000 unimp
+80004366: 0000 unimp
+80004368: 0000 unimp
+8000436a: 0000 unimp
+8000436c: 0000 unimp
+8000436e: 0000 unimp
+80004370: 0000 unimp
+80004372: 0000 unimp
+80004374: 0000 unimp
+80004376: 0000 unimp
+80004378: 0000 unimp
+8000437a: 0000 unimp
+8000437c: 0000 unimp
+8000437e: 0000 unimp
+80004380: 0000 unimp
+80004382: 0000 unimp
+80004384: 0000 unimp
+80004386: 0000 unimp
+80004388: 0000 unimp
+8000438a: 0000 unimp
+8000438c: 0000 unimp
+8000438e: 0000 unimp
+80004390: 0000 unimp
+80004392: 0000 unimp
+80004394: 0000 unimp
+80004396: 0000 unimp
+80004398: 0000 unimp
+8000439a: 0000 unimp
+8000439c: 0000 unimp
+8000439e: 0000 unimp
+800043a0: 0000 unimp
+800043a2: 0000 unimp
+800043a4: 0000 unimp
+800043a6: 0000 unimp
+800043a8: 0000 unimp
+800043aa: 0000 unimp
+800043ac: 0000 unimp
+800043ae: 0000 unimp
+800043b0: 0000 unimp
+800043b2: 0000 unimp
+800043b4: 0000 unimp
+800043b6: 0000 unimp
+800043b8: 0000 unimp
+800043ba: 0000 unimp
+800043bc: 0000 unimp
+800043be: 0000 unimp
+800043c0: 0000 unimp
+800043c2: 0000 unimp
+800043c4: 0000 unimp
+800043c6: 0000 unimp
+800043c8: 0000 unimp
+800043ca: 0000 unimp
+800043cc: 0000 unimp
+800043ce: 0000 unimp
+800043d0: 0000 unimp
+800043d2: 0000 unimp
+800043d4: 0000 unimp
+800043d6: 0000 unimp
+800043d8: 0000 unimp
+800043da: 0000 unimp
+800043dc: 0000 unimp
+800043de: 0000 unimp
+800043e0: 0000 unimp
+800043e2: 0000 unimp
+800043e4: 0000 unimp
+800043e6: 0000 unimp
+800043e8: 0000 unimp
+800043ea: 0000 unimp
+800043ec: 0000 unimp
+800043ee: 0000 unimp
+800043f0: 0000 unimp
+800043f2: 0000 unimp
+800043f4: 0000 unimp
+800043f6: 0000 unimp
+800043f8: 0000 unimp
+800043fa: 0000 unimp
+800043fc: 0000 unimp
+800043fe: 0000 unimp
+80004400: 0000 unimp
+80004402: 0000 unimp
+80004404: 0000 unimp
+80004406: 0000 unimp
+80004408: 0000 unimp
+8000440a: 0000 unimp
+8000440c: 0000 unimp
+8000440e: 0000 unimp
+80004410: 0000 unimp
+80004412: 0000 unimp
+80004414: 0000 unimp
+80004416: 0000 unimp
+80004418: 0000 unimp
+8000441a: 0000 unimp
+8000441c: 0000 unimp
+8000441e: 0000 unimp
+80004420: 0000 unimp
+80004422: 0000 unimp
+80004424: 0000 unimp
+80004426: 0000 unimp
+80004428: 0000 unimp
+8000442a: 0000 unimp
+8000442c: 0000 unimp
+8000442e: 0000 unimp
+80004430: 0000 unimp
+80004432: 0000 unimp
+80004434: 0000 unimp
+80004436: 0000 unimp
+80004438: 0000 unimp
+8000443a: 0000 unimp
+8000443c: 0000 unimp
+8000443e: 0000 unimp
+80004440: 0000 unimp
+80004442: 0000 unimp
+80004444: 0000 unimp
+80004446: 0000 unimp
+80004448: 0000 unimp
+8000444a: 0000 unimp
+8000444c: 0000 unimp
+8000444e: 0000 unimp
+80004450: 0000 unimp
+80004452: 0000 unimp
+80004454: 0000 unimp
+80004456: 0000 unimp
+80004458: 0000 unimp
+8000445a: 0000 unimp
+8000445c: 0000 unimp
+8000445e: 0000 unimp
+80004460: 0000 unimp
+80004462: 0000 unimp
+80004464: 0000 unimp
+80004466: 0000 unimp
+80004468: 0000 unimp
+8000446a: 0000 unimp
+8000446c: 0000 unimp
+8000446e: 0000 unimp
+80004470: 0000 unimp
+80004472: 0000 unimp
+80004474: 0000 unimp
+80004476: 0000 unimp
+80004478: 0000 unimp
+8000447a: 0000 unimp
+8000447c: 0000 unimp
+8000447e: 0000 unimp
+80004480: 0000 unimp
+80004482: 0000 unimp
+80004484: 0000 unimp
+80004486: 0000 unimp
+80004488: 0000 unimp
+8000448a: 0000 unimp
+8000448c: 0000 unimp
+8000448e: 0000 unimp
+80004490: 0000 unimp
+80004492: 0000 unimp
+80004494: 0000 unimp
+80004496: 0000 unimp
+80004498: 0000 unimp
+8000449a: 0000 unimp
+8000449c: 0000 unimp
+8000449e: 0000 unimp
+800044a0: 0000 unimp
+800044a2: 0000 unimp
+800044a4: 0000 unimp
+800044a6: 0000 unimp
+800044a8: 0000 unimp
+800044aa: 0000 unimp
+800044ac: 0000 unimp
+800044ae: 0000 unimp
+800044b0: 0000 unimp
+800044b2: 0000 unimp
+800044b4: 0000 unimp
+800044b6: 0000 unimp
+800044b8: 0000 unimp
+800044ba: 0000 unimp
+800044bc: 0000 unimp
+800044be: 0000 unimp
+800044c0: 0000 unimp
+800044c2: 0000 unimp
+800044c4: 0000 unimp
+800044c6: 0000 unimp
+800044c8: 0000 unimp
+800044ca: 0000 unimp
+800044cc: 0000 unimp
+800044ce: 0000 unimp
+800044d0: 0000 unimp
+800044d2: 0000 unimp
+800044d4: 0000 unimp
+800044d6: 0000 unimp
+800044d8: 0000 unimp
+800044da: 0000 unimp
+800044dc: 0000 unimp
+800044de: 0000 unimp
+800044e0: 0000 unimp
+800044e2: 0000 unimp
+800044e4: 0000 unimp
+800044e6: 0000 unimp
+800044e8: 0000 unimp
+800044ea: 0000 unimp
+800044ec: 0000 unimp
+800044ee: 0000 unimp
+800044f0: 0000 unimp
+800044f2: 0000 unimp
+800044f4: 0000 unimp
+800044f6: 0000 unimp
+800044f8: 0000 unimp
+800044fa: 0000 unimp
+800044fc: 0000 unimp
+800044fe: 0000 unimp
+80004500: 0000 unimp
+80004502: 0000 unimp
+80004504: 0000 unimp
+80004506: 0000 unimp
+80004508: 0000 unimp
+8000450a: 0000 unimp
+8000450c: 0000 unimp
+8000450e: 0000 unimp
+80004510: 0000 unimp
+80004512: 0000 unimp
+80004514: 0000 unimp
+80004516: 0000 unimp
+80004518: 0000 unimp
+8000451a: 0000 unimp
+8000451c: 0000 unimp
+8000451e: 0000 unimp
+80004520: 0000 unimp
+80004522: 0000 unimp
+80004524: 0000 unimp
+80004526: 0000 unimp
+80004528: 0000 unimp
+8000452a: 0000 unimp
+8000452c: 0000 unimp
+8000452e: 0000 unimp
+80004530: 0000 unimp
+80004532: 0000 unimp
+80004534: 0000 unimp
+80004536: 0000 unimp
+80004538: 0000 unimp
+8000453a: 0000 unimp
+8000453c: 0000 unimp
+8000453e: 0000 unimp
+80004540: 0000 unimp
+80004542: 0000 unimp
+80004544: 0000 unimp
+80004546: 0000 unimp
+80004548: 0000 unimp
+8000454a: 0000 unimp
+8000454c: 0000 unimp
+8000454e: 0000 unimp
+80004550: 0000 unimp
+80004552: 0000 unimp
+80004554: 0000 unimp
+80004556: 0000 unimp
+80004558: 0000 unimp
+8000455a: 0000 unimp
+8000455c: 0000 unimp
+8000455e: 0000 unimp
+80004560: 0000 unimp
+80004562: 0000 unimp
+80004564: 0000 unimp
+80004566: 0000 unimp
+80004568: 0000 unimp
+8000456a: 0000 unimp
+8000456c: 0000 unimp
+8000456e: 0000 unimp
+80004570: 0000 unimp
+80004572: 0000 unimp
+80004574: 0000 unimp
+80004576: 0000 unimp
+80004578: 0000 unimp
+8000457a: 0000 unimp
+8000457c: 0000 unimp
+8000457e: 0000 unimp
+80004580: 0000 unimp
+80004582: 0000 unimp
+80004584: 0000 unimp
+80004586: 0000 unimp
+80004588: 0000 unimp
+8000458a: 0000 unimp
+8000458c: 0000 unimp
+8000458e: 0000 unimp
+80004590: 0000 unimp
+80004592: 0000 unimp
+80004594: 0000 unimp
+80004596: 0000 unimp
+80004598: 0000 unimp
+8000459a: 0000 unimp
+8000459c: 0000 unimp
+8000459e: 0000 unimp
+800045a0: 0000 unimp
+800045a2: 0000 unimp
+800045a4: 0000 unimp
+800045a6: 0000 unimp
+800045a8: 0000 unimp
+800045aa: 0000 unimp
+800045ac: 0000 unimp
+800045ae: 0000 unimp
+800045b0: 0000 unimp
+800045b2: 0000 unimp
+800045b4: 0000 unimp
+800045b6: 0000 unimp
+800045b8: 0000 unimp
+800045ba: 0000 unimp
+800045bc: 0000 unimp
+800045be: 0000 unimp
+800045c0: 0000 unimp
+800045c2: 0000 unimp
+800045c4: 0000 unimp
+800045c6: 0000 unimp
+800045c8: 0000 unimp
+800045ca: 0000 unimp
+800045cc: 0000 unimp
+800045ce: 0000 unimp
+800045d0: 0000 unimp
+800045d2: 0000 unimp
+800045d4: 0000 unimp
+800045d6: 0000 unimp
+800045d8: 0000 unimp
+800045da: 0000 unimp
+800045dc: 0000 unimp
+800045de: 0000 unimp
+800045e0: 0000 unimp
+800045e2: 0000 unimp
+800045e4: 0000 unimp
+800045e6: 0000 unimp
+800045e8: 0000 unimp
+800045ea: 0000 unimp
+800045ec: 0000 unimp
+800045ee: 0000 unimp
+800045f0: 0000 unimp
+800045f2: 0000 unimp
+800045f4: 0000 unimp
+800045f6: 0000 unimp
+800045f8: 0000 unimp
+800045fa: 0000 unimp
+800045fc: 0000 unimp
+800045fe: 0000 unimp
+80004600: 0000 unimp
+80004602: 0000 unimp
+80004604: 0000 unimp
+80004606: 0000 unimp
+80004608: 0000 unimp
+8000460a: 0000 unimp
+8000460c: 0000 unimp
+8000460e: 0000 unimp
+80004610: 0000 unimp
+80004612: 0000 unimp
+80004614: 0000 unimp
+80004616: 0000 unimp
+80004618: 0000 unimp
+8000461a: 0000 unimp
+8000461c: 0000 unimp
+8000461e: 0000 unimp
+80004620: 0000 unimp
+80004622: 0000 unimp
+80004624: 0000 unimp
+80004626: 0000 unimp
+80004628: 0000 unimp
+8000462a: 0000 unimp
+8000462c: 0000 unimp
+8000462e: 0000 unimp
+80004630: 0000 unimp
+80004632: 0000 unimp
+80004634: 0000 unimp
+80004636: 0000 unimp
+80004638: 0000 unimp
+8000463a: 0000 unimp
+8000463c: 0000 unimp
+8000463e: 0000 unimp
+80004640: 0000 unimp
+80004642: 0000 unimp
+80004644: 0000 unimp
+80004646: 0000 unimp
+80004648: 0000 unimp
+8000464a: 0000 unimp
+8000464c: 0000 unimp
+8000464e: 0000 unimp
+80004650: 0000 unimp
+80004652: 0000 unimp
+80004654: 0000 unimp
+80004656: 0000 unimp
+80004658: 0000 unimp
+8000465a: 0000 unimp
+8000465c: 0000 unimp
+8000465e: 0000 unimp
+80004660: 0000 unimp
+80004662: 0000 unimp
+80004664: 0000 unimp
+80004666: 0000 unimp
+80004668: 0000 unimp
+8000466a: 0000 unimp
+8000466c: 0000 unimp
+8000466e: 0000 unimp
+80004670: 0000 unimp
+80004672: 0000 unimp
+80004674: 0000 unimp
+80004676: 0000 unimp
+80004678: 0000 unimp
+8000467a: 0000 unimp
+8000467c: 0000 unimp
+8000467e: 0000 unimp
+80004680: 0000 unimp
+80004682: 0000 unimp
+80004684: 0000 unimp
+80004686: 0000 unimp
+80004688: 0000 unimp
+8000468a: 0000 unimp
+8000468c: 0000 unimp
+8000468e: 0000 unimp
+80004690: 0000 unimp
+80004692: 0000 unimp
+80004694: 0000 unimp
+80004696: 0000 unimp
+80004698: 0000 unimp
+8000469a: 0000 unimp
+8000469c: 0000 unimp
+8000469e: 0000 unimp
+800046a0: 0000 unimp
+800046a2: 0000 unimp
+800046a4: 0000 unimp
+800046a6: 0000 unimp
+800046a8: 0000 unimp
+800046aa: 0000 unimp
+800046ac: 0000 unimp
+800046ae: 0000 unimp
+800046b0: 0000 unimp
+800046b2: 0000 unimp
+800046b4: 0000 unimp
+800046b6: 0000 unimp
+800046b8: 0000 unimp
+800046ba: 0000 unimp
+800046bc: 0000 unimp
+800046be: 0000 unimp
+800046c0: 0000 unimp
+800046c2: 0000 unimp
+800046c4: 0000 unimp
+800046c6: 0000 unimp
+800046c8: 0000 unimp
+800046ca: 0000 unimp
+800046cc: 0000 unimp
+800046ce: 0000 unimp
+800046d0: 0000 unimp
+800046d2: 0000 unimp
+800046d4: 0000 unimp
+800046d6: 0000 unimp
+800046d8: 0000 unimp
+800046da: 0000 unimp
+800046dc: 0000 unimp
+800046de: 0000 unimp
+800046e0: 0000 unimp
+800046e2: 0000 unimp
+800046e4: 0000 unimp
+800046e6: 0000 unimp
+800046e8: 0000 unimp
+800046ea: 0000 unimp
+800046ec: 0000 unimp
+800046ee: 0000 unimp
+800046f0: 0000 unimp
+800046f2: 0000 unimp
+800046f4: 0000 unimp
+800046f6: 0000 unimp
+800046f8: 0000 unimp
+800046fa: 0000 unimp
+800046fc: 0000 unimp
+800046fe: 0000 unimp
+80004700: 0000 unimp
+80004702: 0000 unimp
+80004704: 0000 unimp
+80004706: 0000 unimp
+80004708: 0000 unimp
+8000470a: 0000 unimp
+8000470c: 0000 unimp
+8000470e: 0000 unimp
+80004710: 0000 unimp
+80004712: 0000 unimp
+80004714: 0000 unimp
+80004716: 0000 unimp
+80004718: 0000 unimp
+8000471a: 0000 unimp
+8000471c: 0000 unimp
+8000471e: 0000 unimp
+80004720: 0000 unimp
+80004722: 0000 unimp
+80004724: 0000 unimp
+80004726: 0000 unimp
+80004728: 0000 unimp
+8000472a: 0000 unimp
+8000472c: 0000 unimp
+8000472e: 0000 unimp
+80004730: 0000 unimp
+80004732: 0000 unimp
+80004734: 0000 unimp
+80004736: 0000 unimp
+80004738: 0000 unimp
+8000473a: 0000 unimp
+8000473c: 0000 unimp
+8000473e: 0000 unimp
+80004740: 0000 unimp
+80004742: 0000 unimp
+80004744: 0000 unimp
+80004746: 0000 unimp
+80004748: 0000 unimp
+8000474a: 0000 unimp
+8000474c: 0000 unimp
+8000474e: 0000 unimp
+80004750: 0000 unimp
+80004752: 0000 unimp
+80004754: 0000 unimp
+80004756: 0000 unimp
+80004758: 0000 unimp
+8000475a: 0000 unimp
+8000475c: 0000 unimp
+8000475e: 0000 unimp
+80004760: 0000 unimp
+80004762: 0000 unimp
+80004764: 0000 unimp
+80004766: 0000 unimp
+80004768: 0000 unimp
+8000476a: 0000 unimp
+8000476c: 0000 unimp
+8000476e: 0000 unimp
+80004770: 0000 unimp
+80004772: 0000 unimp
+80004774: 0000 unimp
+80004776: 0000 unimp
+80004778: 0000 unimp
+8000477a: 0000 unimp
+8000477c: 0000 unimp
+8000477e: 0000 unimp
+80004780: 0000 unimp
+80004782: 0000 unimp
+80004784: 0000 unimp
+80004786: 0000 unimp
+80004788: 0000 unimp
+8000478a: 0000 unimp
+8000478c: 0000 unimp
+8000478e: 0000 unimp
+80004790: 0000 unimp
+80004792: 0000 unimp
+80004794: 0000 unimp
+80004796: 0000 unimp
+80004798: 0000 unimp
+8000479a: 0000 unimp
+8000479c: 0000 unimp
+8000479e: 0000 unimp
+800047a0: 0000 unimp
+800047a2: 0000 unimp
+800047a4: 0000 unimp
+800047a6: 0000 unimp
+800047a8: 0000 unimp
+800047aa: 0000 unimp
+800047ac: 0000 unimp
+800047ae: 0000 unimp
+800047b0: 0000 unimp
+800047b2: 0000 unimp
+800047b4: 0000 unimp
+800047b6: 0000 unimp
+800047b8: 0000 unimp
+800047ba: 0000 unimp
+800047bc: 0000 unimp
+800047be: 0000 unimp
+800047c0: 0000 unimp
+800047c2: 0000 unimp
+800047c4: 0000 unimp
+800047c6: 0000 unimp
+800047c8: 0000 unimp
+800047ca: 0000 unimp
+800047cc: 0000 unimp
+800047ce: 0000 unimp
+800047d0: 0000 unimp
+800047d2: 0000 unimp
+800047d4: 0000 unimp
+800047d6: 0000 unimp
+800047d8: 0000 unimp
+800047da: 0000 unimp
+800047dc: 0000 unimp
+800047de: 0000 unimp
+800047e0: 0000 unimp
+800047e2: 0000 unimp
+800047e4: 0000 unimp
+800047e6: 0000 unimp
+800047e8: 0000 unimp
+800047ea: 0000 unimp
+800047ec: 0000 unimp
+800047ee: 0000 unimp
+800047f0: 0000 unimp
+800047f2: 0000 unimp
+800047f4: 0000 unimp
+800047f6: 0000 unimp
+800047f8: 0000 unimp
+800047fa: 0000 unimp
+800047fc: 0000 unimp
+800047fe: 0000 unimp
+80004800: 0000 unimp
+80004802: 0000 unimp
+80004804: 0000 unimp
+80004806: 0000 unimp
+80004808: 0000 unimp
+8000480a: 0000 unimp
+8000480c: 0000 unimp
+8000480e: 0000 unimp
+80004810: 0000 unimp
+80004812: 0000 unimp
+80004814: 0000 unimp
+80004816: 0000 unimp
+80004818: 0000 unimp
+8000481a: 0000 unimp
+8000481c: 0000 unimp
+8000481e: 0000 unimp
+80004820: 0000 unimp
+80004822: 0000 unimp
+80004824: 0000 unimp
+80004826: 0000 unimp
+80004828: 0000 unimp
+8000482a: 0000 unimp
+8000482c: 0000 unimp
+8000482e: 0000 unimp
+80004830: 0000 unimp
+80004832: 0000 unimp
+80004834: 0000 unimp
+80004836: 0000 unimp
+80004838: 0000 unimp
+8000483a: 0000 unimp
+8000483c: 0000 unimp
+8000483e: 0000 unimp
+80004840: 0000 unimp
+80004842: 0000 unimp
+80004844: 0000 unimp
+80004846: 0000 unimp
+80004848: 0000 unimp
+8000484a: 0000 unimp
+8000484c: 0000 unimp
+8000484e: 0000 unimp
+80004850: 0000 unimp
+80004852: 0000 unimp
+80004854: 0000 unimp
+80004856: 0000 unimp
+80004858: 0000 unimp
+8000485a: 0000 unimp
+8000485c: 0000 unimp
+8000485e: 0000 unimp
+80004860: 0000 unimp
+80004862: 0000 unimp
+80004864: 0000 unimp
+80004866: 0000 unimp
+80004868: 0000 unimp
+8000486a: 0000 unimp
+8000486c: 0000 unimp
+8000486e: 0000 unimp
+80004870: 0000 unimp
+80004872: 0000 unimp
+80004874: 0000 unimp
+80004876: 0000 unimp
+80004878: 0000 unimp
+8000487a: 0000 unimp
+8000487c: 0000 unimp
+8000487e: 0000 unimp
+80004880: 0000 unimp
+80004882: 0000 unimp
+80004884: 0000 unimp
+80004886: 0000 unimp
+80004888: 0000 unimp
+8000488a: 0000 unimp
+8000488c: 0000 unimp
+8000488e: 0000 unimp
+80004890: 0000 unimp
+80004892: 0000 unimp
+80004894: 0000 unimp
+80004896: 0000 unimp
+80004898: 0000 unimp
+8000489a: 0000 unimp
+8000489c: 0000 unimp
+8000489e: 0000 unimp
+800048a0: 0000 unimp
+800048a2: 0000 unimp
+800048a4: 0000 unimp
+800048a6: 0000 unimp
+800048a8: 0000 unimp
+800048aa: 0000 unimp
+800048ac: 0000 unimp
+800048ae: 0000 unimp
+800048b0: 0000 unimp
+800048b2: 0000 unimp
+800048b4: 0000 unimp
+800048b6: 0000 unimp
+800048b8: 0000 unimp
+800048ba: 0000 unimp
+800048bc: 0000 unimp
+800048be: 0000 unimp
+800048c0: 0000 unimp
+800048c2: 0000 unimp
+800048c4: 0000 unimp
+800048c6: 0000 unimp
+800048c8: 0000 unimp
+800048ca: 0000 unimp
+800048cc: 0000 unimp
+800048ce: 0000 unimp
+800048d0: 0000 unimp
+800048d2: 0000 unimp
+800048d4: 0000 unimp
+800048d6: 0000 unimp
+800048d8: 0000 unimp
+800048da: 0000 unimp
+800048dc: 0000 unimp
+800048de: 0000 unimp
+800048e0: 0000 unimp
+800048e2: 0000 unimp
+800048e4: 0000 unimp
+800048e6: 0000 unimp
+800048e8: 0000 unimp
+800048ea: 0000 unimp
+800048ec: 0000 unimp
+800048ee: 0000 unimp
+800048f0: 0000 unimp
+800048f2: 0000 unimp
+800048f4: 0000 unimp
+800048f6: 0000 unimp
+800048f8: 0000 unimp
+800048fa: 0000 unimp
+800048fc: 0000 unimp
+800048fe: 0000 unimp
+80004900: 0000 unimp
+80004902: 0000 unimp
+80004904: 0000 unimp
+80004906: 0000 unimp
+80004908: 0000 unimp
+8000490a: 0000 unimp
+8000490c: 0000 unimp
+8000490e: 0000 unimp
+80004910: 0000 unimp
+80004912: 0000 unimp
+80004914: 0000 unimp
+80004916: 0000 unimp
+80004918: 0000 unimp
+8000491a: 0000 unimp
+8000491c: 0000 unimp
+8000491e: 0000 unimp
+80004920: 0000 unimp
+80004922: 0000 unimp
+80004924: 0000 unimp
+80004926: 0000 unimp
+80004928: 0000 unimp
+8000492a: 0000 unimp
+8000492c: 0000 unimp
+8000492e: 0000 unimp
+80004930: 0000 unimp
+80004932: 0000 unimp
+80004934: 0000 unimp
+80004936: 0000 unimp
+80004938: 0000 unimp
+8000493a: 0000 unimp
+8000493c: 0000 unimp
+8000493e: 0000 unimp
+80004940: 0000 unimp
+80004942: 0000 unimp
+80004944: 0000 unimp
+80004946: 0000 unimp
+80004948: 0000 unimp
+8000494a: 0000 unimp
+8000494c: 0000 unimp
+8000494e: 0000 unimp
+80004950: 0000 unimp
+80004952: 0000 unimp
+80004954: 0000 unimp
+80004956: 0000 unimp
+80004958: 0000 unimp
+8000495a: 0000 unimp
+8000495c: 0000 unimp
+8000495e: 0000 unimp
+80004960: 0000 unimp
+80004962: 0000 unimp
+80004964: 0000 unimp
+80004966: 0000 unimp
+80004968: 0000 unimp
+8000496a: 0000 unimp
+8000496c: 0000 unimp
+8000496e: 0000 unimp
+80004970: 0000 unimp
+80004972: 0000 unimp
+80004974: 0000 unimp
+80004976: 0000 unimp
+80004978: 0000 unimp
+8000497a: 0000 unimp
+8000497c: 0000 unimp
+8000497e: 0000 unimp
+80004980: 0000 unimp
+80004982: 0000 unimp
+80004984: 0000 unimp
+80004986: 0000 unimp
+80004988: 0000 unimp
+8000498a: 0000 unimp
+8000498c: 0000 unimp
+8000498e: 0000 unimp
+80004990: 0000 unimp
+80004992: 0000 unimp
+80004994: 0000 unimp
+80004996: 0000 unimp
+80004998: 0000 unimp
+8000499a: 0000 unimp
+8000499c: 0000 unimp
+8000499e: 0000 unimp
+800049a0: 0000 unimp
+800049a2: 0000 unimp
+800049a4: 0000 unimp
+800049a6: 0000 unimp
+800049a8: 0000 unimp
+800049aa: 0000 unimp
+800049ac: 0000 unimp
+800049ae: 0000 unimp
+800049b0: 0000 unimp
+800049b2: 0000 unimp
+800049b4: 0000 unimp
+800049b6: 0000 unimp
+800049b8: 0000 unimp
+800049ba: 0000 unimp
+800049bc: 0000 unimp
+800049be: 0000 unimp
+800049c0: 0000 unimp
+800049c2: 0000 unimp
+800049c4: 0000 unimp
+800049c6: 0000 unimp
+800049c8: 0000 unimp
+800049ca: 0000 unimp
+800049cc: 0000 unimp
+800049ce: 0000 unimp
+800049d0: 0000 unimp
+800049d2: 0000 unimp
+800049d4: 0000 unimp
+800049d6: 0000 unimp
+800049d8: 0000 unimp
+800049da: 0000 unimp
+800049dc: 0000 unimp
+800049de: 0000 unimp
+800049e0: 0000 unimp
+800049e2: 0000 unimp
+800049e4: 0000 unimp
+800049e6: 0000 unimp
+800049e8: 0000 unimp
+800049ea: 0000 unimp
+800049ec: 0000 unimp
+800049ee: 0000 unimp
+800049f0: 0000 unimp
+800049f2: 0000 unimp
+800049f4: 0000 unimp
+800049f6: 0000 unimp
+800049f8: 0000 unimp
+800049fa: 0000 unimp
+800049fc: 0000 unimp
+800049fe: 0000 unimp
+80004a00: 0000 unimp
+80004a02: 0000 unimp
+80004a04: 0000 unimp
+80004a06: 0000 unimp
+80004a08: 0000 unimp
+80004a0a: 0000 unimp
+80004a0c: 0000 unimp
+80004a0e: 0000 unimp
+80004a10: 0000 unimp
+80004a12: 0000 unimp
+80004a14: 0000 unimp
+80004a16: 0000 unimp
+80004a18: 0000 unimp
+80004a1a: 0000 unimp
+80004a1c: 0000 unimp
+80004a1e: 0000 unimp
+80004a20: 0000 unimp
+80004a22: 0000 unimp
+80004a24: 0000 unimp
+80004a26: 0000 unimp
+80004a28: 0000 unimp
+80004a2a: 0000 unimp
+80004a2c: 0000 unimp
+80004a2e: 0000 unimp
+80004a30: 0000 unimp
+80004a32: 0000 unimp
+80004a34: 0000 unimp
+80004a36: 0000 unimp
+80004a38: 0000 unimp
+80004a3a: 0000 unimp
+80004a3c: 0000 unimp
+80004a3e: 0000 unimp
+80004a40: 0000 unimp
+80004a42: 0000 unimp
+80004a44: 0000 unimp
+80004a46: 0000 unimp
+80004a48: 0000 unimp
+80004a4a: 0000 unimp
+80004a4c: 0000 unimp
+80004a4e: 0000 unimp
+80004a50: 0000 unimp
+80004a52: 0000 unimp
+80004a54: 0000 unimp
+80004a56: 0000 unimp
+80004a58: 0000 unimp
+80004a5a: 0000 unimp
+80004a5c: 0000 unimp
+80004a5e: 0000 unimp
+80004a60: 0000 unimp
+80004a62: 0000 unimp
+80004a64: 0000 unimp
+80004a66: 0000 unimp
+80004a68: 0000 unimp
+80004a6a: 0000 unimp
+80004a6c: 0000 unimp
+80004a6e: 0000 unimp
+80004a70: 0000 unimp
+80004a72: 0000 unimp
+80004a74: 0000 unimp
+80004a76: 0000 unimp
+80004a78: 0000 unimp
+80004a7a: 0000 unimp
+80004a7c: 0000 unimp
+80004a7e: 0000 unimp
+80004a80: 0000 unimp
+80004a82: 0000 unimp
+80004a84: 0000 unimp
+80004a86: 0000 unimp
+80004a88: 0000 unimp
+80004a8a: 0000 unimp
+80004a8c: 0000 unimp
+80004a8e: 0000 unimp
+80004a90: 0000 unimp
+80004a92: 0000 unimp
+80004a94: 0000 unimp
+80004a96: 0000 unimp
+80004a98: 0000 unimp
+80004a9a: 0000 unimp
+80004a9c: 0000 unimp
+80004a9e: 0000 unimp
+80004aa0: 0000 unimp
+80004aa2: 0000 unimp
+80004aa4: 0000 unimp
+80004aa6: 0000 unimp
+80004aa8: 0000 unimp
+80004aaa: 0000 unimp
+80004aac: 0000 unimp
+80004aae: 0000 unimp
+80004ab0: 0000 unimp
+80004ab2: 0000 unimp
+80004ab4: 0000 unimp
+80004ab6: 0000 unimp
+80004ab8: 0000 unimp
+80004aba: 0000 unimp
+80004abc: 0000 unimp
+80004abe: 0000 unimp
+80004ac0: 0000 unimp
+80004ac2: 0000 unimp
+80004ac4: 0000 unimp
+80004ac6: 0000 unimp
+80004ac8: 0000 unimp
+80004aca: 0000 unimp
+80004acc: 0000 unimp
+80004ace: 0000 unimp
+80004ad0: 0000 unimp
+80004ad2: 0000 unimp
+80004ad4: 0000 unimp
+80004ad6: 0000 unimp
+80004ad8: 0000 unimp
+80004ada: 0000 unimp
+80004adc: 0000 unimp
+80004ade: 0000 unimp
+80004ae0: 0000 unimp
+80004ae2: 0000 unimp
+80004ae4: 0000 unimp
+80004ae6: 0000 unimp
+80004ae8: 0000 unimp
+80004aea: 0000 unimp
+80004aec: 0000 unimp
+80004aee: 0000 unimp
+80004af0: 0000 unimp
+80004af2: 0000 unimp
+80004af4: 0000 unimp
+80004af6: 0000 unimp
+80004af8: 0000 unimp
+80004afa: 0000 unimp
+80004afc: 0000 unimp
+80004afe: 0000 unimp
+80004b00: 0000 unimp
+80004b02: 0000 unimp
+80004b04: 0000 unimp
+80004b06: 0000 unimp
+80004b08: 0000 unimp
+80004b0a: 0000 unimp
+80004b0c: 0000 unimp
+80004b0e: 0000 unimp
+80004b10: 0000 unimp
+80004b12: 0000 unimp
+80004b14: 0000 unimp
+80004b16: 0000 unimp
+80004b18: 0000 unimp
+80004b1a: 0000 unimp
+80004b1c: 0000 unimp
+80004b1e: 0000 unimp
+80004b20: 0000 unimp
+80004b22: 0000 unimp
+80004b24: 0000 unimp
+80004b26: 0000 unimp
+80004b28: 0000 unimp
+80004b2a: 0000 unimp
+80004b2c: 0000 unimp
+80004b2e: 0000 unimp
+80004b30: 0000 unimp
+80004b32: 0000 unimp
+80004b34: 0000 unimp
+80004b36: 0000 unimp
+80004b38: 0000 unimp
+80004b3a: 0000 unimp
+80004b3c: 0000 unimp
+80004b3e: 0000 unimp
+80004b40: 0000 unimp
+80004b42: 0000 unimp
+80004b44: 0000 unimp
+80004b46: 0000 unimp
+80004b48: 0000 unimp
+80004b4a: 0000 unimp
+80004b4c: 0000 unimp
+80004b4e: 0000 unimp
+80004b50: 0000 unimp
+80004b52: 0000 unimp
+80004b54: 0000 unimp
+80004b56: 0000 unimp
+80004b58: 0000 unimp
+80004b5a: 0000 unimp
+80004b5c: 0000 unimp
+80004b5e: 0000 unimp
+80004b60: 0000 unimp
+80004b62: 0000 unimp
+80004b64: 0000 unimp
+80004b66: 0000 unimp
+80004b68: 0000 unimp
+80004b6a: 0000 unimp
+80004b6c: 0000 unimp
+80004b6e: 0000 unimp
+80004b70: 0000 unimp
+80004b72: 0000 unimp
+80004b74: 0000 unimp
+80004b76: 0000 unimp
+80004b78: 0000 unimp
+80004b7a: 0000 unimp
+80004b7c: 0000 unimp
+80004b7e: 0000 unimp
+80004b80: 0000 unimp
+80004b82: 0000 unimp
+80004b84: 0000 unimp
+80004b86: 0000 unimp
+80004b88: 0000 unimp
+80004b8a: 0000 unimp
+80004b8c: 0000 unimp
+80004b8e: 0000 unimp
+80004b90: 0000 unimp
+80004b92: 0000 unimp
+80004b94: 0000 unimp
+80004b96: 0000 unimp
+80004b98: 0000 unimp
+80004b9a: 0000 unimp
+80004b9c: 0000 unimp
+80004b9e: 0000 unimp
+80004ba0: 0000 unimp
+80004ba2: 0000 unimp
+80004ba4: 0000 unimp
+80004ba6: 0000 unimp
+80004ba8: 0000 unimp
+80004baa: 0000 unimp
+80004bac: 0000 unimp
+80004bae: 0000 unimp
+80004bb0: 0000 unimp
+80004bb2: 0000 unimp
+80004bb4: 0000 unimp
+80004bb6: 0000 unimp
+80004bb8: 0000 unimp
+80004bba: 0000 unimp
+80004bbc: 0000 unimp
+80004bbe: 0000 unimp
+80004bc0: 0000 unimp
+80004bc2: 0000 unimp
+80004bc4: 0000 unimp
+80004bc6: 0000 unimp
+80004bc8: 0000 unimp
+80004bca: 0000 unimp
+80004bcc: 0000 unimp
+80004bce: 0000 unimp
+80004bd0: 0000 unimp
+80004bd2: 0000 unimp
+80004bd4: 0000 unimp
+80004bd6: 0000 unimp
+80004bd8: 0000 unimp
+80004bda: 0000 unimp
+80004bdc: 0000 unimp
+80004bde: 0000 unimp
+80004be0: 0000 unimp
+80004be2: 0000 unimp
+80004be4: 0000 unimp
+80004be6: 0000 unimp
+80004be8: 0000 unimp
+80004bea: 0000 unimp
+80004bec: 0000 unimp
+80004bee: 0000 unimp
+80004bf0: 0000 unimp
+80004bf2: 0000 unimp
+80004bf4: 0000 unimp
+80004bf6: 0000 unimp
+80004bf8: 0000 unimp
+80004bfa: 0000 unimp
+80004bfc: 0000 unimp
+80004bfe: 0000 unimp
+80004c00: 0000 unimp
+80004c02: 0000 unimp
+80004c04: 0000 unimp
+80004c06: 0000 unimp
+80004c08: 0000 unimp
+80004c0a: 0000 unimp
+80004c0c: 0000 unimp
+80004c0e: 0000 unimp
+80004c10: 0000 unimp
+80004c12: 0000 unimp
+80004c14: 0000 unimp
+80004c16: 0000 unimp
+80004c18: 0000 unimp
+80004c1a: 0000 unimp
+80004c1c: 0000 unimp
+80004c1e: 0000 unimp
+80004c20: 0000 unimp
+80004c22: 0000 unimp
+80004c24: 0000 unimp
+80004c26: 0000 unimp
+80004c28: 0000 unimp
+80004c2a: 0000 unimp
+80004c2c: 0000 unimp
+80004c2e: 0000 unimp
+80004c30: 0000 unimp
+80004c32: 0000 unimp
+80004c34: 0000 unimp
+80004c36: 0000 unimp
+80004c38: 0000 unimp
+80004c3a: 0000 unimp
+80004c3c: 0000 unimp
+80004c3e: 0000 unimp
+80004c40: 0000 unimp
+80004c42: 0000 unimp
+80004c44: 0000 unimp
+80004c46: 0000 unimp
+80004c48: 0000 unimp
+80004c4a: 0000 unimp
+80004c4c: 0000 unimp
+80004c4e: 0000 unimp
+80004c50: 0000 unimp
+80004c52: 0000 unimp
+80004c54: 0000 unimp
+80004c56: 0000 unimp
+80004c58: 0000 unimp
+80004c5a: 0000 unimp
+80004c5c: 0000 unimp
+80004c5e: 0000 unimp
+80004c60: 0000 unimp
+80004c62: 0000 unimp
+80004c64: 0000 unimp
+80004c66: 0000 unimp
+80004c68: 0000 unimp
+80004c6a: 0000 unimp
+80004c6c: 0000 unimp
+80004c6e: 0000 unimp
+80004c70: 0000 unimp
+80004c72: 0000 unimp
+80004c74: 0000 unimp
+80004c76: 0000 unimp
+80004c78: 0000 unimp
+80004c7a: 0000 unimp
+80004c7c: 0000 unimp
+80004c7e: 0000 unimp
+80004c80: 0000 unimp
+80004c82: 0000 unimp
+80004c84: 0000 unimp
+80004c86: 0000 unimp
+80004c88: 0000 unimp
+80004c8a: 0000 unimp
+80004c8c: 0000 unimp
+80004c8e: 0000 unimp
+80004c90: 0000 unimp
+80004c92: 0000 unimp
+80004c94: 0000 unimp
+80004c96: 0000 unimp
+80004c98: 0000 unimp
+80004c9a: 0000 unimp
+80004c9c: 0000 unimp
+80004c9e: 0000 unimp
+80004ca0: 0000 unimp
+80004ca2: 0000 unimp
+80004ca4: 0000 unimp
+80004ca6: 0000 unimp
+80004ca8: 0000 unimp
+80004caa: 0000 unimp
+80004cac: 0000 unimp
+80004cae: 0000 unimp
+80004cb0: 0000 unimp
+80004cb2: 0000 unimp
+80004cb4: 0000 unimp
+80004cb6: 0000 unimp
+80004cb8: 0000 unimp
+80004cba: 0000 unimp
+80004cbc: 0000 unimp
+80004cbe: 0000 unimp
+80004cc0: 0000 unimp
+80004cc2: 0000 unimp
+80004cc4: 0000 unimp
+80004cc6: 0000 unimp
+80004cc8: 0000 unimp
+80004cca: 0000 unimp
+80004ccc: 0000 unimp
+80004cce: 0000 unimp
+80004cd0: 0000 unimp
+80004cd2: 0000 unimp
+80004cd4: 0000 unimp
+80004cd6: 0000 unimp
+80004cd8: 0000 unimp
+80004cda: 0000 unimp
+80004cdc: 0000 unimp
+80004cde: 0000 unimp
+80004ce0: 0000 unimp
+80004ce2: 0000 unimp
+80004ce4: 0000 unimp
+80004ce6: 0000 unimp
+80004ce8: 0000 unimp
+80004cea: 0000 unimp
+80004cec: 0000 unimp
+80004cee: 0000 unimp
+80004cf0: 0000 unimp
+80004cf2: 0000 unimp
+80004cf4: 0000 unimp
+80004cf6: 0000 unimp
+80004cf8: 0000 unimp
+80004cfa: 0000 unimp
+80004cfc: 0000 unimp
+80004cfe: 0000 unimp
+80004d00: 0000 unimp
+80004d02: 0000 unimp
+80004d04: 0000 unimp
+80004d06: 0000 unimp
+80004d08: 0000 unimp
+80004d0a: 0000 unimp
+80004d0c: 0000 unimp
+80004d0e: 0000 unimp
+80004d10: 0000 unimp
+80004d12: 0000 unimp
+80004d14: 0000 unimp
+80004d16: 0000 unimp
+80004d18: 0000 unimp
+80004d1a: 0000 unimp
+80004d1c: 0000 unimp
+80004d1e: 0000 unimp
+80004d20: 0000 unimp
+80004d22: 0000 unimp
+80004d24: 0000 unimp
+80004d26: 0000 unimp
+80004d28: 0000 unimp
+80004d2a: 0000 unimp
+80004d2c: 0000 unimp
+80004d2e: 0000 unimp
+80004d30: 0000 unimp
+80004d32: 0000 unimp
+80004d34: 0000 unimp
+80004d36: 0000 unimp
+80004d38: 0000 unimp
+80004d3a: 0000 unimp
+80004d3c: 0000 unimp
+80004d3e: 0000 unimp
+80004d40: 0000 unimp
+80004d42: 0000 unimp
+80004d44: 0000 unimp
+80004d46: 0000 unimp
+80004d48: 0000 unimp
+80004d4a: 0000 unimp
+80004d4c: 0000 unimp
+80004d4e: 0000 unimp
+80004d50: 0000 unimp
+80004d52: 0000 unimp
+80004d54: 0000 unimp
+80004d56: 0000 unimp
+80004d58: 0000 unimp
+80004d5a: 0000 unimp
+80004d5c: 0000 unimp
+80004d5e: 0000 unimp
+80004d60: 0000 unimp
+80004d62: 0000 unimp
+80004d64: 0000 unimp
+80004d66: 0000 unimp
+80004d68: 0000 unimp
+80004d6a: 0000 unimp
+80004d6c: 0000 unimp
+80004d6e: 0000 unimp
+80004d70: 0000 unimp
+80004d72: 0000 unimp
+80004d74: 0000 unimp
+80004d76: 0000 unimp
+80004d78: 0000 unimp
+80004d7a: 0000 unimp
+80004d7c: 0000 unimp
+80004d7e: 0000 unimp
+80004d80: 0000 unimp
+80004d82: 0000 unimp
+80004d84: 0000 unimp
+80004d86: 0000 unimp
+80004d88: 0000 unimp
+80004d8a: 0000 unimp
+80004d8c: 0000 unimp
+80004d8e: 0000 unimp
+80004d90: 0000 unimp
+80004d92: 0000 unimp
+80004d94: 0000 unimp
+80004d96: 0000 unimp
+80004d98: 0000 unimp
+80004d9a: 0000 unimp
+80004d9c: 0000 unimp
+80004d9e: 0000 unimp
+80004da0: 0000 unimp
+80004da2: 0000 unimp
+80004da4: 0000 unimp
+80004da6: 0000 unimp
+80004da8: 0000 unimp
+80004daa: 0000 unimp
+80004dac: 0000 unimp
+80004dae: 0000 unimp
+80004db0: 0000 unimp
+80004db2: 0000 unimp
+80004db4: 0000 unimp
+80004db6: 0000 unimp
+80004db8: 0000 unimp
+80004dba: 0000 unimp
+80004dbc: 0000 unimp
+80004dbe: 0000 unimp
+80004dc0: 0000 unimp
+80004dc2: 0000 unimp
+80004dc4: 0000 unimp
+80004dc6: 0000 unimp
+80004dc8: 0000 unimp
+80004dca: 0000 unimp
+80004dcc: 0000 unimp
+80004dce: 0000 unimp
+80004dd0: 0000 unimp
+80004dd2: 0000 unimp
+80004dd4: 0000 unimp
+80004dd6: 0000 unimp
+80004dd8: 0000 unimp
+80004dda: 0000 unimp
+80004ddc: 0000 unimp
+80004dde: 0000 unimp
+80004de0: 0000 unimp
+80004de2: 0000 unimp
+80004de4: 0000 unimp
+80004de6: 0000 unimp
+80004de8: 0000 unimp
+80004dea: 0000 unimp
+80004dec: 0000 unimp
+80004dee: 0000 unimp
+80004df0: 0000 unimp
+80004df2: 0000 unimp
+80004df4: 0000 unimp
+80004df6: 0000 unimp
+80004df8: 0000 unimp
+80004dfa: 0000 unimp
+80004dfc: 0000 unimp
+80004dfe: 0000 unimp
+80004e00: 0000 unimp
+80004e02: 0000 unimp
+80004e04: 0000 unimp
+80004e06: 0000 unimp
+80004e08: 0000 unimp
+80004e0a: 0000 unimp
+80004e0c: 0000 unimp
+80004e0e: 0000 unimp
+80004e10: 0000 unimp
+80004e12: 0000 unimp
+80004e14: 0000 unimp
+80004e16: 0000 unimp
+80004e18: 0000 unimp
+80004e1a: 0000 unimp
+80004e1c: 0000 unimp
+80004e1e: 0000 unimp
+80004e20: 0000 unimp
+80004e22: 0000 unimp
+80004e24: 0000 unimp
+80004e26: 0000 unimp
+80004e28: 0000 unimp
+80004e2a: 0000 unimp
+80004e2c: 0000 unimp
+80004e2e: 0000 unimp
+80004e30: 0000 unimp
+80004e32: 0000 unimp
+80004e34: 0000 unimp
+80004e36: 0000 unimp
+80004e38: 0000 unimp
+80004e3a: 0000 unimp
+80004e3c: 0000 unimp
+80004e3e: 0000 unimp
+80004e40: 0000 unimp
+80004e42: 0000 unimp
+80004e44: 0000 unimp
+80004e46: 0000 unimp
+80004e48: 0000 unimp
+80004e4a: 0000 unimp
+80004e4c: 0000 unimp
+80004e4e: 0000 unimp
+80004e50: 0000 unimp
+80004e52: 0000 unimp
+80004e54: 0000 unimp
+80004e56: 0000 unimp
+80004e58: 0000 unimp
+80004e5a: 0000 unimp
+80004e5c: 0000 unimp
+80004e5e: 0000 unimp
+80004e60: 0000 unimp
+80004e62: 0000 unimp
+80004e64: 0000 unimp
+80004e66: 0000 unimp
+80004e68: 0000 unimp
+80004e6a: 0000 unimp
+80004e6c: 0000 unimp
+80004e6e: 0000 unimp
+80004e70: 0000 unimp
+80004e72: 0000 unimp
+80004e74: 0000 unimp
+80004e76: 0000 unimp
+80004e78: 0000 unimp
+80004e7a: 0000 unimp
+80004e7c: 0000 unimp
+80004e7e: 0000 unimp
+80004e80: 0000 unimp
+80004e82: 0000 unimp
+80004e84: 0000 unimp
+80004e86: 0000 unimp
+80004e88: 0000 unimp
+80004e8a: 0000 unimp
+80004e8c: 0000 unimp
+80004e8e: 0000 unimp
+80004e90: 0000 unimp
+80004e92: 0000 unimp
+80004e94: 0000 unimp
+80004e96: 0000 unimp
+80004e98: 0000 unimp
+80004e9a: 0000 unimp
+80004e9c: 0000 unimp
+80004e9e: 0000 unimp
+80004ea0: 0000 unimp
+80004ea2: 0000 unimp
+80004ea4: 0000 unimp
+80004ea6: 0000 unimp
+80004ea8: 0000 unimp
+80004eaa: 0000 unimp
+80004eac: 0000 unimp
+80004eae: 0000 unimp
+80004eb0: 0000 unimp
+80004eb2: 0000 unimp
+80004eb4: 0000 unimp
+80004eb6: 0000 unimp
+80004eb8: 0000 unimp
+80004eba: 0000 unimp
+80004ebc: 0000 unimp
+80004ebe: 0000 unimp
+80004ec0: 0000 unimp
+80004ec2: 0000 unimp
+80004ec4: 0000 unimp
+80004ec6: 0000 unimp
+80004ec8: 0000 unimp
+80004eca: 0000 unimp
+80004ecc: 0000 unimp
+80004ece: 0000 unimp
+80004ed0: 0000 unimp
+80004ed2: 0000 unimp
+80004ed4: 0000 unimp
+80004ed6: 0000 unimp
+80004ed8: 0000 unimp
+80004eda: 0000 unimp
+80004edc: 0000 unimp
+80004ede: 0000 unimp
+80004ee0: 0000 unimp
+80004ee2: 0000 unimp
+80004ee4: 0000 unimp
+80004ee6: 0000 unimp
+80004ee8: 0000 unimp
+80004eea: 0000 unimp
+80004eec: 0000 unimp
+80004eee: 0000 unimp
+80004ef0: 0000 unimp
+80004ef2: 0000 unimp
+80004ef4: 0000 unimp
+80004ef6: 0000 unimp
+80004ef8: 0000 unimp
+80004efa: 0000 unimp
+80004efc: 0000 unimp
+80004efe: 0000 unimp
+80004f00: 0000 unimp
+80004f02: 0000 unimp
+80004f04: 0000 unimp
+80004f06: 0000 unimp
+80004f08: 0000 unimp
+80004f0a: 0000 unimp
+80004f0c: 0000 unimp
+80004f0e: 0000 unimp
+80004f10: 0000 unimp
+80004f12: 0000 unimp
+80004f14: 0000 unimp
+80004f16: 0000 unimp
+80004f18: 0000 unimp
+80004f1a: 0000 unimp
+80004f1c: 0000 unimp
+80004f1e: 0000 unimp
+80004f20: 0000 unimp
+80004f22: 0000 unimp
+80004f24: 0000 unimp
+80004f26: 0000 unimp
+80004f28: 0000 unimp
+80004f2a: 0000 unimp
+80004f2c: 0000 unimp
+80004f2e: 0000 unimp
+80004f30: 0000 unimp
+80004f32: 0000 unimp
+80004f34: 0000 unimp
+80004f36: 0000 unimp
+80004f38: 0000 unimp
+80004f3a: 0000 unimp
+80004f3c: 0000 unimp
+80004f3e: 0000 unimp
+80004f40: 0000 unimp
+80004f42: 0000 unimp
+80004f44: 0000 unimp
+80004f46: 0000 unimp
+80004f48: 0000 unimp
+80004f4a: 0000 unimp
+80004f4c: 0000 unimp
+80004f4e: 0000 unimp
+80004f50: 0000 unimp
+80004f52: 0000 unimp
+80004f54: 0000 unimp
+80004f56: 0000 unimp
+80004f58: 0000 unimp
+80004f5a: 0000 unimp
+80004f5c: 0000 unimp
+80004f5e: 0000 unimp
+80004f60: 0000 unimp
+80004f62: 0000 unimp
+80004f64: 0000 unimp
+80004f66: 0000 unimp
+80004f68: 0000 unimp
+80004f6a: 0000 unimp
+80004f6c: 0000 unimp
+80004f6e: 0000 unimp
+80004f70: 0000 unimp
+80004f72: 0000 unimp
+80004f74: 0000 unimp
+80004f76: 0000 unimp
+80004f78: 0000 unimp
+80004f7a: 0000 unimp
+80004f7c: 0000 unimp
+80004f7e: 0000 unimp
+80004f80: 0000 unimp
+80004f82: 0000 unimp
+80004f84: 0000 unimp
+80004f86: 0000 unimp
+80004f88: 0000 unimp
+80004f8a: 0000 unimp
+80004f8c: 0000 unimp
+80004f8e: 0000 unimp
+80004f90: 0000 unimp
+80004f92: 0000 unimp
+80004f94: 0000 unimp
+80004f96: 0000 unimp
+80004f98: 0000 unimp
+80004f9a: 0000 unimp
+80004f9c: 0000 unimp
+80004f9e: 0000 unimp
+80004fa0: 0000 unimp
+80004fa2: 0000 unimp
+80004fa4: 0000 unimp
+80004fa6: 0000 unimp
+80004fa8: 0000 unimp
+80004faa: 0000 unimp
+80004fac: 0000 unimp
+80004fae: 0000 unimp
+80004fb0: 0000 unimp
+80004fb2: 0000 unimp
+80004fb4: 0000 unimp
+80004fb6: 0000 unimp
+80004fb8: 0000 unimp
+80004fba: 0000 unimp
+80004fbc: 0000 unimp
+80004fbe: 0000 unimp
+80004fc0: 0000 unimp
+80004fc2: 0000 unimp
+80004fc4: 0000 unimp
+80004fc6: 0000 unimp
+80004fc8: 0000 unimp
+80004fca: 0000 unimp
+80004fcc: 0000 unimp
+80004fce: 0000 unimp
+80004fd0: 0000 unimp
+80004fd2: 0000 unimp
+80004fd4: 0000 unimp
+80004fd6: 0000 unimp
+80004fd8: 0000 unimp
+80004fda: 0000 unimp
+80004fdc: 0000 unimp
+80004fde: 0000 unimp
+80004fe0: 0000 unimp
+80004fe2: 0000 unimp
+80004fe4: 0000 unimp
+80004fe6: 0000 unimp
+80004fe8: 0000 unimp
+80004fea: 0000 unimp
+80004fec: 0000 unimp
+80004fee: 0000 unimp
+80004ff0: 0000 unimp
+80004ff2: 0000 unimp
+80004ff4: 0000 unimp
+80004ff6: 0000 unimp
+80004ff8: 0000 unimp
+80004ffa: 0000 unimp
+80004ffc: 0000 unimp
+80004ffe: 00158593 addi a1,a1,1 # 80000001 <_end+0xffff6c09>
+80005002: 29b00e93 li t4,667
+80005006: 00200193 li gp,2
+8000500a: 23d59f63 bne a1,t4,80005248 <fail>
+8000500e: 00001137 lui sp,0x1
+80005012: 23410113 addi sp,sp,564 # 1234 <_start-0x7fffedcc>
+
+80005016 <test_3>:
+80005016: 1fe8 addi a0,sp,1020
+80005018: 00001eb7 lui t4,0x1
+8000501c: 630e8e93 addi t4,t4,1584 # 1630 <_start-0x7fffe9d0>
+80005020: 00300193 li gp,3
+80005024: 23d51263 bne a0,t4,80005248 <fail>
+
+80005028 <test_4>:
+80005028: 617d addi sp,sp,496
+8000502a: 0001 nop
+8000502c: 00001eb7 lui t4,0x1
+80005030: 424e8e93 addi t4,t4,1060 # 1424 <_start-0x7fffebdc>
+80005034: 00400193 li gp,4
+80005038: 21d11863 bne sp,t4,80005248 <fail>
+
+8000503c <test_5>:
+8000503c: 7101 addi sp,sp,-512
+8000503e: 0001 nop
+80005040: 00001eb7 lui t4,0x1
+80005044: 224e8e93 addi t4,t4,548 # 1224 <_start-0x7fffeddc>
+80005048: 00500193 li gp,5
+8000504c: 1fd11e63 bne sp,t4,80005248 <fail>
+80005050: ffffe597 auipc a1,0xffffe
+80005054: fc058593 addi a1,a1,-64 # 80003010 <data>
+
+80005058 <test_6>:
+80005058: 41c8 lw a0,4(a1)
+8000505a: 0505 addi a0,a0,1
+8000505c: c1c8 sw a0,4(a1)
+8000505e: 41d0 lw a2,4(a1)
+80005060: fedcceb7 lui t4,0xfedcc
+80005064: a99e8e93 addi t4,t4,-1383 # fedcba99 <_end+0x7edc26a1>
+80005068: 00600193 li gp,6
+8000506c: 1dd61e63 bne a2,t4,80005248 <fail>
+
+80005070 <test_8>:
+80005070: 00106513 ori a0,zero,1
+80005074: 1541 addi a0,a0,-16
+80005076: 0001 nop
+80005078: ff100e93 li t4,-15
+8000507c: 00800193 li gp,8
+80005080: 1dd51463 bne a0,t4,80005248 <fail>
+
+80005084 <test_9>:
+80005084: 00106793 ori a5,zero,1
+80005088: 57c1 li a5,-16
+8000508a: 0001 nop
+8000508c: ff000e93 li t4,-16
+80005090: 00900193 li gp,9
+80005094: 1bd79a63 bne a5,t4,80005248 <fail>
+
+80005098 <test_11>:
+80005098: 7405 lui s0,0xfffe1
+8000509a: 8431 srai s0,s0,0xc
+8000509c: fe100e93 li t4,-31
+800050a0: 00b00193 li gp,11
+800050a4: 1bd41263 bne s0,t4,80005248 <fail>
+
+800050a8 <test_12>:
+800050a8: 7405 lui s0,0xfffe1
+800050aa: 8031 srli s0,s0,0xc
+800050ac: 00100eb7 lui t4,0x100
+800050b0: fe1e8e93 addi t4,t4,-31 # fffe1 <_start-0x7ff0001f>
+800050b4: 00c00193 li gp,12
+800050b8: 19d41863 bne s0,t4,80005248 <fail>
+
+800050bc <test_14>:
+800050bc: 5479 li s0,-2
+800050be: 983d andi s0,s0,-17
+800050c0: fee00e93 li t4,-18
+800050c4: 00e00193 li gp,14
+800050c8: 19d41063 bne s0,t4,80005248 <fail>
+
+800050cc <test_15>:
+800050cc: 44d1 li s1,20
+800050ce: 4519 li a0,6
+800050d0: 8c89 sub s1,s1,a0
+800050d2: 0001 nop
+800050d4: 00e00e93 li t4,14
+800050d8: 00f00193 li gp,15
+800050dc: 17d49663 bne s1,t4,80005248 <fail>
+
+800050e0 <test_16>:
+800050e0: 44d1 li s1,20
+800050e2: 4519 li a0,6
+800050e4: 8ca9 xor s1,s1,a0
+800050e6: 0001 nop
+800050e8: 01200e93 li t4,18
+800050ec: 01000193 li gp,16
+800050f0: 15d49c63 bne s1,t4,80005248 <fail>
+
+800050f4 <test_17>:
+800050f4: 44d1 li s1,20
+800050f6: 4519 li a0,6
+800050f8: 8cc9 or s1,s1,a0
+800050fa: 0001 nop
+800050fc: 01600e93 li t4,22
+80005100: 01100193 li gp,17
+80005104: 15d49263 bne s1,t4,80005248 <fail>
+
+80005108 <test_18>:
+80005108: 44d1 li s1,20
+8000510a: 4519 li a0,6
+8000510c: 8ce9 and s1,s1,a0
+8000510e: 0001 nop
+80005110: 00400e93 li t4,4
+80005114: 01200193 li gp,18
+80005118: 13d49863 bne s1,t4,80005248 <fail>
+
+8000511c <test_21>:
+8000511c: 00001437 lui s0,0x1
+80005120: 23440413 addi s0,s0,564 # 1234 <_start-0x7fffedcc>
+80005124: 0412 slli s0,s0,0x4
+80005126: 0001 nop
+80005128: 00012eb7 lui t4,0x12
+8000512c: 340e8e93 addi t4,t4,832 # 12340 <_start-0x7ffedcc0>
+80005130: 01500193 li gp,21
+80005134: 11d41a63 bne s0,t4,80005248 <fail>
+
+80005138 <test_30>:
+80005138: 4081 li ra,0
+8000513a: a011 j 8000513e <test_30+0x6>
+8000513c: a011 j 80005140 <test_30+0x8>
+8000513e: a011 j 80005142 <test_30+0xa>
+80005140: a221 j 80005248 <fail>
+80005142: 0001 nop
+80005144: 00000e93 li t4,0
+80005148: 01e00193 li gp,30
+8000514c: 0fd09e63 bne ra,t4,80005248 <fail>
+
+80005150 <test_31>:
+80005150: 4501 li a0,0
+80005152: c111 beqz a0,80005156 <test_31+0x6>
+80005154: a011 j 80005158 <test_31+0x8>
+80005156: a011 j 8000515a <test_31+0xa>
+80005158: a8c5 j 80005248 <fail>
+8000515a: 0001 nop
+8000515c: 00000e93 li t4,0
+80005160: 01f00193 li gp,31
+80005164: 0fd01263 bne zero,t4,80005248 <fail>
+
+80005168 <test_32>:
+80005168: 4505 li a0,1
+8000516a: e111 bnez a0,8000516e <test_32+0x6>
+8000516c: a011 j 80005170 <test_32+0x8>
+8000516e: a011 j 80005172 <test_32+0xa>
+80005170: a8e1 j 80005248 <fail>
+80005172: 0001 nop
+80005174: 00000e93 li t4,0
+80005178: 02000193 li gp,32
+8000517c: 0dd01663 bne zero,t4,80005248 <fail>
+
+80005180 <test_33>:
+80005180: 4505 li a0,1
+80005182: c111 beqz a0,80005186 <test_33+0x6>
+80005184: a011 j 80005188 <test_33+0x8>
+80005186: a0c9 j 80005248 <fail>
+80005188: 00000e93 li t4,0
+8000518c: 02100193 li gp,33
+80005190: 0bd01c63 bne zero,t4,80005248 <fail>
+
+80005194 <test_34>:
+80005194: 4501 li a0,0
+80005196: e111 bnez a0,8000519a <test_34+0x6>
+80005198: a011 j 8000519c <test_34+0x8>
+8000519a: a07d j 80005248 <fail>
+8000519c: 00000e93 li t4,0
+800051a0: 02200193 li gp,34
+800051a4: 0bd01263 bne zero,t4,80005248 <fail>
+
+800051a8 <test_35>:
+800051a8: 00000297 auipc t0,0x0
+800051ac: 00e28293 addi t0,t0,14 # 800051b6 <test_35+0xe>
+800051b0: 4081 li ra,0
+800051b2: 8282 jr t0
+800051b4: a011 j 800051b8 <test_35+0x10>
+800051b6: a011 j 800051ba <test_35+0x12>
+800051b8: a841 j 80005248 <fail>
+800051ba: 0001 nop
+800051bc: 00000e93 li t4,0
+800051c0: 02300193 li gp,35
+800051c4: 09d09263 bne ra,t4,80005248 <fail>
+
+800051c8 <test_36>:
+800051c8: 00000297 auipc t0,0x0
+800051cc: 00e28293 addi t0,t0,14 # 800051d6 <test_36+0xe>
+800051d0: 4081 li ra,0
+800051d2: 9282 jalr t0
+800051d4: a011 j 800051d8 <test_36+0x10>
+800051d6: a011 j 800051da <test_36+0x12>
+800051d8: a885 j 80005248 <fail>
+800051da: 405080b3 sub ra,ra,t0
+800051de: 0001 nop
+800051e0: ffe00e93 li t4,-2
+800051e4: 02400193 li gp,36
+800051e8: 07d09063 bne ra,t4,80005248 <fail>
+
+800051ec <test_37>:
+800051ec: 00000297 auipc t0,0x0
+800051f0: 00e28293 addi t0,t0,14 # 800051fa <test_37+0xe>
+800051f4: 4081 li ra,0
+800051f6: 2011 jal 800051fa <test_37+0xe>
+800051f8: a011 j 800051fc <test_37+0x10>
+800051fa: a011 j 800051fe <test_37+0x12>
+800051fc: a0b1 j 80005248 <fail>
+800051fe: 405080b3 sub ra,ra,t0
+80005202: 0001 nop
+80005204: ffe00e93 li t4,-2
+80005208: 02500193 li gp,37
+8000520c: 03d09e63 bne ra,t4,80005248 <fail>
+80005210: ffffe117 auipc sp,0xffffe
+80005214: e0010113 addi sp,sp,-512 # 80003010 <data>
+
+80005218 <test_40>:
+80005218: 4532 lw a0,12(sp)
+8000521a: 0505 addi a0,a0,1
+8000521c: c62a sw a0,12(sp)
+8000521e: 4632 lw a2,12(sp)
+80005220: fedcceb7 lui t4,0xfedcc
+80005224: a99e8e93 addi t4,t4,-1383 # fedcba99 <_end+0x7edc26a1>
+80005228: 02800193 li gp,40
+8000522c: 01d61e63 bne a2,t4,80005248 <fail>
+
+80005230 <test_42>:
+80005230: 12300513 li a0,291
+80005234: 82aa mv t0,a0
+80005236: 92aa add t0,t0,a0
+80005238: 24600e93 li t4,582
+8000523c: 02a00193 li gp,42
+80005240: 01d29463 bne t0,t4,80005248 <fail>
+80005244: 00301a63 bne zero,gp,80005258 <pass>
+
+80005248 <fail>:
+80005248: 00119513 slli a0,gp,0x1
+8000524c: 00050063 beqz a0,8000524c <fail+0x4>
+80005250: 00156513 ori a0,a0,1
+80005254: 00000073 ecall
+
+80005258 <pass>:
+80005258: 00100513 li a0,1
+8000525c: 00000073 ecall
+80005260: c0001073 unimp
+80005264: 0000 unimp
+80005266: 0000 unimp
+80005268: 0000 unimp
+8000526a: 0000 unimp
+8000526c: 0000 unimp
+8000526e: 0000 unimp
+80005270: 0000 unimp
+80005272: 0000 unimp
+80005274: 0000 unimp
+80005276: 0000 unimp
+80005278: 0000 unimp
+8000527a: 0000 unimp
+8000527c: 0000 unimp
+8000527e: 0000 unimp
+80005280: 0000 unimp
+80005282: 0000 unimp
+80005284: 0000 unimp
+80005286: 0000 unimp
+80005288: 0000 unimp
+8000528a: 0000 unimp
+8000528c: 0000 unimp
+8000528e: 0000 unimp
+80005290: 0000 unimp
+80005292: 0000 unimp
+80005294: 0000 unimp
+80005296: 0000 unimp
+80005298: 0000 unimp
+8000529a: 0000 unimp
+8000529c: 0000 unimp
+8000529e: 0000 unimp
+800052a0: 0000 unimp
+800052a2: 0000 unimp
+800052a4: 0000 unimp
+800052a6: 0000 unimp
+800052a8: 0000 unimp
+800052aa: 0000 unimp
+800052ac: 0000 unimp
+800052ae: 0000 unimp
+800052b0: 0000 unimp
+800052b2: 0000 unimp
+800052b4: 0000 unimp
+800052b6: 0000 unimp
+800052b8: 0000 unimp
+800052ba: 0000 unimp
+800052bc: 0000 unimp
+800052be: 0000 unimp
+800052c0: 0000 unimp
+800052c2: 0000 unimp
+800052c4: 0000 unimp
+800052c6: 0000 unimp
+800052c8: 0000 unimp
+800052ca: 0000 unimp
+800052cc: 0000 unimp
+800052ce: 0000 unimp
+800052d0: 0000 unimp
+800052d2: 0000 unimp
+800052d4: 0000 unimp
+800052d6: 0000 unimp
+800052d8: 0000 unimp
+800052da: 0000 unimp
+800052dc: 0000 unimp
+800052de: 0000 unimp
+800052e0: 0000 unimp
+800052e2: 0000 unimp
+800052e4: 0000 unimp
+800052e6: 0000 unimp
+800052e8: 0000 unimp
+800052ea: 0000 unimp
+800052ec: 0000 unimp
+800052ee: 0000 unimp
+800052f0: 0000 unimp
+800052f2: 0000 unimp
+800052f4: 0000 unimp
+800052f6: 0000 unimp
+800052f8: 0000 unimp
+800052fa: 0000 unimp
+800052fc: 0000 unimp
+800052fe: 0000 unimp
+80005300: 0000 unimp
+80005302: 0000 unimp
+80005304: 0000 unimp
+80005306: 0000 unimp
+80005308: 0000 unimp
+8000530a: 0000 unimp
+8000530c: 0000 unimp
+8000530e: 0000 unimp
+80005310: 0000 unimp
+80005312: 0000 unimp
+80005314: 0000 unimp
+80005316: 0000 unimp
+80005318: 0000 unimp
+8000531a: 0000 unimp
+8000531c: 0000 unimp
+8000531e: 0000 unimp
+80005320: 0000 unimp
+80005322: 0000 unimp
+80005324: 0000 unimp
+80005326: 0000 unimp
+80005328: 0000 unimp
+8000532a: 0000 unimp
+8000532c: 0000 unimp
+8000532e: 0000 unimp
+80005330: 0000 unimp
+80005332: 0000 unimp
+80005334: 0000 unimp
+80005336: 0000 unimp
+80005338: 0000 unimp
+8000533a: 0000 unimp
+8000533c: 0000 unimp
+8000533e: 0000 unimp
+80005340: 0000 unimp
+80005342: 0000 unimp
+80005344: 0000 unimp
+80005346: 0000 unimp
+80005348: 0000 unimp
+8000534a: 0000 unimp
+8000534c: 0000 unimp
+8000534e: 0000 unimp
+80005350: 0000 unimp
+80005352: 0000 unimp
+80005354: 0000 unimp
+80005356: 0000 unimp
+80005358: 0000 unimp
+8000535a: 0000 unimp
+8000535c: 0000 unimp
+8000535e: 0000 unimp
+80005360: 0000 unimp
+80005362: 0000 unimp
+80005364: 0000 unimp
+80005366: 0000 unimp
+80005368: 0000 unimp
+8000536a: 0000 unimp
+8000536c: 0000 unimp
+8000536e: 0000 unimp
+80005370: 0000 unimp
+80005372: 0000 unimp
+80005374: 0000 unimp
+80005376: 0000 unimp
+80005378: 0000 unimp
+8000537a: 0000 unimp
+8000537c: 0000 unimp
+8000537e: 0000 unimp
+80005380: 0000 unimp
+80005382: 0000 unimp
+80005384: 0000 unimp
+80005386: 0000 unimp
+80005388: 0000 unimp
+8000538a: 0000 unimp
+8000538c: 0000 unimp
+8000538e: 0000 unimp
+80005390: 0000 unimp
+80005392: 0000 unimp
+80005394: 0000 unimp
+80005396: 0000 unimp
+80005398: 0000 unimp
+8000539a: 0000 unimp
+8000539c: 0000 unimp
+8000539e: 0000 unimp
+800053a0: 0000 unimp
+800053a2: 0000 unimp
+800053a4: 0000 unimp
+800053a6: 0000 unimp
+800053a8: 0000 unimp
+800053aa: 0000 unimp
+800053ac: 0000 unimp
+800053ae: 0000 unimp
+800053b0: 0000 unimp
+800053b2: 0000 unimp
+800053b4: 0000 unimp
+800053b6: 0000 unimp
+800053b8: 0000 unimp
+800053ba: 0000 unimp
+800053bc: 0000 unimp
+800053be: 0000 unimp
+800053c0: 0000 unimp
+800053c2: 0000 unimp
+800053c4: 0000 unimp
+800053c6: 0000 unimp
+800053c8: 0000 unimp
+800053ca: 0000 unimp
+800053cc: 0000 unimp
+800053ce: 0000 unimp
+800053d0: 0000 unimp
+800053d2: 0000 unimp
+800053d4: 0000 unimp
+800053d6: 0000 unimp
+800053d8: 0000 unimp
+800053da: 0000 unimp
+800053dc: 0000 unimp
+800053de: 0000 unimp
+800053e0: 0000 unimp
+800053e2: 0000 unimp
+800053e4: 0000 unimp
+800053e6: 0000 unimp
+800053e8: 0000 unimp
+800053ea: 0000 unimp
+800053ec: 0000 unimp
+800053ee: 0000 unimp
+800053f0: 0000 unimp
+800053f2: 0000 unimp
+800053f4: 0000 unimp
+800053f6: 0000 unimp
+800053f8: 0000 unimp
+800053fa: 0000 unimp
+800053fc: 0000 unimp
+800053fe: 0000 unimp
+80005400: 0000 unimp
+80005402: 0000 unimp
+80005404: 0000 unimp
+80005406: 0000 unimp
+80005408: 0000 unimp
+8000540a: 0000 unimp
+8000540c: 0000 unimp
+8000540e: 0000 unimp
+80005410: 0000 unimp
+80005412: 0000 unimp
+80005414: 0000 unimp
+80005416: 0000 unimp
+80005418: 0000 unimp
+8000541a: 0000 unimp
+8000541c: 0000 unimp
+8000541e: 0000 unimp
+80005420: 0000 unimp
+80005422: 0000 unimp
+80005424: 0000 unimp
+80005426: 0000 unimp
+80005428: 0000 unimp
+8000542a: 0000 unimp
+8000542c: 0000 unimp
+8000542e: 0000 unimp
+80005430: 0000 unimp
+80005432: 0000 unimp
+80005434: 0000 unimp
+80005436: 0000 unimp
+80005438: 0000 unimp
+8000543a: 0000 unimp
+8000543c: 0000 unimp
+8000543e: 0000 unimp
+80005440: 0000 unimp
+80005442: 0000 unimp
+80005444: 0000 unimp
+80005446: 0000 unimp
+80005448: 0000 unimp
+8000544a: 0000 unimp
+8000544c: 0000 unimp
+8000544e: 0000 unimp
+80005450: 0000 unimp
+80005452: 0000 unimp
+80005454: 0000 unimp
+80005456: 0000 unimp
+80005458: 0000 unimp
+8000545a: 0000 unimp
+8000545c: 0000 unimp
+8000545e: 0000 unimp
+80005460: 0000 unimp
+80005462: 0000 unimp
+80005464: 0000 unimp
+80005466: 0000 unimp
+80005468: 0000 unimp
+8000546a: 0000 unimp
+8000546c: 0000 unimp
+8000546e: 0000 unimp
+80005470: 0000 unimp
+80005472: 0000 unimp
+80005474: 0000 unimp
+80005476: 0000 unimp
+80005478: 0000 unimp
+8000547a: 0000 unimp
+8000547c: 0000 unimp
+8000547e: 0000 unimp
+80005480: 0000 unimp
+80005482: 0000 unimp
+80005484: 0000 unimp
+80005486: 0000 unimp
+80005488: 0000 unimp
+8000548a: 0000 unimp
+8000548c: 0000 unimp
+8000548e: 0000 unimp
+80005490: 0000 unimp
+80005492: 0000 unimp
+80005494: 0000 unimp
+80005496: 0000 unimp
+80005498: 0000 unimp
+8000549a: 0000 unimp
+8000549c: 0000 unimp
+8000549e: 0000 unimp
+800054a0: 0000 unimp
+800054a2: 0000 unimp
+800054a4: 0000 unimp
+800054a6: 0000 unimp
+800054a8: 0000 unimp
+800054aa: 0000 unimp
+800054ac: 0000 unimp
+800054ae: 0000 unimp
+800054b0: 0000 unimp
+800054b2: 0000 unimp
+800054b4: 0000 unimp
+800054b6: 0000 unimp
+800054b8: 0000 unimp
+800054ba: 0000 unimp
+800054bc: 0000 unimp
+800054be: 0000 unimp
+800054c0: 0000 unimp
+800054c2: 0000 unimp
+800054c4: 0000 unimp
+800054c6: 0000 unimp
+800054c8: 0000 unimp
+800054ca: 0000 unimp
+800054cc: 0000 unimp
+800054ce: 0000 unimp
+800054d0: 0000 unimp
+800054d2: 0000 unimp
+800054d4: 0000 unimp
+800054d6: 0000 unimp
+800054d8: 0000 unimp
+800054da: 0000 unimp
+800054dc: 0000 unimp
+800054de: 0000 unimp
+800054e0: 0000 unimp
+800054e2: 0000 unimp
+800054e4: 0000 unimp
+800054e6: 0000 unimp
+800054e8: 0000 unimp
+800054ea: 0000 unimp
+800054ec: 0000 unimp
+800054ee: 0000 unimp
+800054f0: 0000 unimp
+800054f2: 0000 unimp
+800054f4: 0000 unimp
+800054f6: 0000 unimp
+800054f8: 0000 unimp
+800054fa: 0000 unimp
+800054fc: 0000 unimp
+800054fe: 0000 unimp
+80005500: 0000 unimp
+80005502: 0000 unimp
+80005504: 0000 unimp
+80005506: 0000 unimp
+80005508: 0000 unimp
+8000550a: 0000 unimp
+8000550c: 0000 unimp
+8000550e: 0000 unimp
+80005510: 0000 unimp
+80005512: 0000 unimp
+80005514: 0000 unimp
+80005516: 0000 unimp
+80005518: 0000 unimp
+8000551a: 0000 unimp
+8000551c: 0000 unimp
+8000551e: 0000 unimp
+80005520: 0000 unimp
+80005522: 0000 unimp
+80005524: 0000 unimp
+80005526: 0000 unimp
+80005528: 0000 unimp
+8000552a: 0000 unimp
+8000552c: 0000 unimp
+8000552e: 0000 unimp
+80005530: 0000 unimp
+80005532: 0000 unimp
+80005534: 0000 unimp
+80005536: 0000 unimp
+80005538: 0000 unimp
+8000553a: 0000 unimp
+8000553c: 0000 unimp
+8000553e: 0000 unimp
+80005540: 0000 unimp
+80005542: 0000 unimp
+80005544: 0000 unimp
+80005546: 0000 unimp
+80005548: 0000 unimp
+8000554a: 0000 unimp
+8000554c: 0000 unimp
+8000554e: 0000 unimp
+80005550: 0000 unimp
+80005552: 0000 unimp
+80005554: 0000 unimp
+80005556: 0000 unimp
+80005558: 0000 unimp
+8000555a: 0000 unimp
+8000555c: 0000 unimp
+8000555e: 0000 unimp
+80005560: 0000 unimp
+80005562: 0000 unimp
+80005564: 0000 unimp
+80005566: 0000 unimp
+80005568: 0000 unimp
+8000556a: 0000 unimp
+8000556c: 0000 unimp
+8000556e: 0000 unimp
+80005570: 0000 unimp
+80005572: 0000 unimp
+80005574: 0000 unimp
+80005576: 0000 unimp
+80005578: 0000 unimp
+8000557a: 0000 unimp
+8000557c: 0000 unimp
+8000557e: 0000 unimp
+80005580: 0000 unimp
+80005582: 0000 unimp
+80005584: 0000 unimp
+80005586: 0000 unimp
+80005588: 0000 unimp
+8000558a: 0000 unimp
+8000558c: 0000 unimp
+8000558e: 0000 unimp
+80005590: 0000 unimp
+80005592: 0000 unimp
+80005594: 0000 unimp
+80005596: 0000 unimp
+80005598: 0000 unimp
+8000559a: 0000 unimp
+8000559c: 0000 unimp
+8000559e: 0000 unimp
+800055a0: 0000 unimp
+800055a2: 0000 unimp
+800055a4: 0000 unimp
+800055a6: 0000 unimp
+800055a8: 0000 unimp
+800055aa: 0000 unimp
+800055ac: 0000 unimp
+800055ae: 0000 unimp
+800055b0: 0000 unimp
+800055b2: 0000 unimp
+800055b4: 0000 unimp
+800055b6: 0000 unimp
+800055b8: 0000 unimp
+800055ba: 0000 unimp
+800055bc: 0000 unimp
+800055be: 0000 unimp
+800055c0: 0000 unimp
+800055c2: 0000 unimp
+800055c4: 0000 unimp
+800055c6: 0000 unimp
+800055c8: 0000 unimp
+800055ca: 0000 unimp
+800055cc: 0000 unimp
+800055ce: 0000 unimp
+800055d0: 0000 unimp
+800055d2: 0000 unimp
+800055d4: 0000 unimp
+800055d6: 0000 unimp
+800055d8: 0000 unimp
+800055da: 0000 unimp
+800055dc: 0000 unimp
+800055de: 0000 unimp
+800055e0: 0000 unimp
+800055e2: 0000 unimp
+800055e4: 0000 unimp
+800055e6: 0000 unimp
+800055e8: 0000 unimp
+800055ea: 0000 unimp
+800055ec: 0000 unimp
+800055ee: 0000 unimp
+800055f0: 0000 unimp
+800055f2: 0000 unimp
+800055f4: 0000 unimp
+800055f6: 0000 unimp
+800055f8: 0000 unimp
+800055fa: 0000 unimp
+800055fc: 0000 unimp
+800055fe: 0000 unimp
+80005600: 0000 unimp
+80005602: 0000 unimp
+80005604: 0000 unimp
+80005606: 0000 unimp
+80005608: 0000 unimp
+8000560a: 0000 unimp
+8000560c: 0000 unimp
+8000560e: 0000 unimp
+80005610: 0000 unimp
+80005612: 0000 unimp
+80005614: 0000 unimp
+80005616: 0000 unimp
+80005618: 0000 unimp
+8000561a: 0000 unimp
+8000561c: 0000 unimp
+8000561e: 0000 unimp
+80005620: 0000 unimp
+80005622: 0000 unimp
+80005624: 0000 unimp
+80005626: 0000 unimp
+80005628: 0000 unimp
+8000562a: 0000 unimp
+8000562c: 0000 unimp
+8000562e: 0000 unimp
+80005630: 0000 unimp
+80005632: 0000 unimp
+80005634: 0000 unimp
+80005636: 0000 unimp
+80005638: 0000 unimp
+8000563a: 0000 unimp
+8000563c: 0000 unimp
+8000563e: 0000 unimp
+80005640: 0000 unimp
+80005642: 0000 unimp
+80005644: 0000 unimp
+80005646: 0000 unimp
+80005648: 0000 unimp
+8000564a: 0000 unimp
+8000564c: 0000 unimp
+8000564e: 0000 unimp
+80005650: 0000 unimp
+80005652: 0000 unimp
+80005654: 0000 unimp
+80005656: 0000 unimp
+80005658: 0000 unimp
+8000565a: 0000 unimp
+8000565c: 0000 unimp
+8000565e: 0000 unimp
+80005660: 0000 unimp
+80005662: 0000 unimp
+80005664: 0000 unimp
+80005666: 0000 unimp
+80005668: 0000 unimp
+8000566a: 0000 unimp
+8000566c: 0000 unimp
+8000566e: 0000 unimp
+80005670: 0000 unimp
+80005672: 0000 unimp
+80005674: 0000 unimp
+80005676: 0000 unimp
+80005678: 0000 unimp
+8000567a: 0000 unimp
+8000567c: 0000 unimp
+8000567e: 0000 unimp
+80005680: 0000 unimp
+80005682: 0000 unimp
+80005684: 0000 unimp
+80005686: 0000 unimp
+80005688: 0000 unimp
+8000568a: 0000 unimp
+8000568c: 0000 unimp
+8000568e: 0000 unimp
+80005690: 0000 unimp
+80005692: 0000 unimp
+80005694: 0000 unimp
+80005696: 0000 unimp
+80005698: 0000 unimp
+8000569a: 0000 unimp
+8000569c: 0000 unimp
+8000569e: 0000 unimp
+800056a0: 0000 unimp
+800056a2: 0000 unimp
+800056a4: 0000 unimp
+800056a6: 0000 unimp
+800056a8: 0000 unimp
+800056aa: 0000 unimp
+800056ac: 0000 unimp
+800056ae: 0000 unimp
+800056b0: 0000 unimp
+800056b2: 0000 unimp
+800056b4: 0000 unimp
+800056b6: 0000 unimp
+800056b8: 0000 unimp
+800056ba: 0000 unimp
+800056bc: 0000 unimp
+800056be: 0000 unimp
+800056c0: 0000 unimp
+800056c2: 0000 unimp
+800056c4: 0000 unimp
+800056c6: 0000 unimp
+800056c8: 0000 unimp
+800056ca: 0000 unimp
+800056cc: 0000 unimp
+800056ce: 0000 unimp
+800056d0: 0000 unimp
+800056d2: 0000 unimp
+800056d4: 0000 unimp
+800056d6: 0000 unimp
+800056d8: 0000 unimp
+800056da: 0000 unimp
+800056dc: 0000 unimp
+800056de: 0000 unimp
+800056e0: 0000 unimp
+800056e2: 0000 unimp
+800056e4: 0000 unimp
+800056e6: 0000 unimp
+800056e8: 0000 unimp
+800056ea: 0000 unimp
+800056ec: 0000 unimp
+800056ee: 0000 unimp
+800056f0: 0000 unimp
+800056f2: 0000 unimp
+800056f4: 0000 unimp
+800056f6: 0000 unimp
+800056f8: 0000 unimp
+800056fa: 0000 unimp
+800056fc: 0000 unimp
+800056fe: 0000 unimp
+80005700: 0000 unimp
+80005702: 0000 unimp
+80005704: 0000 unimp
+80005706: 0000 unimp
+80005708: 0000 unimp
+8000570a: 0000 unimp
+8000570c: 0000 unimp
+8000570e: 0000 unimp
+80005710: 0000 unimp
+80005712: 0000 unimp
+80005714: 0000 unimp
+80005716: 0000 unimp
+80005718: 0000 unimp
+8000571a: 0000 unimp
+8000571c: 0000 unimp
+8000571e: 0000 unimp
+80005720: 0000 unimp
+80005722: 0000 unimp
+80005724: 0000 unimp
+80005726: 0000 unimp
+80005728: 0000 unimp
+8000572a: 0000 unimp
+8000572c: 0000 unimp
+8000572e: 0000 unimp
+80005730: 0000 unimp
+80005732: 0000 unimp
+80005734: 0000 unimp
+80005736: 0000 unimp
+80005738: 0000 unimp
+8000573a: 0000 unimp
+8000573c: 0000 unimp
+8000573e: 0000 unimp
+80005740: 0000 unimp
+80005742: 0000 unimp
+80005744: 0000 unimp
+80005746: 0000 unimp
+80005748: 0000 unimp
+8000574a: 0000 unimp
+8000574c: 0000 unimp
+8000574e: 0000 unimp
+80005750: 0000 unimp
+80005752: 0000 unimp
+80005754: 0000 unimp
+80005756: 0000 unimp
+80005758: 0000 unimp
+8000575a: 0000 unimp
+8000575c: 0000 unimp
+8000575e: 0000 unimp
+80005760: 0000 unimp
+80005762: 0000 unimp
+80005764: 0000 unimp
+80005766: 0000 unimp
+80005768: 0000 unimp
+8000576a: 0000 unimp
+8000576c: 0000 unimp
+8000576e: 0000 unimp
+80005770: 0000 unimp
+80005772: 0000 unimp
+80005774: 0000 unimp
+80005776: 0000 unimp
+80005778: 0000 unimp
+8000577a: 0000 unimp
+8000577c: 0000 unimp
+8000577e: 0000 unimp
+80005780: 0000 unimp
+80005782: 0000 unimp
+80005784: 0000 unimp
+80005786: 0000 unimp
+80005788: 0000 unimp
+8000578a: 0000 unimp
+8000578c: 0000 unimp
+8000578e: 0000 unimp
+80005790: 0000 unimp
+80005792: 0000 unimp
+80005794: 0000 unimp
+80005796: 0000 unimp
+80005798: 0000 unimp
+8000579a: 0000 unimp
+8000579c: 0000 unimp
+8000579e: 0000 unimp
+800057a0: 0000 unimp
+800057a2: 0000 unimp
+800057a4: 0000 unimp
+800057a6: 0000 unimp
+800057a8: 0000 unimp
+800057aa: 0000 unimp
+800057ac: 0000 unimp
+800057ae: 0000 unimp
+800057b0: 0000 unimp
+800057b2: 0000 unimp
+800057b4: 0000 unimp
+800057b6: 0000 unimp
+800057b8: 0000 unimp
+800057ba: 0000 unimp
+800057bc: 0000 unimp
+800057be: 0000 unimp
+800057c0: 0000 unimp
+800057c2: 0000 unimp
+800057c4: 0000 unimp
+800057c6: 0000 unimp
+800057c8: 0000 unimp
+800057ca: 0000 unimp
+800057cc: 0000 unimp
+800057ce: 0000 unimp
+800057d0: 0000 unimp
+800057d2: 0000 unimp
+800057d4: 0000 unimp
+800057d6: 0000 unimp
+800057d8: 0000 unimp
+800057da: 0000 unimp
+800057dc: 0000 unimp
+800057de: 0000 unimp
+800057e0: 0000 unimp
+800057e2: 0000 unimp
+800057e4: 0000 unimp
+800057e6: 0000 unimp
+800057e8: 0000 unimp
+800057ea: 0000 unimp
+800057ec: 0000 unimp
+800057ee: 0000 unimp
+800057f0: 0000 unimp
+800057f2: 0000 unimp
+800057f4: 0000 unimp
+800057f6: 0000 unimp
+800057f8: 0000 unimp
+800057fa: 0000 unimp
+800057fc: 0000 unimp
+800057fe: 0000 unimp
+80005800: 0000 unimp
+80005802: 0000 unimp
+80005804: 0000 unimp
+80005806: 0000 unimp
+80005808: 0000 unimp
+8000580a: 0000 unimp
+8000580c: 0000 unimp
+8000580e: 0000 unimp
+80005810: 0000 unimp
+80005812: 0000 unimp
+80005814: 0000 unimp
+80005816: 0000 unimp
+80005818: 0000 unimp
+8000581a: 0000 unimp
+8000581c: 0000 unimp
+8000581e: 0000 unimp
+80005820: 0000 unimp
+80005822: 0000 unimp
+80005824: 0000 unimp
+80005826: 0000 unimp
+80005828: 0000 unimp
+8000582a: 0000 unimp
+8000582c: 0000 unimp
+8000582e: 0000 unimp
+80005830: 0000 unimp
+80005832: 0000 unimp
+80005834: 0000 unimp
+80005836: 0000 unimp
+80005838: 0000 unimp
+8000583a: 0000 unimp
+8000583c: 0000 unimp
+8000583e: 0000 unimp
+80005840: 0000 unimp
+80005842: 0000 unimp
+80005844: 0000 unimp
+80005846: 0000 unimp
+80005848: 0000 unimp
+8000584a: 0000 unimp
+8000584c: 0000 unimp
+8000584e: 0000 unimp
+80005850: 0000 unimp
+80005852: 0000 unimp
+80005854: 0000 unimp
+80005856: 0000 unimp
+80005858: 0000 unimp
+8000585a: 0000 unimp
+8000585c: 0000 unimp
+8000585e: 0000 unimp
+80005860: 0000 unimp
+80005862: 0000 unimp
+80005864: 0000 unimp
+80005866: 0000 unimp
+80005868: 0000 unimp
+8000586a: 0000 unimp
+8000586c: 0000 unimp
+8000586e: 0000 unimp
+80005870: 0000 unimp
+80005872: 0000 unimp
+80005874: 0000 unimp
+80005876: 0000 unimp
+80005878: 0000 unimp
+8000587a: 0000 unimp
+8000587c: 0000 unimp
+8000587e: 0000 unimp
+80005880: 0000 unimp
+80005882: 0000 unimp
+80005884: 0000 unimp
+80005886: 0000 unimp
+80005888: 0000 unimp
+8000588a: 0000 unimp
+8000588c: 0000 unimp
+8000588e: 0000 unimp
+80005890: 0000 unimp
+80005892: 0000 unimp
+80005894: 0000 unimp
+80005896: 0000 unimp
+80005898: 0000 unimp
+8000589a: 0000 unimp
+8000589c: 0000 unimp
+8000589e: 0000 unimp
+800058a0: 0000 unimp
+800058a2: 0000 unimp
+800058a4: 0000 unimp
+800058a6: 0000 unimp
+800058a8: 0000 unimp
+800058aa: 0000 unimp
+800058ac: 0000 unimp
+800058ae: 0000 unimp
+800058b0: 0000 unimp
+800058b2: 0000 unimp
+800058b4: 0000 unimp
+800058b6: 0000 unimp
+800058b8: 0000 unimp
+800058ba: 0000 unimp
+800058bc: 0000 unimp
+800058be: 0000 unimp
+800058c0: 0000 unimp
+800058c2: 0000 unimp
+800058c4: 0000 unimp
+800058c6: 0000 unimp
+800058c8: 0000 unimp
+800058ca: 0000 unimp
+800058cc: 0000 unimp
+800058ce: 0000 unimp
+800058d0: 0000 unimp
+800058d2: 0000 unimp
+800058d4: 0000 unimp
+800058d6: 0000 unimp
+800058d8: 0000 unimp
+800058da: 0000 unimp
+800058dc: 0000 unimp
+800058de: 0000 unimp
+800058e0: 0000 unimp
+800058e2: 0000 unimp
+800058e4: 0000 unimp
+800058e6: 0000 unimp
+800058e8: 0000 unimp
+800058ea: 0000 unimp
+800058ec: 0000 unimp
+800058ee: 0000 unimp
+800058f0: 0000 unimp
+800058f2: 0000 unimp
+800058f4: 0000 unimp
+800058f6: 0000 unimp
+800058f8: 0000 unimp
+800058fa: 0000 unimp
+800058fc: 0000 unimp
+800058fe: 0000 unimp
+80005900: 0000 unimp
+80005902: 0000 unimp
+80005904: 0000 unimp
+80005906: 0000 unimp
+80005908: 0000 unimp
+8000590a: 0000 unimp
+8000590c: 0000 unimp
+8000590e: 0000 unimp
+80005910: 0000 unimp
+80005912: 0000 unimp
+80005914: 0000 unimp
+80005916: 0000 unimp
+80005918: 0000 unimp
+8000591a: 0000 unimp
+8000591c: 0000 unimp
+8000591e: 0000 unimp
+80005920: 0000 unimp
+80005922: 0000 unimp
+80005924: 0000 unimp
+80005926: 0000 unimp
+80005928: 0000 unimp
+8000592a: 0000 unimp
+8000592c: 0000 unimp
+8000592e: 0000 unimp
+80005930: 0000 unimp
+80005932: 0000 unimp
+80005934: 0000 unimp
+80005936: 0000 unimp
+80005938: 0000 unimp
+8000593a: 0000 unimp
+8000593c: 0000 unimp
+8000593e: 0000 unimp
+80005940: 0000 unimp
+80005942: 0000 unimp
+80005944: 0000 unimp
+80005946: 0000 unimp
+80005948: 0000 unimp
+8000594a: 0000 unimp
+8000594c: 0000 unimp
+8000594e: 0000 unimp
+80005950: 0000 unimp
+80005952: 0000 unimp
+80005954: 0000 unimp
+80005956: 0000 unimp
+80005958: 0000 unimp
+8000595a: 0000 unimp
+8000595c: 0000 unimp
+8000595e: 0000 unimp
+80005960: 0000 unimp
+80005962: 0000 unimp
+80005964: 0000 unimp
+80005966: 0000 unimp
+80005968: 0000 unimp
+8000596a: 0000 unimp
+8000596c: 0000 unimp
+8000596e: 0000 unimp
+80005970: 0000 unimp
+80005972: 0000 unimp
+80005974: 0000 unimp
+80005976: 0000 unimp
+80005978: 0000 unimp
+8000597a: 0000 unimp
+8000597c: 0000 unimp
+8000597e: 0000 unimp
+80005980: 0000 unimp
+80005982: 0000 unimp
+80005984: 0000 unimp
+80005986: 0000 unimp
+80005988: 0000 unimp
+8000598a: 0000 unimp
+8000598c: 0000 unimp
+8000598e: 0000 unimp
+80005990: 0000 unimp
+80005992: 0000 unimp
+80005994: 0000 unimp
+80005996: 0000 unimp
+80005998: 0000 unimp
+8000599a: 0000 unimp
+8000599c: 0000 unimp
+8000599e: 0000 unimp
+800059a0: 0000 unimp
+800059a2: 0000 unimp
+800059a4: 0000 unimp
+800059a6: 0000 unimp
+800059a8: 0000 unimp
+800059aa: 0000 unimp
+800059ac: 0000 unimp
+800059ae: 0000 unimp
+800059b0: 0000 unimp
+800059b2: 0000 unimp
+800059b4: 0000 unimp
+800059b6: 0000 unimp
+800059b8: 0000 unimp
+800059ba: 0000 unimp
+800059bc: 0000 unimp
+800059be: 0000 unimp
+800059c0: 0000 unimp
+800059c2: 0000 unimp
+800059c4: 0000 unimp
+800059c6: 0000 unimp
+800059c8: 0000 unimp
+800059ca: 0000 unimp
+800059cc: 0000 unimp
+800059ce: 0000 unimp
+800059d0: 0000 unimp
+800059d2: 0000 unimp
+800059d4: 0000 unimp
+800059d6: 0000 unimp
+800059d8: 0000 unimp
+800059da: 0000 unimp
+800059dc: 0000 unimp
+800059de: 0000 unimp
+800059e0: 0000 unimp
+800059e2: 0000 unimp
+800059e4: 0000 unimp
+800059e6: 0000 unimp
+800059e8: 0000 unimp
+800059ea: 0000 unimp
+800059ec: 0000 unimp
+800059ee: 0000 unimp
+800059f0: 0000 unimp
+800059f2: 0000 unimp
+800059f4: 0000 unimp
+800059f6: 0000 unimp
+800059f8: 0000 unimp
+800059fa: 0000 unimp
+800059fc: 0000 unimp
+800059fe: 0000 unimp
+80005a00: 0000 unimp
+80005a02: 0000 unimp
+80005a04: 0000 unimp
+80005a06: 0000 unimp
+80005a08: 0000 unimp
+80005a0a: 0000 unimp
+80005a0c: 0000 unimp
+80005a0e: 0000 unimp
+80005a10: 0000 unimp
+80005a12: 0000 unimp
+80005a14: 0000 unimp
+80005a16: 0000 unimp
+80005a18: 0000 unimp
+80005a1a: 0000 unimp
+80005a1c: 0000 unimp
+80005a1e: 0000 unimp
+80005a20: 0000 unimp
+80005a22: 0000 unimp
+80005a24: 0000 unimp
+80005a26: 0000 unimp
+80005a28: 0000 unimp
+80005a2a: 0000 unimp
+80005a2c: 0000 unimp
+80005a2e: 0000 unimp
+80005a30: 0000 unimp
+80005a32: 0000 unimp
+80005a34: 0000 unimp
+80005a36: 0000 unimp
+80005a38: 0000 unimp
+80005a3a: 0000 unimp
+80005a3c: 0000 unimp
+80005a3e: 0000 unimp
+80005a40: 0000 unimp
+80005a42: 0000 unimp
+80005a44: 0000 unimp
+80005a46: 0000 unimp
+80005a48: 0000 unimp
+80005a4a: 0000 unimp
+80005a4c: 0000 unimp
+80005a4e: 0000 unimp
+80005a50: 0000 unimp
+80005a52: 0000 unimp
+80005a54: 0000 unimp
+80005a56: 0000 unimp
+80005a58: 0000 unimp
+80005a5a: 0000 unimp
+80005a5c: 0000 unimp
+80005a5e: 0000 unimp
+80005a60: 0000 unimp
+80005a62: 0000 unimp
+80005a64: 0000 unimp
+80005a66: 0000 unimp
+80005a68: 0000 unimp
+80005a6a: 0000 unimp
+80005a6c: 0000 unimp
+80005a6e: 0000 unimp
+80005a70: 0000 unimp
+80005a72: 0000 unimp
+80005a74: 0000 unimp
+80005a76: 0000 unimp
+80005a78: 0000 unimp
+80005a7a: 0000 unimp
+80005a7c: 0000 unimp
+80005a7e: 0000 unimp
+80005a80: 0000 unimp
+80005a82: 0000 unimp
+80005a84: 0000 unimp
+80005a86: 0000 unimp
+80005a88: 0000 unimp
+80005a8a: 0000 unimp
+80005a8c: 0000 unimp
+80005a8e: 0000 unimp
+80005a90: 0000 unimp
+80005a92: 0000 unimp
+80005a94: 0000 unimp
+80005a96: 0000 unimp
+80005a98: 0000 unimp
+80005a9a: 0000 unimp
+80005a9c: 0000 unimp
+80005a9e: 0000 unimp
+80005aa0: 0000 unimp
+80005aa2: 0000 unimp
+80005aa4: 0000 unimp
+80005aa6: 0000 unimp
+80005aa8: 0000 unimp
+80005aaa: 0000 unimp
+80005aac: 0000 unimp
+80005aae: 0000 unimp
+80005ab0: 0000 unimp
+80005ab2: 0000 unimp
+80005ab4: 0000 unimp
+80005ab6: 0000 unimp
+80005ab8: 0000 unimp
+80005aba: 0000 unimp
+80005abc: 0000 unimp
+80005abe: 0000 unimp
+80005ac0: 0000 unimp
+80005ac2: 0000 unimp
+80005ac4: 0000 unimp
+80005ac6: 0000 unimp
+80005ac8: 0000 unimp
+80005aca: 0000 unimp
+80005acc: 0000 unimp
+80005ace: 0000 unimp
+80005ad0: 0000 unimp
+80005ad2: 0000 unimp
+80005ad4: 0000 unimp
+80005ad6: 0000 unimp
+80005ad8: 0000 unimp
+80005ada: 0000 unimp
+80005adc: 0000 unimp
+80005ade: 0000 unimp
+80005ae0: 0000 unimp
+80005ae2: 0000 unimp
+80005ae4: 0000 unimp
+80005ae6: 0000 unimp
+80005ae8: 0000 unimp
+80005aea: 0000 unimp
+80005aec: 0000 unimp
+80005aee: 0000 unimp
+80005af0: 0000 unimp
+80005af2: 0000 unimp
+80005af4: 0000 unimp
+80005af6: 0000 unimp
+80005af8: 0000 unimp
+80005afa: 0000 unimp
+80005afc: 0000 unimp
+80005afe: 0000 unimp
+80005b00: 0000 unimp
+80005b02: 0000 unimp
+80005b04: 0000 unimp
+80005b06: 0000 unimp
+80005b08: 0000 unimp
+80005b0a: 0000 unimp
+80005b0c: 0000 unimp
+80005b0e: 0000 unimp
+80005b10: 0000 unimp
+80005b12: 0000 unimp
+80005b14: 0000 unimp
+80005b16: 0000 unimp
+80005b18: 0000 unimp
+80005b1a: 0000 unimp
+80005b1c: 0000 unimp
+80005b1e: 0000 unimp
+80005b20: 0000 unimp
+80005b22: 0000 unimp
+80005b24: 0000 unimp
+80005b26: 0000 unimp
+80005b28: 0000 unimp
+80005b2a: 0000 unimp
+80005b2c: 0000 unimp
+80005b2e: 0000 unimp
+80005b30: 0000 unimp
+80005b32: 0000 unimp
+80005b34: 0000 unimp
+80005b36: 0000 unimp
+80005b38: 0000 unimp
+80005b3a: 0000 unimp
+80005b3c: 0000 unimp
+80005b3e: 0000 unimp
+80005b40: 0000 unimp
+80005b42: 0000 unimp
+80005b44: 0000 unimp
+80005b46: 0000 unimp
+80005b48: 0000 unimp
+80005b4a: 0000 unimp
+80005b4c: 0000 unimp
+80005b4e: 0000 unimp
+80005b50: 0000 unimp
+80005b52: 0000 unimp
+80005b54: 0000 unimp
+80005b56: 0000 unimp
+80005b58: 0000 unimp
+80005b5a: 0000 unimp
+80005b5c: 0000 unimp
+80005b5e: 0000 unimp
+80005b60: 0000 unimp
+80005b62: 0000 unimp
+80005b64: 0000 unimp
+80005b66: 0000 unimp
+80005b68: 0000 unimp
+80005b6a: 0000 unimp
+80005b6c: 0000 unimp
+80005b6e: 0000 unimp
+80005b70: 0000 unimp
+80005b72: 0000 unimp
+80005b74: 0000 unimp
+80005b76: 0000 unimp
+80005b78: 0000 unimp
+80005b7a: 0000 unimp
+80005b7c: 0000 unimp
+80005b7e: 0000 unimp
+80005b80: 0000 unimp
+80005b82: 0000 unimp
+80005b84: 0000 unimp
+80005b86: 0000 unimp
+80005b88: 0000 unimp
+80005b8a: 0000 unimp
+80005b8c: 0000 unimp
+80005b8e: 0000 unimp
+80005b90: 0000 unimp
+80005b92: 0000 unimp
+80005b94: 0000 unimp
+80005b96: 0000 unimp
+80005b98: 0000 unimp
+80005b9a: 0000 unimp
+80005b9c: 0000 unimp
+80005b9e: 0000 unimp
+80005ba0: 0000 unimp
+80005ba2: 0000 unimp
+80005ba4: 0000 unimp
+80005ba6: 0000 unimp
+80005ba8: 0000 unimp
+80005baa: 0000 unimp
+80005bac: 0000 unimp
+80005bae: 0000 unimp
+80005bb0: 0000 unimp
+80005bb2: 0000 unimp
+80005bb4: 0000 unimp
+80005bb6: 0000 unimp
+80005bb8: 0000 unimp
+80005bba: 0000 unimp
+80005bbc: 0000 unimp
+80005bbe: 0000 unimp
+80005bc0: 0000 unimp
+80005bc2: 0000 unimp
+80005bc4: 0000 unimp
+80005bc6: 0000 unimp
+80005bc8: 0000 unimp
+80005bca: 0000 unimp
+80005bcc: 0000 unimp
+80005bce: 0000 unimp
+80005bd0: 0000 unimp
+80005bd2: 0000 unimp
+80005bd4: 0000 unimp
+80005bd6: 0000 unimp
+80005bd8: 0000 unimp
+80005bda: 0000 unimp
+80005bdc: 0000 unimp
+80005bde: 0000 unimp
+80005be0: 0000 unimp
+80005be2: 0000 unimp
+80005be4: 0000 unimp
+80005be6: 0000 unimp
+80005be8: 0000 unimp
+80005bea: 0000 unimp
+80005bec: 0000 unimp
+80005bee: 0000 unimp
+80005bf0: 0000 unimp
+80005bf2: 0000 unimp
+80005bf4: 0000 unimp
+80005bf6: 0000 unimp
+80005bf8: 0000 unimp
+80005bfa: 0000 unimp
+80005bfc: 0000 unimp
+80005bfe: 0000 unimp
+80005c00: 0000 unimp
+80005c02: 0000 unimp
+80005c04: 0000 unimp
+80005c06: 0000 unimp
+80005c08: 0000 unimp
+80005c0a: 0000 unimp
+80005c0c: 0000 unimp
+80005c0e: 0000 unimp
+80005c10: 0000 unimp
+80005c12: 0000 unimp
+80005c14: 0000 unimp
+80005c16: 0000 unimp
+80005c18: 0000 unimp
+80005c1a: 0000 unimp
+80005c1c: 0000 unimp
+80005c1e: 0000 unimp
+80005c20: 0000 unimp
+80005c22: 0000 unimp
+80005c24: 0000 unimp
+80005c26: 0000 unimp
+80005c28: 0000 unimp
+80005c2a: 0000 unimp
+80005c2c: 0000 unimp
+80005c2e: 0000 unimp
+80005c30: 0000 unimp
+80005c32: 0000 unimp
+80005c34: 0000 unimp
+80005c36: 0000 unimp
+80005c38: 0000 unimp
+80005c3a: 0000 unimp
+80005c3c: 0000 unimp
+80005c3e: 0000 unimp
+80005c40: 0000 unimp
+80005c42: 0000 unimp
+80005c44: 0000 unimp
+80005c46: 0000 unimp
+80005c48: 0000 unimp
+80005c4a: 0000 unimp
+80005c4c: 0000 unimp
+80005c4e: 0000 unimp
+80005c50: 0000 unimp
+80005c52: 0000 unimp
+80005c54: 0000 unimp
+80005c56: 0000 unimp
+80005c58: 0000 unimp
+80005c5a: 0000 unimp
+80005c5c: 0000 unimp
+80005c5e: 0000 unimp
+80005c60: 0000 unimp
+80005c62: 0000 unimp
+80005c64: 0000 unimp
+80005c66: 0000 unimp
+80005c68: 0000 unimp
+80005c6a: 0000 unimp
+80005c6c: 0000 unimp
+80005c6e: 0000 unimp
+80005c70: 0000 unimp
+80005c72: 0000 unimp
+80005c74: 0000 unimp
+80005c76: 0000 unimp
+80005c78: 0000 unimp
+80005c7a: 0000 unimp
+80005c7c: 0000 unimp
+80005c7e: 0000 unimp
+80005c80: 0000 unimp
+80005c82: 0000 unimp
+80005c84: 0000 unimp
+80005c86: 0000 unimp
+80005c88: 0000 unimp
+80005c8a: 0000 unimp
+80005c8c: 0000 unimp
+80005c8e: 0000 unimp
+80005c90: 0000 unimp
+80005c92: 0000 unimp
+80005c94: 0000 unimp
+80005c96: 0000 unimp
+80005c98: 0000 unimp
+80005c9a: 0000 unimp
+80005c9c: 0000 unimp
+80005c9e: 0000 unimp
+80005ca0: 0000 unimp
+80005ca2: 0000 unimp
+80005ca4: 0000 unimp
+80005ca6: 0000 unimp
+80005ca8: 0000 unimp
+80005caa: 0000 unimp
+80005cac: 0000 unimp
+80005cae: 0000 unimp
+80005cb0: 0000 unimp
+80005cb2: 0000 unimp
+80005cb4: 0000 unimp
+80005cb6: 0000 unimp
+80005cb8: 0000 unimp
+80005cba: 0000 unimp
+80005cbc: 0000 unimp
+80005cbe: 0000 unimp
+80005cc0: 0000 unimp
+80005cc2: 0000 unimp
+80005cc4: 0000 unimp
+80005cc6: 0000 unimp
+80005cc8: 0000 unimp
+80005cca: 0000 unimp
+80005ccc: 0000 unimp
+80005cce: 0000 unimp
+80005cd0: 0000 unimp
+80005cd2: 0000 unimp
+80005cd4: 0000 unimp
+80005cd6: 0000 unimp
+80005cd8: 0000 unimp
+80005cda: 0000 unimp
+80005cdc: 0000 unimp
+80005cde: 0000 unimp
+80005ce0: 0000 unimp
+80005ce2: 0000 unimp
+80005ce4: 0000 unimp
+80005ce6: 0000 unimp
+80005ce8: 0000 unimp
+80005cea: 0000 unimp
+80005cec: 0000 unimp
+80005cee: 0000 unimp
+80005cf0: 0000 unimp
+80005cf2: 0000 unimp
+80005cf4: 0000 unimp
+80005cf6: 0000 unimp
+80005cf8: 0000 unimp
+80005cfa: 0000 unimp
+80005cfc: 0000 unimp
+80005cfe: 0000 unimp
+80005d00: 0000 unimp
+80005d02: 0000 unimp
+80005d04: 0000 unimp
+80005d06: 0000 unimp
+80005d08: 0000 unimp
+80005d0a: 0000 unimp
+80005d0c: 0000 unimp
+80005d0e: 0000 unimp
+80005d10: 0000 unimp
+80005d12: 0000 unimp
+80005d14: 0000 unimp
+80005d16: 0000 unimp
+80005d18: 0000 unimp
+80005d1a: 0000 unimp
+80005d1c: 0000 unimp
+80005d1e: 0000 unimp
+80005d20: 0000 unimp
+80005d22: 0000 unimp
+80005d24: 0000 unimp
+80005d26: 0000 unimp
+80005d28: 0000 unimp
+80005d2a: 0000 unimp
+80005d2c: 0000 unimp
+80005d2e: 0000 unimp
+80005d30: 0000 unimp
+80005d32: 0000 unimp
+80005d34: 0000 unimp
+80005d36: 0000 unimp
+80005d38: 0000 unimp
+80005d3a: 0000 unimp
+80005d3c: 0000 unimp
+80005d3e: 0000 unimp
+80005d40: 0000 unimp
+80005d42: 0000 unimp
+80005d44: 0000 unimp
+80005d46: 0000 unimp
+80005d48: 0000 unimp
+80005d4a: 0000 unimp
+80005d4c: 0000 unimp
+80005d4e: 0000 unimp
+80005d50: 0000 unimp
+80005d52: 0000 unimp
+80005d54: 0000 unimp
+80005d56: 0000 unimp
+80005d58: 0000 unimp
+80005d5a: 0000 unimp
+80005d5c: 0000 unimp
+80005d5e: 0000 unimp
+80005d60: 0000 unimp
+80005d62: 0000 unimp
+80005d64: 0000 unimp
+80005d66: 0000 unimp
+80005d68: 0000 unimp
+80005d6a: 0000 unimp
+80005d6c: 0000 unimp
+80005d6e: 0000 unimp
+80005d70: 0000 unimp
+80005d72: 0000 unimp
+80005d74: 0000 unimp
+80005d76: 0000 unimp
+80005d78: 0000 unimp
+80005d7a: 0000 unimp
+80005d7c: 0000 unimp
+80005d7e: 0000 unimp
+80005d80: 0000 unimp
+80005d82: 0000 unimp
+80005d84: 0000 unimp
+80005d86: 0000 unimp
+80005d88: 0000 unimp
+80005d8a: 0000 unimp
+80005d8c: 0000 unimp
+80005d8e: 0000 unimp
+80005d90: 0000 unimp
+80005d92: 0000 unimp
+80005d94: 0000 unimp
+80005d96: 0000 unimp
+80005d98: 0000 unimp
+80005d9a: 0000 unimp
+80005d9c: 0000 unimp
+80005d9e: 0000 unimp
+80005da0: 0000 unimp
+80005da2: 0000 unimp
+80005da4: 0000 unimp
+80005da6: 0000 unimp
+80005da8: 0000 unimp
+80005daa: 0000 unimp
+80005dac: 0000 unimp
+80005dae: 0000 unimp
+80005db0: 0000 unimp
+80005db2: 0000 unimp
+80005db4: 0000 unimp
+80005db6: 0000 unimp
+80005db8: 0000 unimp
+80005dba: 0000 unimp
+80005dbc: 0000 unimp
+80005dbe: 0000 unimp
+80005dc0: 0000 unimp
+80005dc2: 0000 unimp
+80005dc4: 0000 unimp
+80005dc6: 0000 unimp
+80005dc8: 0000 unimp
+80005dca: 0000 unimp
+80005dcc: 0000 unimp
+80005dce: 0000 unimp
+80005dd0: 0000 unimp
+80005dd2: 0000 unimp
+80005dd4: 0000 unimp
+80005dd6: 0000 unimp
+80005dd8: 0000 unimp
+80005dda: 0000 unimp
+80005ddc: 0000 unimp
+80005dde: 0000 unimp
+80005de0: 0000 unimp
+80005de2: 0000 unimp
+80005de4: 0000 unimp
+80005de6: 0000 unimp
+80005de8: 0000 unimp
+80005dea: 0000 unimp
+80005dec: 0000 unimp
+80005dee: 0000 unimp
+80005df0: 0000 unimp
+80005df2: 0000 unimp
+80005df4: 0000 unimp
+80005df6: 0000 unimp
+80005df8: 0000 unimp
+80005dfa: 0000 unimp
+80005dfc: 0000 unimp
+80005dfe: 0000 unimp
+80005e00: 0000 unimp
+80005e02: 0000 unimp
+80005e04: 0000 unimp
+80005e06: 0000 unimp
+80005e08: 0000 unimp
+80005e0a: 0000 unimp
+80005e0c: 0000 unimp
+80005e0e: 0000 unimp
+80005e10: 0000 unimp
+80005e12: 0000 unimp
+80005e14: 0000 unimp
+80005e16: 0000 unimp
+80005e18: 0000 unimp
+80005e1a: 0000 unimp
+80005e1c: 0000 unimp
+80005e1e: 0000 unimp
+80005e20: 0000 unimp
+80005e22: 0000 unimp
+80005e24: 0000 unimp
+80005e26: 0000 unimp
+80005e28: 0000 unimp
+80005e2a: 0000 unimp
+80005e2c: 0000 unimp
+80005e2e: 0000 unimp
+80005e30: 0000 unimp
+80005e32: 0000 unimp
+80005e34: 0000 unimp
+80005e36: 0000 unimp
+80005e38: 0000 unimp
+80005e3a: 0000 unimp
+80005e3c: 0000 unimp
+80005e3e: 0000 unimp
+80005e40: 0000 unimp
+80005e42: 0000 unimp
+80005e44: 0000 unimp
+80005e46: 0000 unimp
+80005e48: 0000 unimp
+80005e4a: 0000 unimp
+80005e4c: 0000 unimp
+80005e4e: 0000 unimp
+80005e50: 0000 unimp
+80005e52: 0000 unimp
+80005e54: 0000 unimp
+80005e56: 0000 unimp
+80005e58: 0000 unimp
+80005e5a: 0000 unimp
+80005e5c: 0000 unimp
+80005e5e: 0000 unimp
+80005e60: 0000 unimp
+80005e62: 0000 unimp
+80005e64: 0000 unimp
+80005e66: 0000 unimp
+80005e68: 0000 unimp
+80005e6a: 0000 unimp
+80005e6c: 0000 unimp
+80005e6e: 0000 unimp
+80005e70: 0000 unimp
+80005e72: 0000 unimp
+80005e74: 0000 unimp
+80005e76: 0000 unimp
+80005e78: 0000 unimp
+80005e7a: 0000 unimp
+80005e7c: 0000 unimp
+80005e7e: 0000 unimp
+80005e80: 0000 unimp
+80005e82: 0000 unimp
+80005e84: 0000 unimp
+80005e86: 0000 unimp
+80005e88: 0000 unimp
+80005e8a: 0000 unimp
+80005e8c: 0000 unimp
+80005e8e: 0000 unimp
+80005e90: 0000 unimp
+80005e92: 0000 unimp
+80005e94: 0000 unimp
+80005e96: 0000 unimp
+80005e98: 0000 unimp
+80005e9a: 0000 unimp
+80005e9c: 0000 unimp
+80005e9e: 0000 unimp
+80005ea0: 0000 unimp
+80005ea2: 0000 unimp
+80005ea4: 0000 unimp
+80005ea6: 0000 unimp
+80005ea8: 0000 unimp
+80005eaa: 0000 unimp
+80005eac: 0000 unimp
+80005eae: 0000 unimp
+80005eb0: 0000 unimp
+80005eb2: 0000 unimp
+80005eb4: 0000 unimp
+80005eb6: 0000 unimp
+80005eb8: 0000 unimp
+80005eba: 0000 unimp
+80005ebc: 0000 unimp
+80005ebe: 0000 unimp
+80005ec0: 0000 unimp
+80005ec2: 0000 unimp
+80005ec4: 0000 unimp
+80005ec6: 0000 unimp
+80005ec8: 0000 unimp
+80005eca: 0000 unimp
+80005ecc: 0000 unimp
+80005ece: 0000 unimp
+80005ed0: 0000 unimp
+80005ed2: 0000 unimp
+80005ed4: 0000 unimp
+80005ed6: 0000 unimp
+80005ed8: 0000 unimp
+80005eda: 0000 unimp
+80005edc: 0000 unimp
+80005ede: 0000 unimp
+80005ee0: 0000 unimp
+80005ee2: 0000 unimp
+80005ee4: 0000 unimp
+80005ee6: 0000 unimp
+80005ee8: 0000 unimp
+80005eea: 0000 unimp
+80005eec: 0000 unimp
+80005eee: 0000 unimp
+80005ef0: 0000 unimp
+80005ef2: 0000 unimp
+80005ef4: 0000 unimp
+80005ef6: 0000 unimp
+80005ef8: 0000 unimp
+80005efa: 0000 unimp
+80005efc: 0000 unimp
+80005efe: 0000 unimp
+80005f00: 0000 unimp
+80005f02: 0000 unimp
+80005f04: 0000 unimp
+80005f06: 0000 unimp
+80005f08: 0000 unimp
+80005f0a: 0000 unimp
+80005f0c: 0000 unimp
+80005f0e: 0000 unimp
+80005f10: 0000 unimp
+80005f12: 0000 unimp
+80005f14: 0000 unimp
+80005f16: 0000 unimp
+80005f18: 0000 unimp
+80005f1a: 0000 unimp
+80005f1c: 0000 unimp
+80005f1e: 0000 unimp
+80005f20: 0000 unimp
+80005f22: 0000 unimp
+80005f24: 0000 unimp
+80005f26: 0000 unimp
+80005f28: 0000 unimp
+80005f2a: 0000 unimp
+80005f2c: 0000 unimp
+80005f2e: 0000 unimp
+80005f30: 0000 unimp
+80005f32: 0000 unimp
+80005f34: 0000 unimp
+80005f36: 0000 unimp
+80005f38: 0000 unimp
+80005f3a: 0000 unimp
+80005f3c: 0000 unimp
+80005f3e: 0000 unimp
+80005f40: 0000 unimp
+80005f42: 0000 unimp
+80005f44: 0000 unimp
+80005f46: 0000 unimp
+80005f48: 0000 unimp
+80005f4a: 0000 unimp
+80005f4c: 0000 unimp
+80005f4e: 0000 unimp
+80005f50: 0000 unimp
+80005f52: 0000 unimp
+80005f54: 0000 unimp
+80005f56: 0000 unimp
+80005f58: 0000 unimp
+80005f5a: 0000 unimp
+80005f5c: 0000 unimp
+80005f5e: 0000 unimp
+80005f60: 0000 unimp
+80005f62: 0000 unimp
+80005f64: 0000 unimp
+80005f66: 0000 unimp
+80005f68: 0000 unimp
+80005f6a: 0000 unimp
+80005f6c: 0000 unimp
+80005f6e: 0000 unimp
+80005f70: 0000 unimp
+80005f72: 0000 unimp
+80005f74: 0000 unimp
+80005f76: 0000 unimp
+80005f78: 0000 unimp
+80005f7a: 0000 unimp
+80005f7c: 0000 unimp
+80005f7e: 0000 unimp
+80005f80: 0000 unimp
+80005f82: 0000 unimp
+80005f84: 0000 unimp
+80005f86: 0000 unimp
+80005f88: 0000 unimp
+80005f8a: 0000 unimp
+80005f8c: 0000 unimp
+80005f8e: 0000 unimp
+80005f90: 0000 unimp
+80005f92: 0000 unimp
+80005f94: 0000 unimp
+80005f96: 0000 unimp
+80005f98: 0000 unimp
+80005f9a: 0000 unimp
+80005f9c: 0000 unimp
+80005f9e: 0000 unimp
+80005fa0: 0000 unimp
+80005fa2: 0000 unimp
+80005fa4: 0000 unimp
+80005fa6: 0000 unimp
+80005fa8: 0000 unimp
+80005faa: 0000 unimp
+80005fac: 0000 unimp
+80005fae: 0000 unimp
+80005fb0: 0000 unimp
+80005fb2: 0000 unimp
+80005fb4: 0000 unimp
+80005fb6: 0000 unimp
+80005fb8: 0000 unimp
+80005fba: 0000 unimp
+80005fbc: 0000 unimp
+80005fbe: 0000 unimp
+80005fc0: 0000 unimp
+80005fc2: 0000 unimp
+80005fc4: 0000 unimp
+80005fc6: 0000 unimp
+80005fc8: 0000 unimp
+80005fca: 0000 unimp
+80005fcc: 0000 unimp
+80005fce: 0000 unimp
+80005fd0: 0000 unimp
diff --git a/test/riscv-tests/rv32uc-v-rvc.elf b/test/riscv-tests/rv32uc-v-rvc.elf
new file mode 100644
index 0000000..b310f16
--- /dev/null
+++ b/test/riscv-tests/rv32uc-v-rvc.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-p-add.dump b/test/riscv-tests/rv32ui-p-add.dump
new file mode 100644
index 0000000..90edaa4
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-add.dump
@@ -0,0 +1,479 @@
+
+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: 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: 00208f33 add t5,ra,sp
+80000108: 00000e93 li t4,0
+8000010c: 00200193 li gp,2
+80000110: 4ddf1663 bne t5,t4,800005dc <fail>
+
+80000114 <test_3>:
+80000114: 00100093 li ra,1
+80000118: 00100113 li sp,1
+8000011c: 00208f33 add t5,ra,sp
+80000120: 00200e93 li t4,2
+80000124: 00300193 li gp,3
+80000128: 4bdf1a63 bne t5,t4,800005dc <fail>
+
+8000012c <test_4>:
+8000012c: 00300093 li ra,3
+80000130: 00700113 li sp,7
+80000134: 00208f33 add t5,ra,sp
+80000138: 00a00e93 li t4,10
+8000013c: 00400193 li gp,4
+80000140: 49df1e63 bne t5,t4,800005dc <fail>
+
+80000144 <test_5>:
+80000144: 00000093 li ra,0
+80000148: ffff8137 lui sp,0xffff8
+8000014c: 00208f33 add t5,ra,sp
+80000150: ffff8eb7 lui t4,0xffff8
+80000154: 00500193 li gp,5
+80000158: 49df1263 bne t5,t4,800005dc <fail>
+
+8000015c <test_6>:
+8000015c: 800000b7 lui ra,0x80000
+80000160: 00000113 li sp,0
+80000164: 00208f33 add t5,ra,sp
+80000168: 80000eb7 lui t4,0x80000
+8000016c: 00600193 li gp,6
+80000170: 47df1663 bne t5,t4,800005dc <fail>
+
+80000174 <test_7>:
+80000174: 800000b7 lui ra,0x80000
+80000178: ffff8137 lui sp,0xffff8
+8000017c: 00208f33 add t5,ra,sp
+80000180: 7fff8eb7 lui t4,0x7fff8
+80000184: 00700193 li gp,7
+80000188: 45df1a63 bne t5,t4,800005dc <fail>
+
+8000018c <test_8>:
+8000018c: 00000093 li ra,0
+80000190: 00008137 lui sp,0x8
+80000194: fff10113 addi sp,sp,-1 # 7fff <_start-0x7fff8001>
+80000198: 00208f33 add t5,ra,sp
+8000019c: 00008eb7 lui t4,0x8
+800001a0: fffe8e93 addi t4,t4,-1 # 7fff <_start-0x7fff8001>
+800001a4: 00800193 li gp,8
+800001a8: 43df1a63 bne t5,t4,800005dc <fail>
+
+800001ac <test_9>:
+800001ac: 800000b7 lui ra,0x80000
+800001b0: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffffdfff>
+800001b4: 00000113 li sp,0
+800001b8: 00208f33 add t5,ra,sp
+800001bc: 80000eb7 lui t4,0x80000
+800001c0: fffe8e93 addi t4,t4,-1 # 7fffffff <_end+0xffffdfff>
+800001c4: 00900193 li gp,9
+800001c8: 41df1a63 bne t5,t4,800005dc <fail>
+
+800001cc <test_10>:
+800001cc: 800000b7 lui ra,0x80000
+800001d0: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffffdfff>
+800001d4: 00008137 lui sp,0x8
+800001d8: fff10113 addi sp,sp,-1 # 7fff <_start-0x7fff8001>
+800001dc: 00208f33 add t5,ra,sp
+800001e0: 80008eb7 lui t4,0x80008
+800001e4: ffee8e93 addi t4,t4,-2 # 80007ffe <_end+0x5ffe>
+800001e8: 00a00193 li gp,10
+800001ec: 3fdf1863 bne t5,t4,800005dc <fail>
+
+800001f0 <test_11>:
+800001f0: 800000b7 lui ra,0x80000
+800001f4: 00008137 lui sp,0x8
+800001f8: fff10113 addi sp,sp,-1 # 7fff <_start-0x7fff8001>
+800001fc: 00208f33 add t5,ra,sp
+80000200: 80008eb7 lui t4,0x80008
+80000204: fffe8e93 addi t4,t4,-1 # 80007fff <_end+0x5fff>
+80000208: 00b00193 li gp,11
+8000020c: 3ddf1863 bne t5,t4,800005dc <fail>
+
+80000210 <test_12>:
+80000210: 800000b7 lui ra,0x80000
+80000214: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffffdfff>
+80000218: ffff8137 lui sp,0xffff8
+8000021c: 00208f33 add t5,ra,sp
+80000220: 7fff8eb7 lui t4,0x7fff8
+80000224: fffe8e93 addi t4,t4,-1 # 7fff7fff <_start-0x8001>
+80000228: 00c00193 li gp,12
+8000022c: 3bdf1863 bne t5,t4,800005dc <fail>
+
+80000230 <test_13>:
+80000230: 00000093 li ra,0
+80000234: fff00113 li sp,-1
+80000238: 00208f33 add t5,ra,sp
+8000023c: fff00e93 li t4,-1
+80000240: 00d00193 li gp,13
+80000244: 39df1c63 bne t5,t4,800005dc <fail>
+
+80000248 <test_14>:
+80000248: fff00093 li ra,-1
+8000024c: 00100113 li sp,1
+80000250: 00208f33 add t5,ra,sp
+80000254: 00000e93 li t4,0
+80000258: 00e00193 li gp,14
+8000025c: 39df1063 bne t5,t4,800005dc <fail>
+
+80000260 <test_15>:
+80000260: fff00093 li ra,-1
+80000264: fff00113 li sp,-1
+80000268: 00208f33 add t5,ra,sp
+8000026c: ffe00e93 li t4,-2
+80000270: 00f00193 li gp,15
+80000274: 37df1463 bne t5,t4,800005dc <fail>
+
+80000278 <test_16>:
+80000278: 00100093 li ra,1
+8000027c: 80000137 lui sp,0x80000
+80000280: fff10113 addi sp,sp,-1 # 7fffffff <_end+0xffffdfff>
+80000284: 00208f33 add t5,ra,sp
+80000288: 80000eb7 lui t4,0x80000
+8000028c: 01000193 li gp,16
+80000290: 35df1663 bne t5,t4,800005dc <fail>
+
+80000294 <test_17>:
+80000294: 00d00093 li ra,13
+80000298: 00b00113 li sp,11
+8000029c: 002080b3 add ra,ra,sp
+800002a0: 01800e93 li t4,24
+800002a4: 01100193 li gp,17
+800002a8: 33d09a63 bne ra,t4,800005dc <fail>
+
+800002ac <test_18>:
+800002ac: 00e00093 li ra,14
+800002b0: 00b00113 li sp,11
+800002b4: 00208133 add sp,ra,sp
+800002b8: 01900e93 li t4,25
+800002bc: 01200193 li gp,18
+800002c0: 31d11e63 bne sp,t4,800005dc <fail>
+
+800002c4 <test_19>:
+800002c4: 00d00093 li ra,13
+800002c8: 001080b3 add ra,ra,ra
+800002cc: 01a00e93 li t4,26
+800002d0: 01300193 li gp,19
+800002d4: 31d09463 bne ra,t4,800005dc <fail>
+
+800002d8 <test_20>:
+800002d8: 00000213 li tp,0
+800002dc: 00d00093 li ra,13
+800002e0: 00b00113 li sp,11
+800002e4: 00208f33 add t5,ra,sp
+800002e8: 000f0313 mv t1,t5
+800002ec: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800002f0: 00200293 li t0,2
+800002f4: fe5214e3 bne tp,t0,800002dc <test_20+0x4>
+800002f8: 01800e93 li t4,24
+800002fc: 01400193 li gp,20
+80000300: 2dd31e63 bne t1,t4,800005dc <fail>
+
+80000304 <test_21>:
+80000304: 00000213 li tp,0
+80000308: 00e00093 li ra,14
+8000030c: 00b00113 li sp,11
+80000310: 00208f33 add t5,ra,sp
+80000314: 00000013 nop
+80000318: 000f0313 mv t1,t5
+8000031c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000320: 00200293 li t0,2
+80000324: fe5212e3 bne tp,t0,80000308 <test_21+0x4>
+80000328: 01900e93 li t4,25
+8000032c: 01500193 li gp,21
+80000330: 2bd31663 bne t1,t4,800005dc <fail>
+
+80000334 <test_22>:
+80000334: 00000213 li tp,0
+80000338: 00f00093 li ra,15
+8000033c: 00b00113 li sp,11
+80000340: 00208f33 add t5,ra,sp
+80000344: 00000013 nop
+80000348: 00000013 nop
+8000034c: 000f0313 mv t1,t5
+80000350: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000354: 00200293 li t0,2
+80000358: fe5210e3 bne tp,t0,80000338 <test_22+0x4>
+8000035c: 01a00e93 li t4,26
+80000360: 01600193 li gp,22
+80000364: 27d31c63 bne t1,t4,800005dc <fail>
+
+80000368 <test_23>:
+80000368: 00000213 li tp,0
+8000036c: 00d00093 li ra,13
+80000370: 00b00113 li sp,11
+80000374: 00208f33 add t5,ra,sp
+80000378: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000037c: 00200293 li t0,2
+80000380: fe5216e3 bne tp,t0,8000036c <test_23+0x4>
+80000384: 01800e93 li t4,24
+80000388: 01700193 li gp,23
+8000038c: 25df1863 bne t5,t4,800005dc <fail>
+
+80000390 <test_24>:
+80000390: 00000213 li tp,0
+80000394: 00e00093 li ra,14
+80000398: 00b00113 li sp,11
+8000039c: 00000013 nop
+800003a0: 00208f33 add t5,ra,sp
+800003a4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800003a8: 00200293 li t0,2
+800003ac: fe5214e3 bne tp,t0,80000394 <test_24+0x4>
+800003b0: 01900e93 li t4,25
+800003b4: 01800193 li gp,24
+800003b8: 23df1263 bne t5,t4,800005dc <fail>
+
+800003bc <test_25>:
+800003bc: 00000213 li tp,0
+800003c0: 00f00093 li ra,15
+800003c4: 00b00113 li sp,11
+800003c8: 00000013 nop
+800003cc: 00000013 nop
+800003d0: 00208f33 add t5,ra,sp
+800003d4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800003d8: 00200293 li t0,2
+800003dc: fe5212e3 bne tp,t0,800003c0 <test_25+0x4>
+800003e0: 01a00e93 li t4,26
+800003e4: 01900193 li gp,25
+800003e8: 1fdf1a63 bne t5,t4,800005dc <fail>
+
+800003ec <test_26>:
+800003ec: 00000213 li tp,0
+800003f0: 00d00093 li ra,13
+800003f4: 00000013 nop
+800003f8: 00b00113 li sp,11
+800003fc: 00208f33 add t5,ra,sp
+80000400: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000404: 00200293 li t0,2
+80000408: fe5214e3 bne tp,t0,800003f0 <test_26+0x4>
+8000040c: 01800e93 li t4,24
+80000410: 01a00193 li gp,26
+80000414: 1ddf1463 bne t5,t4,800005dc <fail>
+
+80000418 <test_27>:
+80000418: 00000213 li tp,0
+8000041c: 00e00093 li ra,14
+80000420: 00000013 nop
+80000424: 00b00113 li sp,11
+80000428: 00000013 nop
+8000042c: 00208f33 add t5,ra,sp
+80000430: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000434: 00200293 li t0,2
+80000438: fe5212e3 bne tp,t0,8000041c <test_27+0x4>
+8000043c: 01900e93 li t4,25
+80000440: 01b00193 li gp,27
+80000444: 19df1c63 bne t5,t4,800005dc <fail>
+
+80000448 <test_28>:
+80000448: 00000213 li tp,0
+8000044c: 00f00093 li ra,15
+80000450: 00000013 nop
+80000454: 00000013 nop
+80000458: 00b00113 li sp,11
+8000045c: 00208f33 add t5,ra,sp
+80000460: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000464: 00200293 li t0,2
+80000468: fe5212e3 bne tp,t0,8000044c <test_28+0x4>
+8000046c: 01a00e93 li t4,26
+80000470: 01c00193 li gp,28
+80000474: 17df1463 bne t5,t4,800005dc <fail>
+
+80000478 <test_29>:
+80000478: 00000213 li tp,0
+8000047c: 00b00113 li sp,11
+80000480: 00d00093 li ra,13
+80000484: 00208f33 add t5,ra,sp
+80000488: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000048c: 00200293 li t0,2
+80000490: fe5216e3 bne tp,t0,8000047c <test_29+0x4>
+80000494: 01800e93 li t4,24
+80000498: 01d00193 li gp,29
+8000049c: 15df1063 bne t5,t4,800005dc <fail>
+
+800004a0 <test_30>:
+800004a0: 00000213 li tp,0
+800004a4: 00b00113 li sp,11
+800004a8: 00e00093 li ra,14
+800004ac: 00000013 nop
+800004b0: 00208f33 add t5,ra,sp
+800004b4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800004b8: 00200293 li t0,2
+800004bc: fe5214e3 bne tp,t0,800004a4 <test_30+0x4>
+800004c0: 01900e93 li t4,25
+800004c4: 01e00193 li gp,30
+800004c8: 11df1a63 bne t5,t4,800005dc <fail>
+
+800004cc <test_31>:
+800004cc: 00000213 li tp,0
+800004d0: 00b00113 li sp,11
+800004d4: 00f00093 li ra,15
+800004d8: 00000013 nop
+800004dc: 00000013 nop
+800004e0: 00208f33 add t5,ra,sp
+800004e4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800004e8: 00200293 li t0,2
+800004ec: fe5212e3 bne tp,t0,800004d0 <test_31+0x4>
+800004f0: 01a00e93 li t4,26
+800004f4: 01f00193 li gp,31
+800004f8: 0fdf1263 bne t5,t4,800005dc <fail>
+
+800004fc <test_32>:
+800004fc: 00000213 li tp,0
+80000500: 00b00113 li sp,11
+80000504: 00000013 nop
+80000508: 00d00093 li ra,13
+8000050c: 00208f33 add t5,ra,sp
+80000510: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000514: 00200293 li t0,2
+80000518: fe5214e3 bne tp,t0,80000500 <test_32+0x4>
+8000051c: 01800e93 li t4,24
+80000520: 02000193 li gp,32
+80000524: 0bdf1c63 bne t5,t4,800005dc <fail>
+
+80000528 <test_33>:
+80000528: 00000213 li tp,0
+8000052c: 00b00113 li sp,11
+80000530: 00000013 nop
+80000534: 00e00093 li ra,14
+80000538: 00000013 nop
+8000053c: 00208f33 add t5,ra,sp
+80000540: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000544: 00200293 li t0,2
+80000548: fe5212e3 bne tp,t0,8000052c <test_33+0x4>
+8000054c: 01900e93 li t4,25
+80000550: 02100193 li gp,33
+80000554: 09df1463 bne t5,t4,800005dc <fail>
+
+80000558 <test_34>:
+80000558: 00000213 li tp,0
+8000055c: 00b00113 li sp,11
+80000560: 00000013 nop
+80000564: 00000013 nop
+80000568: 00f00093 li ra,15
+8000056c: 00208f33 add t5,ra,sp
+80000570: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000574: 00200293 li t0,2
+80000578: fe5212e3 bne tp,t0,8000055c <test_34+0x4>
+8000057c: 01a00e93 li t4,26
+80000580: 02200193 li gp,34
+80000584: 05df1c63 bne t5,t4,800005dc <fail>
+
+80000588 <test_35>:
+80000588: 00f00093 li ra,15
+8000058c: 00100133 add sp,zero,ra
+80000590: 00f00e93 li t4,15
+80000594: 02300193 li gp,35
+80000598: 05d11263 bne sp,t4,800005dc <fail>
+
+8000059c <test_36>:
+8000059c: 02000093 li ra,32
+800005a0: 00008133 add sp,ra,zero
+800005a4: 02000e93 li t4,32
+800005a8: 02400193 li gp,36
+800005ac: 03d11863 bne sp,t4,800005dc <fail>
+
+800005b0 <test_37>:
+800005b0: 000000b3 add ra,zero,zero
+800005b4: 00000e93 li t4,0
+800005b8: 02500193 li gp,37
+800005bc: 03d09063 bne ra,t4,800005dc <fail>
+
+800005c0 <test_38>:
+800005c0: 01000093 li ra,16
+800005c4: 01e00113 li sp,30
+800005c8: 00208033 add zero,ra,sp
+800005cc: 00000e93 li t4,0
+800005d0: 02600193 li gp,38
+800005d4: 01d01463 bne zero,t4,800005dc <fail>
+800005d8: 00301c63 bne zero,gp,800005f0 <pass>
+
+800005dc <fail>:
+800005dc: 0ff0000f fence
+800005e0: 00018063 beqz gp,800005e0 <fail+0x4>
+800005e4: 00119193 slli gp,gp,0x1
+800005e8: 0011e193 ori gp,gp,1
+800005ec: 00000073 ecall
+
+800005f0 <pass>:
+800005f0: 0ff0000f fence
+800005f4: 00100193 li gp,1
+800005f8: 00000073 ecall
+800005fc: c0001073 unimp
+80000600: 0000 unimp
+80000602: 0000 unimp
diff --git a/test/riscv-tests/rv32ui-p-add.elf b/test/riscv-tests/rv32ui-p-add.elf
new file mode 100644
index 0000000..08e1992
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-add.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-p-addi.dump b/test/riscv-tests/rv32ui-p-addi.dump
new file mode 100644
index 0000000..d72c7b3
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-addi.dump
@@ -0,0 +1,315 @@
+
+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: 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: 00008f13 mv t5,ra
+80000104: 00000e93 li t4,0
+80000108: 00200193 li gp,2
+8000010c: 27df1c63 bne t5,t4,80000384 <fail>
+
+80000110 <test_3>:
+80000110: 00100093 li ra,1
+80000114: 00108f13 addi t5,ra,1
+80000118: 00200e93 li t4,2
+8000011c: 00300193 li gp,3
+80000120: 27df1263 bne t5,t4,80000384 <fail>
+
+80000124 <test_4>:
+80000124: 00300093 li ra,3
+80000128: 00708f13 addi t5,ra,7
+8000012c: 00a00e93 li t4,10
+80000130: 00400193 li gp,4
+80000134: 25df1863 bne t5,t4,80000384 <fail>
+
+80000138 <test_5>:
+80000138: 00000093 li ra,0
+8000013c: 80008f13 addi t5,ra,-2048
+80000140: 80000e93 li t4,-2048
+80000144: 00500193 li gp,5
+80000148: 23df1e63 bne t5,t4,80000384 <fail>
+
+8000014c <test_6>:
+8000014c: 800000b7 lui ra,0x80000
+80000150: 00008f13 mv t5,ra
+80000154: 80000eb7 lui t4,0x80000
+80000158: 00600193 li gp,6
+8000015c: 23df1463 bne t5,t4,80000384 <fail>
+
+80000160 <test_7>:
+80000160: 800000b7 lui ra,0x80000
+80000164: 80008f13 addi t5,ra,-2048 # 7ffff800 <_end+0xffffd800>
+80000168: 80000eb7 lui t4,0x80000
+8000016c: 800e8e93 addi t4,t4,-2048 # 7ffff800 <_end+0xffffd800>
+80000170: 00700193 li gp,7
+80000174: 21df1863 bne t5,t4,80000384 <fail>
+
+80000178 <test_8>:
+80000178: 00000093 li ra,0
+8000017c: 7ff08f13 addi t5,ra,2047
+80000180: 7ff00e93 li t4,2047
+80000184: 00800193 li gp,8
+80000188: 1fdf1e63 bne t5,t4,80000384 <fail>
+
+8000018c <test_9>:
+8000018c: 800000b7 lui ra,0x80000
+80000190: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffffdfff>
+80000194: 00008f13 mv t5,ra
+80000198: 80000eb7 lui t4,0x80000
+8000019c: fffe8e93 addi t4,t4,-1 # 7fffffff <_end+0xffffdfff>
+800001a0: 00900193 li gp,9
+800001a4: 1fdf1063 bne t5,t4,80000384 <fail>
+
+800001a8 <test_10>:
+800001a8: 800000b7 lui ra,0x80000
+800001ac: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffffdfff>
+800001b0: 7ff08f13 addi t5,ra,2047
+800001b4: 80000eb7 lui t4,0x80000
+800001b8: 7fee8e93 addi t4,t4,2046 # 800007fe <_end+0xffffe7fe>
+800001bc: 00a00193 li gp,10
+800001c0: 1ddf1263 bne t5,t4,80000384 <fail>
+
+800001c4 <test_11>:
+800001c4: 800000b7 lui ra,0x80000
+800001c8: 7ff08f13 addi t5,ra,2047 # 800007ff <_end+0xffffe7ff>
+800001cc: 80000eb7 lui t4,0x80000
+800001d0: 7ffe8e93 addi t4,t4,2047 # 800007ff <_end+0xffffe7ff>
+800001d4: 00b00193 li gp,11
+800001d8: 1bdf1663 bne t5,t4,80000384 <fail>
+
+800001dc <test_12>:
+800001dc: 800000b7 lui ra,0x80000
+800001e0: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffffdfff>
+800001e4: 80008f13 addi t5,ra,-2048
+800001e8: 7ffffeb7 lui t4,0x7ffff
+800001ec: 7ffe8e93 addi t4,t4,2047 # 7ffff7ff <_start-0x801>
+800001f0: 00c00193 li gp,12
+800001f4: 19df1863 bne t5,t4,80000384 <fail>
+
+800001f8 <test_13>:
+800001f8: 00000093 li ra,0
+800001fc: fff08f13 addi t5,ra,-1
+80000200: fff00e93 li t4,-1
+80000204: 00d00193 li gp,13
+80000208: 17df1e63 bne t5,t4,80000384 <fail>
+
+8000020c <test_14>:
+8000020c: fff00093 li ra,-1
+80000210: 00108f13 addi t5,ra,1
+80000214: 00000e93 li t4,0
+80000218: 00e00193 li gp,14
+8000021c: 17df1463 bne t5,t4,80000384 <fail>
+
+80000220 <test_15>:
+80000220: fff00093 li ra,-1
+80000224: fff08f13 addi t5,ra,-1
+80000228: ffe00e93 li t4,-2
+8000022c: 00f00193 li gp,15
+80000230: 15df1a63 bne t5,t4,80000384 <fail>
+
+80000234 <test_16>:
+80000234: 800000b7 lui ra,0x80000
+80000238: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffffdfff>
+8000023c: 00108f13 addi t5,ra,1
+80000240: 80000eb7 lui t4,0x80000
+80000244: 01000193 li gp,16
+80000248: 13df1e63 bne t5,t4,80000384 <fail>
+
+8000024c <test_17>:
+8000024c: 00d00093 li ra,13
+80000250: 00b08093 addi ra,ra,11
+80000254: 01800e93 li t4,24
+80000258: 01100193 li gp,17
+8000025c: 13d09463 bne ra,t4,80000384 <fail>
+
+80000260 <test_18>:
+80000260: 00000213 li tp,0
+80000264: 00d00093 li ra,13
+80000268: 00b08f13 addi t5,ra,11
+8000026c: 000f0313 mv t1,t5
+80000270: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000274: 00200293 li t0,2
+80000278: fe5216e3 bne tp,t0,80000264 <test_18+0x4>
+8000027c: 01800e93 li t4,24
+80000280: 01200193 li gp,18
+80000284: 11d31063 bne t1,t4,80000384 <fail>
+
+80000288 <test_19>:
+80000288: 00000213 li tp,0
+8000028c: 00d00093 li ra,13
+80000290: 00a08f13 addi t5,ra,10
+80000294: 00000013 nop
+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_19+0x4>
+800002a8: 01700e93 li t4,23
+800002ac: 01300193 li gp,19
+800002b0: 0dd31a63 bne t1,t4,80000384 <fail>
+
+800002b4 <test_20>:
+800002b4: 00000213 li tp,0
+800002b8: 00d00093 li ra,13
+800002bc: 00908f13 addi t5,ra,9
+800002c0: 00000013 nop
+800002c4: 00000013 nop
+800002c8: 000f0313 mv t1,t5
+800002cc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800002d0: 00200293 li t0,2
+800002d4: fe5212e3 bne tp,t0,800002b8 <test_20+0x4>
+800002d8: 01600e93 li t4,22
+800002dc: 01400193 li gp,20
+800002e0: 0bd31263 bne t1,t4,80000384 <fail>
+
+800002e4 <test_21>:
+800002e4: 00000213 li tp,0
+800002e8: 00d00093 li ra,13
+800002ec: 00b08f13 addi t5,ra,11
+800002f0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800002f4: 00200293 li t0,2
+800002f8: fe5218e3 bne tp,t0,800002e8 <test_21+0x4>
+800002fc: 01800e93 li t4,24
+80000300: 01500193 li gp,21
+80000304: 09df1063 bne t5,t4,80000384 <fail>
+
+80000308 <test_22>:
+80000308: 00000213 li tp,0
+8000030c: 00d00093 li ra,13
+80000310: 00000013 nop
+80000314: 00a08f13 addi t5,ra,10
+80000318: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000031c: 00200293 li t0,2
+80000320: fe5216e3 bne tp,t0,8000030c <test_22+0x4>
+80000324: 01700e93 li t4,23
+80000328: 01600193 li gp,22
+8000032c: 05df1c63 bne t5,t4,80000384 <fail>
+
+80000330 <test_23>:
+80000330: 00000213 li tp,0
+80000334: 00d00093 li ra,13
+80000338: 00000013 nop
+8000033c: 00000013 nop
+80000340: 00908f13 addi t5,ra,9
+80000344: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000348: 00200293 li t0,2
+8000034c: fe5214e3 bne tp,t0,80000334 <test_23+0x4>
+80000350: 01600e93 li t4,22
+80000354: 01700193 li gp,23
+80000358: 03df1663 bne t5,t4,80000384 <fail>
+
+8000035c <test_24>:
+8000035c: 02000093 li ra,32
+80000360: 02000e93 li t4,32
+80000364: 01800193 li gp,24
+80000368: 01d09e63 bne ra,t4,80000384 <fail>
+
+8000036c <test_25>:
+8000036c: 02100093 li ra,33
+80000370: 03208013 addi zero,ra,50
+80000374: 00000e93 li t4,0
+80000378: 01900193 li gp,25
+8000037c: 01d01463 bne zero,t4,80000384 <fail>
+80000380: 00301c63 bne zero,gp,80000398 <pass>
+
+80000384 <fail>:
+80000384: 0ff0000f fence
+80000388: 00018063 beqz gp,80000388 <fail+0x4>
+8000038c: 00119193 slli gp,gp,0x1
+80000390: 0011e193 ori gp,gp,1
+80000394: 00000073 ecall
+
+80000398 <pass>:
+80000398: 0ff0000f fence
+8000039c: 00100193 li gp,1
+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
diff --git a/test/riscv-tests/rv32ui-p-addi.elf b/test/riscv-tests/rv32ui-p-addi.elf
new file mode 100644
index 0000000..e13ba96
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-addi.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-p-and.dump b/test/riscv-tests/rv32ui-p-and.dump
new file mode 100644
index 0000000..ee8af53
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-and.dump
@@ -0,0 +1,467 @@
+
+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: 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: ff0100b7 lui ra,0xff010
+80000100: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
+80000104: 0f0f1137 lui sp,0xf0f1
+80000108: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+8000010c: 0020ff33 and t5,ra,sp
+80000110: 0f001eb7 lui t4,0xf001
+80000114: f00e8e93 addi t4,t4,-256 # f000f00 <_start-0x70fff100>
+80000118: 00200193 li gp,2
+8000011c: 49df1c63 bne t5,t4,800005b4 <fail>
+
+80000120 <test_3>:
+80000120: 0ff010b7 lui ra,0xff01
+80000124: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+80000128: f0f0f137 lui sp,0xf0f0f
+8000012c: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f0d0f0>
+80000130: 0020ff33 and t5,ra,sp
+80000134: 00f00eb7 lui t4,0xf00
+80000138: 0f0e8e93 addi t4,t4,240 # f000f0 <_start-0x7f0fff10>
+8000013c: 00300193 li gp,3
+80000140: 47df1a63 bne t5,t4,800005b4 <fail>
+
+80000144 <test_4>:
+80000144: 00ff00b7 lui ra,0xff0
+80000148: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+8000014c: 0f0f1137 lui sp,0xf0f1
+80000150: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80000154: 0020ff33 and t5,ra,sp
+80000158: 000f0eb7 lui t4,0xf0
+8000015c: 00fe8e93 addi t4,t4,15 # f000f <_start-0x7ff0fff1>
+80000160: 00400193 li gp,4
+80000164: 45df1863 bne t5,t4,800005b4 <fail>
+
+80000168 <test_5>:
+80000168: f00ff0b7 lui ra,0xf00ff
+8000016c: 00f08093 addi ra,ra,15 # f00ff00f <_end+0x700fd00f>
+80000170: f0f0f137 lui sp,0xf0f0f
+80000174: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f0d0f0>
+80000178: 0020ff33 and t5,ra,sp
+8000017c: f000feb7 lui t4,0xf000f
+80000180: 00500193 li gp,5
+80000184: 43df1863 bne t5,t4,800005b4 <fail>
+
+80000188 <test_6>:
+80000188: ff0100b7 lui ra,0xff010
+8000018c: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
+80000190: 0f0f1137 lui sp,0xf0f1
+80000194: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80000198: 0020f0b3 and ra,ra,sp
+8000019c: 0f001eb7 lui t4,0xf001
+800001a0: f00e8e93 addi t4,t4,-256 # f000f00 <_start-0x70fff100>
+800001a4: 00600193 li gp,6
+800001a8: 41d09663 bne ra,t4,800005b4 <fail>
+
+800001ac <test_7>:
+800001ac: 0ff010b7 lui ra,0xff01
+800001b0: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+800001b4: f0f0f137 lui sp,0xf0f0f
+800001b8: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f0d0f0>
+800001bc: 0020f133 and sp,ra,sp
+800001c0: 00f00eb7 lui t4,0xf00
+800001c4: 0f0e8e93 addi t4,t4,240 # f000f0 <_start-0x7f0fff10>
+800001c8: 00700193 li gp,7
+800001cc: 3fd11463 bne sp,t4,800005b4 <fail>
+
+800001d0 <test_8>:
+800001d0: ff0100b7 lui ra,0xff010
+800001d4: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
+800001d8: 0010f0b3 and ra,ra,ra
+800001dc: ff010eb7 lui t4,0xff010
+800001e0: f00e8e93 addi t4,t4,-256 # ff00ff00 <_end+0x7f00df00>
+800001e4: 00800193 li gp,8
+800001e8: 3dd09663 bne ra,t4,800005b4 <fail>
+
+800001ec <test_9>:
+800001ec: 00000213 li tp,0
+800001f0: ff0100b7 lui ra,0xff010
+800001f4: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
+800001f8: 0f0f1137 lui sp,0xf0f1
+800001fc: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80000200: 0020ff33 and t5,ra,sp
+80000204: 000f0313 mv t1,t5
+80000208: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000020c: 00200293 li t0,2
+80000210: fe5210e3 bne tp,t0,800001f0 <test_9+0x4>
+80000214: 0f001eb7 lui t4,0xf001
+80000218: f00e8e93 addi t4,t4,-256 # f000f00 <_start-0x70fff100>
+8000021c: 00900193 li gp,9
+80000220: 39d31a63 bne t1,t4,800005b4 <fail>
+
+80000224 <test_10>:
+80000224: 00000213 li tp,0
+80000228: 0ff010b7 lui ra,0xff01
+8000022c: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+80000230: f0f0f137 lui sp,0xf0f0f
+80000234: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f0d0f0>
+80000238: 0020ff33 and t5,ra,sp
+8000023c: 00000013 nop
+80000240: 000f0313 mv t1,t5
+80000244: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000248: 00200293 li t0,2
+8000024c: fc521ee3 bne tp,t0,80000228 <test_10+0x4>
+80000250: 00f00eb7 lui t4,0xf00
+80000254: 0f0e8e93 addi t4,t4,240 # f000f0 <_start-0x7f0fff10>
+80000258: 00a00193 li gp,10
+8000025c: 35d31c63 bne t1,t4,800005b4 <fail>
+
+80000260 <test_11>:
+80000260: 00000213 li tp,0
+80000264: 00ff00b7 lui ra,0xff0
+80000268: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+8000026c: 0f0f1137 lui sp,0xf0f1
+80000270: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80000274: 0020ff33 and t5,ra,sp
+80000278: 00000013 nop
+8000027c: 00000013 nop
+80000280: 000f0313 mv t1,t5
+80000284: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000288: 00200293 li t0,2
+8000028c: fc521ce3 bne tp,t0,80000264 <test_11+0x4>
+80000290: 000f0eb7 lui t4,0xf0
+80000294: 00fe8e93 addi t4,t4,15 # f000f <_start-0x7ff0fff1>
+80000298: 00b00193 li gp,11
+8000029c: 31d31c63 bne t1,t4,800005b4 <fail>
+
+800002a0 <test_12>:
+800002a0: 00000213 li tp,0
+800002a4: ff0100b7 lui ra,0xff010
+800002a8: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
+800002ac: 0f0f1137 lui sp,0xf0f1
+800002b0: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+800002b4: 0020ff33 and t5,ra,sp
+800002b8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800002bc: 00200293 li t0,2
+800002c0: fe5212e3 bne tp,t0,800002a4 <test_12+0x4>
+800002c4: 0f001eb7 lui t4,0xf001
+800002c8: f00e8e93 addi t4,t4,-256 # f000f00 <_start-0x70fff100>
+800002cc: 00c00193 li gp,12
+800002d0: 2fdf1263 bne t5,t4,800005b4 <fail>
+
+800002d4 <test_13>:
+800002d4: 00000213 li tp,0
+800002d8: 0ff010b7 lui ra,0xff01
+800002dc: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+800002e0: f0f0f137 lui sp,0xf0f0f
+800002e4: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f0d0f0>
+800002e8: 00000013 nop
+800002ec: 0020ff33 and t5,ra,sp
+800002f0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800002f4: 00200293 li t0,2
+800002f8: fe5210e3 bne tp,t0,800002d8 <test_13+0x4>
+800002fc: 00f00eb7 lui t4,0xf00
+80000300: 0f0e8e93 addi t4,t4,240 # f000f0 <_start-0x7f0fff10>
+80000304: 00d00193 li gp,13
+80000308: 2bdf1663 bne t5,t4,800005b4 <fail>
+
+8000030c <test_14>:
+8000030c: 00000213 li tp,0
+80000310: 00ff00b7 lui ra,0xff0
+80000314: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+80000318: 0f0f1137 lui sp,0xf0f1
+8000031c: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80000320: 00000013 nop
+80000324: 00000013 nop
+80000328: 0020ff33 and t5,ra,sp
+8000032c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000330: 00200293 li t0,2
+80000334: fc521ee3 bne tp,t0,80000310 <test_14+0x4>
+80000338: 000f0eb7 lui t4,0xf0
+8000033c: 00fe8e93 addi t4,t4,15 # f000f <_start-0x7ff0fff1>
+80000340: 00e00193 li gp,14
+80000344: 27df1863 bne t5,t4,800005b4 <fail>
+
+80000348 <test_15>:
+80000348: 00000213 li tp,0
+8000034c: ff0100b7 lui ra,0xff010
+80000350: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
+80000354: 00000013 nop
+80000358: 0f0f1137 lui sp,0xf0f1
+8000035c: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80000360: 0020ff33 and t5,ra,sp
+80000364: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000368: 00200293 li t0,2
+8000036c: fe5210e3 bne tp,t0,8000034c <test_15+0x4>
+80000370: 0f001eb7 lui t4,0xf001
+80000374: f00e8e93 addi t4,t4,-256 # f000f00 <_start-0x70fff100>
+80000378: 00f00193 li gp,15
+8000037c: 23df1c63 bne t5,t4,800005b4 <fail>
+
+80000380 <test_16>:
+80000380: 00000213 li tp,0
+80000384: 0ff010b7 lui ra,0xff01
+80000388: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+8000038c: 00000013 nop
+80000390: f0f0f137 lui sp,0xf0f0f
+80000394: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f0d0f0>
+80000398: 00000013 nop
+8000039c: 0020ff33 and t5,ra,sp
+800003a0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800003a4: 00200293 li t0,2
+800003a8: fc521ee3 bne tp,t0,80000384 <test_16+0x4>
+800003ac: 00f00eb7 lui t4,0xf00
+800003b0: 0f0e8e93 addi t4,t4,240 # f000f0 <_start-0x7f0fff10>
+800003b4: 01000193 li gp,16
+800003b8: 1fdf1e63 bne t5,t4,800005b4 <fail>
+
+800003bc <test_17>:
+800003bc: 00000213 li tp,0
+800003c0: 00ff00b7 lui ra,0xff0
+800003c4: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+800003c8: 00000013 nop
+800003cc: 00000013 nop
+800003d0: 0f0f1137 lui sp,0xf0f1
+800003d4: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+800003d8: 0020ff33 and t5,ra,sp
+800003dc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800003e0: 00200293 li t0,2
+800003e4: fc521ee3 bne tp,t0,800003c0 <test_17+0x4>
+800003e8: 000f0eb7 lui t4,0xf0
+800003ec: 00fe8e93 addi t4,t4,15 # f000f <_start-0x7ff0fff1>
+800003f0: 01100193 li gp,17
+800003f4: 1ddf1063 bne t5,t4,800005b4 <fail>
+
+800003f8 <test_18>:
+800003f8: 00000213 li tp,0
+800003fc: 0f0f1137 lui sp,0xf0f1
+80000400: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80000404: ff0100b7 lui ra,0xff010
+80000408: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
+8000040c: 0020ff33 and t5,ra,sp
+80000410: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000414: 00200293 li t0,2
+80000418: fe5212e3 bne tp,t0,800003fc <test_18+0x4>
+8000041c: 0f001eb7 lui t4,0xf001
+80000420: f00e8e93 addi t4,t4,-256 # f000f00 <_start-0x70fff100>
+80000424: 01200193 li gp,18
+80000428: 19df1663 bne t5,t4,800005b4 <fail>
+
+8000042c <test_19>:
+8000042c: 00000213 li tp,0
+80000430: f0f0f137 lui sp,0xf0f0f
+80000434: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f0d0f0>
+80000438: 0ff010b7 lui ra,0xff01
+8000043c: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+80000440: 00000013 nop
+80000444: 0020ff33 and t5,ra,sp
+80000448: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000044c: 00200293 li t0,2
+80000450: fe5210e3 bne tp,t0,80000430 <test_19+0x4>
+80000454: 00f00eb7 lui t4,0xf00
+80000458: 0f0e8e93 addi t4,t4,240 # f000f0 <_start-0x7f0fff10>
+8000045c: 01300193 li gp,19
+80000460: 15df1a63 bne t5,t4,800005b4 <fail>
+
+80000464 <test_20>:
+80000464: 00000213 li tp,0
+80000468: 0f0f1137 lui sp,0xf0f1
+8000046c: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80000470: 00ff00b7 lui ra,0xff0
+80000474: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+80000478: 00000013 nop
+8000047c: 00000013 nop
+80000480: 0020ff33 and t5,ra,sp
+80000484: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000488: 00200293 li t0,2
+8000048c: fc521ee3 bne tp,t0,80000468 <test_20+0x4>
+80000490: 000f0eb7 lui t4,0xf0
+80000494: 00fe8e93 addi t4,t4,15 # f000f <_start-0x7ff0fff1>
+80000498: 01400193 li gp,20
+8000049c: 11df1c63 bne t5,t4,800005b4 <fail>
+
+800004a0 <test_21>:
+800004a0: 00000213 li tp,0
+800004a4: 0f0f1137 lui sp,0xf0f1
+800004a8: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+800004ac: 00000013 nop
+800004b0: ff0100b7 lui ra,0xff010
+800004b4: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
+800004b8: 0020ff33 and t5,ra,sp
+800004bc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800004c0: 00200293 li t0,2
+800004c4: fe5210e3 bne tp,t0,800004a4 <test_21+0x4>
+800004c8: 0f001eb7 lui t4,0xf001
+800004cc: f00e8e93 addi t4,t4,-256 # f000f00 <_start-0x70fff100>
+800004d0: 01500193 li gp,21
+800004d4: 0fdf1063 bne t5,t4,800005b4 <fail>
+
+800004d8 <test_22>:
+800004d8: 00000213 li tp,0
+800004dc: f0f0f137 lui sp,0xf0f0f
+800004e0: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f0d0f0>
+800004e4: 00000013 nop
+800004e8: 0ff010b7 lui ra,0xff01
+800004ec: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+800004f0: 00000013 nop
+800004f4: 0020ff33 and t5,ra,sp
+800004f8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800004fc: 00200293 li t0,2
+80000500: fc521ee3 bne tp,t0,800004dc <test_22+0x4>
+80000504: 00f00eb7 lui t4,0xf00
+80000508: 0f0e8e93 addi t4,t4,240 # f000f0 <_start-0x7f0fff10>
+8000050c: 01600193 li gp,22
+80000510: 0bdf1263 bne t5,t4,800005b4 <fail>
+
+80000514 <test_23>:
+80000514: 00000213 li tp,0
+80000518: 0f0f1137 lui sp,0xf0f1
+8000051c: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80000520: 00000013 nop
+80000524: 00000013 nop
+80000528: 00ff00b7 lui ra,0xff0
+8000052c: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+80000530: 0020ff33 and t5,ra,sp
+80000534: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000538: 00200293 li t0,2
+8000053c: fc521ee3 bne tp,t0,80000518 <test_23+0x4>
+80000540: 000f0eb7 lui t4,0xf0
+80000544: 00fe8e93 addi t4,t4,15 # f000f <_start-0x7ff0fff1>
+80000548: 01700193 li gp,23
+8000054c: 07df1463 bne t5,t4,800005b4 <fail>
+
+80000550 <test_24>:
+80000550: ff0100b7 lui ra,0xff010
+80000554: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
+80000558: 00107133 and sp,zero,ra
+8000055c: 00000e93 li t4,0
+80000560: 01800193 li gp,24
+80000564: 05d11863 bne sp,t4,800005b4 <fail>
+
+80000568 <test_25>:
+80000568: 00ff00b7 lui ra,0xff0
+8000056c: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+80000570: 0000f133 and sp,ra,zero
+80000574: 00000e93 li t4,0
+80000578: 01900193 li gp,25
+8000057c: 03d11c63 bne sp,t4,800005b4 <fail>
+
+80000580 <test_26>:
+80000580: 000070b3 and ra,zero,zero
+80000584: 00000e93 li t4,0
+80000588: 01a00193 li gp,26
+8000058c: 03d09463 bne ra,t4,800005b4 <fail>
+
+80000590 <test_27>:
+80000590: 111110b7 lui ra,0x11111
+80000594: 11108093 addi ra,ra,273 # 11111111 <_start-0x6eeeeeef>
+80000598: 22222137 lui sp,0x22222
+8000059c: 22210113 addi sp,sp,546 # 22222222 <_start-0x5dddddde>
+800005a0: 0020f033 and zero,ra,sp
+800005a4: 00000e93 li t4,0
+800005a8: 01b00193 li gp,27
+800005ac: 01d01463 bne zero,t4,800005b4 <fail>
+800005b0: 00301c63 bne zero,gp,800005c8 <pass>
+
+800005b4 <fail>:
+800005b4: 0ff0000f fence
+800005b8: 00018063 beqz gp,800005b8 <fail+0x4>
+800005bc: 00119193 slli gp,gp,0x1
+800005c0: 0011e193 ori gp,gp,1
+800005c4: 00000073 ecall
+
+800005c8 <pass>:
+800005c8: 0ff0000f fence
+800005cc: 00100193 li gp,1
+800005d0: 00000073 ecall
+800005d4: c0001073 unimp
+800005d8: 0000 unimp
+800005da: 0000 unimp
+800005dc: 0000 unimp
+800005de: 0000 unimp
+800005e0: 0000 unimp
+800005e2: 0000 unimp
+800005e4: 0000 unimp
+800005e6: 0000 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
diff --git a/test/riscv-tests/rv32ui-p-and.elf b/test/riscv-tests/rv32ui-p-and.elf
new file mode 100644
index 0000000..6d8cee2
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-and.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-p-andi.dump b/test/riscv-tests/rv32ui-p-andi.dump
new file mode 100644
index 0000000..38ed8b2
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-andi.dump
@@ -0,0 +1,247 @@
+
+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: 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: ff0100b7 lui ra,0xff010
+80000100: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
+80000104: f0f0ff13 andi t5,ra,-241
+80000108: ff010eb7 lui t4,0xff010
+8000010c: f00e8e93 addi t4,t4,-256 # ff00ff00 <_end+0x7f00df00>
+80000110: 00200193 li gp,2
+80000114: 1bdf1463 bne t5,t4,800002bc <fail>
+
+80000118 <test_3>:
+80000118: 0ff010b7 lui ra,0xff01
+8000011c: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+80000120: 0f00ff13 andi t5,ra,240
+80000124: 0f000e93 li t4,240
+80000128: 00300193 li gp,3
+8000012c: 19df1863 bne t5,t4,800002bc <fail>
+
+80000130 <test_4>:
+80000130: 00ff00b7 lui ra,0xff0
+80000134: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+80000138: 70f0ff13 andi t5,ra,1807
+8000013c: 00f00e93 li t4,15
+80000140: 00400193 li gp,4
+80000144: 17df1c63 bne t5,t4,800002bc <fail>
+
+80000148 <test_5>:
+80000148: f00ff0b7 lui ra,0xf00ff
+8000014c: 00f08093 addi ra,ra,15 # f00ff00f <_end+0x700fd00f>
+80000150: 0f00ff13 andi t5,ra,240
+80000154: 00000e93 li t4,0
+80000158: 00500193 li gp,5
+8000015c: 17df1063 bne t5,t4,800002bc <fail>
+
+80000160 <test_6>:
+80000160: ff0100b7 lui ra,0xff010
+80000164: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
+80000168: 0f00f093 andi ra,ra,240
+8000016c: 00000e93 li t4,0
+80000170: 00600193 li gp,6
+80000174: 15d09463 bne ra,t4,800002bc <fail>
+
+80000178 <test_7>:
+80000178: 00000213 li tp,0
+8000017c: 0ff010b7 lui ra,0xff01
+80000180: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+80000184: 70f0ff13 andi t5,ra,1807
+80000188: 000f0313 mv t1,t5
+8000018c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000190: 00200293 li t0,2
+80000194: fe5214e3 bne tp,t0,8000017c <test_7+0x4>
+80000198: 70000e93 li t4,1792
+8000019c: 00700193 li gp,7
+800001a0: 11d31e63 bne t1,t4,800002bc <fail>
+
+800001a4 <test_8>:
+800001a4: 00000213 li tp,0
+800001a8: 00ff00b7 lui ra,0xff0
+800001ac: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+800001b0: 0f00ff13 andi t5,ra,240
+800001b4: 00000013 nop
+800001b8: 000f0313 mv t1,t5
+800001bc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800001c0: 00200293 li t0,2
+800001c4: fe5212e3 bne tp,t0,800001a8 <test_8+0x4>
+800001c8: 0f000e93 li t4,240
+800001cc: 00800193 li gp,8
+800001d0: 0fd31663 bne t1,t4,800002bc <fail>
+
+800001d4 <test_9>:
+800001d4: 00000213 li tp,0
+800001d8: f00ff0b7 lui ra,0xf00ff
+800001dc: 00f08093 addi ra,ra,15 # f00ff00f <_end+0x700fd00f>
+800001e0: f0f0ff13 andi t5,ra,-241
+800001e4: 00000013 nop
+800001e8: 00000013 nop
+800001ec: 000f0313 mv t1,t5
+800001f0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800001f4: 00200293 li t0,2
+800001f8: fe5210e3 bne tp,t0,800001d8 <test_9+0x4>
+800001fc: f00ffeb7 lui t4,0xf00ff
+80000200: 00fe8e93 addi t4,t4,15 # f00ff00f <_end+0x700fd00f>
+80000204: 00900193 li gp,9
+80000208: 0bd31a63 bne t1,t4,800002bc <fail>
+
+8000020c <test_10>:
+8000020c: 00000213 li tp,0
+80000210: 0ff010b7 lui ra,0xff01
+80000214: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+80000218: 70f0ff13 andi t5,ra,1807
+8000021c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000220: 00200293 li t0,2
+80000224: fe5216e3 bne tp,t0,80000210 <test_10+0x4>
+80000228: 70000e93 li t4,1792
+8000022c: 00a00193 li gp,10
+80000230: 09df1663 bne t5,t4,800002bc <fail>
+
+80000234 <test_11>:
+80000234: 00000213 li tp,0
+80000238: 00ff00b7 lui ra,0xff0
+8000023c: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+80000240: 00000013 nop
+80000244: 0f00ff13 andi t5,ra,240
+80000248: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000024c: 00200293 li t0,2
+80000250: fe5214e3 bne tp,t0,80000238 <test_11+0x4>
+80000254: 0f000e93 li t4,240
+80000258: 00b00193 li gp,11
+8000025c: 07df1063 bne t5,t4,800002bc <fail>
+
+80000260 <test_12>:
+80000260: 00000213 li tp,0
+80000264: f00ff0b7 lui ra,0xf00ff
+80000268: 00f08093 addi ra,ra,15 # f00ff00f <_end+0x700fd00f>
+8000026c: 00000013 nop
+80000270: 00000013 nop
+80000274: 70f0ff13 andi t5,ra,1807
+80000278: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000027c: 00200293 li t0,2
+80000280: fe5212e3 bne tp,t0,80000264 <test_12+0x4>
+80000284: 00f00e93 li t4,15
+80000288: 00c00193 li gp,12
+8000028c: 03df1863 bne t5,t4,800002bc <fail>
+
+80000290 <test_13>:
+80000290: 0f007093 andi ra,zero,240
+80000294: 00000e93 li t4,0
+80000298: 00d00193 li gp,13
+8000029c: 03d09063 bne ra,t4,800002bc <fail>
+
+800002a0 <test_14>:
+800002a0: 00ff00b7 lui ra,0xff0
+800002a4: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+800002a8: 70f0f013 andi zero,ra,1807
+800002ac: 00000e93 li t4,0
+800002b0: 00e00193 li gp,14
+800002b4: 01d01463 bne zero,t4,800002bc <fail>
+800002b8: 00301c63 bne zero,gp,800002d0 <pass>
+
+800002bc <fail>:
+800002bc: 0ff0000f fence
+800002c0: 00018063 beqz gp,800002c0 <fail+0x4>
+800002c4: 00119193 slli gp,gp,0x1
+800002c8: 0011e193 ori gp,gp,1
+800002cc: 00000073 ecall
+
+800002d0 <pass>:
+800002d0: 0ff0000f fence
+800002d4: 00100193 li gp,1
+800002d8: 00000073 ecall
+800002dc: c0001073 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
diff --git a/test/riscv-tests/rv32ui-p-andi.elf b/test/riscv-tests/rv32ui-p-andi.elf
new file mode 100644
index 0000000..fc8526f
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-andi.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-p-auipc.dump b/test/riscv-tests/rv32ui-p-auipc.dump
new file mode 100644
index 0000000..89355fa
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-auipc.dump
@@ -0,0 +1,125 @@
+
+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: 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: 00000013 nop
+80000100: 00002517 auipc a0,0x2
+80000104: 71c50513 addi a0,a0,1820 # 8000281c <_end+0x81c>
+80000108: 004005ef jal a1,8000010c <test_2+0x10>
+8000010c: 40b50533 sub a0,a0,a1
+80000110: 00002eb7 lui t4,0x2
+80000114: 710e8e93 addi t4,t4,1808 # 2710 <_start-0x7fffd8f0>
+80000118: 00200193 li gp,2
+8000011c: 03d51463 bne a0,t4,80000144 <fail>
+
+80000120 <test_3>:
+80000120: ffffe517 auipc a0,0xffffe
+80000124: 8fc50513 addi a0,a0,-1796 # 7fffda1c <_start-0x25e4>
+80000128: 004005ef jal a1,8000012c <test_3+0xc>
+8000012c: 40b50533 sub a0,a0,a1
+80000130: ffffeeb7 lui t4,0xffffe
+80000134: 8f0e8e93 addi t4,t4,-1808 # ffffd8f0 <_end+0x7fffb8f0>
+80000138: 00300193 li gp,3
+8000013c: 01d51463 bne a0,t4,80000144 <fail>
+80000140: 00301c63 bne zero,gp,80000158 <pass>
+
+80000144 <fail>:
+80000144: 0ff0000f fence
+80000148: 00018063 beqz gp,80000148 <fail+0x4>
+8000014c: 00119193 slli gp,gp,0x1
+80000150: 0011e193 ori gp,gp,1
+80000154: 00000073 ecall
+
+80000158 <pass>:
+80000158: 0ff0000f fence
+8000015c: 00100193 li gp,1
+80000160: 00000073 ecall
+80000164: c0001073 unimp
+80000168: 0000 unimp
+8000016a: 0000 unimp
+8000016c: 0000 unimp
+8000016e: 0000 unimp
+80000170: 0000 unimp
+80000172: 0000 unimp
+80000174: 0000 unimp
+80000176: 0000 unimp
+80000178: 0000 unimp
+8000017a: 0000 unimp
+8000017c: 0000 unimp
+8000017e: 0000 unimp
diff --git a/test/riscv-tests/rv32ui-p-auipc.elf b/test/riscv-tests/rv32ui-p-auipc.elf
new file mode 100644
index 0000000..424cf69
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-auipc.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-p-beq.dump b/test/riscv-tests/rv32ui-p-beq.dump
new file mode 100644
index 0000000..6b07e03
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-beq.dump
@@ -0,0 +1,325 @@
+
+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: 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: 00200193 li gp,2
+80000100: 00000093 li ra,0
+80000104: 00000113 li sp,0
+80000108: 00208663 beq ra,sp,80000114 <test_2+0x18>
+8000010c: 2a301863 bne zero,gp,800003bc <fail>
+80000110: 00301663 bne zero,gp,8000011c <test_3>
+80000114: fe208ee3 beq ra,sp,80000110 <test_2+0x14>
+80000118: 2a301263 bne zero,gp,800003bc <fail>
+
+8000011c <test_3>:
+8000011c: 00300193 li gp,3
+80000120: 00100093 li ra,1
+80000124: 00100113 li sp,1
+80000128: 00208663 beq ra,sp,80000134 <test_3+0x18>
+8000012c: 28301863 bne zero,gp,800003bc <fail>
+80000130: 00301663 bne zero,gp,8000013c <test_4>
+80000134: fe208ee3 beq ra,sp,80000130 <test_3+0x14>
+80000138: 28301263 bne zero,gp,800003bc <fail>
+
+8000013c <test_4>:
+8000013c: 00400193 li gp,4
+80000140: fff00093 li ra,-1
+80000144: fff00113 li sp,-1
+80000148: 00208663 beq ra,sp,80000154 <test_4+0x18>
+8000014c: 26301863 bne zero,gp,800003bc <fail>
+80000150: 00301663 bne zero,gp,8000015c <test_5>
+80000154: fe208ee3 beq ra,sp,80000150 <test_4+0x14>
+80000158: 26301263 bne zero,gp,800003bc <fail>
+
+8000015c <test_5>:
+8000015c: 00500193 li gp,5
+80000160: 00000093 li ra,0
+80000164: 00100113 li sp,1
+80000168: 00208463 beq ra,sp,80000170 <test_5+0x14>
+8000016c: 00301463 bne zero,gp,80000174 <test_5+0x18>
+80000170: 24301663 bne zero,gp,800003bc <fail>
+80000174: fe208ee3 beq ra,sp,80000170 <test_5+0x14>
+
+80000178 <test_6>:
+80000178: 00600193 li gp,6
+8000017c: 00100093 li ra,1
+80000180: 00000113 li sp,0
+80000184: 00208463 beq ra,sp,8000018c <test_6+0x14>
+80000188: 00301463 bne zero,gp,80000190 <test_6+0x18>
+8000018c: 22301863 bne zero,gp,800003bc <fail>
+80000190: fe208ee3 beq ra,sp,8000018c <test_6+0x14>
+
+80000194 <test_7>:
+80000194: 00700193 li gp,7
+80000198: fff00093 li ra,-1
+8000019c: 00100113 li sp,1
+800001a0: 00208463 beq ra,sp,800001a8 <test_7+0x14>
+800001a4: 00301463 bne zero,gp,800001ac <test_7+0x18>
+800001a8: 20301a63 bne zero,gp,800003bc <fail>
+800001ac: fe208ee3 beq ra,sp,800001a8 <test_7+0x14>
+
+800001b0 <test_8>:
+800001b0: 00800193 li gp,8
+800001b4: 00100093 li ra,1
+800001b8: fff00113 li sp,-1
+800001bc: 00208463 beq ra,sp,800001c4 <test_8+0x14>
+800001c0: 00301463 bne zero,gp,800001c8 <test_8+0x18>
+800001c4: 1e301c63 bne zero,gp,800003bc <fail>
+800001c8: fe208ee3 beq ra,sp,800001c4 <test_8+0x14>
+
+800001cc <test_9>:
+800001cc: 00900193 li gp,9
+800001d0: 00000213 li tp,0
+800001d4: 00000093 li ra,0
+800001d8: fff00113 li sp,-1
+800001dc: 1e208063 beq ra,sp,800003bc <fail>
+800001e0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800001e4: 00200293 li t0,2
+800001e8: fe5216e3 bne tp,t0,800001d4 <test_9+0x8>
+
+800001ec <test_10>:
+800001ec: 00a00193 li gp,10
+800001f0: 00000213 li tp,0
+800001f4: 00000093 li ra,0
+800001f8: fff00113 li sp,-1
+800001fc: 00000013 nop
+80000200: 1a208e63 beq ra,sp,800003bc <fail>
+80000204: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000208: 00200293 li t0,2
+8000020c: fe5214e3 bne tp,t0,800001f4 <test_10+0x8>
+
+80000210 <test_11>:
+80000210: 00b00193 li gp,11
+80000214: 00000213 li tp,0
+80000218: 00000093 li ra,0
+8000021c: fff00113 li sp,-1
+80000220: 00000013 nop
+80000224: 00000013 nop
+80000228: 18208a63 beq ra,sp,800003bc <fail>
+8000022c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000230: 00200293 li t0,2
+80000234: fe5212e3 bne tp,t0,80000218 <test_11+0x8>
+
+80000238 <test_12>:
+80000238: 00c00193 li gp,12
+8000023c: 00000213 li tp,0
+80000240: 00000093 li ra,0
+80000244: 00000013 nop
+80000248: fff00113 li sp,-1
+8000024c: 16208863 beq ra,sp,800003bc <fail>
+80000250: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000254: 00200293 li t0,2
+80000258: fe5214e3 bne tp,t0,80000240 <test_12+0x8>
+
+8000025c <test_13>:
+8000025c: 00d00193 li gp,13
+80000260: 00000213 li tp,0
+80000264: 00000093 li ra,0
+80000268: 00000013 nop
+8000026c: fff00113 li sp,-1
+80000270: 00000013 nop
+80000274: 14208463 beq ra,sp,800003bc <fail>
+80000278: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000027c: 00200293 li t0,2
+80000280: fe5212e3 bne tp,t0,80000264 <test_13+0x8>
+
+80000284 <test_14>:
+80000284: 00e00193 li gp,14
+80000288: 00000213 li tp,0
+8000028c: 00000093 li ra,0
+80000290: 00000013 nop
+80000294: 00000013 nop
+80000298: fff00113 li sp,-1
+8000029c: 12208063 beq ra,sp,800003bc <fail>
+800002a0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800002a4: 00200293 li t0,2
+800002a8: fe5212e3 bne tp,t0,8000028c <test_14+0x8>
+
+800002ac <test_15>:
+800002ac: 00f00193 li gp,15
+800002b0: 00000213 li tp,0
+800002b4: 00000093 li ra,0
+800002b8: fff00113 li sp,-1
+800002bc: 10208063 beq ra,sp,800003bc <fail>
+800002c0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800002c4: 00200293 li t0,2
+800002c8: fe5216e3 bne tp,t0,800002b4 <test_15+0x8>
+
+800002cc <test_16>:
+800002cc: 01000193 li gp,16
+800002d0: 00000213 li tp,0
+800002d4: 00000093 li ra,0
+800002d8: fff00113 li sp,-1
+800002dc: 00000013 nop
+800002e0: 0c208e63 beq ra,sp,800003bc <fail>
+800002e4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800002e8: 00200293 li t0,2
+800002ec: fe5214e3 bne tp,t0,800002d4 <test_16+0x8>
+
+800002f0 <test_17>:
+800002f0: 01100193 li gp,17
+800002f4: 00000213 li tp,0
+800002f8: 00000093 li ra,0
+800002fc: fff00113 li sp,-1
+80000300: 00000013 nop
+80000304: 00000013 nop
+80000308: 0a208a63 beq ra,sp,800003bc <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: 00000093 li ra,0
+80000324: 00000013 nop
+80000328: fff00113 li sp,-1
+8000032c: 08208863 beq ra,sp,800003bc <fail>
+80000330: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000334: 00200293 li t0,2
+80000338: fe5214e3 bne tp,t0,80000320 <test_18+0x8>
+
+8000033c <test_19>:
+8000033c: 01300193 li gp,19
+80000340: 00000213 li tp,0
+80000344: 00000093 li ra,0
+80000348: 00000013 nop
+8000034c: fff00113 li sp,-1
+80000350: 00000013 nop
+80000354: 06208463 beq ra,sp,800003bc <fail>
+80000358: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000035c: 00200293 li t0,2
+80000360: fe5212e3 bne tp,t0,80000344 <test_19+0x8>
+
+80000364 <test_20>:
+80000364: 01400193 li gp,20
+80000368: 00000213 li tp,0
+8000036c: 00000093 li ra,0
+80000370: 00000013 nop
+80000374: 00000013 nop
+80000378: fff00113 li sp,-1
+8000037c: 04208063 beq ra,sp,800003bc <fail>
+80000380: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000384: 00200293 li t0,2
+80000388: fe5212e3 bne tp,t0,8000036c <test_20+0x8>
+
+8000038c <test_21>:
+8000038c: 00100093 li ra,1
+80000390: 00000a63 beqz zero,800003a4 <test_21+0x18>
+80000394: 00108093 addi ra,ra,1
+80000398: 00108093 addi ra,ra,1
+8000039c: 00108093 addi ra,ra,1
+800003a0: 00108093 addi ra,ra,1
+800003a4: 00108093 addi ra,ra,1
+800003a8: 00108093 addi ra,ra,1
+800003ac: 00300e93 li t4,3
+800003b0: 01500193 li gp,21
+800003b4: 01d09463 bne ra,t4,800003bc <fail>
+800003b8: 00301c63 bne zero,gp,800003d0 <pass>
+
+800003bc <fail>:
+800003bc: 0ff0000f fence
+800003c0: 00018063 beqz gp,800003c0 <fail+0x4>
+800003c4: 00119193 slli gp,gp,0x1
+800003c8: 0011e193 ori gp,gp,1
+800003cc: 00000073 ecall
+
+800003d0 <pass>:
+800003d0: 0ff0000f fence
+800003d4: 00100193 li gp,1
+800003d8: 00000073 ecall
+800003dc: c0001073 unimp
+800003e0: 0000 unimp
+800003e2: 0000 unimp
+800003e4: 0000 unimp
+800003e6: 0000 unimp
+800003e8: 0000 unimp
+800003ea: 0000 unimp
+800003ec: 0000 unimp
+800003ee: 0000 unimp
+800003f0: 0000 unimp
+800003f2: 0000 unimp
+800003f4: 0000 unimp
+800003f6: 0000 unimp
+800003f8: 0000 unimp
+800003fa: 0000 unimp
+800003fc: 0000 unimp
+800003fe: 0000 unimp
+80000400: 0000 unimp
+80000402: 0000 unimp
diff --git a/test/riscv-tests/rv32ui-p-beq.elf b/test/riscv-tests/rv32ui-p-beq.elf
new file mode 100644
index 0000000..c453e9c
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-beq.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-p-bge.dump b/test/riscv-tests/rv32ui-p-bge.dump
new file mode 100644
index 0000000..84ffbb3
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-bge.dump
@@ -0,0 +1,339 @@
+
+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: 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: 00200193 li gp,2
+80000100: 00000093 li ra,0
+80000104: 00000113 li sp,0
+80000108: 0020d663 ble sp,ra,80000114 <test_2+0x18>
+8000010c: 30301863 bne zero,gp,8000041c <fail>
+80000110: 00301663 bne zero,gp,8000011c <test_3>
+80000114: fe20dee3 ble sp,ra,80000110 <test_2+0x14>
+80000118: 30301263 bne zero,gp,8000041c <fail>
+
+8000011c <test_3>:
+8000011c: 00300193 li gp,3
+80000120: 00100093 li ra,1
+80000124: 00100113 li sp,1
+80000128: 0020d663 ble sp,ra,80000134 <test_3+0x18>
+8000012c: 2e301863 bne zero,gp,8000041c <fail>
+80000130: 00301663 bne zero,gp,8000013c <test_4>
+80000134: fe20dee3 ble sp,ra,80000130 <test_3+0x14>
+80000138: 2e301263 bne zero,gp,8000041c <fail>
+
+8000013c <test_4>:
+8000013c: 00400193 li gp,4
+80000140: fff00093 li ra,-1
+80000144: fff00113 li sp,-1
+80000148: 0020d663 ble sp,ra,80000154 <test_4+0x18>
+8000014c: 2c301863 bne zero,gp,8000041c <fail>
+80000150: 00301663 bne zero,gp,8000015c <test_5>
+80000154: fe20dee3 ble sp,ra,80000150 <test_4+0x14>
+80000158: 2c301263 bne zero,gp,8000041c <fail>
+
+8000015c <test_5>:
+8000015c: 00500193 li gp,5
+80000160: 00100093 li ra,1
+80000164: 00000113 li sp,0
+80000168: 0020d663 ble sp,ra,80000174 <test_5+0x18>
+8000016c: 2a301863 bne zero,gp,8000041c <fail>
+80000170: 00301663 bne zero,gp,8000017c <test_6>
+80000174: fe20dee3 ble sp,ra,80000170 <test_5+0x14>
+80000178: 2a301263 bne zero,gp,8000041c <fail>
+
+8000017c <test_6>:
+8000017c: 00600193 li gp,6
+80000180: 00100093 li ra,1
+80000184: fff00113 li sp,-1
+80000188: 0020d663 ble sp,ra,80000194 <test_6+0x18>
+8000018c: 28301863 bne zero,gp,8000041c <fail>
+80000190: 00301663 bne zero,gp,8000019c <test_7>
+80000194: fe20dee3 ble sp,ra,80000190 <test_6+0x14>
+80000198: 28301263 bne zero,gp,8000041c <fail>
+
+8000019c <test_7>:
+8000019c: 00700193 li gp,7
+800001a0: fff00093 li ra,-1
+800001a4: ffe00113 li sp,-2
+800001a8: 0020d663 ble sp,ra,800001b4 <test_7+0x18>
+800001ac: 26301863 bne zero,gp,8000041c <fail>
+800001b0: 00301663 bne zero,gp,800001bc <test_8>
+800001b4: fe20dee3 ble sp,ra,800001b0 <test_7+0x14>
+800001b8: 26301263 bne zero,gp,8000041c <fail>
+
+800001bc <test_8>:
+800001bc: 00800193 li gp,8
+800001c0: 00000093 li ra,0
+800001c4: 00100113 li sp,1
+800001c8: 0020d463 ble sp,ra,800001d0 <test_8+0x14>
+800001cc: 00301463 bne zero,gp,800001d4 <test_8+0x18>
+800001d0: 24301663 bne zero,gp,8000041c <fail>
+800001d4: fe20dee3 ble sp,ra,800001d0 <test_8+0x14>
+
+800001d8 <test_9>:
+800001d8: 00900193 li gp,9
+800001dc: fff00093 li ra,-1
+800001e0: 00100113 li sp,1
+800001e4: 0020d463 ble sp,ra,800001ec <test_9+0x14>
+800001e8: 00301463 bne zero,gp,800001f0 <test_9+0x18>
+800001ec: 22301863 bne zero,gp,8000041c <fail>
+800001f0: fe20dee3 ble sp,ra,800001ec <test_9+0x14>
+
+800001f4 <test_10>:
+800001f4: 00a00193 li gp,10
+800001f8: ffe00093 li ra,-2
+800001fc: fff00113 li sp,-1
+80000200: 0020d463 ble sp,ra,80000208 <test_10+0x14>
+80000204: 00301463 bne zero,gp,8000020c <test_10+0x18>
+80000208: 20301a63 bne zero,gp,8000041c <fail>
+8000020c: fe20dee3 ble sp,ra,80000208 <test_10+0x14>
+
+80000210 <test_11>:
+80000210: 00b00193 li gp,11
+80000214: ffe00093 li ra,-2
+80000218: 00100113 li sp,1
+8000021c: 0020d463 ble sp,ra,80000224 <test_11+0x14>
+80000220: 00301463 bne zero,gp,80000228 <test_11+0x18>
+80000224: 1e301c63 bne zero,gp,8000041c <fail>
+80000228: fe20dee3 ble sp,ra,80000224 <test_11+0x14>
+
+8000022c <test_12>:
+8000022c: 00c00193 li gp,12
+80000230: 00000213 li tp,0
+80000234: fff00093 li ra,-1
+80000238: 00000113 li sp,0
+8000023c: 1e20d063 ble sp,ra,8000041c <fail>
+80000240: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000244: 00200293 li t0,2
+80000248: fe5216e3 bne tp,t0,80000234 <test_12+0x8>
+
+8000024c <test_13>:
+8000024c: 00d00193 li gp,13
+80000250: 00000213 li tp,0
+80000254: fff00093 li ra,-1
+80000258: 00000113 li sp,0
+8000025c: 00000013 nop
+80000260: 1a20de63 ble sp,ra,8000041c <fail>
+80000264: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000268: 00200293 li t0,2
+8000026c: fe5214e3 bne tp,t0,80000254 <test_13+0x8>
+
+80000270 <test_14>:
+80000270: 00e00193 li gp,14
+80000274: 00000213 li tp,0
+80000278: fff00093 li ra,-1
+8000027c: 00000113 li sp,0
+80000280: 00000013 nop
+80000284: 00000013 nop
+80000288: 1820da63 ble sp,ra,8000041c <fail>
+8000028c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000290: 00200293 li t0,2
+80000294: fe5212e3 bne tp,t0,80000278 <test_14+0x8>
+
+80000298 <test_15>:
+80000298: 00f00193 li gp,15
+8000029c: 00000213 li tp,0
+800002a0: fff00093 li ra,-1
+800002a4: 00000013 nop
+800002a8: 00000113 li sp,0
+800002ac: 1620d863 ble sp,ra,8000041c <fail>
+800002b0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800002b4: 00200293 li t0,2
+800002b8: fe5214e3 bne tp,t0,800002a0 <test_15+0x8>
+
+800002bc <test_16>:
+800002bc: 01000193 li gp,16
+800002c0: 00000213 li tp,0
+800002c4: fff00093 li ra,-1
+800002c8: 00000013 nop
+800002cc: 00000113 li sp,0
+800002d0: 00000013 nop
+800002d4: 1420d463 ble sp,ra,8000041c <fail>
+800002d8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800002dc: 00200293 li t0,2
+800002e0: fe5212e3 bne tp,t0,800002c4 <test_16+0x8>
+
+800002e4 <test_17>:
+800002e4: 01100193 li gp,17
+800002e8: 00000213 li tp,0
+800002ec: fff00093 li ra,-1
+800002f0: 00000013 nop
+800002f4: 00000013 nop
+800002f8: 00000113 li sp,0
+800002fc: 1220d063 ble sp,ra,8000041c <fail>
+80000300: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000304: 00200293 li t0,2
+80000308: fe5212e3 bne tp,t0,800002ec <test_17+0x8>
+
+8000030c <test_18>:
+8000030c: 01200193 li gp,18
+80000310: 00000213 li tp,0
+80000314: fff00093 li ra,-1
+80000318: 00000113 li sp,0
+8000031c: 1020d063 ble sp,ra,8000041c <fail>
+80000320: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000324: 00200293 li t0,2
+80000328: fe5216e3 bne tp,t0,80000314 <test_18+0x8>
+
+8000032c <test_19>:
+8000032c: 01300193 li gp,19
+80000330: 00000213 li tp,0
+80000334: fff00093 li ra,-1
+80000338: 00000113 li sp,0
+8000033c: 00000013 nop
+80000340: 0c20de63 ble sp,ra,8000041c <fail>
+80000344: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000348: 00200293 li t0,2
+8000034c: fe5214e3 bne tp,t0,80000334 <test_19+0x8>
+
+80000350 <test_20>:
+80000350: 01400193 li gp,20
+80000354: 00000213 li tp,0
+80000358: fff00093 li ra,-1
+8000035c: 00000113 li sp,0
+80000360: 00000013 nop
+80000364: 00000013 nop
+80000368: 0a20da63 ble sp,ra,8000041c <fail>
+8000036c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000370: 00200293 li t0,2
+80000374: fe5212e3 bne tp,t0,80000358 <test_20+0x8>
+
+80000378 <test_21>:
+80000378: 01500193 li gp,21
+8000037c: 00000213 li tp,0
+80000380: fff00093 li ra,-1
+80000384: 00000013 nop
+80000388: 00000113 li sp,0
+8000038c: 0820d863 ble sp,ra,8000041c <fail>
+80000390: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000394: 00200293 li t0,2
+80000398: fe5214e3 bne tp,t0,80000380 <test_21+0x8>
+
+8000039c <test_22>:
+8000039c: 01600193 li gp,22
+800003a0: 00000213 li tp,0
+800003a4: fff00093 li ra,-1
+800003a8: 00000013 nop
+800003ac: 00000113 li sp,0
+800003b0: 00000013 nop
+800003b4: 0620d463 ble sp,ra,8000041c <fail>
+800003b8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800003bc: 00200293 li t0,2
+800003c0: fe5212e3 bne tp,t0,800003a4 <test_22+0x8>
+
+800003c4 <test_23>:
+800003c4: 01700193 li gp,23
+800003c8: 00000213 li tp,0
+800003cc: fff00093 li ra,-1
+800003d0: 00000013 nop
+800003d4: 00000013 nop
+800003d8: 00000113 li sp,0
+800003dc: 0420d063 ble sp,ra,8000041c <fail>
+800003e0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800003e4: 00200293 li t0,2
+800003e8: fe5212e3 bne tp,t0,800003cc <test_23+0x8>
+
+800003ec <test_24>:
+800003ec: 00100093 li ra,1
+800003f0: 0000da63 bgez ra,80000404 <test_24+0x18>
+800003f4: 00108093 addi ra,ra,1
+800003f8: 00108093 addi ra,ra,1
+800003fc: 00108093 addi ra,ra,1
+80000400: 00108093 addi ra,ra,1
+80000404: 00108093 addi ra,ra,1
+80000408: 00108093 addi ra,ra,1
+8000040c: 00300e93 li t4,3
+80000410: 01800193 li gp,24
+80000414: 01d09463 bne ra,t4,8000041c <fail>
+80000418: 00301c63 bne zero,gp,80000430 <pass>
+
+8000041c <fail>:
+8000041c: 0ff0000f fence
+80000420: 00018063 beqz gp,80000420 <fail+0x4>
+80000424: 00119193 slli gp,gp,0x1
+80000428: 0011e193 ori gp,gp,1
+8000042c: 00000073 ecall
+
+80000430 <pass>:
+80000430: 0ff0000f fence
+80000434: 00100193 li gp,1
+80000438: 00000073 ecall
+8000043c: c0001073 unimp
+80000440: 0000 unimp
+80000442: 0000 unimp
diff --git a/test/riscv-tests/rv32ui-p-bge.elf b/test/riscv-tests/rv32ui-p-bge.elf
new file mode 100644
index 0000000..a041b4a
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-bge.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-p-bgeu.dump b/test/riscv-tests/rv32ui-p-bgeu.dump
new file mode 100644
index 0000000..bc6f3c2
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-bgeu.dump
@@ -0,0 +1,358 @@
+
+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: 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: 00200193 li gp,2
+80000100: 00000093 li ra,0
+80000104: 00000113 li sp,0
+80000108: 0020f663 bleu sp,ra,80000114 <test_2+0x18>
+8000010c: 34301263 bne zero,gp,80000450 <fail>
+80000110: 00301663 bne zero,gp,8000011c <test_3>
+80000114: fe20fee3 bleu sp,ra,80000110 <test_2+0x14>
+80000118: 32301c63 bne zero,gp,80000450 <fail>
+
+8000011c <test_3>:
+8000011c: 00300193 li gp,3
+80000120: 00100093 li ra,1
+80000124: 00100113 li sp,1
+80000128: 0020f663 bleu sp,ra,80000134 <test_3+0x18>
+8000012c: 32301263 bne zero,gp,80000450 <fail>
+80000130: 00301663 bne zero,gp,8000013c <test_4>
+80000134: fe20fee3 bleu sp,ra,80000130 <test_3+0x14>
+80000138: 30301c63 bne zero,gp,80000450 <fail>
+
+8000013c <test_4>:
+8000013c: 00400193 li gp,4
+80000140: fff00093 li ra,-1
+80000144: fff00113 li sp,-1
+80000148: 0020f663 bleu sp,ra,80000154 <test_4+0x18>
+8000014c: 30301263 bne zero,gp,80000450 <fail>
+80000150: 00301663 bne zero,gp,8000015c <test_5>
+80000154: fe20fee3 bleu sp,ra,80000150 <test_4+0x14>
+80000158: 2e301c63 bne zero,gp,80000450 <fail>
+
+8000015c <test_5>:
+8000015c: 00500193 li gp,5
+80000160: 00100093 li ra,1
+80000164: 00000113 li sp,0
+80000168: 0020f663 bleu sp,ra,80000174 <test_5+0x18>
+8000016c: 2e301263 bne zero,gp,80000450 <fail>
+80000170: 00301663 bne zero,gp,8000017c <test_6>
+80000174: fe20fee3 bleu sp,ra,80000170 <test_5+0x14>
+80000178: 2c301c63 bne zero,gp,80000450 <fail>
+
+8000017c <test_6>:
+8000017c: 00600193 li gp,6
+80000180: fff00093 li ra,-1
+80000184: ffe00113 li sp,-2
+80000188: 0020f663 bleu sp,ra,80000194 <test_6+0x18>
+8000018c: 2c301263 bne zero,gp,80000450 <fail>
+80000190: 00301663 bne zero,gp,8000019c <test_7>
+80000194: fe20fee3 bleu sp,ra,80000190 <test_6+0x14>
+80000198: 2a301c63 bne zero,gp,80000450 <fail>
+
+8000019c <test_7>:
+8000019c: 00700193 li gp,7
+800001a0: fff00093 li ra,-1
+800001a4: 00000113 li sp,0
+800001a8: 0020f663 bleu sp,ra,800001b4 <test_7+0x18>
+800001ac: 2a301263 bne zero,gp,80000450 <fail>
+800001b0: 00301663 bne zero,gp,800001bc <test_8>
+800001b4: fe20fee3 bleu sp,ra,800001b0 <test_7+0x14>
+800001b8: 28301c63 bne zero,gp,80000450 <fail>
+
+800001bc <test_8>:
+800001bc: 00800193 li gp,8
+800001c0: 00000093 li ra,0
+800001c4: 00100113 li sp,1
+800001c8: 0020f463 bleu sp,ra,800001d0 <test_8+0x14>
+800001cc: 00301463 bne zero,gp,800001d4 <test_8+0x18>
+800001d0: 28301063 bne zero,gp,80000450 <fail>
+800001d4: fe20fee3 bleu sp,ra,800001d0 <test_8+0x14>
+
+800001d8 <test_9>:
+800001d8: 00900193 li gp,9
+800001dc: ffe00093 li ra,-2
+800001e0: fff00113 li sp,-1
+800001e4: 0020f463 bleu sp,ra,800001ec <test_9+0x14>
+800001e8: 00301463 bne zero,gp,800001f0 <test_9+0x18>
+800001ec: 26301263 bne zero,gp,80000450 <fail>
+800001f0: fe20fee3 bleu sp,ra,800001ec <test_9+0x14>
+
+800001f4 <test_10>:
+800001f4: 00a00193 li gp,10
+800001f8: 00000093 li ra,0
+800001fc: fff00113 li sp,-1
+80000200: 0020f463 bleu sp,ra,80000208 <test_10+0x14>
+80000204: 00301463 bne zero,gp,8000020c <test_10+0x18>
+80000208: 24301463 bne zero,gp,80000450 <fail>
+8000020c: fe20fee3 bleu sp,ra,80000208 <test_10+0x14>
+
+80000210 <test_11>:
+80000210: 00b00193 li gp,11
+80000214: 800000b7 lui ra,0x80000
+80000218: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffffdfff>
+8000021c: 80000137 lui sp,0x80000
+80000220: 0020f463 bleu sp,ra,80000228 <test_11+0x18>
+80000224: 00301463 bne zero,gp,8000022c <test_11+0x1c>
+80000228: 22301463 bne zero,gp,80000450 <fail>
+8000022c: fe20fee3 bleu sp,ra,80000228 <test_11+0x18>
+
+80000230 <test_12>:
+80000230: 00c00193 li gp,12
+80000234: 00000213 li tp,0
+80000238: f00000b7 lui ra,0xf0000
+8000023c: fff08093 addi ra,ra,-1 # efffffff <_end+0x6fffdfff>
+80000240: f0000137 lui sp,0xf0000
+80000244: 2020f663 bleu sp,ra,80000450 <fail>
+80000248: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000024c: 00200293 li t0,2
+80000250: fe5214e3 bne tp,t0,80000238 <test_12+0x8>
+
+80000254 <test_13>:
+80000254: 00d00193 li gp,13
+80000258: 00000213 li tp,0
+8000025c: f00000b7 lui ra,0xf0000
+80000260: fff08093 addi ra,ra,-1 # efffffff <_end+0x6fffdfff>
+80000264: f0000137 lui sp,0xf0000
+80000268: 00000013 nop
+8000026c: 1e20f263 bleu sp,ra,80000450 <fail>
+80000270: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000274: 00200293 li t0,2
+80000278: fe5212e3 bne tp,t0,8000025c <test_13+0x8>
+
+8000027c <test_14>:
+8000027c: 00e00193 li gp,14
+80000280: 00000213 li tp,0
+80000284: f00000b7 lui ra,0xf0000
+80000288: fff08093 addi ra,ra,-1 # efffffff <_end+0x6fffdfff>
+8000028c: f0000137 lui sp,0xf0000
+80000290: 00000013 nop
+80000294: 00000013 nop
+80000298: 1a20fc63 bleu sp,ra,80000450 <fail>
+8000029c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800002a0: 00200293 li t0,2
+800002a4: fe5210e3 bne tp,t0,80000284 <test_14+0x8>
+
+800002a8 <test_15>:
+800002a8: 00f00193 li gp,15
+800002ac: 00000213 li tp,0
+800002b0: f00000b7 lui ra,0xf0000
+800002b4: fff08093 addi ra,ra,-1 # efffffff <_end+0x6fffdfff>
+800002b8: 00000013 nop
+800002bc: f0000137 lui sp,0xf0000
+800002c0: 1820f863 bleu sp,ra,80000450 <fail>
+800002c4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800002c8: 00200293 li t0,2
+800002cc: fe5212e3 bne tp,t0,800002b0 <test_15+0x8>
+
+800002d0 <test_16>:
+800002d0: 01000193 li gp,16
+800002d4: 00000213 li tp,0
+800002d8: f00000b7 lui ra,0xf0000
+800002dc: fff08093 addi ra,ra,-1 # efffffff <_end+0x6fffdfff>
+800002e0: 00000013 nop
+800002e4: f0000137 lui sp,0xf0000
+800002e8: 00000013 nop
+800002ec: 1620f263 bleu sp,ra,80000450 <fail>
+800002f0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800002f4: 00200293 li t0,2
+800002f8: fe5210e3 bne tp,t0,800002d8 <test_16+0x8>
+
+800002fc <test_17>:
+800002fc: 01100193 li gp,17
+80000300: 00000213 li tp,0
+80000304: f00000b7 lui ra,0xf0000
+80000308: fff08093 addi ra,ra,-1 # efffffff <_end+0x6fffdfff>
+8000030c: 00000013 nop
+80000310: 00000013 nop
+80000314: f0000137 lui sp,0xf0000
+80000318: 1220fc63 bleu sp,ra,80000450 <fail>
+8000031c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000320: 00200293 li t0,2
+80000324: fe5210e3 bne tp,t0,80000304 <test_17+0x8>
+
+80000328 <test_18>:
+80000328: 01200193 li gp,18
+8000032c: 00000213 li tp,0
+80000330: f00000b7 lui ra,0xf0000
+80000334: fff08093 addi ra,ra,-1 # efffffff <_end+0x6fffdfff>
+80000338: f0000137 lui sp,0xf0000
+8000033c: 1020fa63 bleu sp,ra,80000450 <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: f00000b7 lui ra,0xf0000
+80000358: fff08093 addi ra,ra,-1 # efffffff <_end+0x6fffdfff>
+8000035c: f0000137 lui sp,0xf0000
+80000360: 00000013 nop
+80000364: 0e20f663 bleu sp,ra,80000450 <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: f00000b7 lui ra,0xf0000
+80000380: fff08093 addi ra,ra,-1 # efffffff <_end+0x6fffdfff>
+80000384: f0000137 lui sp,0xf0000
+80000388: 00000013 nop
+8000038c: 00000013 nop
+80000390: 0c20f063 bleu sp,ra,80000450 <fail>
+80000394: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000398: 00200293 li t0,2
+8000039c: fe5210e3 bne tp,t0,8000037c <test_20+0x8>
+
+800003a0 <test_21>:
+800003a0: 01500193 li gp,21
+800003a4: 00000213 li tp,0
+800003a8: f00000b7 lui ra,0xf0000
+800003ac: fff08093 addi ra,ra,-1 # efffffff <_end+0x6fffdfff>
+800003b0: 00000013 nop
+800003b4: f0000137 lui sp,0xf0000
+800003b8: 0820fc63 bleu sp,ra,80000450 <fail>
+800003bc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800003c0: 00200293 li t0,2
+800003c4: fe5212e3 bne tp,t0,800003a8 <test_21+0x8>
+
+800003c8 <test_22>:
+800003c8: 01600193 li gp,22
+800003cc: 00000213 li tp,0
+800003d0: f00000b7 lui ra,0xf0000
+800003d4: fff08093 addi ra,ra,-1 # efffffff <_end+0x6fffdfff>
+800003d8: 00000013 nop
+800003dc: f0000137 lui sp,0xf0000
+800003e0: 00000013 nop
+800003e4: 0620f663 bleu sp,ra,80000450 <fail>
+800003e8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800003ec: 00200293 li t0,2
+800003f0: fe5210e3 bne tp,t0,800003d0 <test_22+0x8>
+
+800003f4 <test_23>:
+800003f4: 01700193 li gp,23
+800003f8: 00000213 li tp,0
+800003fc: f00000b7 lui ra,0xf0000
+80000400: fff08093 addi ra,ra,-1 # efffffff <_end+0x6fffdfff>
+80000404: 00000013 nop
+80000408: 00000013 nop
+8000040c: f0000137 lui sp,0xf0000
+80000410: 0420f063 bleu sp,ra,80000450 <fail>
+80000414: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000418: 00200293 li t0,2
+8000041c: fe5210e3 bne tp,t0,800003fc <test_23+0x8>
+
+80000420 <test_24>:
+80000420: 00100093 li ra,1
+80000424: 0000fa63 bleu zero,ra,80000438 <test_24+0x18>
+80000428: 00108093 addi ra,ra,1
+8000042c: 00108093 addi ra,ra,1
+80000430: 00108093 addi ra,ra,1
+80000434: 00108093 addi ra,ra,1
+80000438: 00108093 addi ra,ra,1
+8000043c: 00108093 addi ra,ra,1
+80000440: 00300e93 li t4,3
+80000444: 01800193 li gp,24
+80000448: 01d09463 bne ra,t4,80000450 <fail>
+8000044c: 00301c63 bne zero,gp,80000464 <pass>
+
+80000450 <fail>:
+80000450: 0ff0000f fence
+80000454: 00018063 beqz gp,80000454 <fail+0x4>
+80000458: 00119193 slli gp,gp,0x1
+8000045c: 0011e193 ori gp,gp,1
+80000460: 00000073 ecall
+
+80000464 <pass>:
+80000464: 0ff0000f fence
+80000468: 00100193 li gp,1
+8000046c: 00000073 ecall
+80000470: c0001073 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
diff --git a/test/riscv-tests/rv32ui-p-bgeu.elf b/test/riscv-tests/rv32ui-p-bgeu.elf
new file mode 100644
index 0000000..ebf5238
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-bgeu.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-p-blt.dump b/test/riscv-tests/rv32ui-p-blt.dump
new file mode 100644
index 0000000..300a412
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-blt.dump
@@ -0,0 +1,325 @@
+
+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: 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: 00200193 li gp,2
+80000100: 00000093 li ra,0
+80000104: 00100113 li sp,1
+80000108: 0020c663 blt ra,sp,80000114 <test_2+0x18>
+8000010c: 2a301863 bne zero,gp,800003bc <fail>
+80000110: 00301663 bne zero,gp,8000011c <test_3>
+80000114: fe20cee3 blt ra,sp,80000110 <test_2+0x14>
+80000118: 2a301263 bne zero,gp,800003bc <fail>
+
+8000011c <test_3>:
+8000011c: 00300193 li gp,3
+80000120: fff00093 li ra,-1
+80000124: 00100113 li sp,1
+80000128: 0020c663 blt ra,sp,80000134 <test_3+0x18>
+8000012c: 28301863 bne zero,gp,800003bc <fail>
+80000130: 00301663 bne zero,gp,8000013c <test_4>
+80000134: fe20cee3 blt ra,sp,80000130 <test_3+0x14>
+80000138: 28301263 bne zero,gp,800003bc <fail>
+
+8000013c <test_4>:
+8000013c: 00400193 li gp,4
+80000140: ffe00093 li ra,-2
+80000144: fff00113 li sp,-1
+80000148: 0020c663 blt ra,sp,80000154 <test_4+0x18>
+8000014c: 26301863 bne zero,gp,800003bc <fail>
+80000150: 00301663 bne zero,gp,8000015c <test_5>
+80000154: fe20cee3 blt ra,sp,80000150 <test_4+0x14>
+80000158: 26301263 bne zero,gp,800003bc <fail>
+
+8000015c <test_5>:
+8000015c: 00500193 li gp,5
+80000160: 00100093 li ra,1
+80000164: 00000113 li sp,0
+80000168: 0020c463 blt ra,sp,80000170 <test_5+0x14>
+8000016c: 00301463 bne zero,gp,80000174 <test_5+0x18>
+80000170: 24301663 bne zero,gp,800003bc <fail>
+80000174: fe20cee3 blt ra,sp,80000170 <test_5+0x14>
+
+80000178 <test_6>:
+80000178: 00600193 li gp,6
+8000017c: 00100093 li ra,1
+80000180: fff00113 li sp,-1
+80000184: 0020c463 blt ra,sp,8000018c <test_6+0x14>
+80000188: 00301463 bne zero,gp,80000190 <test_6+0x18>
+8000018c: 22301863 bne zero,gp,800003bc <fail>
+80000190: fe20cee3 blt ra,sp,8000018c <test_6+0x14>
+
+80000194 <test_7>:
+80000194: 00700193 li gp,7
+80000198: fff00093 li ra,-1
+8000019c: ffe00113 li sp,-2
+800001a0: 0020c463 blt ra,sp,800001a8 <test_7+0x14>
+800001a4: 00301463 bne zero,gp,800001ac <test_7+0x18>
+800001a8: 20301a63 bne zero,gp,800003bc <fail>
+800001ac: fe20cee3 blt ra,sp,800001a8 <test_7+0x14>
+
+800001b0 <test_8>:
+800001b0: 00800193 li gp,8
+800001b4: 00100093 li ra,1
+800001b8: ffe00113 li sp,-2
+800001bc: 0020c463 blt ra,sp,800001c4 <test_8+0x14>
+800001c0: 00301463 bne zero,gp,800001c8 <test_8+0x18>
+800001c4: 1e301c63 bne zero,gp,800003bc <fail>
+800001c8: fe20cee3 blt ra,sp,800001c4 <test_8+0x14>
+
+800001cc <test_9>:
+800001cc: 00900193 li gp,9
+800001d0: 00000213 li tp,0
+800001d4: 00000093 li ra,0
+800001d8: fff00113 li sp,-1
+800001dc: 1e20c063 blt ra,sp,800003bc <fail>
+800001e0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800001e4: 00200293 li t0,2
+800001e8: fe5216e3 bne tp,t0,800001d4 <test_9+0x8>
+
+800001ec <test_10>:
+800001ec: 00a00193 li gp,10
+800001f0: 00000213 li tp,0
+800001f4: 00000093 li ra,0
+800001f8: fff00113 li sp,-1
+800001fc: 00000013 nop
+80000200: 1a20ce63 blt ra,sp,800003bc <fail>
+80000204: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000208: 00200293 li t0,2
+8000020c: fe5214e3 bne tp,t0,800001f4 <test_10+0x8>
+
+80000210 <test_11>:
+80000210: 00b00193 li gp,11
+80000214: 00000213 li tp,0
+80000218: 00000093 li ra,0
+8000021c: fff00113 li sp,-1
+80000220: 00000013 nop
+80000224: 00000013 nop
+80000228: 1820ca63 blt ra,sp,800003bc <fail>
+8000022c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000230: 00200293 li t0,2
+80000234: fe5212e3 bne tp,t0,80000218 <test_11+0x8>
+
+80000238 <test_12>:
+80000238: 00c00193 li gp,12
+8000023c: 00000213 li tp,0
+80000240: 00000093 li ra,0
+80000244: 00000013 nop
+80000248: fff00113 li sp,-1
+8000024c: 1620c863 blt ra,sp,800003bc <fail>
+80000250: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000254: 00200293 li t0,2
+80000258: fe5214e3 bne tp,t0,80000240 <test_12+0x8>
+
+8000025c <test_13>:
+8000025c: 00d00193 li gp,13
+80000260: 00000213 li tp,0
+80000264: 00000093 li ra,0
+80000268: 00000013 nop
+8000026c: fff00113 li sp,-1
+80000270: 00000013 nop
+80000274: 1420c463 blt ra,sp,800003bc <fail>
+80000278: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000027c: 00200293 li t0,2
+80000280: fe5212e3 bne tp,t0,80000264 <test_13+0x8>
+
+80000284 <test_14>:
+80000284: 00e00193 li gp,14
+80000288: 00000213 li tp,0
+8000028c: 00000093 li ra,0
+80000290: 00000013 nop
+80000294: 00000013 nop
+80000298: fff00113 li sp,-1
+8000029c: 1220c063 blt ra,sp,800003bc <fail>
+800002a0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800002a4: 00200293 li t0,2
+800002a8: fe5212e3 bne tp,t0,8000028c <test_14+0x8>
+
+800002ac <test_15>:
+800002ac: 00f00193 li gp,15
+800002b0: 00000213 li tp,0
+800002b4: 00000093 li ra,0
+800002b8: fff00113 li sp,-1
+800002bc: 1020c063 blt ra,sp,800003bc <fail>
+800002c0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800002c4: 00200293 li t0,2
+800002c8: fe5216e3 bne tp,t0,800002b4 <test_15+0x8>
+
+800002cc <test_16>:
+800002cc: 01000193 li gp,16
+800002d0: 00000213 li tp,0
+800002d4: 00000093 li ra,0
+800002d8: fff00113 li sp,-1
+800002dc: 00000013 nop
+800002e0: 0c20ce63 blt ra,sp,800003bc <fail>
+800002e4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800002e8: 00200293 li t0,2
+800002ec: fe5214e3 bne tp,t0,800002d4 <test_16+0x8>
+
+800002f0 <test_17>:
+800002f0: 01100193 li gp,17
+800002f4: 00000213 li tp,0
+800002f8: 00000093 li ra,0
+800002fc: fff00113 li sp,-1
+80000300: 00000013 nop
+80000304: 00000013 nop
+80000308: 0a20ca63 blt ra,sp,800003bc <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: 00000093 li ra,0
+80000324: 00000013 nop
+80000328: fff00113 li sp,-1
+8000032c: 0820c863 blt ra,sp,800003bc <fail>
+80000330: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000334: 00200293 li t0,2
+80000338: fe5214e3 bne tp,t0,80000320 <test_18+0x8>
+
+8000033c <test_19>:
+8000033c: 01300193 li gp,19
+80000340: 00000213 li tp,0
+80000344: 00000093 li ra,0
+80000348: 00000013 nop
+8000034c: fff00113 li sp,-1
+80000350: 00000013 nop
+80000354: 0620c463 blt ra,sp,800003bc <fail>
+80000358: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000035c: 00200293 li t0,2
+80000360: fe5212e3 bne tp,t0,80000344 <test_19+0x8>
+
+80000364 <test_20>:
+80000364: 01400193 li gp,20
+80000368: 00000213 li tp,0
+8000036c: 00000093 li ra,0
+80000370: 00000013 nop
+80000374: 00000013 nop
+80000378: fff00113 li sp,-1
+8000037c: 0420c063 blt ra,sp,800003bc <fail>
+80000380: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000384: 00200293 li t0,2
+80000388: fe5212e3 bne tp,t0,8000036c <test_20+0x8>
+
+8000038c <test_21>:
+8000038c: 00100093 li ra,1
+80000390: 00104a63 bgtz ra,800003a4 <test_21+0x18>
+80000394: 00108093 addi ra,ra,1
+80000398: 00108093 addi ra,ra,1
+8000039c: 00108093 addi ra,ra,1
+800003a0: 00108093 addi ra,ra,1
+800003a4: 00108093 addi ra,ra,1
+800003a8: 00108093 addi ra,ra,1
+800003ac: 00300e93 li t4,3
+800003b0: 01500193 li gp,21
+800003b4: 01d09463 bne ra,t4,800003bc <fail>
+800003b8: 00301c63 bne zero,gp,800003d0 <pass>
+
+800003bc <fail>:
+800003bc: 0ff0000f fence
+800003c0: 00018063 beqz gp,800003c0 <fail+0x4>
+800003c4: 00119193 slli gp,gp,0x1
+800003c8: 0011e193 ori gp,gp,1
+800003cc: 00000073 ecall
+
+800003d0 <pass>:
+800003d0: 0ff0000f fence
+800003d4: 00100193 li gp,1
+800003d8: 00000073 ecall
+800003dc: c0001073 unimp
+800003e0: 0000 unimp
+800003e2: 0000 unimp
+800003e4: 0000 unimp
+800003e6: 0000 unimp
+800003e8: 0000 unimp
+800003ea: 0000 unimp
+800003ec: 0000 unimp
+800003ee: 0000 unimp
+800003f0: 0000 unimp
+800003f2: 0000 unimp
+800003f4: 0000 unimp
+800003f6: 0000 unimp
+800003f8: 0000 unimp
+800003fa: 0000 unimp
+800003fc: 0000 unimp
+800003fe: 0000 unimp
+80000400: 0000 unimp
+80000402: 0000 unimp
diff --git a/test/riscv-tests/rv32ui-p-blt.elf b/test/riscv-tests/rv32ui-p-blt.elf
new file mode 100644
index 0000000..7a544ce
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-blt.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-p-bltu.dump b/test/riscv-tests/rv32ui-p-bltu.dump
new file mode 100644
index 0000000..b2e00bd
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-bltu.dump
@@ -0,0 +1,344 @@
+
+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: 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: 00200193 li gp,2
+80000100: 00000093 li ra,0
+80000104: 00100113 li sp,1
+80000108: 0020e663 bltu ra,sp,80000114 <test_2+0x18>
+8000010c: 2e301263 bne zero,gp,800003f0 <fail>
+80000110: 00301663 bne zero,gp,8000011c <test_3>
+80000114: fe20eee3 bltu ra,sp,80000110 <test_2+0x14>
+80000118: 2c301c63 bne zero,gp,800003f0 <fail>
+
+8000011c <test_3>:
+8000011c: 00300193 li gp,3
+80000120: ffe00093 li ra,-2
+80000124: fff00113 li sp,-1
+80000128: 0020e663 bltu ra,sp,80000134 <test_3+0x18>
+8000012c: 2c301263 bne zero,gp,800003f0 <fail>
+80000130: 00301663 bne zero,gp,8000013c <test_4>
+80000134: fe20eee3 bltu ra,sp,80000130 <test_3+0x14>
+80000138: 2a301c63 bne zero,gp,800003f0 <fail>
+
+8000013c <test_4>:
+8000013c: 00400193 li gp,4
+80000140: 00000093 li ra,0
+80000144: fff00113 li sp,-1
+80000148: 0020e663 bltu ra,sp,80000154 <test_4+0x18>
+8000014c: 2a301263 bne zero,gp,800003f0 <fail>
+80000150: 00301663 bne zero,gp,8000015c <test_5>
+80000154: fe20eee3 bltu ra,sp,80000150 <test_4+0x14>
+80000158: 28301c63 bne zero,gp,800003f0 <fail>
+
+8000015c <test_5>:
+8000015c: 00500193 li gp,5
+80000160: 00100093 li ra,1
+80000164: 00000113 li sp,0
+80000168: 0020e463 bltu ra,sp,80000170 <test_5+0x14>
+8000016c: 00301463 bne zero,gp,80000174 <test_5+0x18>
+80000170: 28301063 bne zero,gp,800003f0 <fail>
+80000174: fe20eee3 bltu ra,sp,80000170 <test_5+0x14>
+
+80000178 <test_6>:
+80000178: 00600193 li gp,6
+8000017c: fff00093 li ra,-1
+80000180: ffe00113 li sp,-2
+80000184: 0020e463 bltu ra,sp,8000018c <test_6+0x14>
+80000188: 00301463 bne zero,gp,80000190 <test_6+0x18>
+8000018c: 26301263 bne zero,gp,800003f0 <fail>
+80000190: fe20eee3 bltu ra,sp,8000018c <test_6+0x14>
+
+80000194 <test_7>:
+80000194: 00700193 li gp,7
+80000198: fff00093 li ra,-1
+8000019c: 00000113 li sp,0
+800001a0: 0020e463 bltu ra,sp,800001a8 <test_7+0x14>
+800001a4: 00301463 bne zero,gp,800001ac <test_7+0x18>
+800001a8: 24301463 bne zero,gp,800003f0 <fail>
+800001ac: fe20eee3 bltu ra,sp,800001a8 <test_7+0x14>
+
+800001b0 <test_8>:
+800001b0: 00800193 li gp,8
+800001b4: 800000b7 lui ra,0x80000
+800001b8: 80000137 lui sp,0x80000
+800001bc: fff10113 addi sp,sp,-1 # 7fffffff <_end+0xffffdfff>
+800001c0: 0020e463 bltu ra,sp,800001c8 <test_8+0x18>
+800001c4: 00301463 bne zero,gp,800001cc <test_8+0x1c>
+800001c8: 22301463 bne zero,gp,800003f0 <fail>
+800001cc: fe20eee3 bltu ra,sp,800001c8 <test_8+0x18>
+
+800001d0 <test_9>:
+800001d0: 00900193 li gp,9
+800001d4: 00000213 li tp,0
+800001d8: f00000b7 lui ra,0xf0000
+800001dc: f0000137 lui sp,0xf0000
+800001e0: fff10113 addi sp,sp,-1 # efffffff <_end+0x6fffdfff>
+800001e4: 2020e663 bltu ra,sp,800003f0 <fail>
+800001e8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800001ec: 00200293 li t0,2
+800001f0: fe5214e3 bne tp,t0,800001d8 <test_9+0x8>
+
+800001f4 <test_10>:
+800001f4: 00a00193 li gp,10
+800001f8: 00000213 li tp,0
+800001fc: f00000b7 lui ra,0xf0000
+80000200: f0000137 lui sp,0xf0000
+80000204: fff10113 addi sp,sp,-1 # efffffff <_end+0x6fffdfff>
+80000208: 00000013 nop
+8000020c: 1e20e263 bltu ra,sp,800003f0 <fail>
+80000210: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000214: 00200293 li t0,2
+80000218: fe5212e3 bne tp,t0,800001fc <test_10+0x8>
+
+8000021c <test_11>:
+8000021c: 00b00193 li gp,11
+80000220: 00000213 li tp,0
+80000224: f00000b7 lui ra,0xf0000
+80000228: f0000137 lui sp,0xf0000
+8000022c: fff10113 addi sp,sp,-1 # efffffff <_end+0x6fffdfff>
+80000230: 00000013 nop
+80000234: 00000013 nop
+80000238: 1a20ec63 bltu ra,sp,800003f0 <fail>
+8000023c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000240: 00200293 li t0,2
+80000244: fe5210e3 bne tp,t0,80000224 <test_11+0x8>
+
+80000248 <test_12>:
+80000248: 00c00193 li gp,12
+8000024c: 00000213 li tp,0
+80000250: f00000b7 lui ra,0xf0000
+80000254: 00000013 nop
+80000258: f0000137 lui sp,0xf0000
+8000025c: fff10113 addi sp,sp,-1 # efffffff <_end+0x6fffdfff>
+80000260: 1820e863 bltu ra,sp,800003f0 <fail>
+80000264: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000268: 00200293 li t0,2
+8000026c: fe5212e3 bne tp,t0,80000250 <test_12+0x8>
+
+80000270 <test_13>:
+80000270: 00d00193 li gp,13
+80000274: 00000213 li tp,0
+80000278: f00000b7 lui ra,0xf0000
+8000027c: 00000013 nop
+80000280: f0000137 lui sp,0xf0000
+80000284: fff10113 addi sp,sp,-1 # efffffff <_end+0x6fffdfff>
+80000288: 00000013 nop
+8000028c: 1620e263 bltu ra,sp,800003f0 <fail>
+80000290: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000294: 00200293 li t0,2
+80000298: fe5210e3 bne tp,t0,80000278 <test_13+0x8>
+
+8000029c <test_14>:
+8000029c: 00e00193 li gp,14
+800002a0: 00000213 li tp,0
+800002a4: f00000b7 lui ra,0xf0000
+800002a8: 00000013 nop
+800002ac: 00000013 nop
+800002b0: f0000137 lui sp,0xf0000
+800002b4: fff10113 addi sp,sp,-1 # efffffff <_end+0x6fffdfff>
+800002b8: 1220ec63 bltu ra,sp,800003f0 <fail>
+800002bc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800002c0: 00200293 li t0,2
+800002c4: fe5210e3 bne tp,t0,800002a4 <test_14+0x8>
+
+800002c8 <test_15>:
+800002c8: 00f00193 li gp,15
+800002cc: 00000213 li tp,0
+800002d0: f00000b7 lui ra,0xf0000
+800002d4: f0000137 lui sp,0xf0000
+800002d8: fff10113 addi sp,sp,-1 # efffffff <_end+0x6fffdfff>
+800002dc: 1020ea63 bltu ra,sp,800003f0 <fail>
+800002e0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800002e4: 00200293 li t0,2
+800002e8: fe5214e3 bne tp,t0,800002d0 <test_15+0x8>
+
+800002ec <test_16>:
+800002ec: 01000193 li gp,16
+800002f0: 00000213 li tp,0
+800002f4: f00000b7 lui ra,0xf0000
+800002f8: f0000137 lui sp,0xf0000
+800002fc: fff10113 addi sp,sp,-1 # efffffff <_end+0x6fffdfff>
+80000300: 00000013 nop
+80000304: 0e20e663 bltu ra,sp,800003f0 <fail>
+80000308: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000030c: 00200293 li t0,2
+80000310: fe5212e3 bne tp,t0,800002f4 <test_16+0x8>
+
+80000314 <test_17>:
+80000314: 01100193 li gp,17
+80000318: 00000213 li tp,0
+8000031c: f00000b7 lui ra,0xf0000
+80000320: f0000137 lui sp,0xf0000
+80000324: fff10113 addi sp,sp,-1 # efffffff <_end+0x6fffdfff>
+80000328: 00000013 nop
+8000032c: 00000013 nop
+80000330: 0c20e063 bltu ra,sp,800003f0 <fail>
+80000334: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000338: 00200293 li t0,2
+8000033c: fe5210e3 bne tp,t0,8000031c <test_17+0x8>
+
+80000340 <test_18>:
+80000340: 01200193 li gp,18
+80000344: 00000213 li tp,0
+80000348: f00000b7 lui ra,0xf0000
+8000034c: 00000013 nop
+80000350: f0000137 lui sp,0xf0000
+80000354: fff10113 addi sp,sp,-1 # efffffff <_end+0x6fffdfff>
+80000358: 0820ec63 bltu ra,sp,800003f0 <fail>
+8000035c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000360: 00200293 li t0,2
+80000364: fe5212e3 bne tp,t0,80000348 <test_18+0x8>
+
+80000368 <test_19>:
+80000368: 01300193 li gp,19
+8000036c: 00000213 li tp,0
+80000370: f00000b7 lui ra,0xf0000
+80000374: 00000013 nop
+80000378: f0000137 lui sp,0xf0000
+8000037c: fff10113 addi sp,sp,-1 # efffffff <_end+0x6fffdfff>
+80000380: 00000013 nop
+80000384: 0620e663 bltu ra,sp,800003f0 <fail>
+80000388: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000038c: 00200293 li t0,2
+80000390: fe5210e3 bne tp,t0,80000370 <test_19+0x8>
+
+80000394 <test_20>:
+80000394: 01400193 li gp,20
+80000398: 00000213 li tp,0
+8000039c: f00000b7 lui ra,0xf0000
+800003a0: 00000013 nop
+800003a4: 00000013 nop
+800003a8: f0000137 lui sp,0xf0000
+800003ac: fff10113 addi sp,sp,-1 # efffffff <_end+0x6fffdfff>
+800003b0: 0420e063 bltu ra,sp,800003f0 <fail>
+800003b4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800003b8: 00200293 li t0,2
+800003bc: fe5210e3 bne tp,t0,8000039c <test_20+0x8>
+
+800003c0 <test_21>:
+800003c0: 00100093 li ra,1
+800003c4: 00106a63 bltu zero,ra,800003d8 <test_21+0x18>
+800003c8: 00108093 addi ra,ra,1 # f0000001 <_end+0x6fffe001>
+800003cc: 00108093 addi ra,ra,1
+800003d0: 00108093 addi ra,ra,1
+800003d4: 00108093 addi ra,ra,1
+800003d8: 00108093 addi ra,ra,1
+800003dc: 00108093 addi ra,ra,1
+800003e0: 00300e93 li t4,3
+800003e4: 01500193 li gp,21
+800003e8: 01d09463 bne ra,t4,800003f0 <fail>
+800003ec: 00301c63 bne zero,gp,80000404 <pass>
+
+800003f0 <fail>:
+800003f0: 0ff0000f fence
+800003f4: 00018063 beqz gp,800003f4 <fail+0x4>
+800003f8: 00119193 slli gp,gp,0x1
+800003fc: 0011e193 ori gp,gp,1
+80000400: 00000073 ecall
+
+80000404 <pass>:
+80000404: 0ff0000f fence
+80000408: 00100193 li gp,1
+8000040c: 00000073 ecall
+80000410: c0001073 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
diff --git a/test/riscv-tests/rv32ui-p-bltu.elf b/test/riscv-tests/rv32ui-p-bltu.elf
new file mode 100644
index 0000000..4b8907c
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-bltu.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-p-bne.dump b/test/riscv-tests/rv32ui-p-bne.dump
new file mode 100644
index 0000000..2878664
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-bne.dump
@@ -0,0 +1,324 @@
+
+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: 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: 00200193 li gp,2
+80000100: 00000093 li ra,0
+80000104: 00100113 li sp,1
+80000108: 00209663 bne ra,sp,80000114 <test_2+0x18>
+8000010c: 2a301a63 bne zero,gp,800003c0 <fail>
+80000110: 00301663 bne zero,gp,8000011c <test_3>
+80000114: fe209ee3 bne ra,sp,80000110 <test_2+0x14>
+80000118: 2a301463 bne zero,gp,800003c0 <fail>
+
+8000011c <test_3>:
+8000011c: 00300193 li gp,3
+80000120: 00100093 li ra,1
+80000124: 00000113 li sp,0
+80000128: 00209663 bne ra,sp,80000134 <test_3+0x18>
+8000012c: 28301a63 bne zero,gp,800003c0 <fail>
+80000130: 00301663 bne zero,gp,8000013c <test_4>
+80000134: fe209ee3 bne ra,sp,80000130 <test_3+0x14>
+80000138: 28301463 bne zero,gp,800003c0 <fail>
+
+8000013c <test_4>:
+8000013c: 00400193 li gp,4
+80000140: fff00093 li ra,-1
+80000144: 00100113 li sp,1
+80000148: 00209663 bne ra,sp,80000154 <test_4+0x18>
+8000014c: 26301a63 bne zero,gp,800003c0 <fail>
+80000150: 00301663 bne zero,gp,8000015c <test_5>
+80000154: fe209ee3 bne ra,sp,80000150 <test_4+0x14>
+80000158: 26301463 bne zero,gp,800003c0 <fail>
+
+8000015c <test_5>:
+8000015c: 00500193 li gp,5
+80000160: 00100093 li ra,1
+80000164: fff00113 li sp,-1
+80000168: 00209663 bne ra,sp,80000174 <test_5+0x18>
+8000016c: 24301a63 bne zero,gp,800003c0 <fail>
+80000170: 00301663 bne zero,gp,8000017c <test_6>
+80000174: fe209ee3 bne ra,sp,80000170 <test_5+0x14>
+80000178: 24301463 bne zero,gp,800003c0 <fail>
+
+8000017c <test_6>:
+8000017c: 00600193 li gp,6
+80000180: 00000093 li ra,0
+80000184: 00000113 li sp,0
+80000188: 00209463 bne ra,sp,80000190 <test_6+0x14>
+8000018c: 00301463 bne zero,gp,80000194 <test_6+0x18>
+80000190: 22301863 bne zero,gp,800003c0 <fail>
+80000194: fe209ee3 bne ra,sp,80000190 <test_6+0x14>
+
+80000198 <test_7>:
+80000198: 00700193 li gp,7
+8000019c: 00100093 li ra,1
+800001a0: 00100113 li sp,1
+800001a4: 00209463 bne ra,sp,800001ac <test_7+0x14>
+800001a8: 00301463 bne zero,gp,800001b0 <test_7+0x18>
+800001ac: 20301a63 bne zero,gp,800003c0 <fail>
+800001b0: fe209ee3 bne ra,sp,800001ac <test_7+0x14>
+
+800001b4 <test_8>:
+800001b4: 00800193 li gp,8
+800001b8: fff00093 li ra,-1
+800001bc: fff00113 li sp,-1
+800001c0: 00209463 bne ra,sp,800001c8 <test_8+0x14>
+800001c4: 00301463 bne zero,gp,800001cc <test_8+0x18>
+800001c8: 1e301c63 bne zero,gp,800003c0 <fail>
+800001cc: fe209ee3 bne ra,sp,800001c8 <test_8+0x14>
+
+800001d0 <test_9>:
+800001d0: 00900193 li gp,9
+800001d4: 00000213 li tp,0
+800001d8: 00000093 li ra,0
+800001dc: 00000113 li sp,0
+800001e0: 1e209063 bne ra,sp,800003c0 <fail>
+800001e4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800001e8: 00200293 li t0,2
+800001ec: fe5216e3 bne tp,t0,800001d8 <test_9+0x8>
+
+800001f0 <test_10>:
+800001f0: 00a00193 li gp,10
+800001f4: 00000213 li tp,0
+800001f8: 00000093 li ra,0
+800001fc: 00000113 li sp,0
+80000200: 00000013 nop
+80000204: 1a209e63 bne ra,sp,800003c0 <fail>
+80000208: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000020c: 00200293 li t0,2
+80000210: fe5214e3 bne tp,t0,800001f8 <test_10+0x8>
+
+80000214 <test_11>:
+80000214: 00b00193 li gp,11
+80000218: 00000213 li tp,0
+8000021c: 00000093 li ra,0
+80000220: 00000113 li sp,0
+80000224: 00000013 nop
+80000228: 00000013 nop
+8000022c: 18209a63 bne ra,sp,800003c0 <fail>
+80000230: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000234: 00200293 li t0,2
+80000238: fe5212e3 bne tp,t0,8000021c <test_11+0x8>
+
+8000023c <test_12>:
+8000023c: 00c00193 li gp,12
+80000240: 00000213 li tp,0
+80000244: 00000093 li ra,0
+80000248: 00000013 nop
+8000024c: 00000113 li sp,0
+80000250: 16209863 bne ra,sp,800003c0 <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: 00000093 li ra,0
+8000026c: 00000013 nop
+80000270: 00000113 li sp,0
+80000274: 00000013 nop
+80000278: 14209463 bne ra,sp,800003c0 <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: 00000093 li ra,0
+80000294: 00000013 nop
+80000298: 00000013 nop
+8000029c: 00000113 li sp,0
+800002a0: 12209063 bne ra,sp,800003c0 <fail>
+800002a4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800002a8: 00200293 li t0,2
+800002ac: fe5212e3 bne tp,t0,80000290 <test_14+0x8>
+
+800002b0 <test_15>:
+800002b0: 00f00193 li gp,15
+800002b4: 00000213 li tp,0
+800002b8: 00000093 li ra,0
+800002bc: 00000113 li sp,0
+800002c0: 10209063 bne ra,sp,800003c0 <fail>
+800002c4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800002c8: 00200293 li t0,2
+800002cc: fe5216e3 bne tp,t0,800002b8 <test_15+0x8>
+
+800002d0 <test_16>:
+800002d0: 01000193 li gp,16
+800002d4: 00000213 li tp,0
+800002d8: 00000093 li ra,0
+800002dc: 00000113 li sp,0
+800002e0: 00000013 nop
+800002e4: 0c209e63 bne ra,sp,800003c0 <fail>
+800002e8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800002ec: 00200293 li t0,2
+800002f0: fe5214e3 bne tp,t0,800002d8 <test_16+0x8>
+
+800002f4 <test_17>:
+800002f4: 01100193 li gp,17
+800002f8: 00000213 li tp,0
+800002fc: 00000093 li ra,0
+80000300: 00000113 li sp,0
+80000304: 00000013 nop
+80000308: 00000013 nop
+8000030c: 0a209a63 bne ra,sp,800003c0 <fail>
+80000310: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000314: 00200293 li t0,2
+80000318: fe5212e3 bne tp,t0,800002fc <test_17+0x8>
+
+8000031c <test_18>:
+8000031c: 01200193 li gp,18
+80000320: 00000213 li tp,0
+80000324: 00000093 li ra,0
+80000328: 00000013 nop
+8000032c: 00000113 li sp,0
+80000330: 08209863 bne ra,sp,800003c0 <fail>
+80000334: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000338: 00200293 li t0,2
+8000033c: fe5214e3 bne tp,t0,80000324 <test_18+0x8>
+
+80000340 <test_19>:
+80000340: 01300193 li gp,19
+80000344: 00000213 li tp,0
+80000348: 00000093 li ra,0
+8000034c: 00000013 nop
+80000350: 00000113 li sp,0
+80000354: 00000013 nop
+80000358: 06209463 bne ra,sp,800003c0 <fail>
+8000035c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000360: 00200293 li t0,2
+80000364: fe5212e3 bne tp,t0,80000348 <test_19+0x8>
+
+80000368 <test_20>:
+80000368: 01400193 li gp,20
+8000036c: 00000213 li tp,0
+80000370: 00000093 li ra,0
+80000374: 00000013 nop
+80000378: 00000013 nop
+8000037c: 00000113 li sp,0
+80000380: 04209063 bne ra,sp,800003c0 <fail>
+80000384: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000388: 00200293 li t0,2
+8000038c: fe5212e3 bne tp,t0,80000370 <test_20+0x8>
+
+80000390 <test_21>:
+80000390: 00100093 li ra,1
+80000394: 00009a63 bnez ra,800003a8 <test_21+0x18>
+80000398: 00108093 addi ra,ra,1
+8000039c: 00108093 addi ra,ra,1
+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: 00300e93 li t4,3
+800003b4: 01500193 li gp,21
+800003b8: 01d09463 bne ra,t4,800003c0 <fail>
+800003bc: 00301c63 bne zero,gp,800003d4 <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: 00000073 ecall
+
+800003d4 <pass>:
+800003d4: 0ff0000f fence
+800003d8: 00100193 li gp,1
+800003dc: 00000073 ecall
+800003e0: c0001073 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
diff --git a/test/riscv-tests/rv32ui-p-bne.elf b/test/riscv-tests/rv32ui-p-bne.elf
new file mode 100644
index 0000000..0835371
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-bne.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-p-fence_i.dump b/test/riscv-tests/rv32ui-p-fence_i.dump
new file mode 100644
index 0000000..2b9bfc4
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-fence_i.dump
@@ -0,0 +1,189 @@
+
+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: 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 <reset_vector+0xb0>
+800000f0: 34129073 csrw mepc,t0
+800000f4: f1402573 csrr a0,mhartid
+800000f8: 30200073 mret
+800000fc: 06f00693 li a3,111
+80000100: 00002517 auipc a0,0x2
+80000104: f0051503 lh a0,-256(a0) # 80002000 <begin_signature>
+80000108: 00002597 auipc a1,0x2
+8000010c: efa59583 lh a1,-262(a1) # 80002002 <begin_signature+0x2>
+80000110: 00000013 nop
+80000114: 00000013 nop
+80000118: 00000013 nop
+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: 00301c63 bne zero,gp,800001ec <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: 00000073 ecall
+
+800001ec <pass>:
+800001ec: 0ff0000f fence
+800001f0: 00100193 li gp,1
+800001f4: 00000073 ecall
+800001f8: c0001073 unimp
+800001fc: 0000 unimp
+800001fe: 0000 unimp
+80000200: 0000 unimp
+80000202: 0000 unimp
+80000204: 0000 unimp
+80000206: 0000 unimp
+80000208: 0000 unimp
+8000020a: 0000 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
+80000228: 0000 unimp
+8000022a: 0000 unimp
+8000022c: 0000 unimp
+8000022e: 0000 unimp
+80000230: 0000 unimp
+80000232: 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
diff --git a/test/riscv-tests/rv32ui-p-fence_i.elf b/test/riscv-tests/rv32ui-p-fence_i.elf
new file mode 100644
index 0000000..4ecf229
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-fence_i.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-p-jal.dump b/test/riscv-tests/rv32ui-p-jal.dump
new file mode 100644
index 0000000..4fa9613
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-jal.dump
@@ -0,0 +1,128 @@
+
+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: 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: 00200193 li gp,2
+80000100: 00000093 li ra,0
+80000104: 0100026f jal tp,80000114 <target_2>
+
+80000108 <linkaddr_2>:
+80000108: 00000013 nop
+8000010c: 00000013 nop
+80000110: 0400006f j 80000150 <fail>
+
+80000114 <target_2>:
+80000114: 00000117 auipc sp,0x0
+80000118: ff410113 addi sp,sp,-12 # 80000108 <linkaddr_2>
+8000011c: 02411a63 bne sp,tp,80000150 <fail>
+
+80000120 <test_3>:
+80000120: 00100093 li ra,1
+80000124: 0140006f j 80000138 <test_3+0x18>
+80000128: 00108093 addi ra,ra,1
+8000012c: 00108093 addi ra,ra,1
+80000130: 00108093 addi ra,ra,1
+80000134: 00108093 addi ra,ra,1
+80000138: 00108093 addi ra,ra,1
+8000013c: 00108093 addi ra,ra,1
+80000140: 00300e93 li t4,3
+80000144: 00300193 li gp,3
+80000148: 01d09463 bne ra,t4,80000150 <fail>
+8000014c: 00301c63 bne zero,gp,80000164 <pass>
+
+80000150 <fail>:
+80000150: 0ff0000f fence
+80000154: 00018063 beqz gp,80000154 <fail+0x4>
+80000158: 00119193 slli gp,gp,0x1
+8000015c: 0011e193 ori gp,gp,1
+80000160: 00000073 ecall
+
+80000164 <pass>:
+80000164: 0ff0000f fence
+80000168: 00100193 li gp,1
+8000016c: 00000073 ecall
+80000170: c0001073 unimp
+80000174: 0000 unimp
+80000176: 0000 unimp
+80000178: 0000 unimp
+8000017a: 0000 unimp
+8000017c: 0000 unimp
+8000017e: 0000 unimp
+80000180: 0000 unimp
+80000182: 0000 unimp
diff --git a/test/riscv-tests/rv32ui-p-jal.elf b/test/riscv-tests/rv32ui-p-jal.elf
new file mode 100644
index 0000000..48cc1bd
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-jal.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-p-jalr.dump b/test/riscv-tests/rv32ui-p-jalr.dump
new file mode 100644
index 0000000..09fdd35
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-jalr.dump
@@ -0,0 +1,166 @@
+
+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: 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: 00200193 li gp,2
+80000100: 00000293 li t0,0
+80000104: 00000317 auipc t1,0x0
+80000108: 01030313 addi t1,t1,16 # 80000114 <target_2>
+8000010c: 000302e7 jalr t0,t1
+
+80000110 <linkaddr_2>:
+80000110: 0c00006f j 800001d0 <fail>
+
+80000114 <target_2>:
+80000114: 00000317 auipc t1,0x0
+80000118: ffc30313 addi t1,t1,-4 # 80000110 <linkaddr_2>
+8000011c: 0a629a63 bne t0,t1,800001d0 <fail>
+
+80000120 <test_4>:
+80000120: 00400193 li gp,4
+80000124: 00000213 li tp,0
+80000128: 00000317 auipc t1,0x0
+8000012c: 01030313 addi t1,t1,16 # 80000138 <test_4+0x18>
+80000130: 000309e7 jalr s3,t1
+80000134: 08301e63 bne zero,gp,800001d0 <fail>
+80000138: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000013c: 00200293 li t0,2
+80000140: fe5214e3 bne tp,t0,80000128 <test_4+0x8>
+
+80000144 <test_5>:
+80000144: 00500193 li gp,5
+80000148: 00000213 li tp,0
+8000014c: 00000317 auipc t1,0x0
+80000150: 01430313 addi t1,t1,20 # 80000160 <test_5+0x1c>
+80000154: 00000013 nop
+80000158: 000309e7 jalr s3,t1
+8000015c: 06301a63 bne zero,gp,800001d0 <fail>
+80000160: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000164: 00200293 li t0,2
+80000168: fe5212e3 bne tp,t0,8000014c <test_5+0x8>
+
+8000016c <test_6>:
+8000016c: 00600193 li gp,6
+80000170: 00000213 li tp,0
+80000174: 00000317 auipc t1,0x0
+80000178: 01830313 addi t1,t1,24 # 8000018c <test_6+0x20>
+8000017c: 00000013 nop
+80000180: 00000013 nop
+80000184: 000309e7 jalr s3,t1
+80000188: 04301463 bne zero,gp,800001d0 <fail>
+8000018c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000190: 00200293 li t0,2
+80000194: fe5210e3 bne tp,t0,80000174 <test_6+0x8>
+
+80000198 <test_7>:
+80000198: 00100293 li t0,1
+8000019c: 00000317 auipc t1,0x0
+800001a0: 01c30313 addi t1,t1,28 # 800001b8 <test_7+0x20>
+800001a4: ffc30067 jr -4(t1)
+800001a8: 00128293 addi t0,t0,1
+800001ac: 00128293 addi t0,t0,1
+800001b0: 00128293 addi t0,t0,1
+800001b4: 00128293 addi t0,t0,1
+800001b8: 00128293 addi t0,t0,1
+800001bc: 00128293 addi t0,t0,1
+800001c0: 00400e93 li t4,4
+800001c4: 00700193 li gp,7
+800001c8: 01d29463 bne t0,t4,800001d0 <fail>
+800001cc: 00301c63 bne zero,gp,800001e4 <pass>
+
+800001d0 <fail>:
+800001d0: 0ff0000f fence
+800001d4: 00018063 beqz gp,800001d4 <fail+0x4>
+800001d8: 00119193 slli gp,gp,0x1
+800001dc: 0011e193 ori gp,gp,1
+800001e0: 00000073 ecall
+
+800001e4 <pass>:
+800001e4: 0ff0000f fence
+800001e8: 00100193 li gp,1
+800001ec: 00000073 ecall
+800001f0: c0001073 unimp
+800001f4: 0000 unimp
+800001f6: 0000 unimp
+800001f8: 0000 unimp
+800001fa: 0000 unimp
+800001fc: 0000 unimp
+800001fe: 0000 unimp
+80000200: 0000 unimp
+80000202: 0000 unimp
diff --git a/test/riscv-tests/rv32ui-p-jalr.elf b/test/riscv-tests/rv32ui-p-jalr.elf
new file mode 100644
index 0000000..1f91bf5
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-jalr.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-p-lb.dump b/test/riscv-tests/rv32ui-p-lb.dump
new file mode 100644
index 0000000..d7e051a
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-lb.dump
@@ -0,0 +1,306 @@
+
+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: 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: 00002097 auipc ra,0x2
+80000100: f0408093 addi ra,ra,-252 # 80002000 <begin_signature>
+80000104: 00008f03 lb t5,0(ra)
+80000108: fff00e93 li t4,-1
+8000010c: 00200193 li gp,2
+80000110: 23df1c63 bne t5,t4,80000348 <fail>
+
+80000114 <test_3>:
+80000114: 00002097 auipc ra,0x2
+80000118: eec08093 addi ra,ra,-276 # 80002000 <begin_signature>
+8000011c: 00108f03 lb t5,1(ra)
+80000120: 00000e93 li t4,0
+80000124: 00300193 li gp,3
+80000128: 23df1063 bne t5,t4,80000348 <fail>
+
+8000012c <test_4>:
+8000012c: 00002097 auipc ra,0x2
+80000130: ed408093 addi ra,ra,-300 # 80002000 <begin_signature>
+80000134: 00208f03 lb t5,2(ra)
+80000138: ff000e93 li t4,-16
+8000013c: 00400193 li gp,4
+80000140: 21df1463 bne t5,t4,80000348 <fail>
+
+80000144 <test_5>:
+80000144: 00002097 auipc ra,0x2
+80000148: ebc08093 addi ra,ra,-324 # 80002000 <begin_signature>
+8000014c: 00308f03 lb t5,3(ra)
+80000150: 00f00e93 li t4,15
+80000154: 00500193 li gp,5
+80000158: 1fdf1863 bne t5,t4,80000348 <fail>
+
+8000015c <test_6>:
+8000015c: 00002097 auipc ra,0x2
+80000160: ea708093 addi ra,ra,-345 # 80002003 <tdat4>
+80000164: ffd08f03 lb t5,-3(ra)
+80000168: fff00e93 li t4,-1
+8000016c: 00600193 li gp,6
+80000170: 1ddf1c63 bne t5,t4,80000348 <fail>
+
+80000174 <test_7>:
+80000174: 00002097 auipc ra,0x2
+80000178: e8f08093 addi ra,ra,-369 # 80002003 <tdat4>
+8000017c: ffe08f03 lb t5,-2(ra)
+80000180: 00000e93 li t4,0
+80000184: 00700193 li gp,7
+80000188: 1ddf1063 bne t5,t4,80000348 <fail>
+
+8000018c <test_8>:
+8000018c: 00002097 auipc ra,0x2
+80000190: e7708093 addi ra,ra,-393 # 80002003 <tdat4>
+80000194: fff08f03 lb t5,-1(ra)
+80000198: ff000e93 li t4,-16
+8000019c: 00800193 li gp,8
+800001a0: 1bdf1463 bne t5,t4,80000348 <fail>
+
+800001a4 <test_9>:
+800001a4: 00002097 auipc ra,0x2
+800001a8: e5f08093 addi ra,ra,-417 # 80002003 <tdat4>
+800001ac: 00008f03 lb t5,0(ra)
+800001b0: 00f00e93 li t4,15
+800001b4: 00900193 li gp,9
+800001b8: 19df1863 bne t5,t4,80000348 <fail>
+
+800001bc <test_10>:
+800001bc: 00002097 auipc ra,0x2
+800001c0: e4408093 addi ra,ra,-444 # 80002000 <begin_signature>
+800001c4: fe008093 addi ra,ra,-32
+800001c8: 02008283 lb t0,32(ra)
+800001cc: fff00e93 li t4,-1
+800001d0: 00a00193 li gp,10
+800001d4: 17d29a63 bne t0,t4,80000348 <fail>
+
+800001d8 <test_11>:
+800001d8: 00002097 auipc ra,0x2
+800001dc: e2808093 addi ra,ra,-472 # 80002000 <begin_signature>
+800001e0: ffa08093 addi ra,ra,-6
+800001e4: 00708283 lb t0,7(ra)
+800001e8: 00000e93 li t4,0
+800001ec: 00b00193 li gp,11
+800001f0: 15d29c63 bne t0,t4,80000348 <fail>
+
+800001f4 <test_12>:
+800001f4: 00c00193 li gp,12
+800001f8: 00000213 li tp,0
+800001fc: 00002097 auipc ra,0x2
+80000200: e0508093 addi ra,ra,-507 # 80002001 <tdat2>
+80000204: 00108f03 lb t5,1(ra)
+80000208: 000f0313 mv t1,t5
+8000020c: ff000e93 li t4,-16
+80000210: 13d31c63 bne t1,t4,80000348 <fail>
+80000214: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000218: 00200293 li t0,2
+8000021c: fe5210e3 bne tp,t0,800001fc <test_12+0x8>
+
+80000220 <test_13>:
+80000220: 00d00193 li gp,13
+80000224: 00000213 li tp,0
+80000228: 00002097 auipc ra,0x2
+8000022c: dda08093 addi ra,ra,-550 # 80002002 <tdat3>
+80000230: 00108f03 lb t5,1(ra)
+80000234: 00000013 nop
+80000238: 000f0313 mv t1,t5
+8000023c: 00f00e93 li t4,15
+80000240: 11d31463 bne t1,t4,80000348 <fail>
+80000244: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000248: 00200293 li t0,2
+8000024c: fc521ee3 bne tp,t0,80000228 <test_13+0x8>
+
+80000250 <test_14>:
+80000250: 00e00193 li gp,14
+80000254: 00000213 li tp,0
+80000258: 00002097 auipc ra,0x2
+8000025c: da808093 addi ra,ra,-600 # 80002000 <begin_signature>
+80000260: 00108f03 lb t5,1(ra)
+80000264: 00000013 nop
+80000268: 00000013 nop
+8000026c: 000f0313 mv t1,t5
+80000270: 00000e93 li t4,0
+80000274: 0dd31a63 bne t1,t4,80000348 <fail>
+80000278: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000027c: 00200293 li t0,2
+80000280: fc521ce3 bne tp,t0,80000258 <test_14+0x8>
+
+80000284 <test_15>:
+80000284: 00f00193 li gp,15
+80000288: 00000213 li tp,0
+8000028c: 00002097 auipc ra,0x2
+80000290: d7508093 addi ra,ra,-651 # 80002001 <tdat2>
+80000294: 00108f03 lb t5,1(ra)
+80000298: ff000e93 li t4,-16
+8000029c: 0bdf1663 bne t5,t4,80000348 <fail>
+800002a0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800002a4: 00200293 li t0,2
+800002a8: fe5212e3 bne tp,t0,8000028c <test_15+0x8>
+
+800002ac <test_16>:
+800002ac: 01000193 li gp,16
+800002b0: 00000213 li tp,0
+800002b4: 00002097 auipc ra,0x2
+800002b8: d4e08093 addi ra,ra,-690 # 80002002 <tdat3>
+800002bc: 00000013 nop
+800002c0: 00108f03 lb t5,1(ra)
+800002c4: 00f00e93 li t4,15
+800002c8: 09df1063 bne t5,t4,80000348 <fail>
+800002cc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800002d0: 00200293 li t0,2
+800002d4: fe5210e3 bne tp,t0,800002b4 <test_16+0x8>
+
+800002d8 <test_17>:
+800002d8: 01100193 li gp,17
+800002dc: 00000213 li tp,0
+800002e0: 00002097 auipc ra,0x2
+800002e4: d2008093 addi ra,ra,-736 # 80002000 <begin_signature>
+800002e8: 00000013 nop
+800002ec: 00000013 nop
+800002f0: 00108f03 lb t5,1(ra)
+800002f4: 00000e93 li t4,0
+800002f8: 05df1863 bne t5,t4,80000348 <fail>
+800002fc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000300: 00200293 li t0,2
+80000304: fc521ee3 bne tp,t0,800002e0 <test_17+0x8>
+
+80000308 <test_18>:
+80000308: 00002297 auipc t0,0x2
+8000030c: cf828293 addi t0,t0,-776 # 80002000 <begin_signature>
+80000310: 00028103 lb sp,0(t0)
+80000314: 00200113 li sp,2
+80000318: 00200e93 li t4,2
+8000031c: 01200193 li gp,18
+80000320: 03d11463 bne sp,t4,80000348 <fail>
+
+80000324 <test_19>:
+80000324: 00002297 auipc t0,0x2
+80000328: cdc28293 addi t0,t0,-804 # 80002000 <begin_signature>
+8000032c: 00028103 lb sp,0(t0)
+80000330: 00000013 nop
+80000334: 00200113 li sp,2
+80000338: 00200e93 li t4,2
+8000033c: 01300193 li gp,19
+80000340: 01d11463 bne sp,t4,80000348 <fail>
+80000344: 00301c63 bne zero,gp,8000035c <pass>
+
+80000348 <fail>:
+80000348: 0ff0000f fence
+8000034c: 00018063 beqz gp,8000034c <fail+0x4>
+80000350: 00119193 slli gp,gp,0x1
+80000354: 0011e193 ori gp,gp,1
+80000358: 00000073 ecall
+
+8000035c <pass>:
+8000035c: 0ff0000f fence
+80000360: 00100193 li gp,1
+80000364: 00000073 ecall
+80000368: c0001073 unimp
+8000036c: 0000 unimp
+8000036e: 0000 unimp
+80000370: 0000 unimp
+80000372: 0000 unimp
+80000374: 0000 unimp
+80000376: 0000 unimp
+80000378: 0000 unimp
+8000037a: 0000 unimp
+8000037c: 0000 unimp
+8000037e: 0000 unimp
+80000380: 0000 unimp
+80000382: 0000 unimp
+
+Disassembly of section .data:
+
+80002000 <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.
+
diff --git a/test/riscv-tests/rv32ui-p-lb.elf b/test/riscv-tests/rv32ui-p-lb.elf
new file mode 100644
index 0000000..1f282e2
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-lb.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-p-lbu.dump b/test/riscv-tests/rv32ui-p-lbu.dump
new file mode 100644
index 0000000..ca55e4d
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-lbu.dump
@@ -0,0 +1,306 @@
+
+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: 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: 00002097 auipc ra,0x2
+80000100: f0408093 addi ra,ra,-252 # 80002000 <begin_signature>
+80000104: 0000cf03 lbu t5,0(ra)
+80000108: 0ff00e93 li t4,255
+8000010c: 00200193 li gp,2
+80000110: 23df1c63 bne t5,t4,80000348 <fail>
+
+80000114 <test_3>:
+80000114: 00002097 auipc ra,0x2
+80000118: eec08093 addi ra,ra,-276 # 80002000 <begin_signature>
+8000011c: 0010cf03 lbu t5,1(ra)
+80000120: 00000e93 li t4,0
+80000124: 00300193 li gp,3
+80000128: 23df1063 bne t5,t4,80000348 <fail>
+
+8000012c <test_4>:
+8000012c: 00002097 auipc ra,0x2
+80000130: ed408093 addi ra,ra,-300 # 80002000 <begin_signature>
+80000134: 0020cf03 lbu t5,2(ra)
+80000138: 0f000e93 li t4,240
+8000013c: 00400193 li gp,4
+80000140: 21df1463 bne t5,t4,80000348 <fail>
+
+80000144 <test_5>:
+80000144: 00002097 auipc ra,0x2
+80000148: ebc08093 addi ra,ra,-324 # 80002000 <begin_signature>
+8000014c: 0030cf03 lbu t5,3(ra)
+80000150: 00f00e93 li t4,15
+80000154: 00500193 li gp,5
+80000158: 1fdf1863 bne t5,t4,80000348 <fail>
+
+8000015c <test_6>:
+8000015c: 00002097 auipc ra,0x2
+80000160: ea708093 addi ra,ra,-345 # 80002003 <tdat4>
+80000164: ffd0cf03 lbu t5,-3(ra)
+80000168: 0ff00e93 li t4,255
+8000016c: 00600193 li gp,6
+80000170: 1ddf1c63 bne t5,t4,80000348 <fail>
+
+80000174 <test_7>:
+80000174: 00002097 auipc ra,0x2
+80000178: e8f08093 addi ra,ra,-369 # 80002003 <tdat4>
+8000017c: ffe0cf03 lbu t5,-2(ra)
+80000180: 00000e93 li t4,0
+80000184: 00700193 li gp,7
+80000188: 1ddf1063 bne t5,t4,80000348 <fail>
+
+8000018c <test_8>:
+8000018c: 00002097 auipc ra,0x2
+80000190: e7708093 addi ra,ra,-393 # 80002003 <tdat4>
+80000194: fff0cf03 lbu t5,-1(ra)
+80000198: 0f000e93 li t4,240
+8000019c: 00800193 li gp,8
+800001a0: 1bdf1463 bne t5,t4,80000348 <fail>
+
+800001a4 <test_9>:
+800001a4: 00002097 auipc ra,0x2
+800001a8: e5f08093 addi ra,ra,-417 # 80002003 <tdat4>
+800001ac: 0000cf03 lbu t5,0(ra)
+800001b0: 00f00e93 li t4,15
+800001b4: 00900193 li gp,9
+800001b8: 19df1863 bne t5,t4,80000348 <fail>
+
+800001bc <test_10>:
+800001bc: 00002097 auipc ra,0x2
+800001c0: e4408093 addi ra,ra,-444 # 80002000 <begin_signature>
+800001c4: fe008093 addi ra,ra,-32
+800001c8: 0200c283 lbu t0,32(ra)
+800001cc: 0ff00e93 li t4,255
+800001d0: 00a00193 li gp,10
+800001d4: 17d29a63 bne t0,t4,80000348 <fail>
+
+800001d8 <test_11>:
+800001d8: 00002097 auipc ra,0x2
+800001dc: e2808093 addi ra,ra,-472 # 80002000 <begin_signature>
+800001e0: ffa08093 addi ra,ra,-6
+800001e4: 0070c283 lbu t0,7(ra)
+800001e8: 00000e93 li t4,0
+800001ec: 00b00193 li gp,11
+800001f0: 15d29c63 bne t0,t4,80000348 <fail>
+
+800001f4 <test_12>:
+800001f4: 00c00193 li gp,12
+800001f8: 00000213 li tp,0
+800001fc: 00002097 auipc ra,0x2
+80000200: e0508093 addi ra,ra,-507 # 80002001 <tdat2>
+80000204: 0010cf03 lbu t5,1(ra)
+80000208: 000f0313 mv t1,t5
+8000020c: 0f000e93 li t4,240
+80000210: 13d31c63 bne t1,t4,80000348 <fail>
+80000214: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000218: 00200293 li t0,2
+8000021c: fe5210e3 bne tp,t0,800001fc <test_12+0x8>
+
+80000220 <test_13>:
+80000220: 00d00193 li gp,13
+80000224: 00000213 li tp,0
+80000228: 00002097 auipc ra,0x2
+8000022c: dda08093 addi ra,ra,-550 # 80002002 <tdat3>
+80000230: 0010cf03 lbu t5,1(ra)
+80000234: 00000013 nop
+80000238: 000f0313 mv t1,t5
+8000023c: 00f00e93 li t4,15
+80000240: 11d31463 bne t1,t4,80000348 <fail>
+80000244: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000248: 00200293 li t0,2
+8000024c: fc521ee3 bne tp,t0,80000228 <test_13+0x8>
+
+80000250 <test_14>:
+80000250: 00e00193 li gp,14
+80000254: 00000213 li tp,0
+80000258: 00002097 auipc ra,0x2
+8000025c: da808093 addi ra,ra,-600 # 80002000 <begin_signature>
+80000260: 0010cf03 lbu t5,1(ra)
+80000264: 00000013 nop
+80000268: 00000013 nop
+8000026c: 000f0313 mv t1,t5
+80000270: 00000e93 li t4,0
+80000274: 0dd31a63 bne t1,t4,80000348 <fail>
+80000278: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000027c: 00200293 li t0,2
+80000280: fc521ce3 bne tp,t0,80000258 <test_14+0x8>
+
+80000284 <test_15>:
+80000284: 00f00193 li gp,15
+80000288: 00000213 li tp,0
+8000028c: 00002097 auipc ra,0x2
+80000290: d7508093 addi ra,ra,-651 # 80002001 <tdat2>
+80000294: 0010cf03 lbu t5,1(ra)
+80000298: 0f000e93 li t4,240
+8000029c: 0bdf1663 bne t5,t4,80000348 <fail>
+800002a0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800002a4: 00200293 li t0,2
+800002a8: fe5212e3 bne tp,t0,8000028c <test_15+0x8>
+
+800002ac <test_16>:
+800002ac: 01000193 li gp,16
+800002b0: 00000213 li tp,0
+800002b4: 00002097 auipc ra,0x2
+800002b8: d4e08093 addi ra,ra,-690 # 80002002 <tdat3>
+800002bc: 00000013 nop
+800002c0: 0010cf03 lbu t5,1(ra)
+800002c4: 00f00e93 li t4,15
+800002c8: 09df1063 bne t5,t4,80000348 <fail>
+800002cc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800002d0: 00200293 li t0,2
+800002d4: fe5210e3 bne tp,t0,800002b4 <test_16+0x8>
+
+800002d8 <test_17>:
+800002d8: 01100193 li gp,17
+800002dc: 00000213 li tp,0
+800002e0: 00002097 auipc ra,0x2
+800002e4: d2008093 addi ra,ra,-736 # 80002000 <begin_signature>
+800002e8: 00000013 nop
+800002ec: 00000013 nop
+800002f0: 0010cf03 lbu t5,1(ra)
+800002f4: 00000e93 li t4,0
+800002f8: 05df1863 bne t5,t4,80000348 <fail>
+800002fc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000300: 00200293 li t0,2
+80000304: fc521ee3 bne tp,t0,800002e0 <test_17+0x8>
+
+80000308 <test_18>:
+80000308: 00002297 auipc t0,0x2
+8000030c: cf828293 addi t0,t0,-776 # 80002000 <begin_signature>
+80000310: 0002c103 lbu sp,0(t0)
+80000314: 00200113 li sp,2
+80000318: 00200e93 li t4,2
+8000031c: 01200193 li gp,18
+80000320: 03d11463 bne sp,t4,80000348 <fail>
+
+80000324 <test_19>:
+80000324: 00002297 auipc t0,0x2
+80000328: cdc28293 addi t0,t0,-804 # 80002000 <begin_signature>
+8000032c: 0002c103 lbu sp,0(t0)
+80000330: 00000013 nop
+80000334: 00200113 li sp,2
+80000338: 00200e93 li t4,2
+8000033c: 01300193 li gp,19
+80000340: 01d11463 bne sp,t4,80000348 <fail>
+80000344: 00301c63 bne zero,gp,8000035c <pass>
+
+80000348 <fail>:
+80000348: 0ff0000f fence
+8000034c: 00018063 beqz gp,8000034c <fail+0x4>
+80000350: 00119193 slli gp,gp,0x1
+80000354: 0011e193 ori gp,gp,1
+80000358: 00000073 ecall
+
+8000035c <pass>:
+8000035c: 0ff0000f fence
+80000360: 00100193 li gp,1
+80000364: 00000073 ecall
+80000368: c0001073 unimp
+8000036c: 0000 unimp
+8000036e: 0000 unimp
+80000370: 0000 unimp
+80000372: 0000 unimp
+80000374: 0000 unimp
+80000376: 0000 unimp
+80000378: 0000 unimp
+8000037a: 0000 unimp
+8000037c: 0000 unimp
+8000037e: 0000 unimp
+80000380: 0000 unimp
+80000382: 0000 unimp
+
+Disassembly of section .data:
+
+80002000 <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.
+
diff --git a/test/riscv-tests/rv32ui-p-lbu.elf b/test/riscv-tests/rv32ui-p-lbu.elf
new file mode 100644
index 0000000..f2983fa
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-lbu.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-p-lh.dump b/test/riscv-tests/rv32ui-p-lh.dump
new file mode 100644
index 0000000..df4c8d8
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-lh.dump
@@ -0,0 +1,327 @@
+
+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: 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: 00002097 auipc ra,0x2
+80000100: f0408093 addi ra,ra,-252 # 80002000 <begin_signature>
+80000104: 00009f03 lh t5,0(ra)
+80000108: 0ff00e93 li t4,255
+8000010c: 00200193 li gp,2
+80000110: 25df1c63 bne t5,t4,80000368 <fail>
+
+80000114 <test_3>:
+80000114: 00002097 auipc ra,0x2
+80000118: eec08093 addi ra,ra,-276 # 80002000 <begin_signature>
+8000011c: 00209f03 lh t5,2(ra)
+80000120: f0000e93 li t4,-256
+80000124: 00300193 li gp,3
+80000128: 25df1063 bne t5,t4,80000368 <fail>
+
+8000012c <test_4>:
+8000012c: 00002097 auipc ra,0x2
+80000130: ed408093 addi ra,ra,-300 # 80002000 <begin_signature>
+80000134: 00409f03 lh t5,4(ra)
+80000138: 00001eb7 lui t4,0x1
+8000013c: ff0e8e93 addi t4,t4,-16 # ff0 <_start-0x7ffff010>
+80000140: 00400193 li gp,4
+80000144: 23df1263 bne t5,t4,80000368 <fail>
+
+80000148 <test_5>:
+80000148: 00002097 auipc ra,0x2
+8000014c: eb808093 addi ra,ra,-328 # 80002000 <begin_signature>
+80000150: 00609f03 lh t5,6(ra)
+80000154: fffffeb7 lui t4,0xfffff
+80000158: 00fe8e93 addi t4,t4,15 # fffff00f <_end+0x7fffcfff>
+8000015c: 00500193 li gp,5
+80000160: 21df1463 bne t5,t4,80000368 <fail>
+
+80000164 <test_6>:
+80000164: 00002097 auipc ra,0x2
+80000168: ea208093 addi ra,ra,-350 # 80002006 <tdat4>
+8000016c: ffa09f03 lh t5,-6(ra)
+80000170: 0ff00e93 li t4,255
+80000174: 00600193 li gp,6
+80000178: 1fdf1863 bne t5,t4,80000368 <fail>
+
+8000017c <test_7>:
+8000017c: 00002097 auipc ra,0x2
+80000180: e8a08093 addi ra,ra,-374 # 80002006 <tdat4>
+80000184: ffc09f03 lh t5,-4(ra)
+80000188: f0000e93 li t4,-256
+8000018c: 00700193 li gp,7
+80000190: 1ddf1c63 bne t5,t4,80000368 <fail>
+
+80000194 <test_8>:
+80000194: 00002097 auipc ra,0x2
+80000198: e7208093 addi ra,ra,-398 # 80002006 <tdat4>
+8000019c: ffe09f03 lh t5,-2(ra)
+800001a0: 00001eb7 lui t4,0x1
+800001a4: ff0e8e93 addi t4,t4,-16 # ff0 <_start-0x7ffff010>
+800001a8: 00800193 li gp,8
+800001ac: 1bdf1e63 bne t5,t4,80000368 <fail>
+
+800001b0 <test_9>:
+800001b0: 00002097 auipc ra,0x2
+800001b4: e5608093 addi ra,ra,-426 # 80002006 <tdat4>
+800001b8: 00009f03 lh t5,0(ra)
+800001bc: fffffeb7 lui t4,0xfffff
+800001c0: 00fe8e93 addi t4,t4,15 # fffff00f <_end+0x7fffcfff>
+800001c4: 00900193 li gp,9
+800001c8: 1bdf1063 bne t5,t4,80000368 <fail>
+
+800001cc <test_10>:
+800001cc: 00002097 auipc ra,0x2
+800001d0: e3408093 addi ra,ra,-460 # 80002000 <begin_signature>
+800001d4: fe008093 addi ra,ra,-32
+800001d8: 02009283 lh t0,32(ra)
+800001dc: 0ff00e93 li t4,255
+800001e0: 00a00193 li gp,10
+800001e4: 19d29263 bne t0,t4,80000368 <fail>
+
+800001e8 <test_11>:
+800001e8: 00002097 auipc ra,0x2
+800001ec: e1808093 addi ra,ra,-488 # 80002000 <begin_signature>
+800001f0: ffb08093 addi ra,ra,-5
+800001f4: 00709283 lh t0,7(ra)
+800001f8: f0000e93 li t4,-256
+800001fc: 00b00193 li gp,11
+80000200: 17d29463 bne t0,t4,80000368 <fail>
+
+80000204 <test_12>:
+80000204: 00c00193 li gp,12
+80000208: 00000213 li tp,0
+8000020c: 00002097 auipc ra,0x2
+80000210: df608093 addi ra,ra,-522 # 80002002 <tdat2>
+80000214: 00209f03 lh t5,2(ra)
+80000218: 000f0313 mv t1,t5
+8000021c: 00001eb7 lui t4,0x1
+80000220: ff0e8e93 addi t4,t4,-16 # ff0 <_start-0x7ffff010>
+80000224: 15d31263 bne t1,t4,80000368 <fail>
+80000228: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000022c: 00200293 li t0,2
+80000230: fc521ee3 bne tp,t0,8000020c <test_12+0x8>
+
+80000234 <test_13>:
+80000234: 00d00193 li gp,13
+80000238: 00000213 li tp,0
+8000023c: 00002097 auipc ra,0x2
+80000240: dc808093 addi ra,ra,-568 # 80002004 <tdat3>
+80000244: 00209f03 lh t5,2(ra)
+80000248: 00000013 nop
+8000024c: 000f0313 mv t1,t5
+80000250: fffffeb7 lui t4,0xfffff
+80000254: 00fe8e93 addi t4,t4,15 # fffff00f <_end+0x7fffcfff>
+80000258: 11d31863 bne t1,t4,80000368 <fail>
+8000025c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000260: 00200293 li t0,2
+80000264: fc521ce3 bne tp,t0,8000023c <test_13+0x8>
+
+80000268 <test_14>:
+80000268: 00e00193 li gp,14
+8000026c: 00000213 li tp,0
+80000270: 00002097 auipc ra,0x2
+80000274: d9008093 addi ra,ra,-624 # 80002000 <begin_signature>
+80000278: 00209f03 lh t5,2(ra)
+8000027c: 00000013 nop
+80000280: 00000013 nop
+80000284: 000f0313 mv t1,t5
+80000288: f0000e93 li t4,-256
+8000028c: 0dd31e63 bne t1,t4,80000368 <fail>
+80000290: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000294: 00200293 li t0,2
+80000298: fc521ce3 bne tp,t0,80000270 <test_14+0x8>
+
+8000029c <test_15>:
+8000029c: 00f00193 li gp,15
+800002a0: 00000213 li tp,0
+800002a4: 00002097 auipc ra,0x2
+800002a8: d5e08093 addi ra,ra,-674 # 80002002 <tdat2>
+800002ac: 00209f03 lh t5,2(ra)
+800002b0: 00001eb7 lui t4,0x1
+800002b4: ff0e8e93 addi t4,t4,-16 # ff0 <_start-0x7ffff010>
+800002b8: 0bdf1863 bne t5,t4,80000368 <fail>
+800002bc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800002c0: 00200293 li t0,2
+800002c4: fe5210e3 bne tp,t0,800002a4 <test_15+0x8>
+
+800002c8 <test_16>:
+800002c8: 01000193 li gp,16
+800002cc: 00000213 li tp,0
+800002d0: 00002097 auipc ra,0x2
+800002d4: d3408093 addi ra,ra,-716 # 80002004 <tdat3>
+800002d8: 00000013 nop
+800002dc: 00209f03 lh t5,2(ra)
+800002e0: fffffeb7 lui t4,0xfffff
+800002e4: 00fe8e93 addi t4,t4,15 # fffff00f <_end+0x7fffcfff>
+800002e8: 09df1063 bne t5,t4,80000368 <fail>
+800002ec: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800002f0: 00200293 li t0,2
+800002f4: fc521ee3 bne tp,t0,800002d0 <test_16+0x8>
+
+800002f8 <test_17>:
+800002f8: 01100193 li gp,17
+800002fc: 00000213 li tp,0
+80000300: 00002097 auipc ra,0x2
+80000304: d0008093 addi ra,ra,-768 # 80002000 <begin_signature>
+80000308: 00000013 nop
+8000030c: 00000013 nop
+80000310: 00209f03 lh t5,2(ra)
+80000314: f0000e93 li t4,-256
+80000318: 05df1863 bne t5,t4,80000368 <fail>
+8000031c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000320: 00200293 li t0,2
+80000324: fc521ee3 bne tp,t0,80000300 <test_17+0x8>
+
+80000328 <test_18>:
+80000328: 00002297 auipc t0,0x2
+8000032c: cd828293 addi t0,t0,-808 # 80002000 <begin_signature>
+80000330: 00029103 lh sp,0(t0)
+80000334: 00200113 li sp,2
+80000338: 00200e93 li t4,2
+8000033c: 01200193 li gp,18
+80000340: 03d11463 bne sp,t4,80000368 <fail>
+
+80000344 <test_19>:
+80000344: 00002297 auipc t0,0x2
+80000348: cbc28293 addi t0,t0,-836 # 80002000 <begin_signature>
+8000034c: 00029103 lh sp,0(t0)
+80000350: 00000013 nop
+80000354: 00200113 li sp,2
+80000358: 00200e93 li t4,2
+8000035c: 01300193 li gp,19
+80000360: 01d11463 bne sp,t4,80000368 <fail>
+80000364: 00301c63 bne zero,gp,8000037c <pass>
+
+80000368 <fail>:
+80000368: 0ff0000f fence
+8000036c: 00018063 beqz gp,8000036c <fail+0x4>
+80000370: 00119193 slli gp,gp,0x1
+80000374: 0011e193 ori gp,gp,1
+80000378: 00000073 ecall
+
+8000037c <pass>:
+8000037c: 0ff0000f fence
+80000380: 00100193 li gp,1
+80000384: 00000073 ecall
+80000388: c0001073 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: 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
diff --git a/test/riscv-tests/rv32ui-p-lh.elf b/test/riscv-tests/rv32ui-p-lh.elf
new file mode 100644
index 0000000..c3efa0e
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-lh.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-p-lhu.dump b/test/riscv-tests/rv32ui-p-lhu.dump
new file mode 100644
index 0000000..2457f63
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-lhu.dump
@@ -0,0 +1,322 @@
+
+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: 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: 00002097 auipc ra,0x2
+80000100: f0408093 addi ra,ra,-252 # 80002000 <begin_signature>
+80000104: 0000df03 lhu t5,0(ra)
+80000108: 0ff00e93 li t4,255
+8000010c: 00200193 li gp,2
+80000110: 27df1663 bne t5,t4,8000037c <fail>
+
+80000114 <test_3>:
+80000114: 00002097 auipc ra,0x2
+80000118: eec08093 addi ra,ra,-276 # 80002000 <begin_signature>
+8000011c: 0020df03 lhu t5,2(ra)
+80000120: 00010eb7 lui t4,0x10
+80000124: f00e8e93 addi t4,t4,-256 # ff00 <_start-0x7fff0100>
+80000128: 00300193 li gp,3
+8000012c: 25df1863 bne t5,t4,8000037c <fail>
+
+80000130 <test_4>:
+80000130: 00002097 auipc ra,0x2
+80000134: ed008093 addi ra,ra,-304 # 80002000 <begin_signature>
+80000138: 0040df03 lhu t5,4(ra)
+8000013c: 00001eb7 lui t4,0x1
+80000140: ff0e8e93 addi t4,t4,-16 # ff0 <_start-0x7ffff010>
+80000144: 00400193 li gp,4
+80000148: 23df1a63 bne t5,t4,8000037c <fail>
+
+8000014c <test_5>:
+8000014c: 00002097 auipc ra,0x2
+80000150: eb408093 addi ra,ra,-332 # 80002000 <begin_signature>
+80000154: 0060df03 lhu t5,6(ra)
+80000158: 0000feb7 lui t4,0xf
+8000015c: 00fe8e93 addi t4,t4,15 # f00f <_start-0x7fff0ff1>
+80000160: 00500193 li gp,5
+80000164: 21df1c63 bne t5,t4,8000037c <fail>
+
+80000168 <test_6>:
+80000168: 00002097 auipc ra,0x2
+8000016c: e9e08093 addi ra,ra,-354 # 80002006 <tdat4>
+80000170: ffa0df03 lhu t5,-6(ra)
+80000174: 0ff00e93 li t4,255
+80000178: 00600193 li gp,6
+8000017c: 21df1063 bne t5,t4,8000037c <fail>
+
+80000180 <test_7>:
+80000180: 00002097 auipc ra,0x2
+80000184: e8608093 addi ra,ra,-378 # 80002006 <tdat4>
+80000188: ffc0df03 lhu t5,-4(ra)
+8000018c: 00010eb7 lui t4,0x10
+80000190: f00e8e93 addi t4,t4,-256 # ff00 <_start-0x7fff0100>
+80000194: 00700193 li gp,7
+80000198: 1fdf1263 bne t5,t4,8000037c <fail>
+
+8000019c <test_8>:
+8000019c: 00002097 auipc ra,0x2
+800001a0: e6a08093 addi ra,ra,-406 # 80002006 <tdat4>
+800001a4: ffe0df03 lhu t5,-2(ra)
+800001a8: 00001eb7 lui t4,0x1
+800001ac: ff0e8e93 addi t4,t4,-16 # ff0 <_start-0x7ffff010>
+800001b0: 00800193 li gp,8
+800001b4: 1ddf1463 bne t5,t4,8000037c <fail>
+
+800001b8 <test_9>:
+800001b8: 00002097 auipc ra,0x2
+800001bc: e4e08093 addi ra,ra,-434 # 80002006 <tdat4>
+800001c0: 0000df03 lhu t5,0(ra)
+800001c4: 0000feb7 lui t4,0xf
+800001c8: 00fe8e93 addi t4,t4,15 # f00f <_start-0x7fff0ff1>
+800001cc: 00900193 li gp,9
+800001d0: 1bdf1663 bne t5,t4,8000037c <fail>
+
+800001d4 <test_10>:
+800001d4: 00002097 auipc ra,0x2
+800001d8: e2c08093 addi ra,ra,-468 # 80002000 <begin_signature>
+800001dc: fe008093 addi ra,ra,-32
+800001e0: 0200d283 lhu t0,32(ra)
+800001e4: 0ff00e93 li t4,255
+800001e8: 00a00193 li gp,10
+800001ec: 19d29863 bne t0,t4,8000037c <fail>
+
+800001f0 <test_11>:
+800001f0: 00002097 auipc ra,0x2
+800001f4: e1008093 addi ra,ra,-496 # 80002000 <begin_signature>
+800001f8: ffb08093 addi ra,ra,-5
+800001fc: 0070d283 lhu t0,7(ra)
+80000200: 00010eb7 lui t4,0x10
+80000204: f00e8e93 addi t4,t4,-256 # ff00 <_start-0x7fff0100>
+80000208: 00b00193 li gp,11
+8000020c: 17d29863 bne t0,t4,8000037c <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: 0020df03 lhu t5,2(ra)
+80000224: 000f0313 mv t1,t5
+80000228: 00001eb7 lui t4,0x1
+8000022c: ff0e8e93 addi t4,t4,-16 # ff0 <_start-0x7ffff010>
+80000230: 15d31663 bne t1,t4,8000037c <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: 0020df03 lhu t5,2(ra)
+80000254: 00000013 nop
+80000258: 000f0313 mv t1,t5
+8000025c: 0000feb7 lui t4,0xf
+80000260: 00fe8e93 addi t4,t4,15 # f00f <_start-0x7fff0ff1>
+80000264: 11d31c63 bne t1,t4,8000037c <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: 0020df03 lhu t5,2(ra)
+80000288: 00000013 nop
+8000028c: 00000013 nop
+80000290: 000f0313 mv t1,t5
+80000294: 00010eb7 lui t4,0x10
+80000298: f00e8e93 addi t4,t4,-256 # ff00 <_start-0x7fff0100>
+8000029c: 0fd31063 bne t1,t4,8000037c <fail>
+800002a0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800002a4: 00200293 li t0,2
+800002a8: fc521ae3 bne tp,t0,8000027c <test_14+0x8>
+
+800002ac <test_15>:
+800002ac: 00f00193 li gp,15
+800002b0: 00000213 li tp,0
+800002b4: 00002097 auipc ra,0x2
+800002b8: d4e08093 addi ra,ra,-690 # 80002002 <tdat2>
+800002bc: 0020df03 lhu t5,2(ra)
+800002c0: 00001eb7 lui t4,0x1
+800002c4: ff0e8e93 addi t4,t4,-16 # ff0 <_start-0x7ffff010>
+800002c8: 0bdf1a63 bne t5,t4,8000037c <fail>
+800002cc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800002d0: 00200293 li t0,2
+800002d4: fe5210e3 bne tp,t0,800002b4 <test_15+0x8>
+
+800002d8 <test_16>:
+800002d8: 01000193 li gp,16
+800002dc: 00000213 li tp,0
+800002e0: 00002097 auipc ra,0x2
+800002e4: d2408093 addi ra,ra,-732 # 80002004 <tdat3>
+800002e8: 00000013 nop
+800002ec: 0020df03 lhu t5,2(ra)
+800002f0: 0000feb7 lui t4,0xf
+800002f4: 00fe8e93 addi t4,t4,15 # f00f <_start-0x7fff0ff1>
+800002f8: 09df1263 bne t5,t4,8000037c <fail>
+800002fc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000300: 00200293 li t0,2
+80000304: fc521ee3 bne tp,t0,800002e0 <test_16+0x8>
+
+80000308 <test_17>:
+80000308: 01100193 li gp,17
+8000030c: 00000213 li tp,0
+80000310: 00002097 auipc ra,0x2
+80000314: cf008093 addi ra,ra,-784 # 80002000 <begin_signature>
+80000318: 00000013 nop
+8000031c: 00000013 nop
+80000320: 0020df03 lhu t5,2(ra)
+80000324: 00010eb7 lui t4,0x10
+80000328: f00e8e93 addi t4,t4,-256 # ff00 <_start-0x7fff0100>
+8000032c: 05df1863 bne t5,t4,8000037c <fail>
+80000330: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000334: 00200293 li t0,2
+80000338: fc521ce3 bne tp,t0,80000310 <test_17+0x8>
+
+8000033c <test_18>:
+8000033c: 00002297 auipc t0,0x2
+80000340: cc428293 addi t0,t0,-828 # 80002000 <begin_signature>
+80000344: 0002d103 lhu sp,0(t0)
+80000348: 00200113 li sp,2
+8000034c: 00200e93 li t4,2
+80000350: 01200193 li gp,18
+80000354: 03d11463 bne sp,t4,8000037c <fail>
+
+80000358 <test_19>:
+80000358: 00002297 auipc t0,0x2
+8000035c: ca828293 addi t0,t0,-856 # 80002000 <begin_signature>
+80000360: 0002d103 lhu sp,0(t0)
+80000364: 00000013 nop
+80000368: 00200113 li sp,2
+8000036c: 00200e93 li t4,2
+80000370: 01300193 li gp,19
+80000374: 01d11463 bne sp,t4,8000037c <fail>
+80000378: 00301c63 bne zero,gp,80000390 <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: 00000073 ecall
+
+80000390 <pass>:
+80000390: 0ff0000f fence
+80000394: 00100193 li gp,1
+80000398: 00000073 ecall
+8000039c: c0001073 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: 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
diff --git a/test/riscv-tests/rv32ui-p-lhu.elf b/test/riscv-tests/rv32ui-p-lhu.elf
new file mode 100644
index 0000000..959551e
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-lhu.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-p-lui.dump b/test/riscv-tests/rv32ui-p-lui.dump
new file mode 100644
index 0000000..380c8e1
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-lui.dump
@@ -0,0 +1,127 @@
+
+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: 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: 000000b7 lui ra,0x0
+80000100: 00000e93 li t4,0
+80000104: 00200193 li gp,2
+80000108: 05d09a63 bne ra,t4,8000015c <fail>
+
+8000010c <test_3>:
+8000010c: fffff0b7 lui ra,0xfffff
+80000110: 4010d093 srai ra,ra,0x1
+80000114: 80000e93 li t4,-2048
+80000118: 00300193 li gp,3
+8000011c: 05d09063 bne ra,t4,8000015c <fail>
+
+80000120 <test_4>:
+80000120: 7ffff0b7 lui ra,0x7ffff
+80000124: 4140d093 srai ra,ra,0x14
+80000128: 7ff00e93 li t4,2047
+8000012c: 00400193 li gp,4
+80000130: 03d09663 bne ra,t4,8000015c <fail>
+
+80000134 <test_5>:
+80000134: 800000b7 lui ra,0x80000
+80000138: 4140d093 srai ra,ra,0x14
+8000013c: 80000e93 li t4,-2048
+80000140: 00500193 li gp,5
+80000144: 01d09c63 bne ra,t4,8000015c <fail>
+
+80000148 <test_6>:
+80000148: 80000037 lui zero,0x80000
+8000014c: 00000e93 li t4,0
+80000150: 00600193 li gp,6
+80000154: 01d01463 bne zero,t4,8000015c <fail>
+80000158: 00301c63 bne zero,gp,80000170 <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: 00000073 ecall
+
+80000170 <pass>:
+80000170: 0ff0000f fence
+80000174: 00100193 li gp,1
+80000178: 00000073 ecall
+8000017c: c0001073 unimp
+80000180: 0000 unimp
+80000182: 0000 unimp
diff --git a/test/riscv-tests/rv32ui-p-lui.elf b/test/riscv-tests/rv32ui-p-lui.elf
new file mode 100644
index 0000000..4f8c949
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-lui.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-p-lw.dump b/test/riscv-tests/rv32ui-p-lw.dump
new file mode 100644
index 0000000..031df75
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-lw.dump
@@ -0,0 +1,319 @@
+
+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: 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: 00002097 auipc ra,0x2
+80000100: f0408093 addi ra,ra,-252 # 80002000 <begin_signature>
+80000104: 0000af03 lw t5,0(ra)
+80000108: 00ff0eb7 lui t4,0xff0
+8000010c: 0ffe8e93 addi t4,t4,255 # ff00ff <_start-0x7f00ff01>
+80000110: 00200193 li gp,2
+80000114: 27df1a63 bne t5,t4,80000388 <fail>
+
+80000118 <test_3>:
+80000118: 00002097 auipc ra,0x2
+8000011c: ee808093 addi ra,ra,-280 # 80002000 <begin_signature>
+80000120: 0040af03 lw t5,4(ra)
+80000124: ff010eb7 lui t4,0xff010
+80000128: f00e8e93 addi t4,t4,-256 # ff00ff00 <_end+0x7f00def0>
+8000012c: 00300193 li gp,3
+80000130: 25df1c63 bne t5,t4,80000388 <fail>
+
+80000134 <test_4>:
+80000134: 00002097 auipc ra,0x2
+80000138: ecc08093 addi ra,ra,-308 # 80002000 <begin_signature>
+8000013c: 0080af03 lw t5,8(ra)
+80000140: 0ff01eb7 lui t4,0xff01
+80000144: ff0e8e93 addi t4,t4,-16 # ff00ff0 <_start-0x700ff010>
+80000148: 00400193 li gp,4
+8000014c: 23df1e63 bne t5,t4,80000388 <fail>
+
+80000150 <test_5>:
+80000150: 00002097 auipc ra,0x2
+80000154: eb008093 addi ra,ra,-336 # 80002000 <begin_signature>
+80000158: 00c0af03 lw t5,12(ra)
+8000015c: f00ffeb7 lui t4,0xf00ff
+80000160: 00fe8e93 addi t4,t4,15 # f00ff00f <_end+0x700fcfff>
+80000164: 00500193 li gp,5
+80000168: 23df1063 bne t5,t4,80000388 <fail>
+
+8000016c <test_6>:
+8000016c: 00002097 auipc ra,0x2
+80000170: ea008093 addi ra,ra,-352 # 8000200c <tdat4>
+80000174: ff40af03 lw t5,-12(ra)
+80000178: 00ff0eb7 lui t4,0xff0
+8000017c: 0ffe8e93 addi t4,t4,255 # ff00ff <_start-0x7f00ff01>
+80000180: 00600193 li gp,6
+80000184: 21df1263 bne t5,t4,80000388 <fail>
+
+80000188 <test_7>:
+80000188: 00002097 auipc ra,0x2
+8000018c: e8408093 addi ra,ra,-380 # 8000200c <tdat4>
+80000190: ff80af03 lw t5,-8(ra)
+80000194: ff010eb7 lui t4,0xff010
+80000198: f00e8e93 addi t4,t4,-256 # ff00ff00 <_end+0x7f00def0>
+8000019c: 00700193 li gp,7
+800001a0: 1fdf1463 bne t5,t4,80000388 <fail>
+
+800001a4 <test_8>:
+800001a4: 00002097 auipc ra,0x2
+800001a8: e6808093 addi ra,ra,-408 # 8000200c <tdat4>
+800001ac: ffc0af03 lw t5,-4(ra)
+800001b0: 0ff01eb7 lui t4,0xff01
+800001b4: ff0e8e93 addi t4,t4,-16 # ff00ff0 <_start-0x700ff010>
+800001b8: 00800193 li gp,8
+800001bc: 1ddf1663 bne t5,t4,80000388 <fail>
+
+800001c0 <test_9>:
+800001c0: 00002097 auipc ra,0x2
+800001c4: e4c08093 addi ra,ra,-436 # 8000200c <tdat4>
+800001c8: 0000af03 lw t5,0(ra)
+800001cc: f00ffeb7 lui t4,0xf00ff
+800001d0: 00fe8e93 addi t4,t4,15 # f00ff00f <_end+0x700fcfff>
+800001d4: 00900193 li gp,9
+800001d8: 1bdf1863 bne t5,t4,80000388 <fail>
+
+800001dc <test_10>:
+800001dc: 00002097 auipc ra,0x2
+800001e0: e2408093 addi ra,ra,-476 # 80002000 <begin_signature>
+800001e4: fe008093 addi ra,ra,-32
+800001e8: 0200a283 lw t0,32(ra)
+800001ec: 00ff0eb7 lui t4,0xff0
+800001f0: 0ffe8e93 addi t4,t4,255 # ff00ff <_start-0x7f00ff01>
+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: ffd08093 addi ra,ra,-3
+80000208: 0070a283 lw t0,7(ra)
+8000020c: ff010eb7 lui t4,0xff010
+80000210: f00e8e93 addi t4,t4,-256 # ff00ff00 <_end+0x7f00def0>
+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: de008093 addi ra,ra,-544 # 80002004 <tdat2>
+8000022c: 0040af03 lw t5,4(ra)
+80000230: 000f0313 mv t1,t5
+80000234: 0ff01eb7 lui t4,0xff01
+80000238: ff0e8e93 addi t4,t4,-16 # ff00ff0 <_start-0x700ff010>
+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: db408093 addi ra,ra,-588 # 80002008 <tdat3>
+8000025c: 0040af03 lw t5,4(ra)
+80000260: 00000013 nop
+80000264: 000f0313 mv t1,t5
+80000268: f00ffeb7 lui t4,0xf00ff
+8000026c: 00fe8e93 addi t4,t4,15 # f00ff00f <_end+0x700fcfff>
+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: 0040af03 lw t5,4(ra)
+80000294: 00000013 nop
+80000298: 00000013 nop
+8000029c: 000f0313 mv t1,t5
+800002a0: ff010eb7 lui t4,0xff010
+800002a4: f00e8e93 addi t4,t4,-256 # ff00ff00 <_end+0x7f00def0>
+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: d4408093 addi ra,ra,-700 # 80002004 <tdat2>
+800002c8: 0040af03 lw t5,4(ra)
+800002cc: 0ff01eb7 lui t4,0xff01
+800002d0: ff0e8e93 addi t4,t4,-16 # ff00ff0 <_start-0x700ff010>
+800002d4: 0bdf1a63 bne t5,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: d1c08093 addi ra,ra,-740 # 80002008 <tdat3>
+800002f4: 00000013 nop
+800002f8: 0040af03 lw t5,4(ra)
+800002fc: f00ffeb7 lui t4,0xf00ff
+80000300: 00fe8e93 addi t4,t4,15 # f00ff00f <_end+0x700fcfff>
+80000304: 09df1263 bne t5,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: 0040af03 lw t5,4(ra)
+80000330: ff010eb7 lui t4,0xff010
+80000334: f00e8e93 addi t4,t4,-256 # ff00ff00 <_end+0x7f00def0>
+80000338: 05df1863 bne t5,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: 0002a103 lw 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: 0002a103 lw 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: 00301c63 bne zero,gp,8000039c <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: 00000073 ecall
+
+8000039c <pass>:
+8000039c: 0ff0000f fence
+800003a0: 00100193 li gp,1
+800003a4: 00000073 ecall
+800003a8: c0001073 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: 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
diff --git a/test/riscv-tests/rv32ui-p-lw.elf b/test/riscv-tests/rv32ui-p-lw.elf
new file mode 100644
index 0000000..51219be
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-lw.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-p-or.dump b/test/riscv-tests/rv32ui-p-or.dump
new file mode 100644
index 0000000..5d8d60a
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-or.dump
@@ -0,0 +1,464 @@
+
+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: 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: ff0100b7 lui ra,0xff010
+80000100: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
+80000104: 0f0f1137 lui sp,0xf0f1
+80000108: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+8000010c: 0020ef33 or t5,ra,sp
+80000110: ff100eb7 lui t4,0xff100
+80000114: f0fe8e93 addi t4,t4,-241 # ff0fff0f <_end+0x7f0fdf0f>
+80000118: 00200193 li gp,2
+8000011c: 4bdf1263 bne t5,t4,800005c0 <fail>
+
+80000120 <test_3>:
+80000120: 0ff010b7 lui ra,0xff01
+80000124: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+80000128: f0f0f137 lui sp,0xf0f0f
+8000012c: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f0d0f0>
+80000130: 0020ef33 or t5,ra,sp
+80000134: fff10eb7 lui t4,0xfff10
+80000138: ff0e8e93 addi t4,t4,-16 # fff0fff0 <_end+0x7ff0dff0>
+8000013c: 00300193 li gp,3
+80000140: 49df1063 bne t5,t4,800005c0 <fail>
+
+80000144 <test_4>:
+80000144: 00ff00b7 lui ra,0xff0
+80000148: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+8000014c: 0f0f1137 lui sp,0xf0f1
+80000150: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80000154: 0020ef33 or t5,ra,sp
+80000158: 0fff1eb7 lui t4,0xfff1
+8000015c: fffe8e93 addi t4,t4,-1 # fff0fff <_start-0x7000f001>
+80000160: 00400193 li gp,4
+80000164: 45df1e63 bne t5,t4,800005c0 <fail>
+
+80000168 <test_5>:
+80000168: f00ff0b7 lui ra,0xf00ff
+8000016c: 00f08093 addi ra,ra,15 # f00ff00f <_end+0x700fd00f>
+80000170: f0f0f137 lui sp,0xf0f0f
+80000174: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f0d0f0>
+80000178: 0020ef33 or t5,ra,sp
+8000017c: f0fffeb7 lui t4,0xf0fff
+80000180: 0ffe8e93 addi t4,t4,255 # f0fff0ff <_end+0x70ffd0ff>
+80000184: 00500193 li gp,5
+80000188: 43df1c63 bne t5,t4,800005c0 <fail>
+
+8000018c <test_6>:
+8000018c: ff0100b7 lui ra,0xff010
+80000190: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
+80000194: 0f0f1137 lui sp,0xf0f1
+80000198: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+8000019c: 0020e0b3 or ra,ra,sp
+800001a0: ff100eb7 lui t4,0xff100
+800001a4: f0fe8e93 addi t4,t4,-241 # ff0fff0f <_end+0x7f0fdf0f>
+800001a8: 00600193 li gp,6
+800001ac: 41d09a63 bne ra,t4,800005c0 <fail>
+
+800001b0 <test_7>:
+800001b0: ff0100b7 lui ra,0xff010
+800001b4: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
+800001b8: 0f0f1137 lui sp,0xf0f1
+800001bc: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+800001c0: 0020e133 or sp,ra,sp
+800001c4: ff100eb7 lui t4,0xff100
+800001c8: f0fe8e93 addi t4,t4,-241 # ff0fff0f <_end+0x7f0fdf0f>
+800001cc: 00700193 li gp,7
+800001d0: 3fd11863 bne sp,t4,800005c0 <fail>
+
+800001d4 <test_8>:
+800001d4: ff0100b7 lui ra,0xff010
+800001d8: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
+800001dc: 0010e0b3 or ra,ra,ra
+800001e0: ff010eb7 lui t4,0xff010
+800001e4: f00e8e93 addi t4,t4,-256 # ff00ff00 <_end+0x7f00df00>
+800001e8: 00800193 li gp,8
+800001ec: 3dd09a63 bne ra,t4,800005c0 <fail>
+
+800001f0 <test_9>:
+800001f0: 00000213 li tp,0
+800001f4: ff0100b7 lui ra,0xff010
+800001f8: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
+800001fc: 0f0f1137 lui sp,0xf0f1
+80000200: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80000204: 0020ef33 or t5,ra,sp
+80000208: 000f0313 mv t1,t5
+8000020c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000210: 00200293 li t0,2
+80000214: fe5210e3 bne tp,t0,800001f4 <test_9+0x4>
+80000218: ff100eb7 lui t4,0xff100
+8000021c: f0fe8e93 addi t4,t4,-241 # ff0fff0f <_end+0x7f0fdf0f>
+80000220: 00900193 li gp,9
+80000224: 39d31e63 bne t1,t4,800005c0 <fail>
+
+80000228 <test_10>:
+80000228: 00000213 li tp,0
+8000022c: 0ff010b7 lui ra,0xff01
+80000230: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+80000234: f0f0f137 lui sp,0xf0f0f
+80000238: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f0d0f0>
+8000023c: 0020ef33 or t5,ra,sp
+80000240: 00000013 nop
+80000244: 000f0313 mv t1,t5
+80000248: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000024c: 00200293 li t0,2
+80000250: fc521ee3 bne tp,t0,8000022c <test_10+0x4>
+80000254: fff10eb7 lui t4,0xfff10
+80000258: ff0e8e93 addi t4,t4,-16 # fff0fff0 <_end+0x7ff0dff0>
+8000025c: 00a00193 li gp,10
+80000260: 37d31063 bne t1,t4,800005c0 <fail>
+
+80000264 <test_11>:
+80000264: 00000213 li tp,0
+80000268: 00ff00b7 lui ra,0xff0
+8000026c: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+80000270: 0f0f1137 lui sp,0xf0f1
+80000274: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80000278: 0020ef33 or t5,ra,sp
+8000027c: 00000013 nop
+80000280: 00000013 nop
+80000284: 000f0313 mv t1,t5
+80000288: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000028c: 00200293 li t0,2
+80000290: fc521ce3 bne tp,t0,80000268 <test_11+0x4>
+80000294: 0fff1eb7 lui t4,0xfff1
+80000298: fffe8e93 addi t4,t4,-1 # fff0fff <_start-0x7000f001>
+8000029c: 00b00193 li gp,11
+800002a0: 33d31063 bne t1,t4,800005c0 <fail>
+
+800002a4 <test_12>:
+800002a4: 00000213 li tp,0
+800002a8: ff0100b7 lui ra,0xff010
+800002ac: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
+800002b0: 0f0f1137 lui sp,0xf0f1
+800002b4: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+800002b8: 0020ef33 or t5,ra,sp
+800002bc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800002c0: 00200293 li t0,2
+800002c4: fe5212e3 bne tp,t0,800002a8 <test_12+0x4>
+800002c8: ff100eb7 lui t4,0xff100
+800002cc: f0fe8e93 addi t4,t4,-241 # ff0fff0f <_end+0x7f0fdf0f>
+800002d0: 00c00193 li gp,12
+800002d4: 2fdf1663 bne t5,t4,800005c0 <fail>
+
+800002d8 <test_13>:
+800002d8: 00000213 li tp,0
+800002dc: 0ff010b7 lui ra,0xff01
+800002e0: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+800002e4: f0f0f137 lui sp,0xf0f0f
+800002e8: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f0d0f0>
+800002ec: 00000013 nop
+800002f0: 0020ef33 or t5,ra,sp
+800002f4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800002f8: 00200293 li t0,2
+800002fc: fe5210e3 bne tp,t0,800002dc <test_13+0x4>
+80000300: fff10eb7 lui t4,0xfff10
+80000304: ff0e8e93 addi t4,t4,-16 # fff0fff0 <_end+0x7ff0dff0>
+80000308: 00d00193 li gp,13
+8000030c: 2bdf1a63 bne t5,t4,800005c0 <fail>
+
+80000310 <test_14>:
+80000310: 00000213 li tp,0
+80000314: 00ff00b7 lui ra,0xff0
+80000318: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+8000031c: 0f0f1137 lui sp,0xf0f1
+80000320: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80000324: 00000013 nop
+80000328: 00000013 nop
+8000032c: 0020ef33 or t5,ra,sp
+80000330: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000334: 00200293 li t0,2
+80000338: fc521ee3 bne tp,t0,80000314 <test_14+0x4>
+8000033c: 0fff1eb7 lui t4,0xfff1
+80000340: fffe8e93 addi t4,t4,-1 # fff0fff <_start-0x7000f001>
+80000344: 00e00193 li gp,14
+80000348: 27df1c63 bne t5,t4,800005c0 <fail>
+
+8000034c <test_15>:
+8000034c: 00000213 li tp,0
+80000350: ff0100b7 lui ra,0xff010
+80000354: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
+80000358: 00000013 nop
+8000035c: 0f0f1137 lui sp,0xf0f1
+80000360: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80000364: 0020ef33 or t5,ra,sp
+80000368: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000036c: 00200293 li t0,2
+80000370: fe5210e3 bne tp,t0,80000350 <test_15+0x4>
+80000374: ff100eb7 lui t4,0xff100
+80000378: f0fe8e93 addi t4,t4,-241 # ff0fff0f <_end+0x7f0fdf0f>
+8000037c: 00f00193 li gp,15
+80000380: 25df1063 bne t5,t4,800005c0 <fail>
+
+80000384 <test_16>:
+80000384: 00000213 li tp,0
+80000388: 0ff010b7 lui ra,0xff01
+8000038c: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+80000390: 00000013 nop
+80000394: f0f0f137 lui sp,0xf0f0f
+80000398: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f0d0f0>
+8000039c: 00000013 nop
+800003a0: 0020ef33 or t5,ra,sp
+800003a4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800003a8: 00200293 li t0,2
+800003ac: fc521ee3 bne tp,t0,80000388 <test_16+0x4>
+800003b0: fff10eb7 lui t4,0xfff10
+800003b4: ff0e8e93 addi t4,t4,-16 # fff0fff0 <_end+0x7ff0dff0>
+800003b8: 01000193 li gp,16
+800003bc: 21df1263 bne t5,t4,800005c0 <fail>
+
+800003c0 <test_17>:
+800003c0: 00000213 li tp,0
+800003c4: 00ff00b7 lui ra,0xff0
+800003c8: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+800003cc: 00000013 nop
+800003d0: 00000013 nop
+800003d4: 0f0f1137 lui sp,0xf0f1
+800003d8: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+800003dc: 0020ef33 or t5,ra,sp
+800003e0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800003e4: 00200293 li t0,2
+800003e8: fc521ee3 bne tp,t0,800003c4 <test_17+0x4>
+800003ec: 0fff1eb7 lui t4,0xfff1
+800003f0: fffe8e93 addi t4,t4,-1 # fff0fff <_start-0x7000f001>
+800003f4: 01100193 li gp,17
+800003f8: 1ddf1463 bne t5,t4,800005c0 <fail>
+
+800003fc <test_18>:
+800003fc: 00000213 li tp,0
+80000400: 0f0f1137 lui sp,0xf0f1
+80000404: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80000408: ff0100b7 lui ra,0xff010
+8000040c: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
+80000410: 0020ef33 or t5,ra,sp
+80000414: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000418: 00200293 li t0,2
+8000041c: fe5212e3 bne tp,t0,80000400 <test_18+0x4>
+80000420: ff100eb7 lui t4,0xff100
+80000424: f0fe8e93 addi t4,t4,-241 # ff0fff0f <_end+0x7f0fdf0f>
+80000428: 01200193 li gp,18
+8000042c: 19df1a63 bne t5,t4,800005c0 <fail>
+
+80000430 <test_19>:
+80000430: 00000213 li tp,0
+80000434: f0f0f137 lui sp,0xf0f0f
+80000438: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f0d0f0>
+8000043c: 0ff010b7 lui ra,0xff01
+80000440: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+80000444: 00000013 nop
+80000448: 0020ef33 or t5,ra,sp
+8000044c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000450: 00200293 li t0,2
+80000454: fe5210e3 bne tp,t0,80000434 <test_19+0x4>
+80000458: fff10eb7 lui t4,0xfff10
+8000045c: ff0e8e93 addi t4,t4,-16 # fff0fff0 <_end+0x7ff0dff0>
+80000460: 01300193 li gp,19
+80000464: 15df1e63 bne t5,t4,800005c0 <fail>
+
+80000468 <test_20>:
+80000468: 00000213 li tp,0
+8000046c: 0f0f1137 lui sp,0xf0f1
+80000470: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80000474: 00ff00b7 lui ra,0xff0
+80000478: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+8000047c: 00000013 nop
+80000480: 00000013 nop
+80000484: 0020ef33 or t5,ra,sp
+80000488: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000048c: 00200293 li t0,2
+80000490: fc521ee3 bne tp,t0,8000046c <test_20+0x4>
+80000494: 0fff1eb7 lui t4,0xfff1
+80000498: fffe8e93 addi t4,t4,-1 # fff0fff <_start-0x7000f001>
+8000049c: 01400193 li gp,20
+800004a0: 13df1063 bne t5,t4,800005c0 <fail>
+
+800004a4 <test_21>:
+800004a4: 00000213 li tp,0
+800004a8: 0f0f1137 lui sp,0xf0f1
+800004ac: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+800004b0: 00000013 nop
+800004b4: ff0100b7 lui ra,0xff010
+800004b8: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
+800004bc: 0020ef33 or t5,ra,sp
+800004c0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800004c4: 00200293 li t0,2
+800004c8: fe5210e3 bne tp,t0,800004a8 <test_21+0x4>
+800004cc: ff100eb7 lui t4,0xff100
+800004d0: f0fe8e93 addi t4,t4,-241 # ff0fff0f <_end+0x7f0fdf0f>
+800004d4: 01500193 li gp,21
+800004d8: 0fdf1463 bne t5,t4,800005c0 <fail>
+
+800004dc <test_22>:
+800004dc: 00000213 li tp,0
+800004e0: f0f0f137 lui sp,0xf0f0f
+800004e4: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f0d0f0>
+800004e8: 00000013 nop
+800004ec: 0ff010b7 lui ra,0xff01
+800004f0: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+800004f4: 00000013 nop
+800004f8: 0020ef33 or t5,ra,sp
+800004fc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000500: 00200293 li t0,2
+80000504: fc521ee3 bne tp,t0,800004e0 <test_22+0x4>
+80000508: fff10eb7 lui t4,0xfff10
+8000050c: ff0e8e93 addi t4,t4,-16 # fff0fff0 <_end+0x7ff0dff0>
+80000510: 01600193 li gp,22
+80000514: 0bdf1663 bne t5,t4,800005c0 <fail>
+
+80000518 <test_23>:
+80000518: 00000213 li tp,0
+8000051c: 0f0f1137 lui sp,0xf0f1
+80000520: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80000524: 00000013 nop
+80000528: 00000013 nop
+8000052c: 00ff00b7 lui ra,0xff0
+80000530: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+80000534: 0020ef33 or t5,ra,sp
+80000538: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000053c: 00200293 li t0,2
+80000540: fc521ee3 bne tp,t0,8000051c <test_23+0x4>
+80000544: 0fff1eb7 lui t4,0xfff1
+80000548: fffe8e93 addi t4,t4,-1 # fff0fff <_start-0x7000f001>
+8000054c: 01700193 li gp,23
+80000550: 07df1863 bne t5,t4,800005c0 <fail>
+
+80000554 <test_24>:
+80000554: ff0100b7 lui ra,0xff010
+80000558: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
+8000055c: 00106133 or sp,zero,ra
+80000560: ff010eb7 lui t4,0xff010
+80000564: f00e8e93 addi t4,t4,-256 # ff00ff00 <_end+0x7f00df00>
+80000568: 01800193 li gp,24
+8000056c: 05d11a63 bne sp,t4,800005c0 <fail>
+
+80000570 <test_25>:
+80000570: 00ff00b7 lui ra,0xff0
+80000574: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+80000578: 0000e133 or sp,ra,zero
+8000057c: 00ff0eb7 lui t4,0xff0
+80000580: 0ffe8e93 addi t4,t4,255 # ff00ff <_start-0x7f00ff01>
+80000584: 01900193 li gp,25
+80000588: 03d11c63 bne sp,t4,800005c0 <fail>
+
+8000058c <test_26>:
+8000058c: 000060b3 or 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: 0020e033 or zero,ra,sp
+800005b0: 00000e93 li t4,0
+800005b4: 01b00193 li gp,27
+800005b8: 01d01463 bne zero,t4,800005c0 <fail>
+800005bc: 00301c63 bne zero,gp,800005d4 <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: 00000073 ecall
+
+800005d4 <pass>:
+800005d4: 0ff0000f fence
+800005d8: 00100193 li gp,1
+800005dc: 00000073 ecall
+800005e0: c0001073 unimp
+800005e4: 0000 unimp
+800005e6: 0000 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
diff --git a/test/riscv-tests/rv32ui-p-or.elf b/test/riscv-tests/rv32ui-p-or.elf
new file mode 100644
index 0000000..149c3dd
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-or.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-p-ori.dump b/test/riscv-tests/rv32ui-p-ori.dump
new file mode 100644
index 0000000..a6a5ed8
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-ori.dump
@@ -0,0 +1,240 @@
+
+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: 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: ff0100b7 lui ra,0xff010
+80000100: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
+80000104: f0f0ef13 ori t5,ra,-241
+80000108: f0f00e93 li t4,-241
+8000010c: 00200193 li gp,2
+80000110: 1ddf1463 bne t5,t4,800002d8 <fail>
+
+80000114 <test_3>:
+80000114: 0ff010b7 lui ra,0xff01
+80000118: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+8000011c: 0f00ef13 ori t5,ra,240
+80000120: 0ff01eb7 lui t4,0xff01
+80000124: ff0e8e93 addi t4,t4,-16 # ff00ff0 <_start-0x700ff010>
+80000128: 00300193 li gp,3
+8000012c: 1bdf1663 bne t5,t4,800002d8 <fail>
+
+80000130 <test_4>:
+80000130: 00ff00b7 lui ra,0xff0
+80000134: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+80000138: 70f0ef13 ori t5,ra,1807
+8000013c: 00ff0eb7 lui t4,0xff0
+80000140: 7ffe8e93 addi t4,t4,2047 # ff07ff <_start-0x7f00f801>
+80000144: 00400193 li gp,4
+80000148: 19df1863 bne t5,t4,800002d8 <fail>
+
+8000014c <test_5>:
+8000014c: f00ff0b7 lui ra,0xf00ff
+80000150: 00f08093 addi ra,ra,15 # f00ff00f <_end+0x700fd00f>
+80000154: 0f00ef13 ori t5,ra,240
+80000158: f00ffeb7 lui t4,0xf00ff
+8000015c: 0ffe8e93 addi t4,t4,255 # f00ff0ff <_end+0x700fd0ff>
+80000160: 00500193 li gp,5
+80000164: 17df1a63 bne t5,t4,800002d8 <fail>
+
+80000168 <test_6>:
+80000168: ff0100b7 lui ra,0xff010
+8000016c: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
+80000170: 0f00e093 ori ra,ra,240
+80000174: ff010eb7 lui t4,0xff010
+80000178: ff0e8e93 addi t4,t4,-16 # ff00fff0 <_end+0x7f00dff0>
+8000017c: 00600193 li gp,6
+80000180: 15d09c63 bne ra,t4,800002d8 <fail>
+
+80000184 <test_7>:
+80000184: 00000213 li tp,0
+80000188: 0ff010b7 lui ra,0xff01
+8000018c: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+80000190: 0f00ef13 ori t5,ra,240
+80000194: 000f0313 mv t1,t5
+80000198: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000019c: 00200293 li t0,2
+800001a0: fe5214e3 bne tp,t0,80000188 <test_7+0x4>
+800001a4: 0ff01eb7 lui t4,0xff01
+800001a8: ff0e8e93 addi t4,t4,-16 # ff00ff0 <_start-0x700ff010>
+800001ac: 00700193 li gp,7
+800001b0: 13d31463 bne t1,t4,800002d8 <fail>
+
+800001b4 <test_8>:
+800001b4: 00000213 li tp,0
+800001b8: 00ff00b7 lui ra,0xff0
+800001bc: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+800001c0: 70f0ef13 ori t5,ra,1807
+800001c4: 00000013 nop
+800001c8: 000f0313 mv t1,t5
+800001cc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800001d0: 00200293 li t0,2
+800001d4: fe5212e3 bne tp,t0,800001b8 <test_8+0x4>
+800001d8: 00ff0eb7 lui t4,0xff0
+800001dc: 7ffe8e93 addi t4,t4,2047 # ff07ff <_start-0x7f00f801>
+800001e0: 00800193 li gp,8
+800001e4: 0fd31a63 bne t1,t4,800002d8 <fail>
+
+800001e8 <test_9>:
+800001e8: 00000213 li tp,0
+800001ec: f00ff0b7 lui ra,0xf00ff
+800001f0: 00f08093 addi ra,ra,15 # f00ff00f <_end+0x700fd00f>
+800001f4: 0f00ef13 ori t5,ra,240
+800001f8: 00000013 nop
+800001fc: 00000013 nop
+80000200: 000f0313 mv t1,t5
+80000204: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000208: 00200293 li t0,2
+8000020c: fe5210e3 bne tp,t0,800001ec <test_9+0x4>
+80000210: f00ffeb7 lui t4,0xf00ff
+80000214: 0ffe8e93 addi t4,t4,255 # f00ff0ff <_end+0x700fd0ff>
+80000218: 00900193 li gp,9
+8000021c: 0bd31e63 bne t1,t4,800002d8 <fail>
+
+80000220 <test_10>:
+80000220: 00000213 li tp,0
+80000224: 0ff010b7 lui ra,0xff01
+80000228: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+8000022c: 0f00ef13 ori t5,ra,240
+80000230: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000234: 00200293 li t0,2
+80000238: fe5216e3 bne tp,t0,80000224 <test_10+0x4>
+8000023c: 0ff01eb7 lui t4,0xff01
+80000240: ff0e8e93 addi t4,t4,-16 # ff00ff0 <_start-0x700ff010>
+80000244: 00a00193 li gp,10
+80000248: 09df1863 bne t5,t4,800002d8 <fail>
+
+8000024c <test_11>:
+8000024c: 00000213 li tp,0
+80000250: 00ff00b7 lui ra,0xff0
+80000254: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+80000258: 00000013 nop
+8000025c: f0f0ef13 ori t5,ra,-241
+80000260: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000264: 00200293 li t0,2
+80000268: fe5214e3 bne tp,t0,80000250 <test_11+0x4>
+8000026c: fff00e93 li t4,-1
+80000270: 00b00193 li gp,11
+80000274: 07df1263 bne t5,t4,800002d8 <fail>
+
+80000278 <test_12>:
+80000278: 00000213 li tp,0
+8000027c: f00ff0b7 lui ra,0xf00ff
+80000280: 00f08093 addi ra,ra,15 # f00ff00f <_end+0x700fd00f>
+80000284: 00000013 nop
+80000288: 00000013 nop
+8000028c: 0f00ef13 ori t5,ra,240
+80000290: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000294: 00200293 li t0,2
+80000298: fe5212e3 bne tp,t0,8000027c <test_12+0x4>
+8000029c: f00ffeb7 lui t4,0xf00ff
+800002a0: 0ffe8e93 addi t4,t4,255 # f00ff0ff <_end+0x700fd0ff>
+800002a4: 00c00193 li gp,12
+800002a8: 03df1863 bne t5,t4,800002d8 <fail>
+
+800002ac <test_13>:
+800002ac: 0f006093 ori ra,zero,240
+800002b0: 0f000e93 li t4,240
+800002b4: 00d00193 li gp,13
+800002b8: 03d09063 bne ra,t4,800002d8 <fail>
+
+800002bc <test_14>:
+800002bc: 00ff00b7 lui ra,0xff0
+800002c0: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+800002c4: 70f0e013 ori zero,ra,1807
+800002c8: 00000e93 li t4,0
+800002cc: 00e00193 li gp,14
+800002d0: 01d01463 bne zero,t4,800002d8 <fail>
+800002d4: 00301c63 bne zero,gp,800002ec <pass>
+
+800002d8 <fail>:
+800002d8: 0ff0000f fence
+800002dc: 00018063 beqz gp,800002dc <fail+0x4>
+800002e0: 00119193 slli gp,gp,0x1
+800002e4: 0011e193 ori gp,gp,1
+800002e8: 00000073 ecall
+
+800002ec <pass>:
+800002ec: 0ff0000f fence
+800002f0: 00100193 li gp,1
+800002f4: 00000073 ecall
+800002f8: c0001073 unimp
+800002fc: 0000 unimp
+800002fe: 0000 unimp
+80000300: 0000 unimp
+80000302: 0000 unimp
diff --git a/test/riscv-tests/rv32ui-p-ori.elf b/test/riscv-tests/rv32ui-p-ori.elf
new file mode 100644
index 0000000..d66e485
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-ori.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-p-sb.dump b/test/riscv-tests/rv32ui-p-sb.dump
new file mode 100644
index 0000000..d0a187a
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-sb.dump
@@ -0,0 +1,447 @@
+
+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: 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: 00002097 auipc ra,0x2
+80000100: f0408093 addi ra,ra,-252 # 80002000 <begin_signature>
+80000104: faa00113 li sp,-86
+80000108: 00208023 sb sp,0(ra)
+8000010c: 00008f03 lb t5,0(ra)
+80000110: faa00e93 li t4,-86
+80000114: 00200193 li gp,2
+80000118: 3ddf1c63 bne t5,t4,800004f0 <fail>
+
+8000011c <test_3>:
+8000011c: 00002097 auipc ra,0x2
+80000120: ee408093 addi ra,ra,-284 # 80002000 <begin_signature>
+80000124: 00000113 li sp,0
+80000128: 002080a3 sb sp,1(ra)
+8000012c: 00108f03 lb t5,1(ra)
+80000130: 00000e93 li t4,0
+80000134: 00300193 li gp,3
+80000138: 3bdf1c63 bne t5,t4,800004f0 <fail>
+
+8000013c <test_4>:
+8000013c: 00002097 auipc ra,0x2
+80000140: ec408093 addi ra,ra,-316 # 80002000 <begin_signature>
+80000144: fffff137 lui sp,0xfffff
+80000148: fa010113 addi sp,sp,-96 # ffffefa0 <_end+0x7fffcf90>
+8000014c: 00208123 sb sp,2(ra)
+80000150: 00209f03 lh t5,2(ra)
+80000154: fffffeb7 lui t4,0xfffff
+80000158: fa0e8e93 addi t4,t4,-96 # ffffefa0 <_end+0x7fffcf90>
+8000015c: 00400193 li gp,4
+80000160: 39df1863 bne t5,t4,800004f0 <fail>
+
+80000164 <test_5>:
+80000164: 00002097 auipc ra,0x2
+80000168: e9c08093 addi ra,ra,-356 # 80002000 <begin_signature>
+8000016c: 00a00113 li sp,10
+80000170: 002081a3 sb sp,3(ra)
+80000174: 00308f03 lb t5,3(ra)
+80000178: 00a00e93 li t4,10
+8000017c: 00500193 li gp,5
+80000180: 37df1863 bne t5,t4,800004f0 <fail>
+
+80000184 <test_6>:
+80000184: 00002097 auipc ra,0x2
+80000188: e8308093 addi ra,ra,-381 # 80002007 <tdat8>
+8000018c: faa00113 li sp,-86
+80000190: fe208ea3 sb sp,-3(ra)
+80000194: ffd08f03 lb t5,-3(ra)
+80000198: faa00e93 li t4,-86
+8000019c: 00600193 li gp,6
+800001a0: 35df1863 bne t5,t4,800004f0 <fail>
+
+800001a4 <test_7>:
+800001a4: 00002097 auipc ra,0x2
+800001a8: e6308093 addi ra,ra,-413 # 80002007 <tdat8>
+800001ac: 00000113 li sp,0
+800001b0: fe208f23 sb sp,-2(ra)
+800001b4: ffe08f03 lb t5,-2(ra)
+800001b8: 00000e93 li t4,0
+800001bc: 00700193 li gp,7
+800001c0: 33df1863 bne t5,t4,800004f0 <fail>
+
+800001c4 <test_8>:
+800001c4: 00002097 auipc ra,0x2
+800001c8: e4308093 addi ra,ra,-445 # 80002007 <tdat8>
+800001cc: fa000113 li sp,-96
+800001d0: fe208fa3 sb sp,-1(ra)
+800001d4: fff08f03 lb t5,-1(ra)
+800001d8: fa000e93 li t4,-96
+800001dc: 00800193 li gp,8
+800001e0: 31df1863 bne t5,t4,800004f0 <fail>
+
+800001e4 <test_9>:
+800001e4: 00002097 auipc ra,0x2
+800001e8: e2308093 addi ra,ra,-477 # 80002007 <tdat8>
+800001ec: 00a00113 li sp,10
+800001f0: 00208023 sb sp,0(ra)
+800001f4: 00008f03 lb t5,0(ra)
+800001f8: 00a00e93 li t4,10
+800001fc: 00900193 li gp,9
+80000200: 2fdf1863 bne t5,t4,800004f0 <fail>
+
+80000204 <test_10>:
+80000204: 00002097 auipc ra,0x2
+80000208: e0408093 addi ra,ra,-508 # 80002008 <tdat9>
+8000020c: 12345137 lui sp,0x12345
+80000210: 67810113 addi sp,sp,1656 # 12345678 <_start-0x6dcba988>
+80000214: fe008213 addi tp,ra,-32
+80000218: 02220023 sb sp,32(tp) # 20 <_start-0x7fffffe0>
+8000021c: 00008283 lb t0,0(ra)
+80000220: 07800e93 li t4,120
+80000224: 00a00193 li gp,10
+80000228: 2dd29463 bne t0,t4,800004f0 <fail>
+
+8000022c <test_11>:
+8000022c: 00002097 auipc ra,0x2
+80000230: ddc08093 addi ra,ra,-548 # 80002008 <tdat9>
+80000234: 00003137 lui sp,0x3
+80000238: 09810113 addi sp,sp,152 # 3098 <_start-0x7fffcf68>
+8000023c: ffa08093 addi ra,ra,-6
+80000240: 002083a3 sb sp,7(ra)
+80000244: 00002217 auipc tp,0x2
+80000248: dc520213 addi tp,tp,-571 # 80002009 <tdat10>
+8000024c: 00020283 lb t0,0(tp) # 0 <_start-0x80000000>
+80000250: f9800e93 li t4,-104
+80000254: 00b00193 li gp,11
+80000258: 29d29c63 bne t0,t4,800004f0 <fail>
+
+8000025c <test_12>:
+8000025c: 00c00193 li gp,12
+80000260: 00000213 li tp,0
+80000264: fdd00093 li ra,-35
+80000268: 00002117 auipc sp,0x2
+8000026c: d9810113 addi sp,sp,-616 # 80002000 <begin_signature>
+80000270: 00110023 sb ra,0(sp)
+80000274: 00010f03 lb t5,0(sp)
+80000278: fdd00e93 li t4,-35
+8000027c: 27df1a63 bne t5,t4,800004f0 <fail>
+80000280: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000284: 00200293 li t0,2
+80000288: fc521ee3 bne tp,t0,80000264 <test_12+0x8>
+
+8000028c <test_13>:
+8000028c: 00d00193 li gp,13
+80000290: 00000213 li tp,0
+80000294: fcd00093 li ra,-51
+80000298: 00002117 auipc sp,0x2
+8000029c: d6810113 addi sp,sp,-664 # 80002000 <begin_signature>
+800002a0: 00000013 nop
+800002a4: 001100a3 sb ra,1(sp)
+800002a8: 00110f03 lb t5,1(sp)
+800002ac: fcd00e93 li t4,-51
+800002b0: 25df1063 bne t5,t4,800004f0 <fail>
+800002b4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800002b8: 00200293 li t0,2
+800002bc: fc521ce3 bne tp,t0,80000294 <test_13+0x8>
+
+800002c0 <test_14>:
+800002c0: 00e00193 li gp,14
+800002c4: 00000213 li tp,0
+800002c8: fcc00093 li ra,-52
+800002cc: 00002117 auipc sp,0x2
+800002d0: d3410113 addi sp,sp,-716 # 80002000 <begin_signature>
+800002d4: 00000013 nop
+800002d8: 00000013 nop
+800002dc: 00110123 sb ra,2(sp)
+800002e0: 00210f03 lb t5,2(sp)
+800002e4: fcc00e93 li t4,-52
+800002e8: 21df1463 bne t5,t4,800004f0 <fail>
+800002ec: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800002f0: 00200293 li t0,2
+800002f4: fc521ae3 bne tp,t0,800002c8 <test_14+0x8>
+
+800002f8 <test_15>:
+800002f8: 00f00193 li gp,15
+800002fc: 00000213 li tp,0
+80000300: fbc00093 li ra,-68
+80000304: 00000013 nop
+80000308: 00002117 auipc sp,0x2
+8000030c: cf810113 addi sp,sp,-776 # 80002000 <begin_signature>
+80000310: 001101a3 sb ra,3(sp)
+80000314: 00310f03 lb t5,3(sp)
+80000318: fbc00e93 li t4,-68
+8000031c: 1ddf1a63 bne t5,t4,800004f0 <fail>
+80000320: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000324: 00200293 li t0,2
+80000328: fc521ce3 bne tp,t0,80000300 <test_15+0x8>
+
+8000032c <test_16>:
+8000032c: 01000193 li gp,16
+80000330: 00000213 li tp,0
+80000334: fbb00093 li ra,-69
+80000338: 00000013 nop
+8000033c: 00002117 auipc sp,0x2
+80000340: cc410113 addi sp,sp,-828 # 80002000 <begin_signature>
+80000344: 00000013 nop
+80000348: 00110223 sb ra,4(sp)
+8000034c: 00410f03 lb t5,4(sp)
+80000350: fbb00e93 li t4,-69
+80000354: 19df1e63 bne t5,t4,800004f0 <fail>
+80000358: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000035c: 00200293 li t0,2
+80000360: fc521ae3 bne tp,t0,80000334 <test_16+0x8>
+
+80000364 <test_17>:
+80000364: 01100193 li gp,17
+80000368: 00000213 li tp,0
+8000036c: fab00093 li ra,-85
+80000370: 00000013 nop
+80000374: 00000013 nop
+80000378: 00002117 auipc sp,0x2
+8000037c: c8810113 addi sp,sp,-888 # 80002000 <begin_signature>
+80000380: 001102a3 sb ra,5(sp)
+80000384: 00510f03 lb t5,5(sp)
+80000388: fab00e93 li t4,-85
+8000038c: 17df1263 bne t5,t4,800004f0 <fail>
+80000390: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000394: 00200293 li t0,2
+80000398: fc521ae3 bne tp,t0,8000036c <test_17+0x8>
+
+8000039c <test_18>:
+8000039c: 01200193 li gp,18
+800003a0: 00000213 li tp,0
+800003a4: 00002117 auipc sp,0x2
+800003a8: c5c10113 addi sp,sp,-932 # 80002000 <begin_signature>
+800003ac: 03300093 li ra,51
+800003b0: 00110023 sb ra,0(sp)
+800003b4: 00010f03 lb t5,0(sp)
+800003b8: 03300e93 li t4,51
+800003bc: 13df1a63 bne t5,t4,800004f0 <fail>
+800003c0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800003c4: 00200293 li t0,2
+800003c8: fc521ee3 bne tp,t0,800003a4 <test_18+0x8>
+
+800003cc <test_19>:
+800003cc: 01300193 li gp,19
+800003d0: 00000213 li tp,0
+800003d4: 00002117 auipc sp,0x2
+800003d8: c2c10113 addi sp,sp,-980 # 80002000 <begin_signature>
+800003dc: 02300093 li ra,35
+800003e0: 00000013 nop
+800003e4: 001100a3 sb ra,1(sp)
+800003e8: 00110f03 lb t5,1(sp)
+800003ec: 02300e93 li t4,35
+800003f0: 11df1063 bne t5,t4,800004f0 <fail>
+800003f4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800003f8: 00200293 li t0,2
+800003fc: fc521ce3 bne tp,t0,800003d4 <test_19+0x8>
+
+80000400 <test_20>:
+80000400: 01400193 li gp,20
+80000404: 00000213 li tp,0
+80000408: 00002117 auipc sp,0x2
+8000040c: bf810113 addi sp,sp,-1032 # 80002000 <begin_signature>
+80000410: 02200093 li ra,34
+80000414: 00000013 nop
+80000418: 00000013 nop
+8000041c: 00110123 sb ra,2(sp)
+80000420: 00210f03 lb t5,2(sp)
+80000424: 02200e93 li t4,34
+80000428: 0ddf1463 bne t5,t4,800004f0 <fail>
+8000042c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000430: 00200293 li t0,2
+80000434: fc521ae3 bne tp,t0,80000408 <test_20+0x8>
+
+80000438 <test_21>:
+80000438: 01500193 li gp,21
+8000043c: 00000213 li tp,0
+80000440: 00002117 auipc sp,0x2
+80000444: bc010113 addi sp,sp,-1088 # 80002000 <begin_signature>
+80000448: 00000013 nop
+8000044c: 01200093 li ra,18
+80000450: 001101a3 sb ra,3(sp)
+80000454: 00310f03 lb t5,3(sp)
+80000458: 01200e93 li t4,18
+8000045c: 09df1a63 bne t5,t4,800004f0 <fail>
+80000460: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000464: 00200293 li t0,2
+80000468: fc521ce3 bne tp,t0,80000440 <test_21+0x8>
+
+8000046c <test_22>:
+8000046c: 01600193 li gp,22
+80000470: 00000213 li tp,0
+80000474: 00002117 auipc sp,0x2
+80000478: b8c10113 addi sp,sp,-1140 # 80002000 <begin_signature>
+8000047c: 00000013 nop
+80000480: 01100093 li ra,17
+80000484: 00000013 nop
+80000488: 00110223 sb ra,4(sp)
+8000048c: 00410f03 lb t5,4(sp)
+80000490: 01100e93 li t4,17
+80000494: 05df1e63 bne t5,t4,800004f0 <fail>
+80000498: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000049c: 00200293 li t0,2
+800004a0: fc521ae3 bne tp,t0,80000474 <test_22+0x8>
+
+800004a4 <test_23>:
+800004a4: 01700193 li gp,23
+800004a8: 00000213 li tp,0
+800004ac: 00002117 auipc sp,0x2
+800004b0: b5410113 addi sp,sp,-1196 # 80002000 <begin_signature>
+800004b4: 00000013 nop
+800004b8: 00000013 nop
+800004bc: 00100093 li ra,1
+800004c0: 001102a3 sb ra,5(sp)
+800004c4: 00510f03 lb t5,5(sp)
+800004c8: 00100e93 li t4,1
+800004cc: 03df1263 bne t5,t4,800004f0 <fail>
+800004d0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800004d4: 00200293 li t0,2
+800004d8: fc521ae3 bne tp,t0,800004ac <test_23+0x8>
+800004dc: 0ef00513 li a0,239
+800004e0: 00002597 auipc a1,0x2
+800004e4: b2058593 addi a1,a1,-1248 # 80002000 <begin_signature>
+800004e8: 00a581a3 sb a0,3(a1)
+800004ec: 00301c63 bne zero,gp,80000504 <pass>
+
+800004f0 <fail>:
+800004f0: 0ff0000f fence
+800004f4: 00018063 beqz gp,800004f4 <fail+0x4>
+800004f8: 00119193 slli gp,gp,0x1
+800004fc: 0011e193 ori gp,gp,1
+80000500: 00000073 ecall
+
+80000504 <pass>:
+80000504: 0ff0000f fence
+80000508: 00100193 li gp,1
+8000050c: 00000073 ecall
+80000510: c0001073 unimp
+80000514: 0000 unimp
+80000516: 0000 unimp
+80000518: 0000 unimp
+8000051a: 0000 unimp
+8000051c: 0000 unimp
+8000051e: 0000 unimp
+80000520: 0000 unimp
+80000522: 0000 unimp
+80000524: 0000 unimp
+80000526: 0000 unimp
+80000528: 0000 unimp
+8000052a: 0000 unimp
+8000052c: 0000 unimp
+8000052e: 0000 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+0x1fa>
+
+80002001 <tdat2>:
+80002001: jal t6,800006ff <pass+0x1fb>
+
+80002002 <tdat3>:
+80002002: jal t6,80000700 <pass+0x1fc>
+
+80002003 <tdat4>:
+80002003: jal t6,80000701 <pass+0x1fd>
+
+80002004 <tdat5>:
+80002004: jal t6,80000702 <pass+0x1fe>
+
+80002005 <tdat6>:
+80002005: jal t6,80000703 <pass+0x1ff>
+
+80002006 <tdat7>:
+80002006: jal t6,80000704 <pass+0x200>
+
+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.
+
diff --git a/test/riscv-tests/rv32ui-p-sb.elf b/test/riscv-tests/rv32ui-p-sb.elf
new file mode 100644
index 0000000..29bf0e4
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-sb.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-p-sh.dump b/test/riscv-tests/rv32ui-p-sh.dump
new file mode 100644
index 0000000..d4bbbcb
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-sh.dump
@@ -0,0 +1,480 @@
+
+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: 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: 00002097 auipc ra,0x2
+80000100: f0408093 addi ra,ra,-252 # 80002000 <begin_signature>
+80000104: 0aa00113 li sp,170
+80000108: 00209023 sh sp,0(ra)
+8000010c: 00009f03 lh t5,0(ra)
+80000110: 0aa00e93 li t4,170
+80000114: 00200193 li gp,2
+80000118: 45df1e63 bne t5,t4,80000574 <fail>
+
+8000011c <test_3>:
+8000011c: 00002097 auipc ra,0x2
+80000120: ee408093 addi ra,ra,-284 # 80002000 <begin_signature>
+80000124: ffffb137 lui sp,0xffffb
+80000128: a0010113 addi sp,sp,-1536 # ffffaa00 <_end+0x7fff89e0>
+8000012c: 00209123 sh sp,2(ra)
+80000130: 00209f03 lh t5,2(ra)
+80000134: ffffbeb7 lui t4,0xffffb
+80000138: a00e8e93 addi t4,t4,-1536 # ffffaa00 <_end+0x7fff89e0>
+8000013c: 00300193 li gp,3
+80000140: 43df1a63 bne t5,t4,80000574 <fail>
+
+80000144 <test_4>:
+80000144: 00002097 auipc ra,0x2
+80000148: ebc08093 addi ra,ra,-324 # 80002000 <begin_signature>
+8000014c: beef1137 lui sp,0xbeef1
+80000150: aa010113 addi sp,sp,-1376 # beef0aa0 <_end+0x3eeeea80>
+80000154: 00209223 sh sp,4(ra)
+80000158: 0040af03 lw t5,4(ra)
+8000015c: beef1eb7 lui t4,0xbeef1
+80000160: aa0e8e93 addi t4,t4,-1376 # beef0aa0 <_end+0x3eeeea80>
+80000164: 00400193 li gp,4
+80000168: 41df1663 bne t5,t4,80000574 <fail>
+
+8000016c <test_5>:
+8000016c: 00002097 auipc ra,0x2
+80000170: e9408093 addi ra,ra,-364 # 80002000 <begin_signature>
+80000174: ffffa137 lui sp,0xffffa
+80000178: 00a10113 addi sp,sp,10 # ffffa00a <_end+0x7fff7fea>
+8000017c: 00209323 sh sp,6(ra)
+80000180: 00609f03 lh t5,6(ra)
+80000184: ffffaeb7 lui t4,0xffffa
+80000188: 00ae8e93 addi t4,t4,10 # ffffa00a <_end+0x7fff7fea>
+8000018c: 00500193 li gp,5
+80000190: 3fdf1263 bne t5,t4,80000574 <fail>
+
+80000194 <test_6>:
+80000194: 00002097 auipc ra,0x2
+80000198: e7a08093 addi ra,ra,-390 # 8000200e <tdat8>
+8000019c: 0aa00113 li sp,170
+800001a0: fe209d23 sh sp,-6(ra)
+800001a4: ffa09f03 lh t5,-6(ra)
+800001a8: 0aa00e93 li t4,170
+800001ac: 00600193 li gp,6
+800001b0: 3ddf1263 bne t5,t4,80000574 <fail>
+
+800001b4 <test_7>:
+800001b4: 00002097 auipc ra,0x2
+800001b8: e5a08093 addi ra,ra,-422 # 8000200e <tdat8>
+800001bc: ffffb137 lui sp,0xffffb
+800001c0: a0010113 addi sp,sp,-1536 # ffffaa00 <_end+0x7fff89e0>
+800001c4: fe209e23 sh sp,-4(ra)
+800001c8: ffc09f03 lh t5,-4(ra)
+800001cc: ffffbeb7 lui t4,0xffffb
+800001d0: a00e8e93 addi t4,t4,-1536 # ffffaa00 <_end+0x7fff89e0>
+800001d4: 00700193 li gp,7
+800001d8: 39df1e63 bne t5,t4,80000574 <fail>
+
+800001dc <test_8>:
+800001dc: 00002097 auipc ra,0x2
+800001e0: e3208093 addi ra,ra,-462 # 8000200e <tdat8>
+800001e4: 00001137 lui sp,0x1
+800001e8: aa010113 addi sp,sp,-1376 # aa0 <_start-0x7ffff560>
+800001ec: fe209f23 sh sp,-2(ra)
+800001f0: ffe09f03 lh t5,-2(ra)
+800001f4: 00001eb7 lui t4,0x1
+800001f8: aa0e8e93 addi t4,t4,-1376 # aa0 <_start-0x7ffff560>
+800001fc: 00800193 li gp,8
+80000200: 37df1a63 bne t5,t4,80000574 <fail>
+
+80000204 <test_9>:
+80000204: 00002097 auipc ra,0x2
+80000208: e0a08093 addi ra,ra,-502 # 8000200e <tdat8>
+8000020c: ffffa137 lui sp,0xffffa
+80000210: 00a10113 addi sp,sp,10 # ffffa00a <_end+0x7fff7fea>
+80000214: 00209023 sh sp,0(ra)
+80000218: 00009f03 lh t5,0(ra)
+8000021c: ffffaeb7 lui t4,0xffffa
+80000220: 00ae8e93 addi t4,t4,10 # ffffa00a <_end+0x7fff7fea>
+80000224: 00900193 li gp,9
+80000228: 35df1663 bne t5,t4,80000574 <fail>
+
+8000022c <test_10>:
+8000022c: 00002097 auipc ra,0x2
+80000230: de408093 addi ra,ra,-540 # 80002010 <tdat9>
+80000234: 12345137 lui sp,0x12345
+80000238: 67810113 addi sp,sp,1656 # 12345678 <_start-0x6dcba988>
+8000023c: fe008213 addi tp,ra,-32
+80000240: 02221023 sh sp,32(tp) # 20 <_start-0x7fffffe0>
+80000244: 00009283 lh t0,0(ra)
+80000248: 00005eb7 lui t4,0x5
+8000024c: 678e8e93 addi t4,t4,1656 # 5678 <_start-0x7fffa988>
+80000250: 00a00193 li gp,10
+80000254: 33d29063 bne t0,t4,80000574 <fail>
+
+80000258 <test_11>:
+80000258: 00002097 auipc ra,0x2
+8000025c: db808093 addi ra,ra,-584 # 80002010 <tdat9>
+80000260: 00003137 lui sp,0x3
+80000264: 09810113 addi sp,sp,152 # 3098 <_start-0x7fffcf68>
+80000268: ffb08093 addi ra,ra,-5
+8000026c: 002093a3 sh sp,7(ra)
+80000270: 00002217 auipc tp,0x2
+80000274: da220213 addi tp,tp,-606 # 80002012 <tdat10>
+80000278: 00021283 lh t0,0(tp) # 0 <_start-0x80000000>
+8000027c: 00003eb7 lui t4,0x3
+80000280: 098e8e93 addi t4,t4,152 # 3098 <_start-0x7fffcf68>
+80000284: 00b00193 li gp,11
+80000288: 2fd29663 bne t0,t4,80000574 <fail>
+
+8000028c <test_12>:
+8000028c: 00c00193 li gp,12
+80000290: 00000213 li tp,0
+80000294: ffffd0b7 lui ra,0xffffd
+80000298: cdd08093 addi ra,ra,-803 # ffffccdd <_end+0x7fffacbd>
+8000029c: 00002117 auipc sp,0x2
+800002a0: d6410113 addi sp,sp,-668 # 80002000 <begin_signature>
+800002a4: 00111023 sh ra,0(sp)
+800002a8: 00011f03 lh t5,0(sp)
+800002ac: ffffdeb7 lui t4,0xffffd
+800002b0: cdde8e93 addi t4,t4,-803 # ffffccdd <_end+0x7fffacbd>
+800002b4: 2ddf1063 bne t5,t4,80000574 <fail>
+800002b8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800002bc: 00200293 li t0,2
+800002c0: fc521ae3 bne tp,t0,80000294 <test_12+0x8>
+
+800002c4 <test_13>:
+800002c4: 00d00193 li gp,13
+800002c8: 00000213 li tp,0
+800002cc: ffffc0b7 lui ra,0xffffc
+800002d0: ccd08093 addi ra,ra,-819 # ffffbccd <_end+0x7fff9cad>
+800002d4: 00002117 auipc sp,0x2
+800002d8: d2c10113 addi sp,sp,-724 # 80002000 <begin_signature>
+800002dc: 00000013 nop
+800002e0: 00111123 sh ra,2(sp)
+800002e4: 00211f03 lh t5,2(sp)
+800002e8: ffffceb7 lui t4,0xffffc
+800002ec: ccde8e93 addi t4,t4,-819 # ffffbccd <_end+0x7fff9cad>
+800002f0: 29df1263 bne t5,t4,80000574 <fail>
+800002f4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800002f8: 00200293 li t0,2
+800002fc: fc5218e3 bne tp,t0,800002cc <test_13+0x8>
+
+80000300 <test_14>:
+80000300: 00e00193 li gp,14
+80000304: 00000213 li tp,0
+80000308: ffffc0b7 lui ra,0xffffc
+8000030c: bcc08093 addi ra,ra,-1076 # ffffbbcc <_end+0x7fff9bac>
+80000310: 00002117 auipc sp,0x2
+80000314: cf010113 addi sp,sp,-784 # 80002000 <begin_signature>
+80000318: 00000013 nop
+8000031c: 00000013 nop
+80000320: 00111223 sh ra,4(sp)
+80000324: 00411f03 lh t5,4(sp)
+80000328: ffffceb7 lui t4,0xffffc
+8000032c: bcce8e93 addi t4,t4,-1076 # ffffbbcc <_end+0x7fff9bac>
+80000330: 25df1263 bne t5,t4,80000574 <fail>
+80000334: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000338: 00200293 li t0,2
+8000033c: fc5216e3 bne tp,t0,80000308 <test_14+0x8>
+
+80000340 <test_15>:
+80000340: 00f00193 li gp,15
+80000344: 00000213 li tp,0
+80000348: ffffb0b7 lui ra,0xffffb
+8000034c: bbc08093 addi ra,ra,-1092 # ffffabbc <_end+0x7fff8b9c>
+80000350: 00000013 nop
+80000354: 00002117 auipc sp,0x2
+80000358: cac10113 addi sp,sp,-852 # 80002000 <begin_signature>
+8000035c: 00111323 sh ra,6(sp)
+80000360: 00611f03 lh t5,6(sp)
+80000364: ffffbeb7 lui t4,0xffffb
+80000368: bbce8e93 addi t4,t4,-1092 # ffffabbc <_end+0x7fff8b9c>
+8000036c: 21df1463 bne t5,t4,80000574 <fail>
+80000370: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000374: 00200293 li t0,2
+80000378: fc5218e3 bne tp,t0,80000348 <test_15+0x8>
+
+8000037c <test_16>:
+8000037c: 01000193 li gp,16
+80000380: 00000213 li tp,0
+80000384: ffffb0b7 lui ra,0xffffb
+80000388: abb08093 addi ra,ra,-1349 # ffffaabb <_end+0x7fff8a9b>
+8000038c: 00000013 nop
+80000390: 00002117 auipc sp,0x2
+80000394: c7010113 addi sp,sp,-912 # 80002000 <begin_signature>
+80000398: 00000013 nop
+8000039c: 00111423 sh ra,8(sp)
+800003a0: 00811f03 lh t5,8(sp)
+800003a4: ffffbeb7 lui t4,0xffffb
+800003a8: abbe8e93 addi t4,t4,-1349 # ffffaabb <_end+0x7fff8a9b>
+800003ac: 1ddf1463 bne t5,t4,80000574 <fail>
+800003b0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800003b4: 00200293 li t0,2
+800003b8: fc5216e3 bne tp,t0,80000384 <test_16+0x8>
+
+800003bc <test_17>:
+800003bc: 01100193 li gp,17
+800003c0: 00000213 li tp,0
+800003c4: ffffe0b7 lui ra,0xffffe
+800003c8: aab08093 addi ra,ra,-1365 # ffffdaab <_end+0x7fffba8b>
+800003cc: 00000013 nop
+800003d0: 00000013 nop
+800003d4: 00002117 auipc sp,0x2
+800003d8: c2c10113 addi sp,sp,-980 # 80002000 <begin_signature>
+800003dc: 00111523 sh ra,10(sp)
+800003e0: 00a11f03 lh t5,10(sp)
+800003e4: ffffeeb7 lui t4,0xffffe
+800003e8: aabe8e93 addi t4,t4,-1365 # ffffdaab <_end+0x7fffba8b>
+800003ec: 19df1463 bne t5,t4,80000574 <fail>
+800003f0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800003f4: 00200293 li t0,2
+800003f8: fc5216e3 bne tp,t0,800003c4 <test_17+0x8>
+
+800003fc <test_18>:
+800003fc: 01200193 li gp,18
+80000400: 00000213 li tp,0
+80000404: 00002117 auipc sp,0x2
+80000408: bfc10113 addi sp,sp,-1028 # 80002000 <begin_signature>
+8000040c: 000020b7 lui ra,0x2
+80000410: 23308093 addi ra,ra,563 # 2233 <_start-0x7fffddcd>
+80000414: 00111023 sh ra,0(sp)
+80000418: 00011f03 lh t5,0(sp)
+8000041c: 00002eb7 lui t4,0x2
+80000420: 233e8e93 addi t4,t4,563 # 2233 <_start-0x7fffddcd>
+80000424: 15df1863 bne t5,t4,80000574 <fail>
+80000428: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000042c: 00200293 li t0,2
+80000430: fc521ae3 bne tp,t0,80000404 <test_18+0x8>
+
+80000434 <test_19>:
+80000434: 01300193 li gp,19
+80000438: 00000213 li tp,0
+8000043c: 00002117 auipc sp,0x2
+80000440: bc410113 addi sp,sp,-1084 # 80002000 <begin_signature>
+80000444: 000010b7 lui ra,0x1
+80000448: 22308093 addi ra,ra,547 # 1223 <_start-0x7fffeddd>
+8000044c: 00000013 nop
+80000450: 00111123 sh ra,2(sp)
+80000454: 00211f03 lh t5,2(sp)
+80000458: 00001eb7 lui t4,0x1
+8000045c: 223e8e93 addi t4,t4,547 # 1223 <_start-0x7fffeddd>
+80000460: 11df1a63 bne t5,t4,80000574 <fail>
+80000464: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000468: 00200293 li t0,2
+8000046c: fc5218e3 bne tp,t0,8000043c <test_19+0x8>
+
+80000470 <test_20>:
+80000470: 01400193 li gp,20
+80000474: 00000213 li tp,0
+80000478: 00002117 auipc sp,0x2
+8000047c: b8810113 addi sp,sp,-1144 # 80002000 <begin_signature>
+80000480: 000010b7 lui ra,0x1
+80000484: 12208093 addi ra,ra,290 # 1122 <_start-0x7fffeede>
+80000488: 00000013 nop
+8000048c: 00000013 nop
+80000490: 00111223 sh ra,4(sp)
+80000494: 00411f03 lh t5,4(sp)
+80000498: 00001eb7 lui t4,0x1
+8000049c: 122e8e93 addi t4,t4,290 # 1122 <_start-0x7fffeede>
+800004a0: 0ddf1a63 bne t5,t4,80000574 <fail>
+800004a4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800004a8: 00200293 li t0,2
+800004ac: fc5216e3 bne tp,t0,80000478 <test_20+0x8>
+
+800004b0 <test_21>:
+800004b0: 01500193 li gp,21
+800004b4: 00000213 li tp,0
+800004b8: 00002117 auipc sp,0x2
+800004bc: b4810113 addi sp,sp,-1208 # 80002000 <begin_signature>
+800004c0: 00000013 nop
+800004c4: 11200093 li ra,274
+800004c8: 00111323 sh ra,6(sp)
+800004cc: 00611f03 lh t5,6(sp)
+800004d0: 11200e93 li t4,274
+800004d4: 0bdf1063 bne t5,t4,80000574 <fail>
+800004d8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800004dc: 00200293 li t0,2
+800004e0: fc521ce3 bne tp,t0,800004b8 <test_21+0x8>
+
+800004e4 <test_22>:
+800004e4: 01600193 li gp,22
+800004e8: 00000213 li tp,0
+800004ec: 00002117 auipc sp,0x2
+800004f0: b1410113 addi sp,sp,-1260 # 80002000 <begin_signature>
+800004f4: 00000013 nop
+800004f8: 01100093 li ra,17
+800004fc: 00000013 nop
+80000500: 00111423 sh ra,8(sp)
+80000504: 00811f03 lh t5,8(sp)
+80000508: 01100e93 li t4,17
+8000050c: 07df1463 bne t5,t4,80000574 <fail>
+80000510: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000514: 00200293 li t0,2
+80000518: fc521ae3 bne tp,t0,800004ec <test_22+0x8>
+
+8000051c <test_23>:
+8000051c: 01700193 li gp,23
+80000520: 00000213 li tp,0
+80000524: 00002117 auipc sp,0x2
+80000528: adc10113 addi sp,sp,-1316 # 80002000 <begin_signature>
+8000052c: 00000013 nop
+80000530: 00000013 nop
+80000534: 000030b7 lui ra,0x3
+80000538: 00108093 addi ra,ra,1 # 3001 <_start-0x7fffcfff>
+8000053c: 00111523 sh ra,10(sp)
+80000540: 00a11f03 lh t5,10(sp)
+80000544: 00003eb7 lui t4,0x3
+80000548: 001e8e93 addi t4,t4,1 # 3001 <_start-0x7fffcfff>
+8000054c: 03df1463 bne t5,t4,80000574 <fail>
+80000550: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000554: 00200293 li t0,2
+80000558: fc5216e3 bne tp,t0,80000524 <test_23+0x8>
+8000055c: 0000c537 lui a0,0xc
+80000560: eef50513 addi a0,a0,-273 # beef <_start-0x7fff4111>
+80000564: 00002597 auipc a1,0x2
+80000568: a9c58593 addi a1,a1,-1380 # 80002000 <begin_signature>
+8000056c: 00a59323 sh a0,6(a1)
+80000570: 00301c63 bne zero,gp,80000588 <pass>
+
+80000574 <fail>:
+80000574: 0ff0000f fence
+80000578: 00018063 beqz gp,80000578 <fail+0x4>
+8000057c: 00119193 slli gp,gp,0x1
+80000580: 0011e193 ori gp,gp,1
+80000584: 00000073 ecall
+
+80000588 <pass>:
+80000588: 0ff0000f fence
+8000058c: 00100193 li gp,1
+80000590: 00000073 ecall
+80000594: c0001073 unimp
+80000598: 0000 unimp
+8000059a: 0000 unimp
+8000059c: 0000 unimp
+8000059e: 0000 unimp
+800005a0: 0000 unimp
+800005a2: 0000 unimp
+800005a4: 0000 unimp
+800005a6: 0000 unimp
+800005a8: 0000 unimp
+800005aa: 0000 unimp
+800005ac: 0000 unimp
+800005ae: 0000 unimp
+800005b0: 0000 unimp
+800005b2: 0000 unimp
+800005b4: 0000 unimp
+800005b6: 0000 unimp
+800005b8: 0000 unimp
+800005ba: 0000 unimp
+800005bc: 0000 unimp
+800005be: 0000 unimp
+800005c0: 0000 unimp
+800005c2: 0000 unimp
+
+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
diff --git a/test/riscv-tests/rv32ui-p-sh.elf b/test/riscv-tests/rv32ui-p-sh.elf
new file mode 100644
index 0000000..923effd
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-sh.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-p-simple.dump b/test/riscv-tests/rv32ui-p-simple.dump
new file mode 100644
index 0000000..3ab5134
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-simple.dump
@@ -0,0 +1,110 @@
+
+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: 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 <reset_vector+0xb0>
+800000f0: 34129073 csrw mepc,t0
+800000f4: f1402573 csrr a0,mhartid
+800000f8: 30200073 mret
+800000fc: 0ff0000f fence
+80000100: 00100193 li gp,1
+80000104: 00000073 ecall
+80000108: c0001073 unimp
+8000010c: 0000 unimp
+8000010e: 0000 unimp
+80000110: 0000 unimp
+80000112: 0000 unimp
+80000114: 0000 unimp
+80000116: 0000 unimp
+80000118: 0000 unimp
+8000011a: 0000 unimp
+8000011c: 0000 unimp
+8000011e: 0000 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
diff --git a/test/riscv-tests/rv32ui-p-simple.elf b/test/riscv-tests/rv32ui-p-simple.elf
new file mode 100644
index 0000000..c578534
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-simple.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-p-sll.dump b/test/riscv-tests/rv32ui-p-sll.dump
new file mode 100644
index 0000000..b1bd1b6
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-sll.dump
@@ -0,0 +1,523 @@
+
+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: 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: 00100093 li ra,1
+80000100: 00000113 li sp,0
+80000104: 00209f33 sll t5,ra,sp
+80000108: 00100e93 li t4,1
+8000010c: 00200193 li gp,2
+80000110: 53df1e63 bne t5,t4,8000064c <fail>
+
+80000114 <test_3>:
+80000114: 00100093 li ra,1
+80000118: 00100113 li sp,1
+8000011c: 00209f33 sll t5,ra,sp
+80000120: 00200e93 li t4,2
+80000124: 00300193 li gp,3
+80000128: 53df1263 bne t5,t4,8000064c <fail>
+
+8000012c <test_4>:
+8000012c: 00100093 li ra,1
+80000130: 00700113 li sp,7
+80000134: 00209f33 sll t5,ra,sp
+80000138: 08000e93 li t4,128
+8000013c: 00400193 li gp,4
+80000140: 51df1663 bne t5,t4,8000064c <fail>
+
+80000144 <test_5>:
+80000144: 00100093 li ra,1
+80000148: 00e00113 li sp,14
+8000014c: 00209f33 sll t5,ra,sp
+80000150: 00004eb7 lui t4,0x4
+80000154: 00500193 li gp,5
+80000158: 4fdf1a63 bne t5,t4,8000064c <fail>
+
+8000015c <test_6>:
+8000015c: 00100093 li ra,1
+80000160: 01f00113 li sp,31
+80000164: 00209f33 sll t5,ra,sp
+80000168: 80000eb7 lui t4,0x80000
+8000016c: 00600193 li gp,6
+80000170: 4ddf1e63 bne t5,t4,8000064c <fail>
+
+80000174 <test_7>:
+80000174: fff00093 li ra,-1
+80000178: 00000113 li sp,0
+8000017c: 00209f33 sll t5,ra,sp
+80000180: fff00e93 li t4,-1
+80000184: 00700193 li gp,7
+80000188: 4ddf1263 bne t5,t4,8000064c <fail>
+
+8000018c <test_8>:
+8000018c: fff00093 li ra,-1
+80000190: 00100113 li sp,1
+80000194: 00209f33 sll t5,ra,sp
+80000198: ffe00e93 li t4,-2
+8000019c: 00800193 li gp,8
+800001a0: 4bdf1663 bne t5,t4,8000064c <fail>
+
+800001a4 <test_9>:
+800001a4: fff00093 li ra,-1
+800001a8: 00700113 li sp,7
+800001ac: 00209f33 sll t5,ra,sp
+800001b0: f8000e93 li t4,-128
+800001b4: 00900193 li gp,9
+800001b8: 49df1a63 bne t5,t4,8000064c <fail>
+
+800001bc <test_10>:
+800001bc: fff00093 li ra,-1
+800001c0: 00e00113 li sp,14
+800001c4: 00209f33 sll t5,ra,sp
+800001c8: ffffceb7 lui t4,0xffffc
+800001cc: 00a00193 li gp,10
+800001d0: 47df1e63 bne t5,t4,8000064c <fail>
+
+800001d4 <test_11>:
+800001d4: fff00093 li ra,-1
+800001d8: 01f00113 li sp,31
+800001dc: 00209f33 sll t5,ra,sp
+800001e0: 80000eb7 lui t4,0x80000
+800001e4: 00b00193 li gp,11
+800001e8: 47df1263 bne t5,t4,8000064c <fail>
+
+800001ec <test_12>:
+800001ec: 212120b7 lui ra,0x21212
+800001f0: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
+800001f4: 00000113 li sp,0
+800001f8: 00209f33 sll t5,ra,sp
+800001fc: 21212eb7 lui t4,0x21212
+80000200: 121e8e93 addi t4,t4,289 # 21212121 <_start-0x5edededf>
+80000204: 00c00193 li gp,12
+80000208: 45df1263 bne t5,t4,8000064c <fail>
+
+8000020c <test_13>:
+8000020c: 212120b7 lui ra,0x21212
+80000210: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
+80000214: 00100113 li sp,1
+80000218: 00209f33 sll t5,ra,sp
+8000021c: 42424eb7 lui t4,0x42424
+80000220: 242e8e93 addi t4,t4,578 # 42424242 <_start-0x3dbdbdbe>
+80000224: 00d00193 li gp,13
+80000228: 43df1263 bne t5,t4,8000064c <fail>
+
+8000022c <test_14>:
+8000022c: 212120b7 lui ra,0x21212
+80000230: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
+80000234: 00700113 li sp,7
+80000238: 00209f33 sll t5,ra,sp
+8000023c: 90909eb7 lui t4,0x90909
+80000240: 080e8e93 addi t4,t4,128 # 90909080 <_end+0x10907080>
+80000244: 00e00193 li gp,14
+80000248: 41df1263 bne t5,t4,8000064c <fail>
+
+8000024c <test_15>:
+8000024c: 212120b7 lui ra,0x21212
+80000250: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
+80000254: 00e00113 li sp,14
+80000258: 00209f33 sll t5,ra,sp
+8000025c: 48484eb7 lui t4,0x48484
+80000260: 00f00193 li gp,15
+80000264: 3fdf1463 bne t5,t4,8000064c <fail>
+
+80000268 <test_16>:
+80000268: 212120b7 lui ra,0x21212
+8000026c: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
+80000270: 01f00113 li sp,31
+80000274: 00209f33 sll t5,ra,sp
+80000278: 80000eb7 lui t4,0x80000
+8000027c: 01000193 li gp,16
+80000280: 3ddf1663 bne t5,t4,8000064c <fail>
+
+80000284 <test_17>:
+80000284: 212120b7 lui ra,0x21212
+80000288: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
+8000028c: fc000113 li sp,-64
+80000290: 00209f33 sll t5,ra,sp
+80000294: 21212eb7 lui t4,0x21212
+80000298: 121e8e93 addi t4,t4,289 # 21212121 <_start-0x5edededf>
+8000029c: 01100193 li gp,17
+800002a0: 3bdf1663 bne t5,t4,8000064c <fail>
+
+800002a4 <test_18>:
+800002a4: 212120b7 lui ra,0x21212
+800002a8: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
+800002ac: fc100113 li sp,-63
+800002b0: 00209f33 sll t5,ra,sp
+800002b4: 42424eb7 lui t4,0x42424
+800002b8: 242e8e93 addi t4,t4,578 # 42424242 <_start-0x3dbdbdbe>
+800002bc: 01200193 li gp,18
+800002c0: 39df1663 bne t5,t4,8000064c <fail>
+
+800002c4 <test_19>:
+800002c4: 212120b7 lui ra,0x21212
+800002c8: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
+800002cc: fc700113 li sp,-57
+800002d0: 00209f33 sll t5,ra,sp
+800002d4: 90909eb7 lui t4,0x90909
+800002d8: 080e8e93 addi t4,t4,128 # 90909080 <_end+0x10907080>
+800002dc: 01300193 li gp,19
+800002e0: 37df1663 bne t5,t4,8000064c <fail>
+
+800002e4 <test_20>:
+800002e4: 212120b7 lui ra,0x21212
+800002e8: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
+800002ec: fce00113 li sp,-50
+800002f0: 00209f33 sll t5,ra,sp
+800002f4: 48484eb7 lui t4,0x48484
+800002f8: 01400193 li gp,20
+800002fc: 35df1863 bne t5,t4,8000064c <fail>
+
+80000300 <test_22>:
+80000300: 00100093 li ra,1
+80000304: 00700113 li sp,7
+80000308: 002090b3 sll ra,ra,sp
+8000030c: 08000e93 li t4,128
+80000310: 01600193 li gp,22
+80000314: 33d09c63 bne ra,t4,8000064c <fail>
+
+80000318 <test_23>:
+80000318: 00100093 li ra,1
+8000031c: 00e00113 li sp,14
+80000320: 00209133 sll sp,ra,sp
+80000324: 00004eb7 lui t4,0x4
+80000328: 01700193 li gp,23
+8000032c: 33d11063 bne sp,t4,8000064c <fail>
+
+80000330 <test_24>:
+80000330: 00300093 li ra,3
+80000334: 001090b3 sll ra,ra,ra
+80000338: 01800e93 li t4,24
+8000033c: 01800193 li gp,24
+80000340: 31d09663 bne ra,t4,8000064c <fail>
+
+80000344 <test_25>:
+80000344: 00000213 li tp,0
+80000348: 00100093 li ra,1
+8000034c: 00700113 li sp,7
+80000350: 00209f33 sll t5,ra,sp
+80000354: 000f0313 mv t1,t5
+80000358: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000035c: 00200293 li t0,2
+80000360: fe5214e3 bne tp,t0,80000348 <test_25+0x4>
+80000364: 08000e93 li t4,128
+80000368: 01900193 li gp,25
+8000036c: 2fd31063 bne t1,t4,8000064c <fail>
+
+80000370 <test_26>:
+80000370: 00000213 li tp,0
+80000374: 00100093 li ra,1
+80000378: 00e00113 li sp,14
+8000037c: 00209f33 sll t5,ra,sp
+80000380: 00000013 nop
+80000384: 000f0313 mv t1,t5
+80000388: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000038c: 00200293 li t0,2
+80000390: fe5212e3 bne tp,t0,80000374 <test_26+0x4>
+80000394: 00004eb7 lui t4,0x4
+80000398: 01a00193 li gp,26
+8000039c: 2bd31863 bne t1,t4,8000064c <fail>
+
+800003a0 <test_27>:
+800003a0: 00000213 li tp,0
+800003a4: 00100093 li ra,1
+800003a8: 01f00113 li sp,31
+800003ac: 00209f33 sll t5,ra,sp
+800003b0: 00000013 nop
+800003b4: 00000013 nop
+800003b8: 000f0313 mv t1,t5
+800003bc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800003c0: 00200293 li t0,2
+800003c4: fe5210e3 bne tp,t0,800003a4 <test_27+0x4>
+800003c8: 80000eb7 lui t4,0x80000
+800003cc: 01b00193 li gp,27
+800003d0: 27d31e63 bne t1,t4,8000064c <fail>
+
+800003d4 <test_28>:
+800003d4: 00000213 li tp,0
+800003d8: 00100093 li ra,1
+800003dc: 00700113 li sp,7
+800003e0: 00209f33 sll t5,ra,sp
+800003e4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800003e8: 00200293 li t0,2
+800003ec: fe5216e3 bne tp,t0,800003d8 <test_28+0x4>
+800003f0: 08000e93 li t4,128
+800003f4: 01c00193 li gp,28
+800003f8: 25df1a63 bne t5,t4,8000064c <fail>
+
+800003fc <test_29>:
+800003fc: 00000213 li tp,0
+80000400: 00100093 li ra,1
+80000404: 00e00113 li sp,14
+80000408: 00000013 nop
+8000040c: 00209f33 sll t5,ra,sp
+80000410: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000414: 00200293 li t0,2
+80000418: fe5214e3 bne tp,t0,80000400 <test_29+0x4>
+8000041c: 00004eb7 lui t4,0x4
+80000420: 01d00193 li gp,29
+80000424: 23df1463 bne t5,t4,8000064c <fail>
+
+80000428 <test_30>:
+80000428: 00000213 li tp,0
+8000042c: 00100093 li ra,1
+80000430: 01f00113 li sp,31
+80000434: 00000013 nop
+80000438: 00000013 nop
+8000043c: 00209f33 sll t5,ra,sp
+80000440: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000444: 00200293 li t0,2
+80000448: fe5212e3 bne tp,t0,8000042c <test_30+0x4>
+8000044c: 80000eb7 lui t4,0x80000
+80000450: 01e00193 li gp,30
+80000454: 1fdf1c63 bne t5,t4,8000064c <fail>
+
+80000458 <test_31>:
+80000458: 00000213 li tp,0
+8000045c: 00100093 li ra,1
+80000460: 00000013 nop
+80000464: 00700113 li sp,7
+80000468: 00209f33 sll t5,ra,sp
+8000046c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000470: 00200293 li t0,2
+80000474: fe5214e3 bne tp,t0,8000045c <test_31+0x4>
+80000478: 08000e93 li t4,128
+8000047c: 01f00193 li gp,31
+80000480: 1ddf1663 bne t5,t4,8000064c <fail>
+
+80000484 <test_32>:
+80000484: 00000213 li tp,0
+80000488: 00100093 li ra,1
+8000048c: 00000013 nop
+80000490: 00e00113 li sp,14
+80000494: 00000013 nop
+80000498: 00209f33 sll t5,ra,sp
+8000049c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800004a0: 00200293 li t0,2
+800004a4: fe5212e3 bne tp,t0,80000488 <test_32+0x4>
+800004a8: 00004eb7 lui t4,0x4
+800004ac: 02000193 li gp,32
+800004b0: 19df1e63 bne t5,t4,8000064c <fail>
+
+800004b4 <test_33>:
+800004b4: 00000213 li tp,0
+800004b8: 00100093 li ra,1
+800004bc: 00000013 nop
+800004c0: 00000013 nop
+800004c4: 01f00113 li sp,31
+800004c8: 00209f33 sll t5,ra,sp
+800004cc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800004d0: 00200293 li t0,2
+800004d4: fe5212e3 bne tp,t0,800004b8 <test_33+0x4>
+800004d8: 80000eb7 lui t4,0x80000
+800004dc: 02100193 li gp,33
+800004e0: 17df1663 bne t5,t4,8000064c <fail>
+
+800004e4 <test_34>:
+800004e4: 00000213 li tp,0
+800004e8: 00700113 li sp,7
+800004ec: 00100093 li ra,1
+800004f0: 00209f33 sll t5,ra,sp
+800004f4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800004f8: 00200293 li t0,2
+800004fc: fe5216e3 bne tp,t0,800004e8 <test_34+0x4>
+80000500: 08000e93 li t4,128
+80000504: 02200193 li gp,34
+80000508: 15df1263 bne t5,t4,8000064c <fail>
+
+8000050c <test_35>:
+8000050c: 00000213 li tp,0
+80000510: 00e00113 li sp,14
+80000514: 00100093 li ra,1
+80000518: 00000013 nop
+8000051c: 00209f33 sll t5,ra,sp
+80000520: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000524: 00200293 li t0,2
+80000528: fe5214e3 bne tp,t0,80000510 <test_35+0x4>
+8000052c: 00004eb7 lui t4,0x4
+80000530: 02300193 li gp,35
+80000534: 11df1c63 bne t5,t4,8000064c <fail>
+
+80000538 <test_36>:
+80000538: 00000213 li tp,0
+8000053c: 01f00113 li sp,31
+80000540: 00100093 li ra,1
+80000544: 00000013 nop
+80000548: 00000013 nop
+8000054c: 00209f33 sll t5,ra,sp
+80000550: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000554: 00200293 li t0,2
+80000558: fe5212e3 bne tp,t0,8000053c <test_36+0x4>
+8000055c: 80000eb7 lui t4,0x80000
+80000560: 02400193 li gp,36
+80000564: 0fdf1463 bne t5,t4,8000064c <fail>
+
+80000568 <test_37>:
+80000568: 00000213 li tp,0
+8000056c: 00700113 li sp,7
+80000570: 00000013 nop
+80000574: 00100093 li ra,1
+80000578: 00209f33 sll t5,ra,sp
+8000057c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000580: 00200293 li t0,2
+80000584: fe5214e3 bne tp,t0,8000056c <test_37+0x4>
+80000588: 08000e93 li t4,128
+8000058c: 02500193 li gp,37
+80000590: 0bdf1e63 bne t5,t4,8000064c <fail>
+
+80000594 <test_38>:
+80000594: 00000213 li tp,0
+80000598: 00e00113 li sp,14
+8000059c: 00000013 nop
+800005a0: 00100093 li ra,1
+800005a4: 00000013 nop
+800005a8: 00209f33 sll t5,ra,sp
+800005ac: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800005b0: 00200293 li t0,2
+800005b4: fe5212e3 bne tp,t0,80000598 <test_38+0x4>
+800005b8: 00004eb7 lui t4,0x4
+800005bc: 02600193 li gp,38
+800005c0: 09df1663 bne t5,t4,8000064c <fail>
+
+800005c4 <test_39>:
+800005c4: 00000213 li tp,0
+800005c8: 01f00113 li sp,31
+800005cc: 00000013 nop
+800005d0: 00000013 nop
+800005d4: 00100093 li ra,1
+800005d8: 00209f33 sll t5,ra,sp
+800005dc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800005e0: 00200293 li t0,2
+800005e4: fe5212e3 bne tp,t0,800005c8 <test_39+0x4>
+800005e8: 80000eb7 lui t4,0x80000
+800005ec: 02700193 li gp,39
+800005f0: 05df1e63 bne t5,t4,8000064c <fail>
+
+800005f4 <test_40>:
+800005f4: 00f00093 li ra,15
+800005f8: 00101133 sll sp,zero,ra
+800005fc: 00000e93 li t4,0
+80000600: 02800193 li gp,40
+80000604: 05d11463 bne sp,t4,8000064c <fail>
+
+80000608 <test_41>:
+80000608: 02000093 li ra,32
+8000060c: 00009133 sll sp,ra,zero
+80000610: 02000e93 li t4,32
+80000614: 02900193 li gp,41
+80000618: 03d11a63 bne sp,t4,8000064c <fail>
+
+8000061c <test_42>:
+8000061c: 000010b3 sll ra,zero,zero
+80000620: 00000e93 li t4,0
+80000624: 02a00193 li gp,42
+80000628: 03d09263 bne ra,t4,8000064c <fail>
+
+8000062c <test_43>:
+8000062c: 40000093 li ra,1024
+80000630: 00001137 lui sp,0x1
+80000634: 80010113 addi sp,sp,-2048 # 800 <_start-0x7ffff800>
+80000638: 00209033 sll zero,ra,sp
+8000063c: 00000e93 li t4,0
+80000640: 02b00193 li gp,43
+80000644: 01d01463 bne zero,t4,8000064c <fail>
+80000648: 00301c63 bne zero,gp,80000660 <pass>
+
+8000064c <fail>:
+8000064c: 0ff0000f fence
+80000650: 00018063 beqz gp,80000650 <fail+0x4>
+80000654: 00119193 slli gp,gp,0x1
+80000658: 0011e193 ori gp,gp,1
+8000065c: 00000073 ecall
+
+80000660 <pass>:
+80000660: 0ff0000f fence
+80000664: 00100193 li gp,1
+80000668: 00000073 ecall
+8000066c: c0001073 unimp
+80000670: 0000 unimp
+80000672: 0000 unimp
+80000674: 0000 unimp
+80000676: 0000 unimp
+80000678: 0000 unimp
+8000067a: 0000 unimp
+8000067c: 0000 unimp
+8000067e: 0000 unimp
+80000680: 0000 unimp
+80000682: 0000 unimp
diff --git a/test/riscv-tests/rv32ui-p-sll.elf b/test/riscv-tests/rv32ui-p-sll.elf
new file mode 100644
index 0000000..038897d
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-sll.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-p-slli.dump b/test/riscv-tests/rv32ui-p-slli.dump
new file mode 100644
index 0000000..0408e2e
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-slli.dump
@@ -0,0 +1,316 @@
+
+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: 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: 00100093 li ra,1
+80000100: 00009f13 slli t5,ra,0x0
+80000104: 00100e93 li t4,1
+80000108: 00200193 li gp,2
+8000010c: 27df1a63 bne t5,t4,80000380 <fail>
+
+80000110 <test_3>:
+80000110: 00100093 li ra,1
+80000114: 00109f13 slli t5,ra,0x1
+80000118: 00200e93 li t4,2
+8000011c: 00300193 li gp,3
+80000120: 27df1063 bne t5,t4,80000380 <fail>
+
+80000124 <test_4>:
+80000124: 00100093 li ra,1
+80000128: 00709f13 slli t5,ra,0x7
+8000012c: 08000e93 li t4,128
+80000130: 00400193 li gp,4
+80000134: 25df1663 bne t5,t4,80000380 <fail>
+
+80000138 <test_5>:
+80000138: 00100093 li ra,1
+8000013c: 00e09f13 slli t5,ra,0xe
+80000140: 00004eb7 lui t4,0x4
+80000144: 00500193 li gp,5
+80000148: 23df1c63 bne t5,t4,80000380 <fail>
+
+8000014c <test_6>:
+8000014c: 00100093 li ra,1
+80000150: 01f09f13 slli t5,ra,0x1f
+80000154: 80000eb7 lui t4,0x80000
+80000158: 00600193 li gp,6
+8000015c: 23df1263 bne t5,t4,80000380 <fail>
+
+80000160 <test_7>:
+80000160: fff00093 li ra,-1
+80000164: 00009f13 slli t5,ra,0x0
+80000168: fff00e93 li t4,-1
+8000016c: 00700193 li gp,7
+80000170: 21df1863 bne t5,t4,80000380 <fail>
+
+80000174 <test_8>:
+80000174: fff00093 li ra,-1
+80000178: 00109f13 slli t5,ra,0x1
+8000017c: ffe00e93 li t4,-2
+80000180: 00800193 li gp,8
+80000184: 1fdf1e63 bne t5,t4,80000380 <fail>
+
+80000188 <test_9>:
+80000188: fff00093 li ra,-1
+8000018c: 00709f13 slli t5,ra,0x7
+80000190: f8000e93 li t4,-128
+80000194: 00900193 li gp,9
+80000198: 1fdf1463 bne t5,t4,80000380 <fail>
+
+8000019c <test_10>:
+8000019c: fff00093 li ra,-1
+800001a0: 00e09f13 slli t5,ra,0xe
+800001a4: ffffceb7 lui t4,0xffffc
+800001a8: 00a00193 li gp,10
+800001ac: 1ddf1a63 bne t5,t4,80000380 <fail>
+
+800001b0 <test_11>:
+800001b0: fff00093 li ra,-1
+800001b4: 01f09f13 slli t5,ra,0x1f
+800001b8: 80000eb7 lui t4,0x80000
+800001bc: 00b00193 li gp,11
+800001c0: 1ddf1063 bne t5,t4,80000380 <fail>
+
+800001c4 <test_12>:
+800001c4: 212120b7 lui ra,0x21212
+800001c8: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
+800001cc: 00009f13 slli t5,ra,0x0
+800001d0: 21212eb7 lui t4,0x21212
+800001d4: 121e8e93 addi t4,t4,289 # 21212121 <_start-0x5edededf>
+800001d8: 00c00193 li gp,12
+800001dc: 1bdf1263 bne t5,t4,80000380 <fail>
+
+800001e0 <test_13>:
+800001e0: 212120b7 lui ra,0x21212
+800001e4: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
+800001e8: 00109f13 slli t5,ra,0x1
+800001ec: 42424eb7 lui t4,0x42424
+800001f0: 242e8e93 addi t4,t4,578 # 42424242 <_start-0x3dbdbdbe>
+800001f4: 00d00193 li gp,13
+800001f8: 19df1463 bne t5,t4,80000380 <fail>
+
+800001fc <test_14>:
+800001fc: 212120b7 lui ra,0x21212
+80000200: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
+80000204: 00709f13 slli t5,ra,0x7
+80000208: 90909eb7 lui t4,0x90909
+8000020c: 080e8e93 addi t4,t4,128 # 90909080 <_end+0x10907080>
+80000210: 00e00193 li gp,14
+80000214: 17df1663 bne t5,t4,80000380 <fail>
+
+80000218 <test_15>:
+80000218: 212120b7 lui ra,0x21212
+8000021c: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
+80000220: 00e09f13 slli t5,ra,0xe
+80000224: 48484eb7 lui t4,0x48484
+80000228: 00f00193 li gp,15
+8000022c: 15df1a63 bne t5,t4,80000380 <fail>
+
+80000230 <test_16>:
+80000230: 212120b7 lui ra,0x21212
+80000234: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
+80000238: 01f09f13 slli t5,ra,0x1f
+8000023c: 80000eb7 lui t4,0x80000
+80000240: 01000193 li gp,16
+80000244: 13df1e63 bne t5,t4,80000380 <fail>
+
+80000248 <test_17>:
+80000248: 00100093 li ra,1
+8000024c: 00709093 slli ra,ra,0x7
+80000250: 08000e93 li t4,128
+80000254: 01100193 li gp,17
+80000258: 13d09463 bne ra,t4,80000380 <fail>
+
+8000025c <test_18>:
+8000025c: 00000213 li tp,0
+80000260: 00100093 li ra,1
+80000264: 00709f13 slli t5,ra,0x7
+80000268: 000f0313 mv t1,t5
+8000026c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000270: 00200293 li t0,2
+80000274: fe5216e3 bne tp,t0,80000260 <test_18+0x4>
+80000278: 08000e93 li t4,128
+8000027c: 01200193 li gp,18
+80000280: 11d31063 bne t1,t4,80000380 <fail>
+
+80000284 <test_19>:
+80000284: 00000213 li tp,0
+80000288: 00100093 li ra,1
+8000028c: 00e09f13 slli t5,ra,0xe
+80000290: 00000013 nop
+80000294: 000f0313 mv t1,t5
+80000298: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000029c: 00200293 li t0,2
+800002a0: fe5214e3 bne tp,t0,80000288 <test_19+0x4>
+800002a4: 00004eb7 lui t4,0x4
+800002a8: 01300193 li gp,19
+800002ac: 0dd31a63 bne t1,t4,80000380 <fail>
+
+800002b0 <test_20>:
+800002b0: 00000213 li tp,0
+800002b4: 00100093 li ra,1
+800002b8: 01f09f13 slli t5,ra,0x1f
+800002bc: 00000013 nop
+800002c0: 00000013 nop
+800002c4: 000f0313 mv t1,t5
+800002c8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800002cc: 00200293 li t0,2
+800002d0: fe5212e3 bne tp,t0,800002b4 <test_20+0x4>
+800002d4: 80000eb7 lui t4,0x80000
+800002d8: 01400193 li gp,20
+800002dc: 0bd31263 bne t1,t4,80000380 <fail>
+
+800002e0 <test_21>:
+800002e0: 00000213 li tp,0
+800002e4: 00100093 li ra,1
+800002e8: 00709f13 slli t5,ra,0x7
+800002ec: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800002f0: 00200293 li t0,2
+800002f4: fe5218e3 bne tp,t0,800002e4 <test_21+0x4>
+800002f8: 08000e93 li t4,128
+800002fc: 01500193 li gp,21
+80000300: 09df1063 bne t5,t4,80000380 <fail>
+
+80000304 <test_22>:
+80000304: 00000213 li tp,0
+80000308: 00100093 li ra,1
+8000030c: 00000013 nop
+80000310: 00e09f13 slli t5,ra,0xe
+80000314: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000318: 00200293 li t0,2
+8000031c: fe5216e3 bne tp,t0,80000308 <test_22+0x4>
+80000320: 00004eb7 lui t4,0x4
+80000324: 01600193 li gp,22
+80000328: 05df1c63 bne t5,t4,80000380 <fail>
+
+8000032c <test_23>:
+8000032c: 00000213 li tp,0
+80000330: 00100093 li ra,1
+80000334: 00000013 nop
+80000338: 00000013 nop
+8000033c: 01f09f13 slli t5,ra,0x1f
+80000340: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000344: 00200293 li t0,2
+80000348: fe5214e3 bne tp,t0,80000330 <test_23+0x4>
+8000034c: 80000eb7 lui t4,0x80000
+80000350: 01700193 li gp,23
+80000354: 03df1663 bne t5,t4,80000380 <fail>
+
+80000358 <test_24>:
+80000358: 01f01093 slli ra,zero,0x1f
+8000035c: 00000e93 li t4,0
+80000360: 01800193 li gp,24
+80000364: 01d09e63 bne ra,t4,80000380 <fail>
+
+80000368 <test_25>:
+80000368: 02100093 li ra,33
+8000036c: 01409013 slli zero,ra,0x14
+80000370: 00000e93 li t4,0
+80000374: 01900193 li gp,25
+80000378: 01d01463 bne zero,t4,80000380 <fail>
+8000037c: 00301c63 bne zero,gp,80000394 <pass>
+
+80000380 <fail>:
+80000380: 0ff0000f fence
+80000384: 00018063 beqz gp,80000384 <fail+0x4>
+80000388: 00119193 slli gp,gp,0x1
+8000038c: 0011e193 ori gp,gp,1
+80000390: 00000073 ecall
+
+80000394 <pass>:
+80000394: 0ff0000f fence
+80000398: 00100193 li gp,1
+8000039c: 00000073 ecall
+800003a0: c0001073 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
diff --git a/test/riscv-tests/rv32ui-p-slli.elf b/test/riscv-tests/rv32ui-p-slli.elf
new file mode 100644
index 0000000..7c4bd08
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-slli.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-p-slt.dump b/test/riscv-tests/rv32ui-p-slt.dump
new file mode 100644
index 0000000..115adee
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-slt.dump
@@ -0,0 +1,485 @@
+
+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: 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: 0020af33 slt 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: 0020af33 slt 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: 0020af33 slt 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: 0020af33 slt 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: 0020af33 slt t5,ra,sp
+80000168: 00000e93 li t4,0
+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: 0020af33 slt t5,ra,sp
+80000180: 00100e93 li t4,1
+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: 0020af33 slt 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: 0020af33 slt 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 <_end+0xffffdfff>
+800001c8: 00000113 li sp,0
+800001cc: 0020af33 slt 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 <_end+0xffffdfff>
+800001e4: 00008137 lui sp,0x8
+800001e8: fff10113 addi sp,sp,-1 # 7fff <_start-0x7fff8001>
+800001ec: 0020af33 slt 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: 0020af33 slt t5,ra,sp
+8000020c: 00100e93 li t4,1
+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 <_end+0xffffdfff>
+80000220: ffff8137 lui sp,0xffff8
+80000224: 0020af33 slt t5,ra,sp
+80000228: 00000e93 li t4,0
+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: 0020af33 slt t5,ra,sp
+80000240: 00000e93 li t4,0
+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: 0020af33 slt t5,ra,sp
+80000258: 00100e93 li t4,1
+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: 0020af33 slt 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: 0020a0b3 slt 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: 0020a133 slt 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: 0010a0b3 slt 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: 0020af33 slt 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: 0020af33 slt 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: 0020af33 slt 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: 0020af33 slt 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: 0020af33 slt 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: 0020af33 slt 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: 0020af33 slt 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: 0020af33 slt 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: 0020af33 slt 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: 0020af33 slt 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: 0020af33 slt 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: 0020af33 slt 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: 0020af33 slt 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: 0020af33 slt 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: 0020af33 slt 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: 00102133 sgtz sp,ra
+80000578: 00000e93 li t4,0
+8000057c: 02300193 li gp,35
+80000580: 05d11263 bne sp,t4,800005c4 <fail>
+
+80000584 <test_36>:
+80000584: fff00093 li ra,-1
+80000588: 0000a133 sltz sp,ra
+8000058c: 00100e93 li t4,1
+80000590: 02400193 li gp,36
+80000594: 03d11863 bne sp,t4,800005c4 <fail>
+
+80000598 <test_37>:
+80000598: 000020b3 sltz 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: 0020a033 slt 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
diff --git a/test/riscv-tests/rv32ui-p-slt.elf b/test/riscv-tests/rv32ui-p-slt.elf
new file mode 100644
index 0000000..cbd003e
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-slt.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-p-slti.dump b/test/riscv-tests/rv32ui-p-slti.dump
new file mode 100644
index 0000000..522eb49
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-slti.dump
@@ -0,0 +1,320 @@
+
+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: 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: 0000af13 slti 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: 0010af13 slti t5,ra,1
+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: 0070af13 slti 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: 0030af13 slti 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: 8000af13 slti t5,ra,-2048
+80000154: 00000e93 li t4,0
+80000158: 00600193 li gp,6
+8000015c: 21df1a63 bne t5,t4,80000370 <fail>
+
+80000160 <test_7>:
+80000160: 800000b7 lui ra,0x80000
+80000164: 0000af13 slti t5,ra,0
+80000168: 00100e93 li t4,1
+8000016c: 00700193 li gp,7
+80000170: 21df1063 bne t5,t4,80000370 <fail>
+
+80000174 <test_8>:
+80000174: 800000b7 lui ra,0x80000
+80000178: 8000af13 slti 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: 7ff0af13 slti 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 <_end+0xffffdfff>
+800001a4: 0000af13 slti 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 <_end+0xffffdfff>
+800001bc: 7ff0af13 slti 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: 7ff0af13 slti t5,ra,2047
+800001d4: 00100e93 li t4,1
+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 <_end+0xffffdfff>
+800001e8: 8000af13 slti t5,ra,-2048
+800001ec: 00000e93 li t4,0
+800001f0: 00d00193 li gp,13
+800001f4: 17df1e63 bne t5,t4,80000370 <fail>
+
+800001f8 <test_14>:
+800001f8: 00000093 li ra,0
+800001fc: fff0af13 slti t5,ra,-1
+80000200: 00000e93 li t4,0
+80000204: 00e00193 li gp,14
+80000208: 17df1463 bne t5,t4,80000370 <fail>
+
+8000020c <test_15>:
+8000020c: fff00093 li ra,-1
+80000210: 0010af13 slti t5,ra,1
+80000214: 00100e93 li t4,1
+80000218: 00f00193 li gp,15
+8000021c: 15df1a63 bne t5,t4,80000370 <fail>
+
+80000220 <test_16>:
+80000220: fff00093 li ra,-1
+80000224: fff0af13 slti 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: 00d0a093 slti 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: 00a0af13 slti 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: 0100af13 slti 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: 0090af13 slti 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: 00f0af13 slti 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: 0080af13 slti 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: 00e0af13 slti 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: fff02093 slti ra,zero,-1
+80000348: 00000e93 li t4,0
+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: fff0a013 slti 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
diff --git a/test/riscv-tests/rv32ui-p-slti.elf b/test/riscv-tests/rv32ui-p-slti.elf
new file mode 100644
index 0000000..020067f
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-slti.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-p-sltiu.dump b/test/riscv-tests/rv32ui-p-sltiu.dump
new file mode 100644
index 0000000..7055814
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-sltiu.dump
@@ -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 satp,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 <_end+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 <_end+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 <_end+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
diff --git a/test/riscv-tests/rv32ui-p-sltiu.elf b/test/riscv-tests/rv32ui-p-sltiu.elf
new file mode 100644
index 0000000..99bed26
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-sltiu.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-p-sltu.dump b/test/riscv-tests/rv32ui-p-sltu.dump
new file mode 100644
index 0000000..35979f4
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-sltu.dump
@@ -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 satp,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 <_end+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 <_end+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 <_end+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
diff --git a/test/riscv-tests/rv32ui-p-sltu.elf b/test/riscv-tests/rv32ui-p-sltu.elf
new file mode 100644
index 0000000..b8b49d0
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-sltu.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-p-sra.dump b/test/riscv-tests/rv32ui-p-sra.dump
new file mode 100644
index 0000000..60535a4
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-sra.dump
@@ -0,0 +1,538 @@
+
+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: 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: 4020df33 sra t5,ra,sp
+80000108: 80000eb7 lui t4,0x80000
+8000010c: 00200193 li gp,2
+80000110: 59df1463 bne t5,t4,80000698 <fail>
+
+80000114 <test_3>:
+80000114: 800000b7 lui ra,0x80000
+80000118: 00100113 li sp,1
+8000011c: 4020df33 sra t5,ra,sp
+80000120: c0000eb7 lui t4,0xc0000
+80000124: 00300193 li gp,3
+80000128: 57df1863 bne t5,t4,80000698 <fail>
+
+8000012c <test_4>:
+8000012c: 800000b7 lui ra,0x80000
+80000130: 00700113 li sp,7
+80000134: 4020df33 sra t5,ra,sp
+80000138: ff000eb7 lui t4,0xff000
+8000013c: 00400193 li gp,4
+80000140: 55df1c63 bne t5,t4,80000698 <fail>
+
+80000144 <test_5>:
+80000144: 800000b7 lui ra,0x80000
+80000148: 00e00113 li sp,14
+8000014c: 4020df33 sra t5,ra,sp
+80000150: fffe0eb7 lui t4,0xfffe0
+80000154: 00500193 li gp,5
+80000158: 55df1063 bne t5,t4,80000698 <fail>
+
+8000015c <test_6>:
+8000015c: 800000b7 lui ra,0x80000
+80000160: 00108093 addi ra,ra,1 # 80000001 <_end+0xffffe001>
+80000164: 01f00113 li sp,31
+80000168: 4020df33 sra t5,ra,sp
+8000016c: fff00e93 li t4,-1
+80000170: 00600193 li gp,6
+80000174: 53df1263 bne t5,t4,80000698 <fail>
+
+80000178 <test_7>:
+80000178: 800000b7 lui ra,0x80000
+8000017c: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffffdfff>
+80000180: 00000113 li sp,0
+80000184: 4020df33 sra t5,ra,sp
+80000188: 80000eb7 lui t4,0x80000
+8000018c: fffe8e93 addi t4,t4,-1 # 7fffffff <_end+0xffffdfff>
+80000190: 00700193 li gp,7
+80000194: 51df1263 bne t5,t4,80000698 <fail>
+
+80000198 <test_8>:
+80000198: 800000b7 lui ra,0x80000
+8000019c: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffffdfff>
+800001a0: 00100113 li sp,1
+800001a4: 4020df33 sra t5,ra,sp
+800001a8: 40000eb7 lui t4,0x40000
+800001ac: fffe8e93 addi t4,t4,-1 # 3fffffff <_start-0x40000001>
+800001b0: 00800193 li gp,8
+800001b4: 4fdf1263 bne t5,t4,80000698 <fail>
+
+800001b8 <test_9>:
+800001b8: 800000b7 lui ra,0x80000
+800001bc: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffffdfff>
+800001c0: 00700113 li sp,7
+800001c4: 4020df33 sra t5,ra,sp
+800001c8: 01000eb7 lui t4,0x1000
+800001cc: fffe8e93 addi t4,t4,-1 # ffffff <_start-0x7f000001>
+800001d0: 00900193 li gp,9
+800001d4: 4ddf1263 bne t5,t4,80000698 <fail>
+
+800001d8 <test_10>:
+800001d8: 800000b7 lui ra,0x80000
+800001dc: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffffdfff>
+800001e0: 00e00113 li sp,14
+800001e4: 4020df33 sra t5,ra,sp
+800001e8: 00020eb7 lui t4,0x20
+800001ec: fffe8e93 addi t4,t4,-1 # 1ffff <_start-0x7ffe0001>
+800001f0: 00a00193 li gp,10
+800001f4: 4bdf1263 bne t5,t4,80000698 <fail>
+
+800001f8 <test_11>:
+800001f8: 800000b7 lui ra,0x80000
+800001fc: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffffdfff>
+80000200: 01f00113 li sp,31
+80000204: 4020df33 sra t5,ra,sp
+80000208: 00000e93 li t4,0
+8000020c: 00b00193 li gp,11
+80000210: 49df1463 bne t5,t4,80000698 <fail>
+
+80000214 <test_12>:
+80000214: 818180b7 lui ra,0x81818
+80000218: 18108093 addi ra,ra,385 # 81818181 <_end+0x1816181>
+8000021c: 00000113 li sp,0
+80000220: 4020df33 sra t5,ra,sp
+80000224: 81818eb7 lui t4,0x81818
+80000228: 181e8e93 addi t4,t4,385 # 81818181 <_end+0x1816181>
+8000022c: 00c00193 li gp,12
+80000230: 47df1463 bne t5,t4,80000698 <fail>
+
+80000234 <test_13>:
+80000234: 818180b7 lui ra,0x81818
+80000238: 18108093 addi ra,ra,385 # 81818181 <_end+0x1816181>
+8000023c: 00100113 li sp,1
+80000240: 4020df33 sra t5,ra,sp
+80000244: c0c0ceb7 lui t4,0xc0c0c
+80000248: 0c0e8e93 addi t4,t4,192 # c0c0c0c0 <_end+0x40c0a0c0>
+8000024c: 00d00193 li gp,13
+80000250: 45df1463 bne t5,t4,80000698 <fail>
+
+80000254 <test_14>:
+80000254: 818180b7 lui ra,0x81818
+80000258: 18108093 addi ra,ra,385 # 81818181 <_end+0x1816181>
+8000025c: 00700113 li sp,7
+80000260: 4020df33 sra t5,ra,sp
+80000264: ff030eb7 lui t4,0xff030
+80000268: 303e8e93 addi t4,t4,771 # ff030303 <_end+0x7f02e303>
+8000026c: 00e00193 li gp,14
+80000270: 43df1463 bne t5,t4,80000698 <fail>
+
+80000274 <test_15>:
+80000274: 818180b7 lui ra,0x81818
+80000278: 18108093 addi ra,ra,385 # 81818181 <_end+0x1816181>
+8000027c: 00e00113 li sp,14
+80000280: 4020df33 sra t5,ra,sp
+80000284: fffe0eb7 lui t4,0xfffe0
+80000288: 606e8e93 addi t4,t4,1542 # fffe0606 <_end+0x7ffde606>
+8000028c: 00f00193 li gp,15
+80000290: 41df1463 bne t5,t4,80000698 <fail>
+
+80000294 <test_16>:
+80000294: 818180b7 lui ra,0x81818
+80000298: 18108093 addi ra,ra,385 # 81818181 <_end+0x1816181>
+8000029c: 01f00113 li sp,31
+800002a0: 4020df33 sra t5,ra,sp
+800002a4: fff00e93 li t4,-1
+800002a8: 01000193 li gp,16
+800002ac: 3fdf1663 bne t5,t4,80000698 <fail>
+
+800002b0 <test_17>:
+800002b0: 818180b7 lui ra,0x81818
+800002b4: 18108093 addi ra,ra,385 # 81818181 <_end+0x1816181>
+800002b8: fc000113 li sp,-64
+800002bc: 4020df33 sra t5,ra,sp
+800002c0: 81818eb7 lui t4,0x81818
+800002c4: 181e8e93 addi t4,t4,385 # 81818181 <_end+0x1816181>
+800002c8: 01100193 li gp,17
+800002cc: 3ddf1663 bne t5,t4,80000698 <fail>
+
+800002d0 <test_18>:
+800002d0: 818180b7 lui ra,0x81818
+800002d4: 18108093 addi ra,ra,385 # 81818181 <_end+0x1816181>
+800002d8: fc100113 li sp,-63
+800002dc: 4020df33 sra t5,ra,sp
+800002e0: c0c0ceb7 lui t4,0xc0c0c
+800002e4: 0c0e8e93 addi t4,t4,192 # c0c0c0c0 <_end+0x40c0a0c0>
+800002e8: 01200193 li gp,18
+800002ec: 3bdf1663 bne t5,t4,80000698 <fail>
+
+800002f0 <test_19>:
+800002f0: 818180b7 lui ra,0x81818
+800002f4: 18108093 addi ra,ra,385 # 81818181 <_end+0x1816181>
+800002f8: fc700113 li sp,-57
+800002fc: 4020df33 sra t5,ra,sp
+80000300: ff030eb7 lui t4,0xff030
+80000304: 303e8e93 addi t4,t4,771 # ff030303 <_end+0x7f02e303>
+80000308: 01300193 li gp,19
+8000030c: 39df1663 bne t5,t4,80000698 <fail>
+
+80000310 <test_20>:
+80000310: 818180b7 lui ra,0x81818
+80000314: 18108093 addi ra,ra,385 # 81818181 <_end+0x1816181>
+80000318: fce00113 li sp,-50
+8000031c: 4020df33 sra t5,ra,sp
+80000320: fffe0eb7 lui t4,0xfffe0
+80000324: 606e8e93 addi t4,t4,1542 # fffe0606 <_end+0x7ffde606>
+80000328: 01400193 li gp,20
+8000032c: 37df1663 bne t5,t4,80000698 <fail>
+
+80000330 <test_21>:
+80000330: 818180b7 lui ra,0x81818
+80000334: 18108093 addi ra,ra,385 # 81818181 <_end+0x1816181>
+80000338: fff00113 li sp,-1
+8000033c: 4020df33 sra t5,ra,sp
+80000340: fff00e93 li t4,-1
+80000344: 01500193 li gp,21
+80000348: 35df1863 bne t5,t4,80000698 <fail>
+
+8000034c <test_22>:
+8000034c: 800000b7 lui ra,0x80000
+80000350: 00700113 li sp,7
+80000354: 4020d0b3 sra ra,ra,sp
+80000358: ff000eb7 lui t4,0xff000
+8000035c: 01600193 li gp,22
+80000360: 33d09c63 bne ra,t4,80000698 <fail>
+
+80000364 <test_23>:
+80000364: 800000b7 lui ra,0x80000
+80000368: 00e00113 li sp,14
+8000036c: 4020d133 sra sp,ra,sp
+80000370: fffe0eb7 lui t4,0xfffe0
+80000374: 01700193 li gp,23
+80000378: 33d11063 bne sp,t4,80000698 <fail>
+
+8000037c <test_24>:
+8000037c: 00700093 li ra,7
+80000380: 4010d0b3 sra ra,ra,ra
+80000384: 00000e93 li t4,0
+80000388: 01800193 li gp,24
+8000038c: 31d09663 bne ra,t4,80000698 <fail>
+
+80000390 <test_25>:
+80000390: 00000213 li tp,0
+80000394: 800000b7 lui ra,0x80000
+80000398: 00700113 li sp,7
+8000039c: 4020df33 sra t5,ra,sp
+800003a0: 000f0313 mv t1,t5
+800003a4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800003a8: 00200293 li t0,2
+800003ac: fe5214e3 bne tp,t0,80000394 <test_25+0x4>
+800003b0: ff000eb7 lui t4,0xff000
+800003b4: 01900193 li gp,25
+800003b8: 2fd31063 bne t1,t4,80000698 <fail>
+
+800003bc <test_26>:
+800003bc: 00000213 li tp,0
+800003c0: 800000b7 lui ra,0x80000
+800003c4: 00e00113 li sp,14
+800003c8: 4020df33 sra t5,ra,sp
+800003cc: 00000013 nop
+800003d0: 000f0313 mv t1,t5
+800003d4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800003d8: 00200293 li t0,2
+800003dc: fe5212e3 bne tp,t0,800003c0 <test_26+0x4>
+800003e0: fffe0eb7 lui t4,0xfffe0
+800003e4: 01a00193 li gp,26
+800003e8: 2bd31863 bne t1,t4,80000698 <fail>
+
+800003ec <test_27>:
+800003ec: 00000213 li tp,0
+800003f0: 800000b7 lui ra,0x80000
+800003f4: 01f00113 li sp,31
+800003f8: 4020df33 sra t5,ra,sp
+800003fc: 00000013 nop
+80000400: 00000013 nop
+80000404: 000f0313 mv t1,t5
+80000408: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000040c: 00200293 li t0,2
+80000410: fe5210e3 bne tp,t0,800003f0 <test_27+0x4>
+80000414: fff00e93 li t4,-1
+80000418: 01b00193 li gp,27
+8000041c: 27d31e63 bne t1,t4,80000698 <fail>
+
+80000420 <test_28>:
+80000420: 00000213 li tp,0
+80000424: 800000b7 lui ra,0x80000
+80000428: 00700113 li sp,7
+8000042c: 4020df33 sra t5,ra,sp
+80000430: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000434: 00200293 li t0,2
+80000438: fe5216e3 bne tp,t0,80000424 <test_28+0x4>
+8000043c: ff000eb7 lui t4,0xff000
+80000440: 01c00193 li gp,28
+80000444: 25df1a63 bne t5,t4,80000698 <fail>
+
+80000448 <test_29>:
+80000448: 00000213 li tp,0
+8000044c: 800000b7 lui ra,0x80000
+80000450: 00e00113 li sp,14
+80000454: 00000013 nop
+80000458: 4020df33 sra t5,ra,sp
+8000045c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000460: 00200293 li t0,2
+80000464: fe5214e3 bne tp,t0,8000044c <test_29+0x4>
+80000468: fffe0eb7 lui t4,0xfffe0
+8000046c: 01d00193 li gp,29
+80000470: 23df1463 bne t5,t4,80000698 <fail>
+
+80000474 <test_30>:
+80000474: 00000213 li tp,0
+80000478: 800000b7 lui ra,0x80000
+8000047c: 01f00113 li sp,31
+80000480: 00000013 nop
+80000484: 00000013 nop
+80000488: 4020df33 sra t5,ra,sp
+8000048c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000490: 00200293 li t0,2
+80000494: fe5212e3 bne tp,t0,80000478 <test_30+0x4>
+80000498: fff00e93 li t4,-1
+8000049c: 01e00193 li gp,30
+800004a0: 1fdf1c63 bne t5,t4,80000698 <fail>
+
+800004a4 <test_31>:
+800004a4: 00000213 li tp,0
+800004a8: 800000b7 lui ra,0x80000
+800004ac: 00000013 nop
+800004b0: 00700113 li sp,7
+800004b4: 4020df33 sra t5,ra,sp
+800004b8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800004bc: 00200293 li t0,2
+800004c0: fe5214e3 bne tp,t0,800004a8 <test_31+0x4>
+800004c4: ff000eb7 lui t4,0xff000
+800004c8: 01f00193 li gp,31
+800004cc: 1ddf1663 bne t5,t4,80000698 <fail>
+
+800004d0 <test_32>:
+800004d0: 00000213 li tp,0
+800004d4: 800000b7 lui ra,0x80000
+800004d8: 00000013 nop
+800004dc: 00e00113 li sp,14
+800004e0: 00000013 nop
+800004e4: 4020df33 sra t5,ra,sp
+800004e8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800004ec: 00200293 li t0,2
+800004f0: fe5212e3 bne tp,t0,800004d4 <test_32+0x4>
+800004f4: fffe0eb7 lui t4,0xfffe0
+800004f8: 02000193 li gp,32
+800004fc: 19df1e63 bne t5,t4,80000698 <fail>
+
+80000500 <test_33>:
+80000500: 00000213 li tp,0
+80000504: 800000b7 lui ra,0x80000
+80000508: 00000013 nop
+8000050c: 00000013 nop
+80000510: 01f00113 li sp,31
+80000514: 4020df33 sra t5,ra,sp
+80000518: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000051c: 00200293 li t0,2
+80000520: fe5212e3 bne tp,t0,80000504 <test_33+0x4>
+80000524: fff00e93 li t4,-1
+80000528: 02100193 li gp,33
+8000052c: 17df1663 bne t5,t4,80000698 <fail>
+
+80000530 <test_34>:
+80000530: 00000213 li tp,0
+80000534: 00700113 li sp,7
+80000538: 800000b7 lui ra,0x80000
+8000053c: 4020df33 sra t5,ra,sp
+80000540: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000544: 00200293 li t0,2
+80000548: fe5216e3 bne tp,t0,80000534 <test_34+0x4>
+8000054c: ff000eb7 lui t4,0xff000
+80000550: 02200193 li gp,34
+80000554: 15df1263 bne t5,t4,80000698 <fail>
+
+80000558 <test_35>:
+80000558: 00000213 li tp,0
+8000055c: 00e00113 li sp,14
+80000560: 800000b7 lui ra,0x80000
+80000564: 00000013 nop
+80000568: 4020df33 sra t5,ra,sp
+8000056c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000570: 00200293 li t0,2
+80000574: fe5214e3 bne tp,t0,8000055c <test_35+0x4>
+80000578: fffe0eb7 lui t4,0xfffe0
+8000057c: 02300193 li gp,35
+80000580: 11df1c63 bne t5,t4,80000698 <fail>
+
+80000584 <test_36>:
+80000584: 00000213 li tp,0
+80000588: 01f00113 li sp,31
+8000058c: 800000b7 lui ra,0x80000
+80000590: 00000013 nop
+80000594: 00000013 nop
+80000598: 4020df33 sra t5,ra,sp
+8000059c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800005a0: 00200293 li t0,2
+800005a4: fe5212e3 bne tp,t0,80000588 <test_36+0x4>
+800005a8: fff00e93 li t4,-1
+800005ac: 02400193 li gp,36
+800005b0: 0fdf1463 bne t5,t4,80000698 <fail>
+
+800005b4 <test_37>:
+800005b4: 00000213 li tp,0
+800005b8: 00700113 li sp,7
+800005bc: 00000013 nop
+800005c0: 800000b7 lui ra,0x80000
+800005c4: 4020df33 sra t5,ra,sp
+800005c8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800005cc: 00200293 li t0,2
+800005d0: fe5214e3 bne tp,t0,800005b8 <test_37+0x4>
+800005d4: ff000eb7 lui t4,0xff000
+800005d8: 02500193 li gp,37
+800005dc: 0bdf1e63 bne t5,t4,80000698 <fail>
+
+800005e0 <test_38>:
+800005e0: 00000213 li tp,0
+800005e4: 00e00113 li sp,14
+800005e8: 00000013 nop
+800005ec: 800000b7 lui ra,0x80000
+800005f0: 00000013 nop
+800005f4: 4020df33 sra t5,ra,sp
+800005f8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800005fc: 00200293 li t0,2
+80000600: fe5212e3 bne tp,t0,800005e4 <test_38+0x4>
+80000604: fffe0eb7 lui t4,0xfffe0
+80000608: 02600193 li gp,38
+8000060c: 09df1663 bne t5,t4,80000698 <fail>
+
+80000610 <test_39>:
+80000610: 00000213 li tp,0
+80000614: 01f00113 li sp,31
+80000618: 00000013 nop
+8000061c: 00000013 nop
+80000620: 800000b7 lui ra,0x80000
+80000624: 4020df33 sra t5,ra,sp
+80000628: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000062c: 00200293 li t0,2
+80000630: fe5212e3 bne tp,t0,80000614 <test_39+0x4>
+80000634: fff00e93 li t4,-1
+80000638: 02700193 li gp,39
+8000063c: 05df1e63 bne t5,t4,80000698 <fail>
+
+80000640 <test_40>:
+80000640: 00f00093 li ra,15
+80000644: 40105133 sra sp,zero,ra
+80000648: 00000e93 li t4,0
+8000064c: 02800193 li gp,40
+80000650: 05d11463 bne sp,t4,80000698 <fail>
+
+80000654 <test_41>:
+80000654: 02000093 li ra,32
+80000658: 4000d133 sra sp,ra,zero
+8000065c: 02000e93 li t4,32
+80000660: 02900193 li gp,41
+80000664: 03d11a63 bne sp,t4,80000698 <fail>
+
+80000668 <test_42>:
+80000668: 400050b3 sra ra,zero,zero
+8000066c: 00000e93 li t4,0
+80000670: 02a00193 li gp,42
+80000674: 03d09263 bne ra,t4,80000698 <fail>
+
+80000678 <test_43>:
+80000678: 40000093 li ra,1024
+8000067c: 00001137 lui sp,0x1
+80000680: 80010113 addi sp,sp,-2048 # 800 <_start-0x7ffff800>
+80000684: 4020d033 sra zero,ra,sp
+80000688: 00000e93 li t4,0
+8000068c: 02b00193 li gp,43
+80000690: 01d01463 bne zero,t4,80000698 <fail>
+80000694: 00301c63 bne zero,gp,800006ac <pass>
+
+80000698 <fail>:
+80000698: 0ff0000f fence
+8000069c: 00018063 beqz gp,8000069c <fail+0x4>
+800006a0: 00119193 slli gp,gp,0x1
+800006a4: 0011e193 ori gp,gp,1
+800006a8: 00000073 ecall
+
+800006ac <pass>:
+800006ac: 0ff0000f fence
+800006b0: 00100193 li gp,1
+800006b4: 00000073 ecall
+800006b8: c0001073 unimp
+800006bc: 0000 unimp
+800006be: 0000 unimp
+800006c0: 0000 unimp
+800006c2: 0000 unimp
diff --git a/test/riscv-tests/rv32ui-p-sra.elf b/test/riscv-tests/rv32ui-p-sra.elf
new file mode 100644
index 0000000..4ade1a6
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-sra.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-p-srai.dump b/test/riscv-tests/rv32ui-p-srai.dump
new file mode 100644
index 0000000..8ed40d7
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-srai.dump
@@ -0,0 +1,335 @@
+
+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: 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: 4000df13 srai t5,ra,0x0
+80000104: 00000e93 li t4,0
+80000108: 00200193 li gp,2
+8000010c: 2bdf1463 bne t5,t4,800003b4 <fail>
+
+80000110 <test_3>:
+80000110: 800000b7 lui ra,0x80000
+80000114: 4010df13 srai t5,ra,0x1
+80000118: c0000eb7 lui t4,0xc0000
+8000011c: 00300193 li gp,3
+80000120: 29df1a63 bne t5,t4,800003b4 <fail>
+
+80000124 <test_4>:
+80000124: 800000b7 lui ra,0x80000
+80000128: 4070df13 srai t5,ra,0x7
+8000012c: ff000eb7 lui t4,0xff000
+80000130: 00400193 li gp,4
+80000134: 29df1063 bne t5,t4,800003b4 <fail>
+
+80000138 <test_5>:
+80000138: 800000b7 lui ra,0x80000
+8000013c: 40e0df13 srai t5,ra,0xe
+80000140: fffe0eb7 lui t4,0xfffe0
+80000144: 00500193 li gp,5
+80000148: 27df1663 bne t5,t4,800003b4 <fail>
+
+8000014c <test_6>:
+8000014c: 800000b7 lui ra,0x80000
+80000150: 00108093 addi ra,ra,1 # 80000001 <_end+0xffffe001>
+80000154: 41f0df13 srai t5,ra,0x1f
+80000158: fff00e93 li t4,-1
+8000015c: 00600193 li gp,6
+80000160: 25df1a63 bne t5,t4,800003b4 <fail>
+
+80000164 <test_7>:
+80000164: 800000b7 lui ra,0x80000
+80000168: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffffdfff>
+8000016c: 4000df13 srai t5,ra,0x0
+80000170: 80000eb7 lui t4,0x80000
+80000174: fffe8e93 addi t4,t4,-1 # 7fffffff <_end+0xffffdfff>
+80000178: 00700193 li gp,7
+8000017c: 23df1c63 bne t5,t4,800003b4 <fail>
+
+80000180 <test_8>:
+80000180: 800000b7 lui ra,0x80000
+80000184: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffffdfff>
+80000188: 4010df13 srai t5,ra,0x1
+8000018c: 40000eb7 lui t4,0x40000
+80000190: fffe8e93 addi t4,t4,-1 # 3fffffff <_start-0x40000001>
+80000194: 00800193 li gp,8
+80000198: 21df1e63 bne t5,t4,800003b4 <fail>
+
+8000019c <test_9>:
+8000019c: 800000b7 lui ra,0x80000
+800001a0: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffffdfff>
+800001a4: 4070df13 srai t5,ra,0x7
+800001a8: 01000eb7 lui t4,0x1000
+800001ac: fffe8e93 addi t4,t4,-1 # ffffff <_start-0x7f000001>
+800001b0: 00900193 li gp,9
+800001b4: 21df1063 bne t5,t4,800003b4 <fail>
+
+800001b8 <test_10>:
+800001b8: 800000b7 lui ra,0x80000
+800001bc: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffffdfff>
+800001c0: 40e0df13 srai t5,ra,0xe
+800001c4: 00020eb7 lui t4,0x20
+800001c8: fffe8e93 addi t4,t4,-1 # 1ffff <_start-0x7ffe0001>
+800001cc: 00a00193 li gp,10
+800001d0: 1fdf1263 bne t5,t4,800003b4 <fail>
+
+800001d4 <test_11>:
+800001d4: 800000b7 lui ra,0x80000
+800001d8: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffffdfff>
+800001dc: 41f0df13 srai t5,ra,0x1f
+800001e0: 00000e93 li t4,0
+800001e4: 00b00193 li gp,11
+800001e8: 1ddf1663 bne t5,t4,800003b4 <fail>
+
+800001ec <test_12>:
+800001ec: 818180b7 lui ra,0x81818
+800001f0: 18108093 addi ra,ra,385 # 81818181 <_end+0x1816181>
+800001f4: 4000df13 srai t5,ra,0x0
+800001f8: 81818eb7 lui t4,0x81818
+800001fc: 181e8e93 addi t4,t4,385 # 81818181 <_end+0x1816181>
+80000200: 00c00193 li gp,12
+80000204: 1bdf1863 bne t5,t4,800003b4 <fail>
+
+80000208 <test_13>:
+80000208: 818180b7 lui ra,0x81818
+8000020c: 18108093 addi ra,ra,385 # 81818181 <_end+0x1816181>
+80000210: 4010df13 srai t5,ra,0x1
+80000214: c0c0ceb7 lui t4,0xc0c0c
+80000218: 0c0e8e93 addi t4,t4,192 # c0c0c0c0 <_end+0x40c0a0c0>
+8000021c: 00d00193 li gp,13
+80000220: 19df1a63 bne t5,t4,800003b4 <fail>
+
+80000224 <test_14>:
+80000224: 818180b7 lui ra,0x81818
+80000228: 18108093 addi ra,ra,385 # 81818181 <_end+0x1816181>
+8000022c: 4070df13 srai t5,ra,0x7
+80000230: ff030eb7 lui t4,0xff030
+80000234: 303e8e93 addi t4,t4,771 # ff030303 <_end+0x7f02e303>
+80000238: 00e00193 li gp,14
+8000023c: 17df1c63 bne t5,t4,800003b4 <fail>
+
+80000240 <test_15>:
+80000240: 818180b7 lui ra,0x81818
+80000244: 18108093 addi ra,ra,385 # 81818181 <_end+0x1816181>
+80000248: 40e0df13 srai t5,ra,0xe
+8000024c: fffe0eb7 lui t4,0xfffe0
+80000250: 606e8e93 addi t4,t4,1542 # fffe0606 <_end+0x7ffde606>
+80000254: 00f00193 li gp,15
+80000258: 15df1e63 bne t5,t4,800003b4 <fail>
+
+8000025c <test_16>:
+8000025c: 818180b7 lui ra,0x81818
+80000260: 18108093 addi ra,ra,385 # 81818181 <_end+0x1816181>
+80000264: 41f0df13 srai t5,ra,0x1f
+80000268: fff00e93 li t4,-1
+8000026c: 01000193 li gp,16
+80000270: 15df1263 bne t5,t4,800003b4 <fail>
+
+80000274 <test_17>:
+80000274: 800000b7 lui ra,0x80000
+80000278: 4070d093 srai ra,ra,0x7
+8000027c: ff000eb7 lui t4,0xff000
+80000280: 01100193 li gp,17
+80000284: 13d09863 bne ra,t4,800003b4 <fail>
+
+80000288 <test_18>:
+80000288: 00000213 li tp,0
+8000028c: 800000b7 lui ra,0x80000
+80000290: 4070df13 srai t5,ra,0x7
+80000294: 000f0313 mv t1,t5
+80000298: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000029c: 00200293 li t0,2
+800002a0: fe5216e3 bne tp,t0,8000028c <test_18+0x4>
+800002a4: ff000eb7 lui t4,0xff000
+800002a8: 01200193 li gp,18
+800002ac: 11d31463 bne t1,t4,800003b4 <fail>
+
+800002b0 <test_19>:
+800002b0: 00000213 li tp,0
+800002b4: 800000b7 lui ra,0x80000
+800002b8: 40e0df13 srai t5,ra,0xe
+800002bc: 00000013 nop
+800002c0: 000f0313 mv t1,t5
+800002c4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800002c8: 00200293 li t0,2
+800002cc: fe5214e3 bne tp,t0,800002b4 <test_19+0x4>
+800002d0: fffe0eb7 lui t4,0xfffe0
+800002d4: 01300193 li gp,19
+800002d8: 0dd31e63 bne t1,t4,800003b4 <fail>
+
+800002dc <test_20>:
+800002dc: 00000213 li tp,0
+800002e0: 800000b7 lui ra,0x80000
+800002e4: 00108093 addi ra,ra,1 # 80000001 <_end+0xffffe001>
+800002e8: 41f0df13 srai t5,ra,0x1f
+800002ec: 00000013 nop
+800002f0: 00000013 nop
+800002f4: 000f0313 mv t1,t5
+800002f8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800002fc: 00200293 li t0,2
+80000300: fe5210e3 bne tp,t0,800002e0 <test_20+0x4>
+80000304: fff00e93 li t4,-1
+80000308: 01400193 li gp,20
+8000030c: 0bd31463 bne t1,t4,800003b4 <fail>
+
+80000310 <test_21>:
+80000310: 00000213 li tp,0
+80000314: 800000b7 lui ra,0x80000
+80000318: 4070df13 srai t5,ra,0x7
+8000031c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000320: 00200293 li t0,2
+80000324: fe5218e3 bne tp,t0,80000314 <test_21+0x4>
+80000328: ff000eb7 lui t4,0xff000
+8000032c: 01500193 li gp,21
+80000330: 09df1263 bne t5,t4,800003b4 <fail>
+
+80000334 <test_22>:
+80000334: 00000213 li tp,0
+80000338: 800000b7 lui ra,0x80000
+8000033c: 00000013 nop
+80000340: 40e0df13 srai t5,ra,0xe
+80000344: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000348: 00200293 li t0,2
+8000034c: fe5216e3 bne tp,t0,80000338 <test_22+0x4>
+80000350: fffe0eb7 lui t4,0xfffe0
+80000354: 01600193 li gp,22
+80000358: 05df1e63 bne t5,t4,800003b4 <fail>
+
+8000035c <test_23>:
+8000035c: 00000213 li tp,0
+80000360: 800000b7 lui ra,0x80000
+80000364: 00108093 addi ra,ra,1 # 80000001 <_end+0xffffe001>
+80000368: 00000013 nop
+8000036c: 00000013 nop
+80000370: 41f0df13 srai t5,ra,0x1f
+80000374: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000378: 00200293 li t0,2
+8000037c: fe5212e3 bne tp,t0,80000360 <test_23+0x4>
+80000380: fff00e93 li t4,-1
+80000384: 01700193 li gp,23
+80000388: 03df1663 bne t5,t4,800003b4 <fail>
+
+8000038c <test_24>:
+8000038c: 40405093 srai ra,zero,0x4
+80000390: 00000e93 li t4,0
+80000394: 01800193 li gp,24
+80000398: 01d09e63 bne ra,t4,800003b4 <fail>
+
+8000039c <test_25>:
+8000039c: 02100093 li ra,33
+800003a0: 40a0d013 srai zero,ra,0xa
+800003a4: 00000e93 li t4,0
+800003a8: 01900193 li gp,25
+800003ac: 01d01463 bne zero,t4,800003b4 <fail>
+800003b0: 00301c63 bne zero,gp,800003c8 <pass>
+
+800003b4 <fail>:
+800003b4: 0ff0000f fence
+800003b8: 00018063 beqz gp,800003b8 <fail+0x4>
+800003bc: 00119193 slli gp,gp,0x1
+800003c0: 0011e193 ori gp,gp,1
+800003c4: 00000073 ecall
+
+800003c8 <pass>:
+800003c8: 0ff0000f fence
+800003cc: 00100193 li gp,1
+800003d0: 00000073 ecall
+800003d4: c0001073 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
diff --git a/test/riscv-tests/rv32ui-p-srai.elf b/test/riscv-tests/rv32ui-p-srai.elf
new file mode 100644
index 0000000..200b450
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-srai.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-p-srl.dump b/test/riscv-tests/rv32ui-p-srl.dump
new file mode 100644
index 0000000..25f9240
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-srl.dump
@@ -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 satp,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 <_end+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 <_end+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
diff --git a/test/riscv-tests/rv32ui-p-srl.elf b/test/riscv-tests/rv32ui-p-srl.elf
new file mode 100644
index 0000000..5e61851
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-srl.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-p-srli.dump b/test/riscv-tests/rv32ui-p-srli.dump
new file mode 100644
index 0000000..8c3229f
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-srli.dump
@@ -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 satp,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 <_end+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 <_end+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 <_end+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 <_end+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
diff --git a/test/riscv-tests/rv32ui-p-srli.elf b/test/riscv-tests/rv32ui-p-srli.elf
new file mode 100644
index 0000000..05884ce
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-srli.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-p-sub.dump b/test/riscv-tests/rv32ui-p-sub.dump
new file mode 100644
index 0000000..9f7bdae
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-sub.dump
@@ -0,0 +1,485 @@
+
+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: 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: 40208f33 sub t5,ra,sp
+80000108: 00000e93 li t4,0
+8000010c: 00200193 li gp,2
+80000110: 4bdf1663 bne t5,t4,800005bc <fail>
+
+80000114 <test_3>:
+80000114: 00100093 li ra,1
+80000118: 00100113 li sp,1
+8000011c: 40208f33 sub t5,ra,sp
+80000120: 00000e93 li t4,0
+80000124: 00300193 li gp,3
+80000128: 49df1a63 bne t5,t4,800005bc <fail>
+
+8000012c <test_4>:
+8000012c: 00300093 li ra,3
+80000130: 00700113 li sp,7
+80000134: 40208f33 sub t5,ra,sp
+80000138: ffc00e93 li t4,-4
+8000013c: 00400193 li gp,4
+80000140: 47df1e63 bne t5,t4,800005bc <fail>
+
+80000144 <test_5>:
+80000144: 00000093 li ra,0
+80000148: ffff8137 lui sp,0xffff8
+8000014c: 40208f33 sub t5,ra,sp
+80000150: 00008eb7 lui t4,0x8
+80000154: 00500193 li gp,5
+80000158: 47df1263 bne t5,t4,800005bc <fail>
+
+8000015c <test_6>:
+8000015c: 800000b7 lui ra,0x80000
+80000160: 00000113 li sp,0
+80000164: 40208f33 sub t5,ra,sp
+80000168: 80000eb7 lui t4,0x80000
+8000016c: 00600193 li gp,6
+80000170: 45df1663 bne t5,t4,800005bc <fail>
+
+80000174 <test_7>:
+80000174: 800000b7 lui ra,0x80000
+80000178: ffff8137 lui sp,0xffff8
+8000017c: 40208f33 sub t5,ra,sp
+80000180: 80008eb7 lui t4,0x80008
+80000184: 00700193 li gp,7
+80000188: 43df1a63 bne t5,t4,800005bc <fail>
+
+8000018c <test_8>:
+8000018c: 00000093 li ra,0
+80000190: 00008137 lui sp,0x8
+80000194: fff10113 addi sp,sp,-1 # 7fff <_start-0x7fff8001>
+80000198: 40208f33 sub t5,ra,sp
+8000019c: ffff8eb7 lui t4,0xffff8
+800001a0: 001e8e93 addi t4,t4,1 # ffff8001 <_end+0x7fff6001>
+800001a4: 00800193 li gp,8
+800001a8: 41df1a63 bne t5,t4,800005bc <fail>
+
+800001ac <test_9>:
+800001ac: 800000b7 lui ra,0x80000
+800001b0: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffffdfff>
+800001b4: 00000113 li sp,0
+800001b8: 40208f33 sub t5,ra,sp
+800001bc: 80000eb7 lui t4,0x80000
+800001c0: fffe8e93 addi t4,t4,-1 # 7fffffff <_end+0xffffdfff>
+800001c4: 00900193 li gp,9
+800001c8: 3fdf1a63 bne t5,t4,800005bc <fail>
+
+800001cc <test_10>:
+800001cc: 800000b7 lui ra,0x80000
+800001d0: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffffdfff>
+800001d4: 00008137 lui sp,0x8
+800001d8: fff10113 addi sp,sp,-1 # 7fff <_start-0x7fff8001>
+800001dc: 40208f33 sub t5,ra,sp
+800001e0: 7fff8eb7 lui t4,0x7fff8
+800001e4: 00a00193 li gp,10
+800001e8: 3ddf1a63 bne t5,t4,800005bc <fail>
+
+800001ec <test_11>:
+800001ec: 800000b7 lui ra,0x80000
+800001f0: 00008137 lui sp,0x8
+800001f4: fff10113 addi sp,sp,-1 # 7fff <_start-0x7fff8001>
+800001f8: 40208f33 sub t5,ra,sp
+800001fc: 7fff8eb7 lui t4,0x7fff8
+80000200: 001e8e93 addi t4,t4,1 # 7fff8001 <_start-0x7fff>
+80000204: 00b00193 li gp,11
+80000208: 3bdf1a63 bne t5,t4,800005bc <fail>
+
+8000020c <test_12>:
+8000020c: 800000b7 lui ra,0x80000
+80000210: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffffdfff>
+80000214: ffff8137 lui sp,0xffff8
+80000218: 40208f33 sub t5,ra,sp
+8000021c: 80008eb7 lui t4,0x80008
+80000220: fffe8e93 addi t4,t4,-1 # 80007fff <_end+0x5fff>
+80000224: 00c00193 li gp,12
+80000228: 39df1a63 bne t5,t4,800005bc <fail>
+
+8000022c <test_13>:
+8000022c: 00000093 li ra,0
+80000230: fff00113 li sp,-1
+80000234: 40208f33 sub t5,ra,sp
+80000238: 00100e93 li t4,1
+8000023c: 00d00193 li gp,13
+80000240: 37df1e63 bne t5,t4,800005bc <fail>
+
+80000244 <test_14>:
+80000244: fff00093 li ra,-1
+80000248: 00100113 li sp,1
+8000024c: 40208f33 sub t5,ra,sp
+80000250: ffe00e93 li t4,-2
+80000254: 00e00193 li gp,14
+80000258: 37df1263 bne t5,t4,800005bc <fail>
+
+8000025c <test_15>:
+8000025c: fff00093 li ra,-1
+80000260: fff00113 li sp,-1
+80000264: 40208f33 sub t5,ra,sp
+80000268: 00000e93 li t4,0
+8000026c: 00f00193 li gp,15
+80000270: 35df1663 bne t5,t4,800005bc <fail>
+
+80000274 <test_16>:
+80000274: 00d00093 li ra,13
+80000278: 00b00113 li sp,11
+8000027c: 402080b3 sub ra,ra,sp
+80000280: 00200e93 li t4,2
+80000284: 01000193 li gp,16
+80000288: 33d09a63 bne ra,t4,800005bc <fail>
+
+8000028c <test_17>:
+8000028c: 00e00093 li ra,14
+80000290: 00b00113 li sp,11
+80000294: 40208133 sub sp,ra,sp
+80000298: 00300e93 li t4,3
+8000029c: 01100193 li gp,17
+800002a0: 31d11e63 bne sp,t4,800005bc <fail>
+
+800002a4 <test_18>:
+800002a4: 00d00093 li ra,13
+800002a8: 401080b3 sub ra,ra,ra
+800002ac: 00000e93 li t4,0
+800002b0: 01200193 li gp,18
+800002b4: 31d09463 bne ra,t4,800005bc <fail>
+
+800002b8 <test_19>:
+800002b8: 00000213 li tp,0
+800002bc: 00d00093 li ra,13
+800002c0: 00b00113 li sp,11
+800002c4: 40208f33 sub t5,ra,sp
+800002c8: 000f0313 mv t1,t5
+800002cc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800002d0: 00200293 li t0,2
+800002d4: fe5214e3 bne tp,t0,800002bc <test_19+0x4>
+800002d8: 00200e93 li t4,2
+800002dc: 01300193 li gp,19
+800002e0: 2dd31e63 bne t1,t4,800005bc <fail>
+
+800002e4 <test_20>:
+800002e4: 00000213 li tp,0
+800002e8: 00e00093 li ra,14
+800002ec: 00b00113 li sp,11
+800002f0: 40208f33 sub t5,ra,sp
+800002f4: 00000013 nop
+800002f8: 000f0313 mv t1,t5
+800002fc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000300: 00200293 li t0,2
+80000304: fe5212e3 bne tp,t0,800002e8 <test_20+0x4>
+80000308: 00300e93 li t4,3
+8000030c: 01400193 li gp,20
+80000310: 2bd31663 bne t1,t4,800005bc <fail>
+
+80000314 <test_21>:
+80000314: 00000213 li tp,0
+80000318: 00f00093 li ra,15
+8000031c: 00b00113 li sp,11
+80000320: 40208f33 sub t5,ra,sp
+80000324: 00000013 nop
+80000328: 00000013 nop
+8000032c: 000f0313 mv t1,t5
+80000330: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000334: 00200293 li t0,2
+80000338: fe5210e3 bne tp,t0,80000318 <test_21+0x4>
+8000033c: 00400e93 li t4,4
+80000340: 01500193 li gp,21
+80000344: 27d31c63 bne t1,t4,800005bc <fail>
+
+80000348 <test_22>:
+80000348: 00000213 li tp,0
+8000034c: 00d00093 li ra,13
+80000350: 00b00113 li sp,11
+80000354: 40208f33 sub t5,ra,sp
+80000358: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000035c: 00200293 li t0,2
+80000360: fe5216e3 bne tp,t0,8000034c <test_22+0x4>
+80000364: 00200e93 li t4,2
+80000368: 01600193 li gp,22
+8000036c: 25df1863 bne t5,t4,800005bc <fail>
+
+80000370 <test_23>:
+80000370: 00000213 li tp,0
+80000374: 00e00093 li ra,14
+80000378: 00b00113 li sp,11
+8000037c: 00000013 nop
+80000380: 40208f33 sub t5,ra,sp
+80000384: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000388: 00200293 li t0,2
+8000038c: fe5214e3 bne tp,t0,80000374 <test_23+0x4>
+80000390: 00300e93 li t4,3
+80000394: 01700193 li gp,23
+80000398: 23df1263 bne t5,t4,800005bc <fail>
+
+8000039c <test_24>:
+8000039c: 00000213 li tp,0
+800003a0: 00f00093 li ra,15
+800003a4: 00b00113 li sp,11
+800003a8: 00000013 nop
+800003ac: 00000013 nop
+800003b0: 40208f33 sub t5,ra,sp
+800003b4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800003b8: 00200293 li t0,2
+800003bc: fe5212e3 bne tp,t0,800003a0 <test_24+0x4>
+800003c0: 00400e93 li t4,4
+800003c4: 01800193 li gp,24
+800003c8: 1fdf1a63 bne t5,t4,800005bc <fail>
+
+800003cc <test_25>:
+800003cc: 00000213 li tp,0
+800003d0: 00d00093 li ra,13
+800003d4: 00000013 nop
+800003d8: 00b00113 li sp,11
+800003dc: 40208f33 sub t5,ra,sp
+800003e0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800003e4: 00200293 li t0,2
+800003e8: fe5214e3 bne tp,t0,800003d0 <test_25+0x4>
+800003ec: 00200e93 li t4,2
+800003f0: 01900193 li gp,25
+800003f4: 1ddf1463 bne t5,t4,800005bc <fail>
+
+800003f8 <test_26>:
+800003f8: 00000213 li tp,0
+800003fc: 00e00093 li ra,14
+80000400: 00000013 nop
+80000404: 00b00113 li sp,11
+80000408: 00000013 nop
+8000040c: 40208f33 sub t5,ra,sp
+80000410: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000414: 00200293 li t0,2
+80000418: fe5212e3 bne tp,t0,800003fc <test_26+0x4>
+8000041c: 00300e93 li t4,3
+80000420: 01a00193 li gp,26
+80000424: 19df1c63 bne t5,t4,800005bc <fail>
+
+80000428 <test_27>:
+80000428: 00000213 li tp,0
+8000042c: 00f00093 li ra,15
+80000430: 00000013 nop
+80000434: 00000013 nop
+80000438: 00b00113 li sp,11
+8000043c: 40208f33 sub t5,ra,sp
+80000440: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000444: 00200293 li t0,2
+80000448: fe5212e3 bne tp,t0,8000042c <test_27+0x4>
+8000044c: 00400e93 li t4,4
+80000450: 01b00193 li gp,27
+80000454: 17df1463 bne t5,t4,800005bc <fail>
+
+80000458 <test_28>:
+80000458: 00000213 li tp,0
+8000045c: 00b00113 li sp,11
+80000460: 00d00093 li ra,13
+80000464: 40208f33 sub t5,ra,sp
+80000468: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000046c: 00200293 li t0,2
+80000470: fe5216e3 bne tp,t0,8000045c <test_28+0x4>
+80000474: 00200e93 li t4,2
+80000478: 01c00193 li gp,28
+8000047c: 15df1063 bne t5,t4,800005bc <fail>
+
+80000480 <test_29>:
+80000480: 00000213 li tp,0
+80000484: 00b00113 li sp,11
+80000488: 00e00093 li ra,14
+8000048c: 00000013 nop
+80000490: 40208f33 sub t5,ra,sp
+80000494: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000498: 00200293 li t0,2
+8000049c: fe5214e3 bne tp,t0,80000484 <test_29+0x4>
+800004a0: 00300e93 li t4,3
+800004a4: 01d00193 li gp,29
+800004a8: 11df1a63 bne t5,t4,800005bc <fail>
+
+800004ac <test_30>:
+800004ac: 00000213 li tp,0
+800004b0: 00b00113 li sp,11
+800004b4: 00f00093 li ra,15
+800004b8: 00000013 nop
+800004bc: 00000013 nop
+800004c0: 40208f33 sub t5,ra,sp
+800004c4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800004c8: 00200293 li t0,2
+800004cc: fe5212e3 bne tp,t0,800004b0 <test_30+0x4>
+800004d0: 00400e93 li t4,4
+800004d4: 01e00193 li gp,30
+800004d8: 0fdf1263 bne t5,t4,800005bc <fail>
+
+800004dc <test_31>:
+800004dc: 00000213 li tp,0
+800004e0: 00b00113 li sp,11
+800004e4: 00000013 nop
+800004e8: 00d00093 li ra,13
+800004ec: 40208f33 sub t5,ra,sp
+800004f0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800004f4: 00200293 li t0,2
+800004f8: fe5214e3 bne tp,t0,800004e0 <test_31+0x4>
+800004fc: 00200e93 li t4,2
+80000500: 01f00193 li gp,31
+80000504: 0bdf1c63 bne t5,t4,800005bc <fail>
+
+80000508 <test_32>:
+80000508: 00000213 li tp,0
+8000050c: 00b00113 li sp,11
+80000510: 00000013 nop
+80000514: 00e00093 li ra,14
+80000518: 00000013 nop
+8000051c: 40208f33 sub t5,ra,sp
+80000520: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000524: 00200293 li t0,2
+80000528: fe5212e3 bne tp,t0,8000050c <test_32+0x4>
+8000052c: 00300e93 li t4,3
+80000530: 02000193 li gp,32
+80000534: 09df1463 bne t5,t4,800005bc <fail>
+
+80000538 <test_33>:
+80000538: 00000213 li tp,0
+8000053c: 00b00113 li sp,11
+80000540: 00000013 nop
+80000544: 00000013 nop
+80000548: 00f00093 li ra,15
+8000054c: 40208f33 sub t5,ra,sp
+80000550: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000554: 00200293 li t0,2
+80000558: fe5212e3 bne tp,t0,8000053c <test_33+0x4>
+8000055c: 00400e93 li t4,4
+80000560: 02100193 li gp,33
+80000564: 05df1c63 bne t5,t4,800005bc <fail>
+
+80000568 <test_34>:
+80000568: ff100093 li ra,-15
+8000056c: 40100133 neg sp,ra
+80000570: 00f00e93 li t4,15
+80000574: 02200193 li gp,34
+80000578: 05d11263 bne sp,t4,800005bc <fail>
+
+8000057c <test_35>:
+8000057c: 02000093 li ra,32
+80000580: 40008133 sub sp,ra,zero
+80000584: 02000e93 li t4,32
+80000588: 02300193 li gp,35
+8000058c: 03d11863 bne sp,t4,800005bc <fail>
+
+80000590 <test_36>:
+80000590: 400000b3 neg ra,zero
+80000594: 00000e93 li t4,0
+80000598: 02400193 li gp,36
+8000059c: 03d09063 bne ra,t4,800005bc <fail>
+
+800005a0 <test_37>:
+800005a0: 01000093 li ra,16
+800005a4: 01e00113 li sp,30
+800005a8: 40208033 sub zero,ra,sp
+800005ac: 00000e93 li t4,0
+800005b0: 02500193 li gp,37
+800005b4: 01d01463 bne zero,t4,800005bc <fail>
+800005b8: 00301c63 bne zero,gp,800005d0 <pass>
+
+800005bc <fail>:
+800005bc: 0ff0000f fence
+800005c0: 00018063 beqz gp,800005c0 <fail+0x4>
+800005c4: 00119193 slli gp,gp,0x1
+800005c8: 0011e193 ori gp,gp,1
+800005cc: 00000073 ecall
+
+800005d0 <pass>:
+800005d0: 0ff0000f fence
+800005d4: 00100193 li gp,1
+800005d8: 00000073 ecall
+800005dc: c0001073 unimp
+800005e0: 0000 unimp
+800005e2: 0000 unimp
+800005e4: 0000 unimp
+800005e6: 0000 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
diff --git a/test/riscv-tests/rv32ui-p-sub.elf b/test/riscv-tests/rv32ui-p-sub.elf
new file mode 100644
index 0000000..5ca9221
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-sub.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-p-sw.dump b/test/riscv-tests/rv32ui-p-sw.dump
new file mode 100644
index 0000000..acdccd9
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-sw.dump
@@ -0,0 +1,476 @@
+
+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: 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: 00002097 auipc ra,0x2
+80000100: f0408093 addi ra,ra,-252 # 80002000 <begin_signature>
+80000104: 00aa0137 lui sp,0xaa0
+80000108: 0aa10113 addi sp,sp,170 # aa00aa <_start-0x7f55ff56>
+8000010c: 0020a023 sw sp,0(ra)
+80000110: 0000af03 lw t5,0(ra)
+80000114: 00aa0eb7 lui t4,0xaa0
+80000118: 0aae8e93 addi t4,t4,170 # aa00aa <_start-0x7f55ff56>
+8000011c: 00200193 li gp,2
+80000120: 47df1063 bne t5,t4,80000580 <fail>
+
+80000124 <test_3>:
+80000124: 00002097 auipc ra,0x2
+80000128: edc08093 addi ra,ra,-292 # 80002000 <begin_signature>
+8000012c: aa00b137 lui sp,0xaa00b
+80000130: a0010113 addi sp,sp,-1536 # aa00aa00 <_end+0x2a0089d0>
+80000134: 0020a223 sw sp,4(ra)
+80000138: 0040af03 lw t5,4(ra)
+8000013c: aa00beb7 lui t4,0xaa00b
+80000140: a00e8e93 addi t4,t4,-1536 # aa00aa00 <_end+0x2a0089d0>
+80000144: 00300193 li gp,3
+80000148: 43df1c63 bne t5,t4,80000580 <fail>
+
+8000014c <test_4>:
+8000014c: 00002097 auipc ra,0x2
+80000150: eb408093 addi ra,ra,-332 # 80002000 <begin_signature>
+80000154: 0aa01137 lui sp,0xaa01
+80000158: aa010113 addi sp,sp,-1376 # aa00aa0 <_start-0x755ff560>
+8000015c: 0020a423 sw sp,8(ra)
+80000160: 0080af03 lw t5,8(ra)
+80000164: 0aa01eb7 lui t4,0xaa01
+80000168: aa0e8e93 addi t4,t4,-1376 # aa00aa0 <_start-0x755ff560>
+8000016c: 00400193 li gp,4
+80000170: 41df1863 bne t5,t4,80000580 <fail>
+
+80000174 <test_5>:
+80000174: 00002097 auipc ra,0x2
+80000178: e8c08093 addi ra,ra,-372 # 80002000 <begin_signature>
+8000017c: a00aa137 lui sp,0xa00aa
+80000180: 00a10113 addi sp,sp,10 # a00aa00a <_end+0x200a7fda>
+80000184: 0020a623 sw sp,12(ra)
+80000188: 00c0af03 lw t5,12(ra)
+8000018c: a00aaeb7 lui t4,0xa00aa
+80000190: 00ae8e93 addi t4,t4,10 # a00aa00a <_end+0x200a7fda>
+80000194: 00500193 li gp,5
+80000198: 3fdf1463 bne t5,t4,80000580 <fail>
+
+8000019c <test_6>:
+8000019c: 00002097 auipc ra,0x2
+800001a0: e8008093 addi ra,ra,-384 # 8000201c <tdat8>
+800001a4: 00aa0137 lui sp,0xaa0
+800001a8: 0aa10113 addi sp,sp,170 # aa00aa <_start-0x7f55ff56>
+800001ac: fe20aa23 sw sp,-12(ra)
+800001b0: ff40af03 lw t5,-12(ra)
+800001b4: 00aa0eb7 lui t4,0xaa0
+800001b8: 0aae8e93 addi t4,t4,170 # aa00aa <_start-0x7f55ff56>
+800001bc: 00600193 li gp,6
+800001c0: 3ddf1063 bne t5,t4,80000580 <fail>
+
+800001c4 <test_7>:
+800001c4: 00002097 auipc ra,0x2
+800001c8: e5808093 addi ra,ra,-424 # 8000201c <tdat8>
+800001cc: aa00b137 lui sp,0xaa00b
+800001d0: a0010113 addi sp,sp,-1536 # aa00aa00 <_end+0x2a0089d0>
+800001d4: fe20ac23 sw sp,-8(ra)
+800001d8: ff80af03 lw t5,-8(ra)
+800001dc: aa00beb7 lui t4,0xaa00b
+800001e0: a00e8e93 addi t4,t4,-1536 # aa00aa00 <_end+0x2a0089d0>
+800001e4: 00700193 li gp,7
+800001e8: 39df1c63 bne t5,t4,80000580 <fail>
+
+800001ec <test_8>:
+800001ec: 00002097 auipc ra,0x2
+800001f0: e3008093 addi ra,ra,-464 # 8000201c <tdat8>
+800001f4: 0aa01137 lui sp,0xaa01
+800001f8: aa010113 addi sp,sp,-1376 # aa00aa0 <_start-0x755ff560>
+800001fc: fe20ae23 sw sp,-4(ra)
+80000200: ffc0af03 lw t5,-4(ra)
+80000204: 0aa01eb7 lui t4,0xaa01
+80000208: aa0e8e93 addi t4,t4,-1376 # aa00aa0 <_start-0x755ff560>
+8000020c: 00800193 li gp,8
+80000210: 37df1863 bne t5,t4,80000580 <fail>
+
+80000214 <test_9>:
+80000214: 00002097 auipc ra,0x2
+80000218: e0808093 addi ra,ra,-504 # 8000201c <tdat8>
+8000021c: a00aa137 lui sp,0xa00aa
+80000220: 00a10113 addi sp,sp,10 # a00aa00a <_end+0x200a7fda>
+80000224: 0020a023 sw sp,0(ra)
+80000228: 0000af03 lw t5,0(ra)
+8000022c: a00aaeb7 lui t4,0xa00aa
+80000230: 00ae8e93 addi t4,t4,10 # a00aa00a <_end+0x200a7fda>
+80000234: 00900193 li gp,9
+80000238: 35df1463 bne t5,t4,80000580 <fail>
+
+8000023c <test_10>:
+8000023c: 00002097 auipc ra,0x2
+80000240: de408093 addi ra,ra,-540 # 80002020 <tdat9>
+80000244: 12345137 lui sp,0x12345
+80000248: 67810113 addi sp,sp,1656 # 12345678 <_start-0x6dcba988>
+8000024c: fe008213 addi tp,ra,-32
+80000250: 02222023 sw sp,32(tp) # 20 <_start-0x7fffffe0>
+80000254: 0000a283 lw t0,0(ra)
+80000258: 12345eb7 lui t4,0x12345
+8000025c: 678e8e93 addi t4,t4,1656 # 12345678 <_start-0x6dcba988>
+80000260: 00a00193 li gp,10
+80000264: 31d29e63 bne t0,t4,80000580 <fail>
+
+80000268 <test_11>:
+80000268: 00002097 auipc ra,0x2
+8000026c: db808093 addi ra,ra,-584 # 80002020 <tdat9>
+80000270: 58213137 lui sp,0x58213
+80000274: 09810113 addi sp,sp,152 # 58213098 <_start-0x27decf68>
+80000278: ffd08093 addi ra,ra,-3
+8000027c: 0020a3a3 sw sp,7(ra)
+80000280: 00002217 auipc tp,0x2
+80000284: da420213 addi tp,tp,-604 # 80002024 <tdat10>
+80000288: 00022283 lw t0,0(tp) # 0 <_start-0x80000000>
+8000028c: 58213eb7 lui t4,0x58213
+80000290: 098e8e93 addi t4,t4,152 # 58213098 <_start-0x27decf68>
+80000294: 00b00193 li gp,11
+80000298: 2fd29463 bne t0,t4,80000580 <fail>
+
+8000029c <test_12>:
+8000029c: 00c00193 li gp,12
+800002a0: 00000213 li tp,0
+800002a4: aabbd0b7 lui ra,0xaabbd
+800002a8: cdd08093 addi ra,ra,-803 # aabbccdd <_end+0x2abbacad>
+800002ac: 00002117 auipc sp,0x2
+800002b0: d5410113 addi sp,sp,-684 # 80002000 <begin_signature>
+800002b4: 00112023 sw ra,0(sp)
+800002b8: 00012f03 lw t5,0(sp)
+800002bc: aabbdeb7 lui t4,0xaabbd
+800002c0: cdde8e93 addi t4,t4,-803 # aabbccdd <_end+0x2abbacad>
+800002c4: 2bdf1e63 bne t5,t4,80000580 <fail>
+800002c8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800002cc: 00200293 li t0,2
+800002d0: fc521ae3 bne tp,t0,800002a4 <test_12+0x8>
+
+800002d4 <test_13>:
+800002d4: 00d00193 li gp,13
+800002d8: 00000213 li tp,0
+800002dc: daabc0b7 lui ra,0xdaabc
+800002e0: ccd08093 addi ra,ra,-819 # daabbccd <_end+0x5aab9c9d>
+800002e4: 00002117 auipc sp,0x2
+800002e8: d1c10113 addi sp,sp,-740 # 80002000 <begin_signature>
+800002ec: 00000013 nop
+800002f0: 00112223 sw ra,4(sp)
+800002f4: 00412f03 lw t5,4(sp)
+800002f8: daabceb7 lui t4,0xdaabc
+800002fc: ccde8e93 addi t4,t4,-819 # daabbccd <_end+0x5aab9c9d>
+80000300: 29df1063 bne t5,t4,80000580 <fail>
+80000304: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000308: 00200293 li t0,2
+8000030c: fc5218e3 bne tp,t0,800002dc <test_13+0x8>
+
+80000310 <test_14>:
+80000310: 00e00193 li gp,14
+80000314: 00000213 li tp,0
+80000318: ddaac0b7 lui ra,0xddaac
+8000031c: bcc08093 addi ra,ra,-1076 # ddaabbcc <_end+0x5daa9b9c>
+80000320: 00002117 auipc sp,0x2
+80000324: ce010113 addi sp,sp,-800 # 80002000 <begin_signature>
+80000328: 00000013 nop
+8000032c: 00000013 nop
+80000330: 00112423 sw ra,8(sp)
+80000334: 00812f03 lw t5,8(sp)
+80000338: ddaaceb7 lui t4,0xddaac
+8000033c: bcce8e93 addi t4,t4,-1076 # ddaabbcc <_end+0x5daa9b9c>
+80000340: 25df1063 bne t5,t4,80000580 <fail>
+80000344: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000348: 00200293 li t0,2
+8000034c: fc5216e3 bne tp,t0,80000318 <test_14+0x8>
+
+80000350 <test_15>:
+80000350: 00f00193 li gp,15
+80000354: 00000213 li tp,0
+80000358: cddab0b7 lui ra,0xcddab
+8000035c: bbc08093 addi ra,ra,-1092 # cddaabbc <_end+0x4dda8b8c>
+80000360: 00000013 nop
+80000364: 00002117 auipc sp,0x2
+80000368: c9c10113 addi sp,sp,-868 # 80002000 <begin_signature>
+8000036c: 00112623 sw ra,12(sp)
+80000370: 00c12f03 lw t5,12(sp)
+80000374: cddabeb7 lui t4,0xcddab
+80000378: bbce8e93 addi t4,t4,-1092 # cddaabbc <_end+0x4dda8b8c>
+8000037c: 21df1263 bne t5,t4,80000580 <fail>
+80000380: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000384: 00200293 li t0,2
+80000388: fc5218e3 bne tp,t0,80000358 <test_15+0x8>
+
+8000038c <test_16>:
+8000038c: 01000193 li gp,16
+80000390: 00000213 li tp,0
+80000394: ccddb0b7 lui ra,0xccddb
+80000398: abb08093 addi ra,ra,-1349 # ccddaabb <_end+0x4cdd8a8b>
+8000039c: 00000013 nop
+800003a0: 00002117 auipc sp,0x2
+800003a4: c6010113 addi sp,sp,-928 # 80002000 <begin_signature>
+800003a8: 00000013 nop
+800003ac: 00112823 sw ra,16(sp)
+800003b0: 01012f03 lw t5,16(sp)
+800003b4: ccddbeb7 lui t4,0xccddb
+800003b8: abbe8e93 addi t4,t4,-1349 # ccddaabb <_end+0x4cdd8a8b>
+800003bc: 1ddf1263 bne t5,t4,80000580 <fail>
+800003c0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800003c4: 00200293 li t0,2
+800003c8: fc5216e3 bne tp,t0,80000394 <test_16+0x8>
+
+800003cc <test_17>:
+800003cc: 01100193 li gp,17
+800003d0: 00000213 li tp,0
+800003d4: bccde0b7 lui ra,0xbccde
+800003d8: aab08093 addi ra,ra,-1365 # bccddaab <_end+0x3ccdba7b>
+800003dc: 00000013 nop
+800003e0: 00000013 nop
+800003e4: 00002117 auipc sp,0x2
+800003e8: c1c10113 addi sp,sp,-996 # 80002000 <begin_signature>
+800003ec: 00112a23 sw ra,20(sp)
+800003f0: 01412f03 lw t5,20(sp)
+800003f4: bccdeeb7 lui t4,0xbccde
+800003f8: aabe8e93 addi t4,t4,-1365 # bccddaab <_end+0x3ccdba7b>
+800003fc: 19df1263 bne t5,t4,80000580 <fail>
+80000400: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000404: 00200293 li t0,2
+80000408: fc5216e3 bne tp,t0,800003d4 <test_17+0x8>
+
+8000040c <test_18>:
+8000040c: 01200193 li gp,18
+80000410: 00000213 li tp,0
+80000414: 00002117 auipc sp,0x2
+80000418: bec10113 addi sp,sp,-1044 # 80002000 <begin_signature>
+8000041c: 001120b7 lui ra,0x112
+80000420: 23308093 addi ra,ra,563 # 112233 <_start-0x7feeddcd>
+80000424: 00112023 sw ra,0(sp)
+80000428: 00012f03 lw t5,0(sp)
+8000042c: 00112eb7 lui t4,0x112
+80000430: 233e8e93 addi t4,t4,563 # 112233 <_start-0x7feeddcd>
+80000434: 15df1663 bne t5,t4,80000580 <fail>
+80000438: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000043c: 00200293 li t0,2
+80000440: fc521ae3 bne tp,t0,80000414 <test_18+0x8>
+
+80000444 <test_19>:
+80000444: 01300193 li gp,19
+80000448: 00000213 li tp,0
+8000044c: 00002117 auipc sp,0x2
+80000450: bb410113 addi sp,sp,-1100 # 80002000 <begin_signature>
+80000454: 300110b7 lui ra,0x30011
+80000458: 22308093 addi ra,ra,547 # 30011223 <_start-0x4ffeeddd>
+8000045c: 00000013 nop
+80000460: 00112223 sw ra,4(sp)
+80000464: 00412f03 lw t5,4(sp)
+80000468: 30011eb7 lui t4,0x30011
+8000046c: 223e8e93 addi t4,t4,547 # 30011223 <_start-0x4ffeeddd>
+80000470: 11df1863 bne t5,t4,80000580 <fail>
+80000474: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000478: 00200293 li t0,2
+8000047c: fc5218e3 bne tp,t0,8000044c <test_19+0x8>
+
+80000480 <test_20>:
+80000480: 01400193 li gp,20
+80000484: 00000213 li tp,0
+80000488: 00002117 auipc sp,0x2
+8000048c: b7810113 addi sp,sp,-1160 # 80002000 <begin_signature>
+80000490: 330010b7 lui ra,0x33001
+80000494: 12208093 addi ra,ra,290 # 33001122 <_start-0x4cffeede>
+80000498: 00000013 nop
+8000049c: 00000013 nop
+800004a0: 00112423 sw ra,8(sp)
+800004a4: 00812f03 lw t5,8(sp)
+800004a8: 33001eb7 lui t4,0x33001
+800004ac: 122e8e93 addi t4,t4,290 # 33001122 <_start-0x4cffeede>
+800004b0: 0ddf1863 bne t5,t4,80000580 <fail>
+800004b4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800004b8: 00200293 li t0,2
+800004bc: fc5216e3 bne tp,t0,80000488 <test_20+0x8>
+
+800004c0 <test_21>:
+800004c0: 01500193 li gp,21
+800004c4: 00000213 li tp,0
+800004c8: 00002117 auipc sp,0x2
+800004cc: b3810113 addi sp,sp,-1224 # 80002000 <begin_signature>
+800004d0: 00000013 nop
+800004d4: 233000b7 lui ra,0x23300
+800004d8: 11208093 addi ra,ra,274 # 23300112 <_start-0x5ccffeee>
+800004dc: 00112623 sw ra,12(sp)
+800004e0: 00c12f03 lw t5,12(sp)
+800004e4: 23300eb7 lui t4,0x23300
+800004e8: 112e8e93 addi t4,t4,274 # 23300112 <_start-0x5ccffeee>
+800004ec: 09df1a63 bne t5,t4,80000580 <fail>
+800004f0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800004f4: 00200293 li t0,2
+800004f8: fc5218e3 bne tp,t0,800004c8 <test_21+0x8>
+
+800004fc <test_22>:
+800004fc: 01600193 li gp,22
+80000500: 00000213 li tp,0
+80000504: 00002117 auipc sp,0x2
+80000508: afc10113 addi sp,sp,-1284 # 80002000 <begin_signature>
+8000050c: 00000013 nop
+80000510: 223300b7 lui ra,0x22330
+80000514: 01108093 addi ra,ra,17 # 22330011 <_start-0x5dccffef>
+80000518: 00000013 nop
+8000051c: 00112823 sw ra,16(sp)
+80000520: 01012f03 lw t5,16(sp)
+80000524: 22330eb7 lui t4,0x22330
+80000528: 011e8e93 addi t4,t4,17 # 22330011 <_start-0x5dccffef>
+8000052c: 05df1a63 bne t5,t4,80000580 <fail>
+80000530: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000534: 00200293 li t0,2
+80000538: fc5216e3 bne tp,t0,80000504 <test_22+0x8>
+
+8000053c <test_23>:
+8000053c: 01700193 li gp,23
+80000540: 00000213 li tp,0
+80000544: 00002117 auipc sp,0x2
+80000548: abc10113 addi sp,sp,-1348 # 80002000 <begin_signature>
+8000054c: 00000013 nop
+80000550: 00000013 nop
+80000554: 122330b7 lui ra,0x12233
+80000558: 00108093 addi ra,ra,1 # 12233001 <_start-0x6ddccfff>
+8000055c: 00112a23 sw ra,20(sp)
+80000560: 01412f03 lw t5,20(sp)
+80000564: 12233eb7 lui t4,0x12233
+80000568: 001e8e93 addi t4,t4,1 # 12233001 <_start-0x6ddccfff>
+8000056c: 01df1a63 bne t5,t4,80000580 <fail>
+80000570: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000574: 00200293 li t0,2
+80000578: fc5216e3 bne tp,t0,80000544 <test_23+0x8>
+8000057c: 00301c63 bne zero,gp,80000594 <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: 00000073 ecall
+
+80000594 <pass>:
+80000594: 0ff0000f fence
+80000598: 00100193 li gp,1
+8000059c: 00000073 ecall
+800005a0: c0001073 unimp
+800005a4: 0000 unimp
+800005a6: 0000 unimp
+800005a8: 0000 unimp
+800005aa: 0000 unimp
+800005ac: 0000 unimp
+800005ae: 0000 unimp
+800005b0: 0000 unimp
+800005b2: 0000 unimp
+800005b4: 0000 unimp
+800005b6: 0000 unimp
+800005b8: 0000 unimp
+800005ba: 0000 unimp
+800005bc: 0000 unimp
+800005be: 0000 unimp
+800005c0: 0000 unimp
+800005c2: 0000 unimp
+
+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
diff --git a/test/riscv-tests/rv32ui-p-sw.elf b/test/riscv-tests/rv32ui-p-sw.elf
new file mode 100644
index 0000000..6801986
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-sw.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-p-xor.dump b/test/riscv-tests/rv32ui-p-xor.dump
new file mode 100644
index 0000000..e4d8ddb
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-xor.dump
@@ -0,0 +1,465 @@
+
+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: 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: ff0100b7 lui ra,0xff010
+80000100: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
+80000104: 0f0f1137 lui sp,0xf0f1
+80000108: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+8000010c: 0020cf33 xor t5,ra,sp
+80000110: f00ffeb7 lui t4,0xf00ff
+80000114: 00fe8e93 addi t4,t4,15 # f00ff00f <_end+0x700fd00f>
+80000118: 00200193 li gp,2
+8000011c: 4bdf1063 bne t5,t4,800005bc <fail>
+
+80000120 <test_3>:
+80000120: 0ff010b7 lui ra,0xff01
+80000124: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+80000128: f0f0f137 lui sp,0xf0f0f
+8000012c: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f0d0f0>
+80000130: 0020cf33 xor t5,ra,sp
+80000134: ff010eb7 lui t4,0xff010
+80000138: f00e8e93 addi t4,t4,-256 # ff00ff00 <_end+0x7f00df00>
+8000013c: 00300193 li gp,3
+80000140: 47df1e63 bne t5,t4,800005bc <fail>
+
+80000144 <test_4>:
+80000144: 00ff00b7 lui ra,0xff0
+80000148: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+8000014c: 0f0f1137 lui sp,0xf0f1
+80000150: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80000154: 0020cf33 xor t5,ra,sp
+80000158: 0ff01eb7 lui t4,0xff01
+8000015c: ff0e8e93 addi t4,t4,-16 # ff00ff0 <_start-0x700ff010>
+80000160: 00400193 li gp,4
+80000164: 45df1c63 bne t5,t4,800005bc <fail>
+
+80000168 <test_5>:
+80000168: f00ff0b7 lui ra,0xf00ff
+8000016c: 00f08093 addi ra,ra,15 # f00ff00f <_end+0x700fd00f>
+80000170: f0f0f137 lui sp,0xf0f0f
+80000174: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f0d0f0>
+80000178: 0020cf33 xor t5,ra,sp
+8000017c: 00ff0eb7 lui t4,0xff0
+80000180: 0ffe8e93 addi t4,t4,255 # ff00ff <_start-0x7f00ff01>
+80000184: 00500193 li gp,5
+80000188: 43df1a63 bne t5,t4,800005bc <fail>
+
+8000018c <test_6>:
+8000018c: ff0100b7 lui ra,0xff010
+80000190: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
+80000194: 0f0f1137 lui sp,0xf0f1
+80000198: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+8000019c: 0020c0b3 xor ra,ra,sp
+800001a0: f00ffeb7 lui t4,0xf00ff
+800001a4: 00fe8e93 addi t4,t4,15 # f00ff00f <_end+0x700fd00f>
+800001a8: 00600193 li gp,6
+800001ac: 41d09863 bne ra,t4,800005bc <fail>
+
+800001b0 <test_7>:
+800001b0: ff0100b7 lui ra,0xff010
+800001b4: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
+800001b8: 0f0f1137 lui sp,0xf0f1
+800001bc: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+800001c0: 0020c133 xor sp,ra,sp
+800001c4: f00ffeb7 lui t4,0xf00ff
+800001c8: 00fe8e93 addi t4,t4,15 # f00ff00f <_end+0x700fd00f>
+800001cc: 00700193 li gp,7
+800001d0: 3fd11663 bne sp,t4,800005bc <fail>
+
+800001d4 <test_8>:
+800001d4: ff0100b7 lui ra,0xff010
+800001d8: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
+800001dc: 0010c0b3 xor ra,ra,ra
+800001e0: 00000e93 li t4,0
+800001e4: 00800193 li gp,8
+800001e8: 3dd09a63 bne ra,t4,800005bc <fail>
+
+800001ec <test_9>:
+800001ec: 00000213 li tp,0
+800001f0: ff0100b7 lui ra,0xff010
+800001f4: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
+800001f8: 0f0f1137 lui sp,0xf0f1
+800001fc: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80000200: 0020cf33 xor t5,ra,sp
+80000204: 000f0313 mv t1,t5
+80000208: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000020c: 00200293 li t0,2
+80000210: fe5210e3 bne tp,t0,800001f0 <test_9+0x4>
+80000214: f00ffeb7 lui t4,0xf00ff
+80000218: 00fe8e93 addi t4,t4,15 # f00ff00f <_end+0x700fd00f>
+8000021c: 00900193 li gp,9
+80000220: 39d31e63 bne t1,t4,800005bc <fail>
+
+80000224 <test_10>:
+80000224: 00000213 li tp,0
+80000228: 0ff010b7 lui ra,0xff01
+8000022c: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+80000230: f0f0f137 lui sp,0xf0f0f
+80000234: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f0d0f0>
+80000238: 0020cf33 xor t5,ra,sp
+8000023c: 00000013 nop
+80000240: 000f0313 mv t1,t5
+80000244: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000248: 00200293 li t0,2
+8000024c: fc521ee3 bne tp,t0,80000228 <test_10+0x4>
+80000250: ff010eb7 lui t4,0xff010
+80000254: f00e8e93 addi t4,t4,-256 # ff00ff00 <_end+0x7f00df00>
+80000258: 00a00193 li gp,10
+8000025c: 37d31063 bne t1,t4,800005bc <fail>
+
+80000260 <test_11>:
+80000260: 00000213 li tp,0
+80000264: 00ff00b7 lui ra,0xff0
+80000268: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+8000026c: 0f0f1137 lui sp,0xf0f1
+80000270: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80000274: 0020cf33 xor t5,ra,sp
+80000278: 00000013 nop
+8000027c: 00000013 nop
+80000280: 000f0313 mv t1,t5
+80000284: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000288: 00200293 li t0,2
+8000028c: fc521ce3 bne tp,t0,80000264 <test_11+0x4>
+80000290: 0ff01eb7 lui t4,0xff01
+80000294: ff0e8e93 addi t4,t4,-16 # ff00ff0 <_start-0x700ff010>
+80000298: 00b00193 li gp,11
+8000029c: 33d31063 bne t1,t4,800005bc <fail>
+
+800002a0 <test_12>:
+800002a0: 00000213 li tp,0
+800002a4: ff0100b7 lui ra,0xff010
+800002a8: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
+800002ac: 0f0f1137 lui sp,0xf0f1
+800002b0: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+800002b4: 0020cf33 xor t5,ra,sp
+800002b8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800002bc: 00200293 li t0,2
+800002c0: fe5212e3 bne tp,t0,800002a4 <test_12+0x4>
+800002c4: f00ffeb7 lui t4,0xf00ff
+800002c8: 00fe8e93 addi t4,t4,15 # f00ff00f <_end+0x700fd00f>
+800002cc: 00c00193 li gp,12
+800002d0: 2fdf1663 bne t5,t4,800005bc <fail>
+
+800002d4 <test_13>:
+800002d4: 00000213 li tp,0
+800002d8: 0ff010b7 lui ra,0xff01
+800002dc: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+800002e0: f0f0f137 lui sp,0xf0f0f
+800002e4: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f0d0f0>
+800002e8: 00000013 nop
+800002ec: 0020cf33 xor t5,ra,sp
+800002f0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800002f4: 00200293 li t0,2
+800002f8: fe5210e3 bne tp,t0,800002d8 <test_13+0x4>
+800002fc: ff010eb7 lui t4,0xff010
+80000300: f00e8e93 addi t4,t4,-256 # ff00ff00 <_end+0x7f00df00>
+80000304: 00d00193 li gp,13
+80000308: 2bdf1a63 bne t5,t4,800005bc <fail>
+
+8000030c <test_14>:
+8000030c: 00000213 li tp,0
+80000310: 00ff00b7 lui ra,0xff0
+80000314: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+80000318: 0f0f1137 lui sp,0xf0f1
+8000031c: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80000320: 00000013 nop
+80000324: 00000013 nop
+80000328: 0020cf33 xor t5,ra,sp
+8000032c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000330: 00200293 li t0,2
+80000334: fc521ee3 bne tp,t0,80000310 <test_14+0x4>
+80000338: 0ff01eb7 lui t4,0xff01
+8000033c: ff0e8e93 addi t4,t4,-16 # ff00ff0 <_start-0x700ff010>
+80000340: 00e00193 li gp,14
+80000344: 27df1c63 bne t5,t4,800005bc <fail>
+
+80000348 <test_15>:
+80000348: 00000213 li tp,0
+8000034c: ff0100b7 lui ra,0xff010
+80000350: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
+80000354: 00000013 nop
+80000358: 0f0f1137 lui sp,0xf0f1
+8000035c: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80000360: 0020cf33 xor t5,ra,sp
+80000364: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000368: 00200293 li t0,2
+8000036c: fe5210e3 bne tp,t0,8000034c <test_15+0x4>
+80000370: f00ffeb7 lui t4,0xf00ff
+80000374: 00fe8e93 addi t4,t4,15 # f00ff00f <_end+0x700fd00f>
+80000378: 00f00193 li gp,15
+8000037c: 25df1063 bne t5,t4,800005bc <fail>
+
+80000380 <test_16>:
+80000380: 00000213 li tp,0
+80000384: 0ff010b7 lui ra,0xff01
+80000388: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+8000038c: 00000013 nop
+80000390: f0f0f137 lui sp,0xf0f0f
+80000394: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f0d0f0>
+80000398: 00000013 nop
+8000039c: 0020cf33 xor t5,ra,sp
+800003a0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800003a4: 00200293 li t0,2
+800003a8: fc521ee3 bne tp,t0,80000384 <test_16+0x4>
+800003ac: ff010eb7 lui t4,0xff010
+800003b0: f00e8e93 addi t4,t4,-256 # ff00ff00 <_end+0x7f00df00>
+800003b4: 01000193 li gp,16
+800003b8: 21df1263 bne t5,t4,800005bc <fail>
+
+800003bc <test_17>:
+800003bc: 00000213 li tp,0
+800003c0: 00ff00b7 lui ra,0xff0
+800003c4: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+800003c8: 00000013 nop
+800003cc: 00000013 nop
+800003d0: 0f0f1137 lui sp,0xf0f1
+800003d4: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+800003d8: 0020cf33 xor t5,ra,sp
+800003dc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800003e0: 00200293 li t0,2
+800003e4: fc521ee3 bne tp,t0,800003c0 <test_17+0x4>
+800003e8: 0ff01eb7 lui t4,0xff01
+800003ec: ff0e8e93 addi t4,t4,-16 # ff00ff0 <_start-0x700ff010>
+800003f0: 01100193 li gp,17
+800003f4: 1ddf1463 bne t5,t4,800005bc <fail>
+
+800003f8 <test_18>:
+800003f8: 00000213 li tp,0
+800003fc: 0f0f1137 lui sp,0xf0f1
+80000400: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80000404: ff0100b7 lui ra,0xff010
+80000408: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
+8000040c: 0020cf33 xor t5,ra,sp
+80000410: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000414: 00200293 li t0,2
+80000418: fe5212e3 bne tp,t0,800003fc <test_18+0x4>
+8000041c: f00ffeb7 lui t4,0xf00ff
+80000420: 00fe8e93 addi t4,t4,15 # f00ff00f <_end+0x700fd00f>
+80000424: 01200193 li gp,18
+80000428: 19df1a63 bne t5,t4,800005bc <fail>
+
+8000042c <test_19>:
+8000042c: 00000213 li tp,0
+80000430: f0f0f137 lui sp,0xf0f0f
+80000434: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f0d0f0>
+80000438: 0ff010b7 lui ra,0xff01
+8000043c: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+80000440: 00000013 nop
+80000444: 0020cf33 xor t5,ra,sp
+80000448: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000044c: 00200293 li t0,2
+80000450: fe5210e3 bne tp,t0,80000430 <test_19+0x4>
+80000454: ff010eb7 lui t4,0xff010
+80000458: f00e8e93 addi t4,t4,-256 # ff00ff00 <_end+0x7f00df00>
+8000045c: 01300193 li gp,19
+80000460: 15df1e63 bne t5,t4,800005bc <fail>
+
+80000464 <test_20>:
+80000464: 00000213 li tp,0
+80000468: 0f0f1137 lui sp,0xf0f1
+8000046c: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80000470: 00ff00b7 lui ra,0xff0
+80000474: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+80000478: 00000013 nop
+8000047c: 00000013 nop
+80000480: 0020cf33 xor t5,ra,sp
+80000484: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000488: 00200293 li t0,2
+8000048c: fc521ee3 bne tp,t0,80000468 <test_20+0x4>
+80000490: 0ff01eb7 lui t4,0xff01
+80000494: ff0e8e93 addi t4,t4,-16 # ff00ff0 <_start-0x700ff010>
+80000498: 01400193 li gp,20
+8000049c: 13df1063 bne t5,t4,800005bc <fail>
+
+800004a0 <test_21>:
+800004a0: 00000213 li tp,0
+800004a4: 0f0f1137 lui sp,0xf0f1
+800004a8: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+800004ac: 00000013 nop
+800004b0: ff0100b7 lui ra,0xff010
+800004b4: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
+800004b8: 0020cf33 xor t5,ra,sp
+800004bc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800004c0: 00200293 li t0,2
+800004c4: fe5210e3 bne tp,t0,800004a4 <test_21+0x4>
+800004c8: f00ffeb7 lui t4,0xf00ff
+800004cc: 00fe8e93 addi t4,t4,15 # f00ff00f <_end+0x700fd00f>
+800004d0: 01500193 li gp,21
+800004d4: 0fdf1463 bne t5,t4,800005bc <fail>
+
+800004d8 <test_22>:
+800004d8: 00000213 li tp,0
+800004dc: f0f0f137 lui sp,0xf0f0f
+800004e0: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f0d0f0>
+800004e4: 00000013 nop
+800004e8: 0ff010b7 lui ra,0xff01
+800004ec: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+800004f0: 00000013 nop
+800004f4: 0020cf33 xor t5,ra,sp
+800004f8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800004fc: 00200293 li t0,2
+80000500: fc521ee3 bne tp,t0,800004dc <test_22+0x4>
+80000504: ff010eb7 lui t4,0xff010
+80000508: f00e8e93 addi t4,t4,-256 # ff00ff00 <_end+0x7f00df00>
+8000050c: 01600193 li gp,22
+80000510: 0bdf1663 bne t5,t4,800005bc <fail>
+
+80000514 <test_23>:
+80000514: 00000213 li tp,0
+80000518: 0f0f1137 lui sp,0xf0f1
+8000051c: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80000520: 00000013 nop
+80000524: 00000013 nop
+80000528: 00ff00b7 lui ra,0xff0
+8000052c: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+80000530: 0020cf33 xor t5,ra,sp
+80000534: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000538: 00200293 li t0,2
+8000053c: fc521ee3 bne tp,t0,80000518 <test_23+0x4>
+80000540: 0ff01eb7 lui t4,0xff01
+80000544: ff0e8e93 addi t4,t4,-16 # ff00ff0 <_start-0x700ff010>
+80000548: 01700193 li gp,23
+8000054c: 07df1863 bne t5,t4,800005bc <fail>
+
+80000550 <test_24>:
+80000550: ff0100b7 lui ra,0xff010
+80000554: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00df00>
+80000558: 00104133 xor sp,zero,ra
+8000055c: ff010eb7 lui t4,0xff010
+80000560: f00e8e93 addi t4,t4,-256 # ff00ff00 <_end+0x7f00df00>
+80000564: 01800193 li gp,24
+80000568: 05d11a63 bne sp,t4,800005bc <fail>
+
+8000056c <test_25>:
+8000056c: 00ff00b7 lui ra,0xff0
+80000570: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+80000574: 0000c133 xor sp,ra,zero
+80000578: 00ff0eb7 lui t4,0xff0
+8000057c: 0ffe8e93 addi t4,t4,255 # ff00ff <_start-0x7f00ff01>
+80000580: 01900193 li gp,25
+80000584: 03d11c63 bne sp,t4,800005bc <fail>
+
+80000588 <test_26>:
+80000588: 000040b3 xor ra,zero,zero
+8000058c: 00000e93 li t4,0
+80000590: 01a00193 li gp,26
+80000594: 03d09463 bne ra,t4,800005bc <fail>
+
+80000598 <test_27>:
+80000598: 111110b7 lui ra,0x11111
+8000059c: 11108093 addi ra,ra,273 # 11111111 <_start-0x6eeeeeef>
+800005a0: 22222137 lui sp,0x22222
+800005a4: 22210113 addi sp,sp,546 # 22222222 <_start-0x5dddddde>
+800005a8: 0020c033 xor zero,ra,sp
+800005ac: 00000e93 li t4,0
+800005b0: 01b00193 li gp,27
+800005b4: 01d01463 bne zero,t4,800005bc <fail>
+800005b8: 00301c63 bne zero,gp,800005d0 <pass>
+
+800005bc <fail>:
+800005bc: 0ff0000f fence
+800005c0: 00018063 beqz gp,800005c0 <fail+0x4>
+800005c4: 00119193 slli gp,gp,0x1
+800005c8: 0011e193 ori gp,gp,1
+800005cc: 00000073 ecall
+
+800005d0 <pass>:
+800005d0: 0ff0000f fence
+800005d4: 00100193 li gp,1
+800005d8: 00000073 ecall
+800005dc: c0001073 unimp
+800005e0: 0000 unimp
+800005e2: 0000 unimp
+800005e4: 0000 unimp
+800005e6: 0000 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
diff --git a/test/riscv-tests/rv32ui-p-xor.elf b/test/riscv-tests/rv32ui-p-xor.elf
new file mode 100644
index 0000000..43383b3
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-xor.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-p-xori.dump b/test/riscv-tests/rv32ui-p-xori.dump
new file mode 100644
index 0000000..59e75ae
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-xori.dump
@@ -0,0 +1,238 @@
+
+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: 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: 00ff10b7 lui ra,0xff1
+80000100: f0008093 addi ra,ra,-256 # ff0f00 <_start-0x7f00f100>
+80000104: f0f0cf13 xori t5,ra,-241
+80000108: ff00feb7 lui t4,0xff00f
+8000010c: 00fe8e93 addi t4,t4,15 # ff00f00f <_end+0x7f00d00f>
+80000110: 00200193 li gp,2
+80000114: 1ddf1663 bne t5,t4,800002e0 <fail>
+
+80000118 <test_3>:
+80000118: 0ff010b7 lui ra,0xff01
+8000011c: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+80000120: 0f00cf13 xori t5,ra,240
+80000124: 0ff01eb7 lui t4,0xff01
+80000128: f00e8e93 addi t4,t4,-256 # ff00f00 <_start-0x700ff100>
+8000012c: 00300193 li gp,3
+80000130: 1bdf1863 bne t5,t4,800002e0 <fail>
+
+80000134 <test_4>:
+80000134: 00ff10b7 lui ra,0xff1
+80000138: 8ff08093 addi ra,ra,-1793 # ff08ff <_start-0x7f00f701>
+8000013c: 70f0cf13 xori t5,ra,1807
+80000140: 00ff1eb7 lui t4,0xff1
+80000144: ff0e8e93 addi t4,t4,-16 # ff0ff0 <_start-0x7f00f010>
+80000148: 00400193 li gp,4
+8000014c: 19df1a63 bne t5,t4,800002e0 <fail>
+
+80000150 <test_5>:
+80000150: f00ff0b7 lui ra,0xf00ff
+80000154: 00f08093 addi ra,ra,15 # f00ff00f <_end+0x700fd00f>
+80000158: 0f00cf13 xori t5,ra,240
+8000015c: f00ffeb7 lui t4,0xf00ff
+80000160: 0ffe8e93 addi t4,t4,255 # f00ff0ff <_end+0x700fd0ff>
+80000164: 00500193 li gp,5
+80000168: 17df1c63 bne t5,t4,800002e0 <fail>
+
+8000016c <test_6>:
+8000016c: ff00f0b7 lui ra,0xff00f
+80000170: 70008093 addi ra,ra,1792 # ff00f700 <_end+0x7f00d700>
+80000174: 70f0c093 xori ra,ra,1807
+80000178: ff00feb7 lui t4,0xff00f
+8000017c: 00fe8e93 addi t4,t4,15 # ff00f00f <_end+0x7f00d00f>
+80000180: 00600193 li gp,6
+80000184: 15d09e63 bne ra,t4,800002e0 <fail>
+
+80000188 <test_7>:
+80000188: 00000213 li tp,0
+8000018c: 0ff010b7 lui ra,0xff01
+80000190: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+80000194: 0f00cf13 xori t5,ra,240
+80000198: 000f0313 mv t1,t5
+8000019c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800001a0: 00200293 li t0,2
+800001a4: fe5214e3 bne tp,t0,8000018c <test_7+0x4>
+800001a8: 0ff01eb7 lui t4,0xff01
+800001ac: f00e8e93 addi t4,t4,-256 # ff00f00 <_start-0x700ff100>
+800001b0: 00700193 li gp,7
+800001b4: 13d31663 bne t1,t4,800002e0 <fail>
+
+800001b8 <test_8>:
+800001b8: 00000213 li tp,0
+800001bc: 00ff10b7 lui ra,0xff1
+800001c0: 8ff08093 addi ra,ra,-1793 # ff08ff <_start-0x7f00f701>
+800001c4: 70f0cf13 xori t5,ra,1807
+800001c8: 00000013 nop
+800001cc: 000f0313 mv t1,t5
+800001d0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800001d4: 00200293 li t0,2
+800001d8: fe5212e3 bne tp,t0,800001bc <test_8+0x4>
+800001dc: 00ff1eb7 lui t4,0xff1
+800001e0: ff0e8e93 addi t4,t4,-16 # ff0ff0 <_start-0x7f00f010>
+800001e4: 00800193 li gp,8
+800001e8: 0fd31c63 bne t1,t4,800002e0 <fail>
+
+800001ec <test_9>:
+800001ec: 00000213 li tp,0
+800001f0: f00ff0b7 lui ra,0xf00ff
+800001f4: 00f08093 addi ra,ra,15 # f00ff00f <_end+0x700fd00f>
+800001f8: 0f00cf13 xori t5,ra,240
+800001fc: 00000013 nop
+80000200: 00000013 nop
+80000204: 000f0313 mv t1,t5
+80000208: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000020c: 00200293 li t0,2
+80000210: fe5210e3 bne tp,t0,800001f0 <test_9+0x4>
+80000214: f00ffeb7 lui t4,0xf00ff
+80000218: 0ffe8e93 addi t4,t4,255 # f00ff0ff <_end+0x700fd0ff>
+8000021c: 00900193 li gp,9
+80000220: 0dd31063 bne t1,t4,800002e0 <fail>
+
+80000224 <test_10>:
+80000224: 00000213 li tp,0
+80000228: 0ff010b7 lui ra,0xff01
+8000022c: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+80000230: 0f00cf13 xori t5,ra,240
+80000234: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000238: 00200293 li t0,2
+8000023c: fe5216e3 bne tp,t0,80000228 <test_10+0x4>
+80000240: 0ff01eb7 lui t4,0xff01
+80000244: f00e8e93 addi t4,t4,-256 # ff00f00 <_start-0x700ff100>
+80000248: 00a00193 li gp,10
+8000024c: 09df1a63 bne t5,t4,800002e0 <fail>
+
+80000250 <test_11>:
+80000250: 00000213 li tp,0
+80000254: 00ff10b7 lui ra,0xff1
+80000258: fff08093 addi ra,ra,-1 # ff0fff <_start-0x7f00f001>
+8000025c: 00000013 nop
+80000260: 00f0cf13 xori t5,ra,15
+80000264: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000268: 00200293 li t0,2
+8000026c: fe5214e3 bne tp,t0,80000254 <test_11+0x4>
+80000270: 00ff1eb7 lui t4,0xff1
+80000274: ff0e8e93 addi t4,t4,-16 # ff0ff0 <_start-0x7f00f010>
+80000278: 00b00193 li gp,11
+8000027c: 07df1263 bne t5,t4,800002e0 <fail>
+
+80000280 <test_12>:
+80000280: 00000213 li tp,0
+80000284: f00ff0b7 lui ra,0xf00ff
+80000288: 00f08093 addi ra,ra,15 # f00ff00f <_end+0x700fd00f>
+8000028c: 00000013 nop
+80000290: 00000013 nop
+80000294: 0f00cf13 xori t5,ra,240
+80000298: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000029c: 00200293 li t0,2
+800002a0: fe5212e3 bne tp,t0,80000284 <test_12+0x4>
+800002a4: f00ffeb7 lui t4,0xf00ff
+800002a8: 0ffe8e93 addi t4,t4,255 # f00ff0ff <_end+0x700fd0ff>
+800002ac: 00c00193 li gp,12
+800002b0: 03df1863 bne t5,t4,800002e0 <fail>
+
+800002b4 <test_13>:
+800002b4: 0f004093 xori ra,zero,240
+800002b8: 0f000e93 li t4,240
+800002bc: 00d00193 li gp,13
+800002c0: 03d09063 bne ra,t4,800002e0 <fail>
+
+800002c4 <test_14>:
+800002c4: 00ff00b7 lui ra,0xff0
+800002c8: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+800002cc: 70f0c013 xori zero,ra,1807
+800002d0: 00000e93 li t4,0
+800002d4: 00e00193 li gp,14
+800002d8: 01d01463 bne zero,t4,800002e0 <fail>
+800002dc: 00301c63 bne zero,gp,800002f4 <pass>
+
+800002e0 <fail>:
+800002e0: 0ff0000f fence
+800002e4: 00018063 beqz gp,800002e4 <fail+0x4>
+800002e8: 00119193 slli gp,gp,0x1
+800002ec: 0011e193 ori gp,gp,1
+800002f0: 00000073 ecall
+
+800002f4 <pass>:
+800002f4: 0ff0000f fence
+800002f8: 00100193 li gp,1
+800002fc: 00000073 ecall
+80000300: c0001073 unimp
diff --git a/test/riscv-tests/rv32ui-p-xori.elf b/test/riscv-tests/rv32ui-p-xori.elf
new file mode 100644
index 0000000..002de5f
--- /dev/null
+++ b/test/riscv-tests/rv32ui-p-xori.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-v-add.dump b/test/riscv-tests/rv32ui-v-add.dump
new file mode 100644
index 0000000..d5d4214
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-add.dump
@@ -0,0 +1,1294 @@
+
+rv32ui-v-add: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00007117 auipc sp,0x7
+8000001c: 35010113 addi sp,sp,848 # 80007368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00002317 auipc t1,0x2
+80002370: c9430313 addi t1,t1,-876 # 80004000 <begin_signature>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00004797 auipc a5,0x4
+8000238c: 06c78793 addi a5,a5,108 # 800063f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00004717 auipc a4,0x4
+800023a0: 05470713 addi a4,a4,84 # 800063f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00004697 auipc a3,0x4
+800023ac: 04f6a623 sw a5,76(a3) # 800063f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00004717 auipc a4,0x4
+800023dc: e2070713 addi a4,a4,-480 # 800061f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf9c08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00004797 auipc a5,0x4
+800024bc: f207ac23 sw zero,-200(a5) # 800063f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00001597 auipc a1,0x1
+800024cc: c1458593 addi a1,a1,-1004 # 800030dc <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00001597 auipc a1,0x1
+8000253c: c3058593 addi a1,a1,-976 # 80003168 <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00001597 auipc a1,0x1
+800025a8: bdc58593 addi a1,a1,-1060 # 80003180 <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00001597 auipc a1,0x1
+80002614: b1058593 addi a1,a1,-1264 # 80003120 <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00001597 auipc a1,0x1
+8000274c: b0058593 addi a1,a1,-1280 # 80003248 <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00001597 auipc a1,0x1
+800027c0: a6858593 addi a1,a1,-1432 # 80003224 <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00004b17 auipc s6,0x4
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800061f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00001d17 auipc s10,0x1
+80002840: 7c4d0d13 addi s10,s10,1988 # 80004000 <begin_signature>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00004717 auipc a4,0x4
+8000285c: b8f72c23 sw a5,-1128(a4) # 800063f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00004717 auipc a4,0x4
+800028e8: b0c70713 addi a4,a4,-1268 # 800063f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00004717 auipc a4,0x4
+800028fc: aef72c23 sw a5,-1288(a4) # 800063f0 <freelist_tail>
+80002900: 00004717 auipc a4,0x4
+80002904: aef72a23 sw a5,-1292(a4) # 800063f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00001617 auipc a2,0x1
+80002914: 96460613 addi a2,a2,-1692 # 80003274 <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00001617 auipc a2,0x1
+80002980: 87460613 addi a2,a2,-1932 # 800031f0 <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 7f460613 addi a2,a2,2036 # 800031bc <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00002797 auipc a5,0x2
+80002a4c: 5b878793 addi a5,a5,1464 # 80005000 <begin_signature+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00001697 auipc a3,0x1
+80002a60: 5af6a223 sw a5,1444(a3) # 80004000 <begin_signature>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00001717 auipc a4,0x1
+80002a6c: 59870713 addi a4,a4,1432 # 80004000 <begin_signature>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00002697 auipc a3,0x2
+80002a7c: 58f6a223 sw a5,1412(a3) # 80004ffc <begin_signature+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf9ccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc03797 auipc a5,0x7fc03
+80002aec: 51878793 addi a5,a5,1304 # ffc06000 <_end+0x7fbffc08>
+80002af0: 00004717 auipc a4,0x4
+80002af4: 90f72223 sw a5,-1788(a4) # 800063f4 <freelist_head>
+80002af8: 7fc03797 auipc a5,0x7fc03
+80002afc: 6f878793 addi a5,a5,1784 # ffc061f0 <_end+0x7fbffdf8>
+80002b00: 00004717 auipc a4,0x4
+80002b04: 8ef72823 sw a5,-1808(a4) # 800063f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00003717 auipc a4,0x3
+80002b10: 4f470713 addi a4,a4,1268 # 80006000 <freelist_nodes>
+80002b14: 00003317 auipc t1,0x3
+80002b18: 6e430313 addi t1,t1,1764 # 800061f8 <user_mapping>
+80002b1c: 03100793 li a5,49
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00003797 auipc a5,0x3
+80002b6c: 6807a623 sw zero,1676(a5) # 800061f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 0db0b7b7 lui a5,0xdb0b
+80002b9c: 00080637 lui a2,0x80
+80002ba0: 65278793 addi a5,a5,1618 # db0b652 <_start-0x724f49ae>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: 00000093 li ra,0
+80002be4: 00000113 li sp,0
+80002be8: 00208f33 add t5,ra,sp
+80002bec: 00000e93 li t4,0
+80002bf0: 00200193 li gp,2
+80002bf4: 4ddf1663 bne t5,t4,800030c0 <fail>
+
+80002bf8 <test_3>:
+80002bf8: 00100093 li ra,1
+80002bfc: 00100113 li sp,1
+80002c00: 00208f33 add t5,ra,sp
+80002c04: 00200e93 li t4,2
+80002c08: 00300193 li gp,3
+80002c0c: 4bdf1a63 bne t5,t4,800030c0 <fail>
+
+80002c10 <test_4>:
+80002c10: 00300093 li ra,3
+80002c14: 00700113 li sp,7
+80002c18: 00208f33 add t5,ra,sp
+80002c1c: 00a00e93 li t4,10
+80002c20: 00400193 li gp,4
+80002c24: 49df1e63 bne t5,t4,800030c0 <fail>
+
+80002c28 <test_5>:
+80002c28: 00000093 li ra,0
+80002c2c: ffff8137 lui sp,0xffff8
+80002c30: 00208f33 add t5,ra,sp
+80002c34: ffff8eb7 lui t4,0xffff8
+80002c38: 00500193 li gp,5
+80002c3c: 49df1263 bne t5,t4,800030c0 <fail>
+
+80002c40 <test_6>:
+80002c40: 800000b7 lui ra,0x80000
+80002c44: 00000113 li sp,0
+80002c48: 00208f33 add t5,ra,sp
+80002c4c: 80000eb7 lui t4,0x80000
+80002c50: 00600193 li gp,6
+80002c54: 47df1663 bne t5,t4,800030c0 <fail>
+
+80002c58 <test_7>:
+80002c58: 800000b7 lui ra,0x80000
+80002c5c: ffff8137 lui sp,0xffff8
+80002c60: 00208f33 add t5,ra,sp
+80002c64: 7fff8eb7 lui t4,0x7fff8
+80002c68: 00700193 li gp,7
+80002c6c: 45df1a63 bne t5,t4,800030c0 <fail>
+
+80002c70 <test_8>:
+80002c70: 00000093 li ra,0
+80002c74: 00008137 lui sp,0x8
+80002c78: fff10113 addi sp,sp,-1 # 7fff <_start-0x7fff8001>
+80002c7c: 00208f33 add t5,ra,sp
+80002c80: 00008eb7 lui t4,0x8
+80002c84: fffe8e93 addi t4,t4,-1 # 7fff <_start-0x7fff8001>
+80002c88: 00800193 li gp,8
+80002c8c: 43df1a63 bne t5,t4,800030c0 <fail>
+
+80002c90 <test_9>:
+80002c90: 800000b7 lui ra,0x80000
+80002c94: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffff9c07>
+80002c98: 00000113 li sp,0
+80002c9c: 00208f33 add t5,ra,sp
+80002ca0: 80000eb7 lui t4,0x80000
+80002ca4: fffe8e93 addi t4,t4,-1 # 7fffffff <_end+0xffff9c07>
+80002ca8: 00900193 li gp,9
+80002cac: 41df1a63 bne t5,t4,800030c0 <fail>
+
+80002cb0 <test_10>:
+80002cb0: 800000b7 lui ra,0x80000
+80002cb4: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffff9c07>
+80002cb8: 00008137 lui sp,0x8
+80002cbc: fff10113 addi sp,sp,-1 # 7fff <_start-0x7fff8001>
+80002cc0: 00208f33 add t5,ra,sp
+80002cc4: 80008eb7 lui t4,0x80008
+80002cc8: ffee8e93 addi t4,t4,-2 # 80007ffe <_end+0x1c06>
+80002ccc: 00a00193 li gp,10
+80002cd0: 3fdf1863 bne t5,t4,800030c0 <fail>
+
+80002cd4 <test_11>:
+80002cd4: 800000b7 lui ra,0x80000
+80002cd8: 00008137 lui sp,0x8
+80002cdc: fff10113 addi sp,sp,-1 # 7fff <_start-0x7fff8001>
+80002ce0: 00208f33 add t5,ra,sp
+80002ce4: 80008eb7 lui t4,0x80008
+80002ce8: fffe8e93 addi t4,t4,-1 # 80007fff <_end+0x1c07>
+80002cec: 00b00193 li gp,11
+80002cf0: 3ddf1863 bne t5,t4,800030c0 <fail>
+
+80002cf4 <test_12>:
+80002cf4: 800000b7 lui ra,0x80000
+80002cf8: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffff9c07>
+80002cfc: ffff8137 lui sp,0xffff8
+80002d00: 00208f33 add t5,ra,sp
+80002d04: 7fff8eb7 lui t4,0x7fff8
+80002d08: fffe8e93 addi t4,t4,-1 # 7fff7fff <_start-0x8001>
+80002d0c: 00c00193 li gp,12
+80002d10: 3bdf1863 bne t5,t4,800030c0 <fail>
+
+80002d14 <test_13>:
+80002d14: 00000093 li ra,0
+80002d18: fff00113 li sp,-1
+80002d1c: 00208f33 add t5,ra,sp
+80002d20: fff00e93 li t4,-1
+80002d24: 00d00193 li gp,13
+80002d28: 39df1c63 bne t5,t4,800030c0 <fail>
+
+80002d2c <test_14>:
+80002d2c: fff00093 li ra,-1
+80002d30: 00100113 li sp,1
+80002d34: 00208f33 add t5,ra,sp
+80002d38: 00000e93 li t4,0
+80002d3c: 00e00193 li gp,14
+80002d40: 39df1063 bne t5,t4,800030c0 <fail>
+
+80002d44 <test_15>:
+80002d44: fff00093 li ra,-1
+80002d48: fff00113 li sp,-1
+80002d4c: 00208f33 add t5,ra,sp
+80002d50: ffe00e93 li t4,-2
+80002d54: 00f00193 li gp,15
+80002d58: 37df1463 bne t5,t4,800030c0 <fail>
+
+80002d5c <test_16>:
+80002d5c: 00100093 li ra,1
+80002d60: 80000137 lui sp,0x80000
+80002d64: fff10113 addi sp,sp,-1 # 7fffffff <_end+0xffff9c07>
+80002d68: 00208f33 add t5,ra,sp
+80002d6c: 80000eb7 lui t4,0x80000
+80002d70: 01000193 li gp,16
+80002d74: 35df1663 bne t5,t4,800030c0 <fail>
+
+80002d78 <test_17>:
+80002d78: 00d00093 li ra,13
+80002d7c: 00b00113 li sp,11
+80002d80: 002080b3 add ra,ra,sp
+80002d84: 01800e93 li t4,24
+80002d88: 01100193 li gp,17
+80002d8c: 33d09a63 bne ra,t4,800030c0 <fail>
+
+80002d90 <test_18>:
+80002d90: 00e00093 li ra,14
+80002d94: 00b00113 li sp,11
+80002d98: 00208133 add sp,ra,sp
+80002d9c: 01900e93 li t4,25
+80002da0: 01200193 li gp,18
+80002da4: 31d11e63 bne sp,t4,800030c0 <fail>
+
+80002da8 <test_19>:
+80002da8: 00d00093 li ra,13
+80002dac: 001080b3 add ra,ra,ra
+80002db0: 01a00e93 li t4,26
+80002db4: 01300193 li gp,19
+80002db8: 31d09463 bne ra,t4,800030c0 <fail>
+
+80002dbc <test_20>:
+80002dbc: 00000213 li tp,0
+80002dc0: 00d00093 li ra,13
+80002dc4: 00b00113 li sp,11
+80002dc8: 00208f33 add t5,ra,sp
+80002dcc: 000f0313 mv t1,t5
+80002dd0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002dd4: 00200293 li t0,2
+80002dd8: fe5214e3 bne tp,t0,80002dc0 <test_20+0x4>
+80002ddc: 01800e93 li t4,24
+80002de0: 01400193 li gp,20
+80002de4: 2dd31e63 bne t1,t4,800030c0 <fail>
+
+80002de8 <test_21>:
+80002de8: 00000213 li tp,0
+80002dec: 00e00093 li ra,14
+80002df0: 00b00113 li sp,11
+80002df4: 00208f33 add t5,ra,sp
+80002df8: 00000013 nop
+80002dfc: 000f0313 mv t1,t5
+80002e00: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e04: 00200293 li t0,2
+80002e08: fe5212e3 bne tp,t0,80002dec <test_21+0x4>
+80002e0c: 01900e93 li t4,25
+80002e10: 01500193 li gp,21
+80002e14: 2bd31663 bne t1,t4,800030c0 <fail>
+
+80002e18 <test_22>:
+80002e18: 00000213 li tp,0
+80002e1c: 00f00093 li ra,15
+80002e20: 00b00113 li sp,11
+80002e24: 00208f33 add t5,ra,sp
+80002e28: 00000013 nop
+80002e2c: 00000013 nop
+80002e30: 000f0313 mv t1,t5
+80002e34: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e38: 00200293 li t0,2
+80002e3c: fe5210e3 bne tp,t0,80002e1c <test_22+0x4>
+80002e40: 01a00e93 li t4,26
+80002e44: 01600193 li gp,22
+80002e48: 27d31c63 bne t1,t4,800030c0 <fail>
+
+80002e4c <test_23>:
+80002e4c: 00000213 li tp,0
+80002e50: 00d00093 li ra,13
+80002e54: 00b00113 li sp,11
+80002e58: 00208f33 add t5,ra,sp
+80002e5c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e60: 00200293 li t0,2
+80002e64: fe5216e3 bne tp,t0,80002e50 <test_23+0x4>
+80002e68: 01800e93 li t4,24
+80002e6c: 01700193 li gp,23
+80002e70: 25df1863 bne t5,t4,800030c0 <fail>
+
+80002e74 <test_24>:
+80002e74: 00000213 li tp,0
+80002e78: 00e00093 li ra,14
+80002e7c: 00b00113 li sp,11
+80002e80: 00000013 nop
+80002e84: 00208f33 add t5,ra,sp
+80002e88: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e8c: 00200293 li t0,2
+80002e90: fe5214e3 bne tp,t0,80002e78 <test_24+0x4>
+80002e94: 01900e93 li t4,25
+80002e98: 01800193 li gp,24
+80002e9c: 23df1263 bne t5,t4,800030c0 <fail>
+
+80002ea0 <test_25>:
+80002ea0: 00000213 li tp,0
+80002ea4: 00f00093 li ra,15
+80002ea8: 00b00113 li sp,11
+80002eac: 00000013 nop
+80002eb0: 00000013 nop
+80002eb4: 00208f33 add t5,ra,sp
+80002eb8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002ebc: 00200293 li t0,2
+80002ec0: fe5212e3 bne tp,t0,80002ea4 <test_25+0x4>
+80002ec4: 01a00e93 li t4,26
+80002ec8: 01900193 li gp,25
+80002ecc: 1fdf1a63 bne t5,t4,800030c0 <fail>
+
+80002ed0 <test_26>:
+80002ed0: 00000213 li tp,0
+80002ed4: 00d00093 li ra,13
+80002ed8: 00000013 nop
+80002edc: 00b00113 li sp,11
+80002ee0: 00208f33 add t5,ra,sp
+80002ee4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002ee8: 00200293 li t0,2
+80002eec: fe5214e3 bne tp,t0,80002ed4 <test_26+0x4>
+80002ef0: 01800e93 li t4,24
+80002ef4: 01a00193 li gp,26
+80002ef8: 1ddf1463 bne t5,t4,800030c0 <fail>
+
+80002efc <test_27>:
+80002efc: 00000213 li tp,0
+80002f00: 00e00093 li ra,14
+80002f04: 00000013 nop
+80002f08: 00b00113 li sp,11
+80002f0c: 00000013 nop
+80002f10: 00208f33 add t5,ra,sp
+80002f14: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002f18: 00200293 li t0,2
+80002f1c: fe5212e3 bne tp,t0,80002f00 <test_27+0x4>
+80002f20: 01900e93 li t4,25
+80002f24: 01b00193 li gp,27
+80002f28: 19df1c63 bne t5,t4,800030c0 <fail>
+
+80002f2c <test_28>:
+80002f2c: 00000213 li tp,0
+80002f30: 00f00093 li ra,15
+80002f34: 00000013 nop
+80002f38: 00000013 nop
+80002f3c: 00b00113 li sp,11
+80002f40: 00208f33 add t5,ra,sp
+80002f44: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002f48: 00200293 li t0,2
+80002f4c: fe5212e3 bne tp,t0,80002f30 <test_28+0x4>
+80002f50: 01a00e93 li t4,26
+80002f54: 01c00193 li gp,28
+80002f58: 17df1463 bne t5,t4,800030c0 <fail>
+
+80002f5c <test_29>:
+80002f5c: 00000213 li tp,0
+80002f60: 00b00113 li sp,11
+80002f64: 00d00093 li ra,13
+80002f68: 00208f33 add t5,ra,sp
+80002f6c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002f70: 00200293 li t0,2
+80002f74: fe5216e3 bne tp,t0,80002f60 <test_29+0x4>
+80002f78: 01800e93 li t4,24
+80002f7c: 01d00193 li gp,29
+80002f80: 15df1063 bne t5,t4,800030c0 <fail>
+
+80002f84 <test_30>:
+80002f84: 00000213 li tp,0
+80002f88: 00b00113 li sp,11
+80002f8c: 00e00093 li ra,14
+80002f90: 00000013 nop
+80002f94: 00208f33 add t5,ra,sp
+80002f98: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002f9c: 00200293 li t0,2
+80002fa0: fe5214e3 bne tp,t0,80002f88 <test_30+0x4>
+80002fa4: 01900e93 li t4,25
+80002fa8: 01e00193 li gp,30
+80002fac: 11df1a63 bne t5,t4,800030c0 <fail>
+
+80002fb0 <test_31>:
+80002fb0: 00000213 li tp,0
+80002fb4: 00b00113 li sp,11
+80002fb8: 00f00093 li ra,15
+80002fbc: 00000013 nop
+80002fc0: 00000013 nop
+80002fc4: 00208f33 add t5,ra,sp
+80002fc8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002fcc: 00200293 li t0,2
+80002fd0: fe5212e3 bne tp,t0,80002fb4 <test_31+0x4>
+80002fd4: 01a00e93 li t4,26
+80002fd8: 01f00193 li gp,31
+80002fdc: 0fdf1263 bne t5,t4,800030c0 <fail>
+
+80002fe0 <test_32>:
+80002fe0: 00000213 li tp,0
+80002fe4: 00b00113 li sp,11
+80002fe8: 00000013 nop
+80002fec: 00d00093 li ra,13
+80002ff0: 00208f33 add t5,ra,sp
+80002ff4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002ff8: 00200293 li t0,2
+80002ffc: fe5214e3 bne tp,t0,80002fe4 <test_32+0x4>
+80003000: 01800e93 li t4,24
+80003004: 02000193 li gp,32
+80003008: 0bdf1c63 bne t5,t4,800030c0 <fail>
+
+8000300c <test_33>:
+8000300c: 00000213 li tp,0
+80003010: 00b00113 li sp,11
+80003014: 00000013 nop
+80003018: 00e00093 li ra,14
+8000301c: 00000013 nop
+80003020: 00208f33 add t5,ra,sp
+80003024: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80003028: 00200293 li t0,2
+8000302c: fe5212e3 bne tp,t0,80003010 <test_33+0x4>
+80003030: 01900e93 li t4,25
+80003034: 02100193 li gp,33
+80003038: 09df1463 bne t5,t4,800030c0 <fail>
+
+8000303c <test_34>:
+8000303c: 00000213 li tp,0
+80003040: 00b00113 li sp,11
+80003044: 00000013 nop
+80003048: 00000013 nop
+8000304c: 00f00093 li ra,15
+80003050: 00208f33 add t5,ra,sp
+80003054: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80003058: 00200293 li t0,2
+8000305c: fe5212e3 bne tp,t0,80003040 <test_34+0x4>
+80003060: 01a00e93 li t4,26
+80003064: 02200193 li gp,34
+80003068: 05df1c63 bne t5,t4,800030c0 <fail>
+
+8000306c <test_35>:
+8000306c: 00f00093 li ra,15
+80003070: 00100133 add sp,zero,ra
+80003074: 00f00e93 li t4,15
+80003078: 02300193 li gp,35
+8000307c: 05d11263 bne sp,t4,800030c0 <fail>
+
+80003080 <test_36>:
+80003080: 02000093 li ra,32
+80003084: 00008133 add sp,ra,zero
+80003088: 02000e93 li t4,32
+8000308c: 02400193 li gp,36
+80003090: 03d11863 bne sp,t4,800030c0 <fail>
+
+80003094 <test_37>:
+80003094: 000000b3 add ra,zero,zero
+80003098: 00000e93 li t4,0
+8000309c: 02500193 li gp,37
+800030a0: 03d09063 bne ra,t4,800030c0 <fail>
+
+800030a4 <test_38>:
+800030a4: 01000093 li ra,16
+800030a8: 01e00113 li sp,30
+800030ac: 00208033 add zero,ra,sp
+800030b0: 00000e93 li t4,0
+800030b4: 02600193 li gp,38
+800030b8: 01d01463 bne zero,t4,800030c0 <fail>
+800030bc: 00301a63 bne zero,gp,800030d0 <pass>
+
+800030c0 <fail>:
+800030c0: 00119513 slli a0,gp,0x1
+800030c4: 00050063 beqz a0,800030c4 <fail+0x4>
+800030c8: 00156513 ori a0,a0,1
+800030cc: 00000073 ecall
+
+800030d0 <pass>:
+800030d0: 00100513 li a0,1
+800030d4: 00000073 ecall
+800030d8: c0001073 unimp
diff --git a/test/riscv-tests/rv32ui-v-add.elf b/test/riscv-tests/rv32ui-v-add.elf
new file mode 100644
index 0000000..2583361
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-add.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-v-addi.dump b/test/riscv-tests/rv32ui-v-addi.dump
new file mode 100644
index 0000000..7268180
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-addi.dump
@@ -0,0 +1,1118 @@
+
+rv32ui-v-addi: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00007117 auipc sp,0x7
+8000001c: 35010113 addi sp,sp,848 # 80007368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00002317 auipc t1,0x2
+80002370: c9430313 addi t1,t1,-876 # 80004000 <begin_signature>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00004797 auipc a5,0x4
+8000238c: 06c78793 addi a5,a5,108 # 800063f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00004717 auipc a4,0x4
+800023a0: 05470713 addi a4,a4,84 # 800063f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00004697 auipc a3,0x4
+800023ac: 04f6a623 sw a5,76(a3) # 800063f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00004717 auipc a4,0x4
+800023dc: e2070713 addi a4,a4,-480 # 800061f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf9c08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00004797 auipc a5,0x4
+800024bc: f207ac23 sw zero,-200(a5) # 800063f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00001597 auipc a1,0x1
+800024cc: 9bc58593 addi a1,a1,-1604 # 80002e84 <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00001597 auipc a1,0x1
+8000253c: 9d858593 addi a1,a1,-1576 # 80002f10 <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00001597 auipc a1,0x1
+800025a8: 98458593 addi a1,a1,-1660 # 80002f28 <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00001597 auipc a1,0x1
+80002614: 8b858593 addi a1,a1,-1864 # 80002ec8 <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00001597 auipc a1,0x1
+8000274c: 8a858593 addi a1,a1,-1880 # 80002ff0 <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00001597 auipc a1,0x1
+800027c0: 81058593 addi a1,a1,-2032 # 80002fcc <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00004b17 auipc s6,0x4
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800061f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00001d17 auipc s10,0x1
+80002840: 7c4d0d13 addi s10,s10,1988 # 80004000 <begin_signature>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00004717 auipc a4,0x4
+8000285c: b8f72c23 sw a5,-1128(a4) # 800063f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00004717 auipc a4,0x4
+800028e8: b0c70713 addi a4,a4,-1268 # 800063f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00004717 auipc a4,0x4
+800028fc: aef72c23 sw a5,-1288(a4) # 800063f0 <freelist_tail>
+80002900: 00004717 auipc a4,0x4
+80002904: aef72a23 sw a5,-1292(a4) # 800063f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00000617 auipc a2,0x0
+80002914: 70c60613 addi a2,a2,1804 # 8000301c <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00000617 auipc a2,0x0
+80002980: 61c60613 addi a2,a2,1564 # 80002f98 <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 59c60613 addi a2,a2,1436 # 80002f64 <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00002797 auipc a5,0x2
+80002a4c: 5b878793 addi a5,a5,1464 # 80005000 <begin_signature+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00001697 auipc a3,0x1
+80002a60: 5af6a223 sw a5,1444(a3) # 80004000 <begin_signature>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00001717 auipc a4,0x1
+80002a6c: 59870713 addi a4,a4,1432 # 80004000 <begin_signature>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00002697 auipc a3,0x2
+80002a7c: 58f6a223 sw a5,1412(a3) # 80004ffc <begin_signature+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf9ccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc03797 auipc a5,0x7fc03
+80002aec: 51878793 addi a5,a5,1304 # ffc06000 <_end+0x7fbffc08>
+80002af0: 00004717 auipc a4,0x4
+80002af4: 90f72223 sw a5,-1788(a4) # 800063f4 <freelist_head>
+80002af8: 7fc03797 auipc a5,0x7fc03
+80002afc: 6f878793 addi a5,a5,1784 # ffc061f0 <_end+0x7fbffdf8>
+80002b00: 00004717 auipc a4,0x4
+80002b04: 8ef72823 sw a5,-1808(a4) # 800063f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00003717 auipc a4,0x3
+80002b10: 4f470713 addi a4,a4,1268 # 80006000 <freelist_nodes>
+80002b14: 00003317 auipc t1,0x3
+80002b18: 6e430313 addi t1,t1,1764 # 800061f8 <user_mapping>
+80002b1c: 00800793 li a5,8
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00003797 auipc a5,0x3
+80002b6c: 6807a623 sw zero,1676(a5) # 800061f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 0d24a7b7 lui a5,0xd24a
+80002b9c: 00080637 lui a2,0x80
+80002ba0: c3678793 addi a5,a5,-970 # d249c36 <_start-0x72db63ca>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: 00000093 li ra,0
+80002be4: 00008f13 mv t5,ra
+80002be8: 00000e93 li t4,0
+80002bec: 00200193 li gp,2
+80002bf0: 27df1c63 bne t5,t4,80002e68 <fail>
+
+80002bf4 <test_3>:
+80002bf4: 00100093 li ra,1
+80002bf8: 00108f13 addi t5,ra,1
+80002bfc: 00200e93 li t4,2
+80002c00: 00300193 li gp,3
+80002c04: 27df1263 bne t5,t4,80002e68 <fail>
+
+80002c08 <test_4>:
+80002c08: 00300093 li ra,3
+80002c0c: 00708f13 addi t5,ra,7
+80002c10: 00a00e93 li t4,10
+80002c14: 00400193 li gp,4
+80002c18: 25df1863 bne t5,t4,80002e68 <fail>
+
+80002c1c <test_5>:
+80002c1c: 00000093 li ra,0
+80002c20: 80008f13 addi t5,ra,-2048
+80002c24: 80000e93 li t4,-2048
+80002c28: 00500193 li gp,5
+80002c2c: 23df1e63 bne t5,t4,80002e68 <fail>
+
+80002c30 <test_6>:
+80002c30: 800000b7 lui ra,0x80000
+80002c34: 00008f13 mv t5,ra
+80002c38: 80000eb7 lui t4,0x80000
+80002c3c: 00600193 li gp,6
+80002c40: 23df1463 bne t5,t4,80002e68 <fail>
+
+80002c44 <test_7>:
+80002c44: 800000b7 lui ra,0x80000
+80002c48: 80008f13 addi t5,ra,-2048 # 7ffff800 <_end+0xffff9408>
+80002c4c: 80000eb7 lui t4,0x80000
+80002c50: 800e8e93 addi t4,t4,-2048 # 7ffff800 <_end+0xffff9408>
+80002c54: 00700193 li gp,7
+80002c58: 21df1863 bne t5,t4,80002e68 <fail>
+
+80002c5c <test_8>:
+80002c5c: 00000093 li ra,0
+80002c60: 7ff08f13 addi t5,ra,2047
+80002c64: 7ff00e93 li t4,2047
+80002c68: 00800193 li gp,8
+80002c6c: 1fdf1e63 bne t5,t4,80002e68 <fail>
+
+80002c70 <test_9>:
+80002c70: 800000b7 lui ra,0x80000
+80002c74: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffff9c07>
+80002c78: 00008f13 mv t5,ra
+80002c7c: 80000eb7 lui t4,0x80000
+80002c80: fffe8e93 addi t4,t4,-1 # 7fffffff <_end+0xffff9c07>
+80002c84: 00900193 li gp,9
+80002c88: 1fdf1063 bne t5,t4,80002e68 <fail>
+
+80002c8c <test_10>:
+80002c8c: 800000b7 lui ra,0x80000
+80002c90: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffff9c07>
+80002c94: 7ff08f13 addi t5,ra,2047
+80002c98: 80000eb7 lui t4,0x80000
+80002c9c: 7fee8e93 addi t4,t4,2046 # 800007fe <_end+0xffffa406>
+80002ca0: 00a00193 li gp,10
+80002ca4: 1ddf1263 bne t5,t4,80002e68 <fail>
+
+80002ca8 <test_11>:
+80002ca8: 800000b7 lui ra,0x80000
+80002cac: 7ff08f13 addi t5,ra,2047 # 800007ff <_end+0xffffa407>
+80002cb0: 80000eb7 lui t4,0x80000
+80002cb4: 7ffe8e93 addi t4,t4,2047 # 800007ff <_end+0xffffa407>
+80002cb8: 00b00193 li gp,11
+80002cbc: 1bdf1663 bne t5,t4,80002e68 <fail>
+
+80002cc0 <test_12>:
+80002cc0: 800000b7 lui ra,0x80000
+80002cc4: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffff9c07>
+80002cc8: 80008f13 addi t5,ra,-2048
+80002ccc: 7ffffeb7 lui t4,0x7ffff
+80002cd0: 7ffe8e93 addi t4,t4,2047 # 7ffff7ff <_start-0x801>
+80002cd4: 00c00193 li gp,12
+80002cd8: 19df1863 bne t5,t4,80002e68 <fail>
+
+80002cdc <test_13>:
+80002cdc: 00000093 li ra,0
+80002ce0: fff08f13 addi t5,ra,-1
+80002ce4: fff00e93 li t4,-1
+80002ce8: 00d00193 li gp,13
+80002cec: 17df1e63 bne t5,t4,80002e68 <fail>
+
+80002cf0 <test_14>:
+80002cf0: fff00093 li ra,-1
+80002cf4: 00108f13 addi t5,ra,1
+80002cf8: 00000e93 li t4,0
+80002cfc: 00e00193 li gp,14
+80002d00: 17df1463 bne t5,t4,80002e68 <fail>
+
+80002d04 <test_15>:
+80002d04: fff00093 li ra,-1
+80002d08: fff08f13 addi t5,ra,-1
+80002d0c: ffe00e93 li t4,-2
+80002d10: 00f00193 li gp,15
+80002d14: 15df1a63 bne t5,t4,80002e68 <fail>
+
+80002d18 <test_16>:
+80002d18: 800000b7 lui ra,0x80000
+80002d1c: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffff9c07>
+80002d20: 00108f13 addi t5,ra,1
+80002d24: 80000eb7 lui t4,0x80000
+80002d28: 01000193 li gp,16
+80002d2c: 13df1e63 bne t5,t4,80002e68 <fail>
+
+80002d30 <test_17>:
+80002d30: 00d00093 li ra,13
+80002d34: 00b08093 addi ra,ra,11
+80002d38: 01800e93 li t4,24
+80002d3c: 01100193 li gp,17
+80002d40: 13d09463 bne ra,t4,80002e68 <fail>
+
+80002d44 <test_18>:
+80002d44: 00000213 li tp,0
+80002d48: 00d00093 li ra,13
+80002d4c: 00b08f13 addi t5,ra,11
+80002d50: 000f0313 mv t1,t5
+80002d54: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d58: 00200293 li t0,2
+80002d5c: fe5216e3 bne tp,t0,80002d48 <test_18+0x4>
+80002d60: 01800e93 li t4,24
+80002d64: 01200193 li gp,18
+80002d68: 11d31063 bne t1,t4,80002e68 <fail>
+
+80002d6c <test_19>:
+80002d6c: 00000213 li tp,0
+80002d70: 00d00093 li ra,13
+80002d74: 00a08f13 addi t5,ra,10
+80002d78: 00000013 nop
+80002d7c: 000f0313 mv t1,t5
+80002d80: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d84: 00200293 li t0,2
+80002d88: fe5214e3 bne tp,t0,80002d70 <test_19+0x4>
+80002d8c: 01700e93 li t4,23
+80002d90: 01300193 li gp,19
+80002d94: 0dd31a63 bne t1,t4,80002e68 <fail>
+
+80002d98 <test_20>:
+80002d98: 00000213 li tp,0
+80002d9c: 00d00093 li ra,13
+80002da0: 00908f13 addi t5,ra,9
+80002da4: 00000013 nop
+80002da8: 00000013 nop
+80002dac: 000f0313 mv t1,t5
+80002db0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002db4: 00200293 li t0,2
+80002db8: fe5212e3 bne tp,t0,80002d9c <test_20+0x4>
+80002dbc: 01600e93 li t4,22
+80002dc0: 01400193 li gp,20
+80002dc4: 0bd31263 bne t1,t4,80002e68 <fail>
+
+80002dc8 <test_21>:
+80002dc8: 00000213 li tp,0
+80002dcc: 00d00093 li ra,13
+80002dd0: 00b08f13 addi t5,ra,11
+80002dd4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002dd8: 00200293 li t0,2
+80002ddc: fe5218e3 bne tp,t0,80002dcc <test_21+0x4>
+80002de0: 01800e93 li t4,24
+80002de4: 01500193 li gp,21
+80002de8: 09df1063 bne t5,t4,80002e68 <fail>
+
+80002dec <test_22>:
+80002dec: 00000213 li tp,0
+80002df0: 00d00093 li ra,13
+80002df4: 00000013 nop
+80002df8: 00a08f13 addi t5,ra,10
+80002dfc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e00: 00200293 li t0,2
+80002e04: fe5216e3 bne tp,t0,80002df0 <test_22+0x4>
+80002e08: 01700e93 li t4,23
+80002e0c: 01600193 li gp,22
+80002e10: 05df1c63 bne t5,t4,80002e68 <fail>
+
+80002e14 <test_23>:
+80002e14: 00000213 li tp,0
+80002e18: 00d00093 li ra,13
+80002e1c: 00000013 nop
+80002e20: 00000013 nop
+80002e24: 00908f13 addi t5,ra,9
+80002e28: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e2c: 00200293 li t0,2
+80002e30: fe5214e3 bne tp,t0,80002e18 <test_23+0x4>
+80002e34: 01600e93 li t4,22
+80002e38: 01700193 li gp,23
+80002e3c: 03df1663 bne t5,t4,80002e68 <fail>
+
+80002e40 <test_24>:
+80002e40: 02000093 li ra,32
+80002e44: 02000e93 li t4,32
+80002e48: 01800193 li gp,24
+80002e4c: 01d09e63 bne ra,t4,80002e68 <fail>
+
+80002e50 <test_25>:
+80002e50: 02100093 li ra,33
+80002e54: 03208013 addi zero,ra,50
+80002e58: 00000e93 li t4,0
+80002e5c: 01900193 li gp,25
+80002e60: 01d01463 bne zero,t4,80002e68 <fail>
+80002e64: 00301a63 bne zero,gp,80002e78 <pass>
+
+80002e68 <fail>:
+80002e68: 00119513 slli a0,gp,0x1
+80002e6c: 00050063 beqz a0,80002e6c <fail+0x4>
+80002e70: 00156513 ori a0,a0,1
+80002e74: 00000073 ecall
+
+80002e78 <pass>:
+80002e78: 00100513 li a0,1
+80002e7c: 00000073 ecall
+80002e80: c0001073 unimp
diff --git a/test/riscv-tests/rv32ui-v-addi.elf b/test/riscv-tests/rv32ui-v-addi.elf
new file mode 100644
index 0000000..0940931
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-addi.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-v-and.dump b/test/riscv-tests/rv32ui-v-and.dump
new file mode 100644
index 0000000..26b8f0b
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-and.dump
@@ -0,0 +1,1262 @@
+
+rv32ui-v-and: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00007117 auipc sp,0x7
+8000001c: 35010113 addi sp,sp,848 # 80007368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00002317 auipc t1,0x2
+80002370: c9430313 addi t1,t1,-876 # 80004000 <begin_signature>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00004797 auipc a5,0x4
+8000238c: 06c78793 addi a5,a5,108 # 800063f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00004717 auipc a4,0x4
+800023a0: 05470713 addi a4,a4,84 # 800063f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00004697 auipc a3,0x4
+800023ac: 04f6a623 sw a5,76(a3) # 800063f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00004717 auipc a4,0x4
+800023dc: e2070713 addi a4,a4,-480 # 800061f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf9c08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00004797 auipc a5,0x4
+800024bc: f207ac23 sw zero,-200(a5) # 800063f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00001597 auipc a1,0x1
+800024cc: bec58593 addi a1,a1,-1044 # 800030b4 <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00001597 auipc a1,0x1
+8000253c: c0858593 addi a1,a1,-1016 # 80003140 <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00001597 auipc a1,0x1
+800025a8: bb458593 addi a1,a1,-1100 # 80003158 <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00001597 auipc a1,0x1
+80002614: ae858593 addi a1,a1,-1304 # 800030f8 <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00001597 auipc a1,0x1
+8000274c: ad858593 addi a1,a1,-1320 # 80003220 <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00001597 auipc a1,0x1
+800027c0: a4058593 addi a1,a1,-1472 # 800031fc <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00004b17 auipc s6,0x4
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800061f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00001d17 auipc s10,0x1
+80002840: 7c4d0d13 addi s10,s10,1988 # 80004000 <begin_signature>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00004717 auipc a4,0x4
+8000285c: b8f72c23 sw a5,-1128(a4) # 800063f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00004717 auipc a4,0x4
+800028e8: b0c70713 addi a4,a4,-1268 # 800063f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00004717 auipc a4,0x4
+800028fc: aef72c23 sw a5,-1288(a4) # 800063f0 <freelist_tail>
+80002900: 00004717 auipc a4,0x4
+80002904: aef72a23 sw a5,-1292(a4) # 800063f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00001617 auipc a2,0x1
+80002914: 93c60613 addi a2,a2,-1732 # 8000324c <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00001617 auipc a2,0x1
+80002980: 84c60613 addi a2,a2,-1972 # 800031c8 <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 7cc60613 addi a2,a2,1996 # 80003194 <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00002797 auipc a5,0x2
+80002a4c: 5b878793 addi a5,a5,1464 # 80005000 <begin_signature+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00001697 auipc a3,0x1
+80002a60: 5af6a223 sw a5,1444(a3) # 80004000 <begin_signature>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00001717 auipc a4,0x1
+80002a6c: 59870713 addi a4,a4,1432 # 80004000 <begin_signature>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00002697 auipc a3,0x2
+80002a7c: 58f6a223 sw a5,1412(a3) # 80004ffc <begin_signature+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf9ccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc03797 auipc a5,0x7fc03
+80002aec: 51878793 addi a5,a5,1304 # ffc06000 <_end+0x7fbffc08>
+80002af0: 00004717 auipc a4,0x4
+80002af4: 90f72223 sw a5,-1788(a4) # 800063f4 <freelist_head>
+80002af8: 7fc03797 auipc a5,0x7fc03
+80002afc: 6f878793 addi a5,a5,1784 # ffc061f0 <_end+0x7fbffdf8>
+80002b00: 00004717 auipc a4,0x4
+80002b04: 8ef72823 sw a5,-1808(a4) # 800063f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00003717 auipc a4,0x3
+80002b10: 4f470713 addi a4,a4,1268 # 80006000 <freelist_nodes>
+80002b14: 00003317 auipc t1,0x3
+80002b18: 6e430313 addi t1,t1,1764 # 800061f8 <user_mapping>
+80002b1c: 00b00793 li a5,11
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00003797 auipc a5,0x3
+80002b6c: 6807a623 sw zero,1676(a5) # 800061f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 07c677b7 lui a5,0x7c67
+80002b9c: 00080637 lui a2,0x80
+80002ba0: 35c78793 addi a5,a5,860 # 7c6735c <_start-0x78398ca4>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: ff0100b7 lui ra,0xff010
+80002be4: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f009b08>
+80002be8: 0f0f1137 lui sp,0xf0f1
+80002bec: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80002bf0: 0020ff33 and t5,ra,sp
+80002bf4: 0f001eb7 lui t4,0xf001
+80002bf8: f00e8e93 addi t4,t4,-256 # f000f00 <_start-0x70fff100>
+80002bfc: 00200193 li gp,2
+80002c00: 49df1c63 bne t5,t4,80003098 <fail>
+
+80002c04 <test_3>:
+80002c04: 0ff010b7 lui ra,0xff01
+80002c08: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+80002c0c: f0f0f137 lui sp,0xf0f0f
+80002c10: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f08cf8>
+80002c14: 0020ff33 and t5,ra,sp
+80002c18: 00f00eb7 lui t4,0xf00
+80002c1c: 0f0e8e93 addi t4,t4,240 # f000f0 <_start-0x7f0fff10>
+80002c20: 00300193 li gp,3
+80002c24: 47df1a63 bne t5,t4,80003098 <fail>
+
+80002c28 <test_4>:
+80002c28: 00ff00b7 lui ra,0xff0
+80002c2c: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+80002c30: 0f0f1137 lui sp,0xf0f1
+80002c34: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80002c38: 0020ff33 and t5,ra,sp
+80002c3c: 000f0eb7 lui t4,0xf0
+80002c40: 00fe8e93 addi t4,t4,15 # f000f <_start-0x7ff0fff1>
+80002c44: 00400193 li gp,4
+80002c48: 45df1863 bne t5,t4,80003098 <fail>
+
+80002c4c <test_5>:
+80002c4c: f00ff0b7 lui ra,0xf00ff
+80002c50: 00f08093 addi ra,ra,15 # f00ff00f <_end+0x700f8c17>
+80002c54: f0f0f137 lui sp,0xf0f0f
+80002c58: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f08cf8>
+80002c5c: 0020ff33 and t5,ra,sp
+80002c60: f000feb7 lui t4,0xf000f
+80002c64: 00500193 li gp,5
+80002c68: 43df1863 bne t5,t4,80003098 <fail>
+
+80002c6c <test_6>:
+80002c6c: ff0100b7 lui ra,0xff010
+80002c70: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f009b08>
+80002c74: 0f0f1137 lui sp,0xf0f1
+80002c78: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80002c7c: 0020f0b3 and ra,ra,sp
+80002c80: 0f001eb7 lui t4,0xf001
+80002c84: f00e8e93 addi t4,t4,-256 # f000f00 <_start-0x70fff100>
+80002c88: 00600193 li gp,6
+80002c8c: 41d09663 bne ra,t4,80003098 <fail>
+
+80002c90 <test_7>:
+80002c90: 0ff010b7 lui ra,0xff01
+80002c94: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+80002c98: f0f0f137 lui sp,0xf0f0f
+80002c9c: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f08cf8>
+80002ca0: 0020f133 and sp,ra,sp
+80002ca4: 00f00eb7 lui t4,0xf00
+80002ca8: 0f0e8e93 addi t4,t4,240 # f000f0 <_start-0x7f0fff10>
+80002cac: 00700193 li gp,7
+80002cb0: 3fd11463 bne sp,t4,80003098 <fail>
+
+80002cb4 <test_8>:
+80002cb4: ff0100b7 lui ra,0xff010
+80002cb8: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f009b08>
+80002cbc: 0010f0b3 and ra,ra,ra
+80002cc0: ff010eb7 lui t4,0xff010
+80002cc4: f00e8e93 addi t4,t4,-256 # ff00ff00 <_end+0x7f009b08>
+80002cc8: 00800193 li gp,8
+80002ccc: 3dd09663 bne ra,t4,80003098 <fail>
+
+80002cd0 <test_9>:
+80002cd0: 00000213 li tp,0
+80002cd4: ff0100b7 lui ra,0xff010
+80002cd8: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f009b08>
+80002cdc: 0f0f1137 lui sp,0xf0f1
+80002ce0: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80002ce4: 0020ff33 and t5,ra,sp
+80002ce8: 000f0313 mv t1,t5
+80002cec: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002cf0: 00200293 li t0,2
+80002cf4: fe5210e3 bne tp,t0,80002cd4 <test_9+0x4>
+80002cf8: 0f001eb7 lui t4,0xf001
+80002cfc: f00e8e93 addi t4,t4,-256 # f000f00 <_start-0x70fff100>
+80002d00: 00900193 li gp,9
+80002d04: 39d31a63 bne t1,t4,80003098 <fail>
+
+80002d08 <test_10>:
+80002d08: 00000213 li tp,0
+80002d0c: 0ff010b7 lui ra,0xff01
+80002d10: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+80002d14: f0f0f137 lui sp,0xf0f0f
+80002d18: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f08cf8>
+80002d1c: 0020ff33 and t5,ra,sp
+80002d20: 00000013 nop
+80002d24: 000f0313 mv t1,t5
+80002d28: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d2c: 00200293 li t0,2
+80002d30: fc521ee3 bne tp,t0,80002d0c <test_10+0x4>
+80002d34: 00f00eb7 lui t4,0xf00
+80002d38: 0f0e8e93 addi t4,t4,240 # f000f0 <_start-0x7f0fff10>
+80002d3c: 00a00193 li gp,10
+80002d40: 35d31c63 bne t1,t4,80003098 <fail>
+
+80002d44 <test_11>:
+80002d44: 00000213 li tp,0
+80002d48: 00ff00b7 lui ra,0xff0
+80002d4c: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+80002d50: 0f0f1137 lui sp,0xf0f1
+80002d54: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80002d58: 0020ff33 and t5,ra,sp
+80002d5c: 00000013 nop
+80002d60: 00000013 nop
+80002d64: 000f0313 mv t1,t5
+80002d68: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d6c: 00200293 li t0,2
+80002d70: fc521ce3 bne tp,t0,80002d48 <test_11+0x4>
+80002d74: 000f0eb7 lui t4,0xf0
+80002d78: 00fe8e93 addi t4,t4,15 # f000f <_start-0x7ff0fff1>
+80002d7c: 00b00193 li gp,11
+80002d80: 31d31c63 bne t1,t4,80003098 <fail>
+
+80002d84 <test_12>:
+80002d84: 00000213 li tp,0
+80002d88: ff0100b7 lui ra,0xff010
+80002d8c: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f009b08>
+80002d90: 0f0f1137 lui sp,0xf0f1
+80002d94: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80002d98: 0020ff33 and t5,ra,sp
+80002d9c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002da0: 00200293 li t0,2
+80002da4: fe5212e3 bne tp,t0,80002d88 <test_12+0x4>
+80002da8: 0f001eb7 lui t4,0xf001
+80002dac: f00e8e93 addi t4,t4,-256 # f000f00 <_start-0x70fff100>
+80002db0: 00c00193 li gp,12
+80002db4: 2fdf1263 bne t5,t4,80003098 <fail>
+
+80002db8 <test_13>:
+80002db8: 00000213 li tp,0
+80002dbc: 0ff010b7 lui ra,0xff01
+80002dc0: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+80002dc4: f0f0f137 lui sp,0xf0f0f
+80002dc8: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f08cf8>
+80002dcc: 00000013 nop
+80002dd0: 0020ff33 and t5,ra,sp
+80002dd4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002dd8: 00200293 li t0,2
+80002ddc: fe5210e3 bne tp,t0,80002dbc <test_13+0x4>
+80002de0: 00f00eb7 lui t4,0xf00
+80002de4: 0f0e8e93 addi t4,t4,240 # f000f0 <_start-0x7f0fff10>
+80002de8: 00d00193 li gp,13
+80002dec: 2bdf1663 bne t5,t4,80003098 <fail>
+
+80002df0 <test_14>:
+80002df0: 00000213 li tp,0
+80002df4: 00ff00b7 lui ra,0xff0
+80002df8: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+80002dfc: 0f0f1137 lui sp,0xf0f1
+80002e00: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80002e04: 00000013 nop
+80002e08: 00000013 nop
+80002e0c: 0020ff33 and t5,ra,sp
+80002e10: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e14: 00200293 li t0,2
+80002e18: fc521ee3 bne tp,t0,80002df4 <test_14+0x4>
+80002e1c: 000f0eb7 lui t4,0xf0
+80002e20: 00fe8e93 addi t4,t4,15 # f000f <_start-0x7ff0fff1>
+80002e24: 00e00193 li gp,14
+80002e28: 27df1863 bne t5,t4,80003098 <fail>
+
+80002e2c <test_15>:
+80002e2c: 00000213 li tp,0
+80002e30: ff0100b7 lui ra,0xff010
+80002e34: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f009b08>
+80002e38: 00000013 nop
+80002e3c: 0f0f1137 lui sp,0xf0f1
+80002e40: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80002e44: 0020ff33 and t5,ra,sp
+80002e48: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e4c: 00200293 li t0,2
+80002e50: fe5210e3 bne tp,t0,80002e30 <test_15+0x4>
+80002e54: 0f001eb7 lui t4,0xf001
+80002e58: f00e8e93 addi t4,t4,-256 # f000f00 <_start-0x70fff100>
+80002e5c: 00f00193 li gp,15
+80002e60: 23df1c63 bne t5,t4,80003098 <fail>
+
+80002e64 <test_16>:
+80002e64: 00000213 li tp,0
+80002e68: 0ff010b7 lui ra,0xff01
+80002e6c: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+80002e70: 00000013 nop
+80002e74: f0f0f137 lui sp,0xf0f0f
+80002e78: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f08cf8>
+80002e7c: 00000013 nop
+80002e80: 0020ff33 and t5,ra,sp
+80002e84: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e88: 00200293 li t0,2
+80002e8c: fc521ee3 bne tp,t0,80002e68 <test_16+0x4>
+80002e90: 00f00eb7 lui t4,0xf00
+80002e94: 0f0e8e93 addi t4,t4,240 # f000f0 <_start-0x7f0fff10>
+80002e98: 01000193 li gp,16
+80002e9c: 1fdf1e63 bne t5,t4,80003098 <fail>
+
+80002ea0 <test_17>:
+80002ea0: 00000213 li tp,0
+80002ea4: 00ff00b7 lui ra,0xff0
+80002ea8: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+80002eac: 00000013 nop
+80002eb0: 00000013 nop
+80002eb4: 0f0f1137 lui sp,0xf0f1
+80002eb8: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80002ebc: 0020ff33 and t5,ra,sp
+80002ec0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002ec4: 00200293 li t0,2
+80002ec8: fc521ee3 bne tp,t0,80002ea4 <test_17+0x4>
+80002ecc: 000f0eb7 lui t4,0xf0
+80002ed0: 00fe8e93 addi t4,t4,15 # f000f <_start-0x7ff0fff1>
+80002ed4: 01100193 li gp,17
+80002ed8: 1ddf1063 bne t5,t4,80003098 <fail>
+
+80002edc <test_18>:
+80002edc: 00000213 li tp,0
+80002ee0: 0f0f1137 lui sp,0xf0f1
+80002ee4: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80002ee8: ff0100b7 lui ra,0xff010
+80002eec: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f009b08>
+80002ef0: 0020ff33 and t5,ra,sp
+80002ef4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002ef8: 00200293 li t0,2
+80002efc: fe5212e3 bne tp,t0,80002ee0 <test_18+0x4>
+80002f00: 0f001eb7 lui t4,0xf001
+80002f04: f00e8e93 addi t4,t4,-256 # f000f00 <_start-0x70fff100>
+80002f08: 01200193 li gp,18
+80002f0c: 19df1663 bne t5,t4,80003098 <fail>
+
+80002f10 <test_19>:
+80002f10: 00000213 li tp,0
+80002f14: f0f0f137 lui sp,0xf0f0f
+80002f18: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f08cf8>
+80002f1c: 0ff010b7 lui ra,0xff01
+80002f20: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+80002f24: 00000013 nop
+80002f28: 0020ff33 and t5,ra,sp
+80002f2c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002f30: 00200293 li t0,2
+80002f34: fe5210e3 bne tp,t0,80002f14 <test_19+0x4>
+80002f38: 00f00eb7 lui t4,0xf00
+80002f3c: 0f0e8e93 addi t4,t4,240 # f000f0 <_start-0x7f0fff10>
+80002f40: 01300193 li gp,19
+80002f44: 15df1a63 bne t5,t4,80003098 <fail>
+
+80002f48 <test_20>:
+80002f48: 00000213 li tp,0
+80002f4c: 0f0f1137 lui sp,0xf0f1
+80002f50: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80002f54: 00ff00b7 lui ra,0xff0
+80002f58: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+80002f5c: 00000013 nop
+80002f60: 00000013 nop
+80002f64: 0020ff33 and t5,ra,sp
+80002f68: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002f6c: 00200293 li t0,2
+80002f70: fc521ee3 bne tp,t0,80002f4c <test_20+0x4>
+80002f74: 000f0eb7 lui t4,0xf0
+80002f78: 00fe8e93 addi t4,t4,15 # f000f <_start-0x7ff0fff1>
+80002f7c: 01400193 li gp,20
+80002f80: 11df1c63 bne t5,t4,80003098 <fail>
+
+80002f84 <test_21>:
+80002f84: 00000213 li tp,0
+80002f88: 0f0f1137 lui sp,0xf0f1
+80002f8c: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80002f90: 00000013 nop
+80002f94: ff0100b7 lui ra,0xff010
+80002f98: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f009b08>
+80002f9c: 0020ff33 and t5,ra,sp
+80002fa0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002fa4: 00200293 li t0,2
+80002fa8: fe5210e3 bne tp,t0,80002f88 <test_21+0x4>
+80002fac: 0f001eb7 lui t4,0xf001
+80002fb0: f00e8e93 addi t4,t4,-256 # f000f00 <_start-0x70fff100>
+80002fb4: 01500193 li gp,21
+80002fb8: 0fdf1063 bne t5,t4,80003098 <fail>
+
+80002fbc <test_22>:
+80002fbc: 00000213 li tp,0
+80002fc0: f0f0f137 lui sp,0xf0f0f
+80002fc4: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f08cf8>
+80002fc8: 00000013 nop
+80002fcc: 0ff010b7 lui ra,0xff01
+80002fd0: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+80002fd4: 00000013 nop
+80002fd8: 0020ff33 and t5,ra,sp
+80002fdc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002fe0: 00200293 li t0,2
+80002fe4: fc521ee3 bne tp,t0,80002fc0 <test_22+0x4>
+80002fe8: 00f00eb7 lui t4,0xf00
+80002fec: 0f0e8e93 addi t4,t4,240 # f000f0 <_start-0x7f0fff10>
+80002ff0: 01600193 li gp,22
+80002ff4: 0bdf1263 bne t5,t4,80003098 <fail>
+
+80002ff8 <test_23>:
+80002ff8: 00000213 li tp,0
+80002ffc: 0f0f1137 lui sp,0xf0f1
+80003000: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80003004: 00000013 nop
+80003008: 00000013 nop
+8000300c: 00ff00b7 lui ra,0xff0
+80003010: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+80003014: 0020ff33 and t5,ra,sp
+80003018: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000301c: 00200293 li t0,2
+80003020: fc521ee3 bne tp,t0,80002ffc <test_23+0x4>
+80003024: 000f0eb7 lui t4,0xf0
+80003028: 00fe8e93 addi t4,t4,15 # f000f <_start-0x7ff0fff1>
+8000302c: 01700193 li gp,23
+80003030: 07df1463 bne t5,t4,80003098 <fail>
+
+80003034 <test_24>:
+80003034: ff0100b7 lui ra,0xff010
+80003038: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f009b08>
+8000303c: 00107133 and sp,zero,ra
+80003040: 00000e93 li t4,0
+80003044: 01800193 li gp,24
+80003048: 05d11863 bne sp,t4,80003098 <fail>
+
+8000304c <test_25>:
+8000304c: 00ff00b7 lui ra,0xff0
+80003050: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+80003054: 0000f133 and sp,ra,zero
+80003058: 00000e93 li t4,0
+8000305c: 01900193 li gp,25
+80003060: 03d11c63 bne sp,t4,80003098 <fail>
+
+80003064 <test_26>:
+80003064: 000070b3 and ra,zero,zero
+80003068: 00000e93 li t4,0
+8000306c: 01a00193 li gp,26
+80003070: 03d09463 bne ra,t4,80003098 <fail>
+
+80003074 <test_27>:
+80003074: 111110b7 lui ra,0x11111
+80003078: 11108093 addi ra,ra,273 # 11111111 <_start-0x6eeeeeef>
+8000307c: 22222137 lui sp,0x22222
+80003080: 22210113 addi sp,sp,546 # 22222222 <_start-0x5dddddde>
+80003084: 0020f033 and zero,ra,sp
+80003088: 00000e93 li t4,0
+8000308c: 01b00193 li gp,27
+80003090: 01d01463 bne zero,t4,80003098 <fail>
+80003094: 00301a63 bne zero,gp,800030a8 <pass>
+
+80003098 <fail>:
+80003098: 00119513 slli a0,gp,0x1
+8000309c: 00050063 beqz a0,8000309c <fail+0x4>
+800030a0: 00156513 ori a0,a0,1
+800030a4: 00000073 ecall
+
+800030a8 <pass>:
+800030a8: 00100513 li a0,1
+800030ac: 00000073 ecall
+800030b0: c0001073 unimp
diff --git a/test/riscv-tests/rv32ui-v-and.elf b/test/riscv-tests/rv32ui-v-and.elf
new file mode 100644
index 0000000..0167436
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-and.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-v-andi.dump b/test/riscv-tests/rv32ui-v-andi.dump
new file mode 100644
index 0000000..3700289
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-andi.dump
@@ -0,0 +1,1046 @@
+
+rv32ui-v-andi: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00006117 auipc sp,0x6
+8000001c: 35010113 addi sp,sp,848 # 80006368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00001317 auipc t1,0x1
+80002370: c9430313 addi t1,t1,-876 # 80003000 <begin_signature>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00003797 auipc a5,0x3
+8000238c: 06c78793 addi a5,a5,108 # 800053f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00003717 auipc a4,0x3
+800023a0: 05470713 addi a4,a4,84 # 800053f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00003697 auipc a3,0x3
+800023ac: 04f6a623 sw a5,76(a3) # 800053f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00003717 auipc a4,0x3
+800023dc: e2070713 addi a4,a4,-480 # 800051f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbfac08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00003797 auipc a5,0x3
+800024bc: f207ac23 sw zero,-200(a5) # 800053f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00001597 auipc a1,0x1
+800024cc: 8f458593 addi a1,a1,-1804 # 80002dbc <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00001597 auipc a1,0x1
+8000253c: 91058593 addi a1,a1,-1776 # 80002e48 <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00001597 auipc a1,0x1
+800025a8: 8bc58593 addi a1,a1,-1860 # 80002e60 <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00000597 auipc a1,0x0
+80002614: 7f058593 addi a1,a1,2032 # 80002e00 <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00000597 auipc a1,0x0
+8000274c: 7e058593 addi a1,a1,2016 # 80002f28 <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00000597 auipc a1,0x0
+800027c0: 74858593 addi a1,a1,1864 # 80002f04 <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00003b17 auipc s6,0x3
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800051f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00000d17 auipc s10,0x0
+80002840: 7c4d0d13 addi s10,s10,1988 # 80003000 <begin_signature>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00003717 auipc a4,0x3
+8000285c: b8f72c23 sw a5,-1128(a4) # 800053f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00003717 auipc a4,0x3
+800028e8: b0c70713 addi a4,a4,-1268 # 800053f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00003717 auipc a4,0x3
+800028fc: aef72c23 sw a5,-1288(a4) # 800053f0 <freelist_tail>
+80002900: 00003717 auipc a4,0x3
+80002904: aef72a23 sw a5,-1292(a4) # 800053f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00000617 auipc a2,0x0
+80002914: 64460613 addi a2,a2,1604 # 80002f54 <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00000617 auipc a2,0x0
+80002980: 55460613 addi a2,a2,1364 # 80002ed0 <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 4d460613 addi a2,a2,1236 # 80002e9c <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00001797 auipc a5,0x1
+80002a4c: 5b878793 addi a5,a5,1464 # 80004000 <begin_signature+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00000697 auipc a3,0x0
+80002a60: 5af6a223 sw a5,1444(a3) # 80003000 <begin_signature>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00000717 auipc a4,0x0
+80002a6c: 59870713 addi a4,a4,1432 # 80003000 <begin_signature>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00001697 auipc a3,0x1
+80002a7c: 58f6a223 sw a5,1412(a3) # 80003ffc <begin_signature+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbfaccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc02797 auipc a5,0x7fc02
+80002aec: 51878793 addi a5,a5,1304 # ffc05000 <_end+0x7fbffc08>
+80002af0: 00003717 auipc a4,0x3
+80002af4: 90f72223 sw a5,-1788(a4) # 800053f4 <freelist_head>
+80002af8: 7fc02797 auipc a5,0x7fc02
+80002afc: 6f878793 addi a5,a5,1784 # ffc051f0 <_end+0x7fbffdf8>
+80002b00: 00003717 auipc a4,0x3
+80002b04: 8ef72823 sw a5,-1808(a4) # 800053f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00002717 auipc a4,0x2
+80002b10: 4f470713 addi a4,a4,1268 # 80005000 <freelist_nodes>
+80002b14: 00002317 auipc t1,0x2
+80002b18: 6e430313 addi t1,t1,1764 # 800051f8 <user_mapping>
+80002b1c: 02d00793 li a5,45
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00002797 auipc a5,0x2
+80002b6c: 6807a623 sw zero,1676(a5) # 800051f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 06b087b7 lui a5,0x6b08
+80002b9c: 00080637 lui a2,0x80
+80002ba0: a8878793 addi a5,a5,-1400 # 6b07a88 <_start-0x794f8578>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: ff0100b7 lui ra,0xff010
+80002be4: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00ab08>
+80002be8: f0f0ff13 andi t5,ra,-241
+80002bec: ff010eb7 lui t4,0xff010
+80002bf0: f00e8e93 addi t4,t4,-256 # ff00ff00 <_end+0x7f00ab08>
+80002bf4: 00200193 li gp,2
+80002bf8: 1bdf1463 bne t5,t4,80002da0 <fail>
+
+80002bfc <test_3>:
+80002bfc: 0ff010b7 lui ra,0xff01
+80002c00: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+80002c04: 0f00ff13 andi t5,ra,240
+80002c08: 0f000e93 li t4,240
+80002c0c: 00300193 li gp,3
+80002c10: 19df1863 bne t5,t4,80002da0 <fail>
+
+80002c14 <test_4>:
+80002c14: 00ff00b7 lui ra,0xff0
+80002c18: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+80002c1c: 70f0ff13 andi t5,ra,1807
+80002c20: 00f00e93 li t4,15
+80002c24: 00400193 li gp,4
+80002c28: 17df1c63 bne t5,t4,80002da0 <fail>
+
+80002c2c <test_5>:
+80002c2c: f00ff0b7 lui ra,0xf00ff
+80002c30: 00f08093 addi ra,ra,15 # f00ff00f <_end+0x700f9c17>
+80002c34: 0f00ff13 andi t5,ra,240
+80002c38: 00000e93 li t4,0
+80002c3c: 00500193 li gp,5
+80002c40: 17df1063 bne t5,t4,80002da0 <fail>
+
+80002c44 <test_6>:
+80002c44: ff0100b7 lui ra,0xff010
+80002c48: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00ab08>
+80002c4c: 0f00f093 andi ra,ra,240
+80002c50: 00000e93 li t4,0
+80002c54: 00600193 li gp,6
+80002c58: 15d09463 bne ra,t4,80002da0 <fail>
+
+80002c5c <test_7>:
+80002c5c: 00000213 li tp,0
+80002c60: 0ff010b7 lui ra,0xff01
+80002c64: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+80002c68: 70f0ff13 andi t5,ra,1807
+80002c6c: 000f0313 mv t1,t5
+80002c70: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002c74: 00200293 li t0,2
+80002c78: fe5214e3 bne tp,t0,80002c60 <test_7+0x4>
+80002c7c: 70000e93 li t4,1792
+80002c80: 00700193 li gp,7
+80002c84: 11d31e63 bne t1,t4,80002da0 <fail>
+
+80002c88 <test_8>:
+80002c88: 00000213 li tp,0
+80002c8c: 00ff00b7 lui ra,0xff0
+80002c90: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+80002c94: 0f00ff13 andi t5,ra,240
+80002c98: 00000013 nop
+80002c9c: 000f0313 mv t1,t5
+80002ca0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002ca4: 00200293 li t0,2
+80002ca8: fe5212e3 bne tp,t0,80002c8c <test_8+0x4>
+80002cac: 0f000e93 li t4,240
+80002cb0: 00800193 li gp,8
+80002cb4: 0fd31663 bne t1,t4,80002da0 <fail>
+
+80002cb8 <test_9>:
+80002cb8: 00000213 li tp,0
+80002cbc: f00ff0b7 lui ra,0xf00ff
+80002cc0: 00f08093 addi ra,ra,15 # f00ff00f <_end+0x700f9c17>
+80002cc4: f0f0ff13 andi t5,ra,-241
+80002cc8: 00000013 nop
+80002ccc: 00000013 nop
+80002cd0: 000f0313 mv t1,t5
+80002cd4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002cd8: 00200293 li t0,2
+80002cdc: fe5210e3 bne tp,t0,80002cbc <test_9+0x4>
+80002ce0: f00ffeb7 lui t4,0xf00ff
+80002ce4: 00fe8e93 addi t4,t4,15 # f00ff00f <_end+0x700f9c17>
+80002ce8: 00900193 li gp,9
+80002cec: 0bd31a63 bne t1,t4,80002da0 <fail>
+
+80002cf0 <test_10>:
+80002cf0: 00000213 li tp,0
+80002cf4: 0ff010b7 lui ra,0xff01
+80002cf8: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+80002cfc: 70f0ff13 andi t5,ra,1807
+80002d00: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d04: 00200293 li t0,2
+80002d08: fe5216e3 bne tp,t0,80002cf4 <test_10+0x4>
+80002d0c: 70000e93 li t4,1792
+80002d10: 00a00193 li gp,10
+80002d14: 09df1663 bne t5,t4,80002da0 <fail>
+
+80002d18 <test_11>:
+80002d18: 00000213 li tp,0
+80002d1c: 00ff00b7 lui ra,0xff0
+80002d20: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+80002d24: 00000013 nop
+80002d28: 0f00ff13 andi t5,ra,240
+80002d2c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d30: 00200293 li t0,2
+80002d34: fe5214e3 bne tp,t0,80002d1c <test_11+0x4>
+80002d38: 0f000e93 li t4,240
+80002d3c: 00b00193 li gp,11
+80002d40: 07df1063 bne t5,t4,80002da0 <fail>
+
+80002d44 <test_12>:
+80002d44: 00000213 li tp,0
+80002d48: f00ff0b7 lui ra,0xf00ff
+80002d4c: 00f08093 addi ra,ra,15 # f00ff00f <_end+0x700f9c17>
+80002d50: 00000013 nop
+80002d54: 00000013 nop
+80002d58: 70f0ff13 andi t5,ra,1807
+80002d5c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d60: 00200293 li t0,2
+80002d64: fe5212e3 bne tp,t0,80002d48 <test_12+0x4>
+80002d68: 00f00e93 li t4,15
+80002d6c: 00c00193 li gp,12
+80002d70: 03df1863 bne t5,t4,80002da0 <fail>
+
+80002d74 <test_13>:
+80002d74: 0f007093 andi ra,zero,240
+80002d78: 00000e93 li t4,0
+80002d7c: 00d00193 li gp,13
+80002d80: 03d09063 bne ra,t4,80002da0 <fail>
+
+80002d84 <test_14>:
+80002d84: 00ff00b7 lui ra,0xff0
+80002d88: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+80002d8c: 70f0f013 andi zero,ra,1807
+80002d90: 00000e93 li t4,0
+80002d94: 00e00193 li gp,14
+80002d98: 01d01463 bne zero,t4,80002da0 <fail>
+80002d9c: 00301a63 bne zero,gp,80002db0 <pass>
+
+80002da0 <fail>:
+80002da0: 00119513 slli a0,gp,0x1
+80002da4: 00050063 beqz a0,80002da4 <fail+0x4>
+80002da8: 00156513 ori a0,a0,1
+80002dac: 00000073 ecall
+
+80002db0 <pass>:
+80002db0: 00100513 li a0,1
+80002db4: 00000073 ecall
+80002db8: c0001073 unimp
diff --git a/test/riscv-tests/rv32ui-v-andi.elf b/test/riscv-tests/rv32ui-v-andi.elf
new file mode 100644
index 0000000..b5ef22e
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-andi.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-v-auipc.dump b/test/riscv-tests/rv32ui-v-auipc.dump
new file mode 100644
index 0000000..f61180f
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-auipc.dump
@@ -0,0 +1,929 @@
+
+rv32ui-v-auipc: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00006117 auipc sp,0x6
+8000001c: 35010113 addi sp,sp,848 # 80006368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00001317 auipc t1,0x1
+80002370: c9430313 addi t1,t1,-876 # 80003000 <begin_signature>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00003797 auipc a5,0x3
+8000238c: 06c78793 addi a5,a5,108 # 800053f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00003717 auipc a4,0x3
+800023a0: 05470713 addi a4,a4,84 # 800053f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00003697 auipc a3,0x3
+800023ac: 04f6a623 sw a5,76(a3) # 800053f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00003717 auipc a4,0x3
+800023dc: e2070713 addi a4,a4,-480 # 800051f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbfac08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00003797 auipc a5,0x3
+800024bc: f207ac23 sw zero,-200(a5) # 800053f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00000597 auipc a1,0x0
+800024cc: 77858593 addi a1,a1,1912 # 80002c40 <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00000597 auipc a1,0x0
+8000253c: 79458593 addi a1,a1,1940 # 80002ccc <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00000597 auipc a1,0x0
+800025a8: 74058593 addi a1,a1,1856 # 80002ce4 <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00000597 auipc a1,0x0
+80002614: 67458593 addi a1,a1,1652 # 80002c84 <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00000597 auipc a1,0x0
+8000274c: 66458593 addi a1,a1,1636 # 80002dac <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00000597 auipc a1,0x0
+800027c0: 5cc58593 addi a1,a1,1484 # 80002d88 <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00003b17 auipc s6,0x3
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800051f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00000d17 auipc s10,0x0
+80002840: 7c4d0d13 addi s10,s10,1988 # 80003000 <begin_signature>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00003717 auipc a4,0x3
+8000285c: b8f72c23 sw a5,-1128(a4) # 800053f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00003717 auipc a4,0x3
+800028e8: b0c70713 addi a4,a4,-1268 # 800053f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00003717 auipc a4,0x3
+800028fc: aef72c23 sw a5,-1288(a4) # 800053f0 <freelist_tail>
+80002900: 00003717 auipc a4,0x3
+80002904: aef72a23 sw a5,-1292(a4) # 800053f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00000617 auipc a2,0x0
+80002914: 4c860613 addi a2,a2,1224 # 80002dd8 <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00000617 auipc a2,0x0
+80002980: 3d860613 addi a2,a2,984 # 80002d54 <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 35860613 addi a2,a2,856 # 80002d20 <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00001797 auipc a5,0x1
+80002a4c: 5b878793 addi a5,a5,1464 # 80004000 <begin_signature+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00000697 auipc a3,0x0
+80002a60: 5af6a223 sw a5,1444(a3) # 80003000 <begin_signature>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00000717 auipc a4,0x0
+80002a6c: 59870713 addi a4,a4,1432 # 80003000 <begin_signature>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00001697 auipc a3,0x1
+80002a7c: 58f6a223 sw a5,1412(a3) # 80003ffc <begin_signature+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbfaccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc02797 auipc a5,0x7fc02
+80002aec: 51878793 addi a5,a5,1304 # ffc05000 <_end+0x7fbffc08>
+80002af0: 00003717 auipc a4,0x3
+80002af4: 90f72223 sw a5,-1788(a4) # 800053f4 <freelist_head>
+80002af8: 7fc02797 auipc a5,0x7fc02
+80002afc: 6f878793 addi a5,a5,1784 # ffc051f0 <_end+0x7fbffdf8>
+80002b00: 00003717 auipc a4,0x3
+80002b04: 8ef72823 sw a5,-1808(a4) # 800053f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00002717 auipc a4,0x2
+80002b10: 4f470713 addi a4,a4,1268 # 80005000 <freelist_nodes>
+80002b14: 00002317 auipc t1,0x2
+80002b18: 6e430313 addi t1,t1,1764 # 800051f8 <user_mapping>
+80002b1c: 02d00793 li a5,45
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00002797 auipc a5,0x2
+80002b6c: 6807a623 sw zero,1676(a5) # 800051f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 0e9a97b7 lui a5,0xe9a9
+80002b9c: 00080637 lui a2,0x80
+80002ba0: 47c78793 addi a5,a5,1148 # e9a947c <_start-0x71656b84>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: 00002517 auipc a0,0x2
+80002be4: 71c50513 addi a0,a0,1820 # 800052fc <user_mapping+0x104>
+80002be8: 004005ef jal a1,80002bec <userstart+0xc>
+80002bec: 40b50533 sub a0,a0,a1
+80002bf0: 00002eb7 lui t4,0x2
+80002bf4: 710e8e93 addi t4,t4,1808 # 2710 <_start-0x7fffd8f0>
+80002bf8: 00200193 li gp,2
+80002bfc: 03d51463 bne a0,t4,80002c24 <fail>
+
+80002c00 <test_3>:
+80002c00: ffffe517 auipc a0,0xffffe
+80002c04: 8fc50513 addi a0,a0,-1796 # 800004fc <trap_entry+0x438>
+80002c08: 004005ef jal a1,80002c0c <test_3+0xc>
+80002c0c: 40b50533 sub a0,a0,a1
+80002c10: ffffeeb7 lui t4,0xffffe
+80002c14: 8f0e8e93 addi t4,t4,-1808 # ffffd8f0 <_end+0x7fff84f8>
+80002c18: 00300193 li gp,3
+80002c1c: 01d51463 bne a0,t4,80002c24 <fail>
+80002c20: 00301a63 bne zero,gp,80002c34 <pass>
+
+80002c24 <fail>:
+80002c24: 00119513 slli a0,gp,0x1
+80002c28: 00050063 beqz a0,80002c28 <fail+0x4>
+80002c2c: 00156513 ori a0,a0,1
+80002c30: 00000073 ecall
+
+80002c34 <pass>:
+80002c34: 00100513 li a0,1
+80002c38: 00000073 ecall
+80002c3c: c0001073 unimp
diff --git a/test/riscv-tests/rv32ui-v-auipc.elf b/test/riscv-tests/rv32ui-v-auipc.elf
new file mode 100644
index 0000000..8ac894f
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-auipc.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-v-beq.dump b/test/riscv-tests/rv32ui-v-beq.dump
new file mode 100644
index 0000000..e49c63a
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-beq.dump
@@ -0,0 +1,1124 @@
+
+rv32ui-v-beq: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00007117 auipc sp,0x7
+8000001c: 35010113 addi sp,sp,848 # 80007368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00002317 auipc t1,0x2
+80002370: c9430313 addi t1,t1,-876 # 80004000 <begin_signature>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00004797 auipc a5,0x4
+8000238c: 06c78793 addi a5,a5,108 # 800063f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00004717 auipc a4,0x4
+800023a0: 05470713 addi a4,a4,84 # 800063f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00004697 auipc a3,0x4
+800023ac: 04f6a623 sw a5,76(a3) # 800063f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00004717 auipc a4,0x4
+800023dc: e2070713 addi a4,a4,-480 # 800061f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf9c08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00004797 auipc a5,0x4
+800024bc: f207ac23 sw zero,-200(a5) # 800063f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00001597 auipc a1,0x1
+800024cc: 9f458593 addi a1,a1,-1548 # 80002ebc <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00001597 auipc a1,0x1
+8000253c: a1058593 addi a1,a1,-1520 # 80002f48 <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00001597 auipc a1,0x1
+800025a8: 9bc58593 addi a1,a1,-1604 # 80002f60 <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00001597 auipc a1,0x1
+80002614: 8f058593 addi a1,a1,-1808 # 80002f00 <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00001597 auipc a1,0x1
+8000274c: 8e058593 addi a1,a1,-1824 # 80003028 <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00001597 auipc a1,0x1
+800027c0: 84858593 addi a1,a1,-1976 # 80003004 <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00004b17 auipc s6,0x4
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800061f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00001d17 auipc s10,0x1
+80002840: 7c4d0d13 addi s10,s10,1988 # 80004000 <begin_signature>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00004717 auipc a4,0x4
+8000285c: b8f72c23 sw a5,-1128(a4) # 800063f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00004717 auipc a4,0x4
+800028e8: b0c70713 addi a4,a4,-1268 # 800063f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00004717 auipc a4,0x4
+800028fc: aef72c23 sw a5,-1288(a4) # 800063f0 <freelist_tail>
+80002900: 00004717 auipc a4,0x4
+80002904: aef72a23 sw a5,-1292(a4) # 800063f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00000617 auipc a2,0x0
+80002914: 74460613 addi a2,a2,1860 # 80003054 <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00000617 auipc a2,0x0
+80002980: 65460613 addi a2,a2,1620 # 80002fd0 <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 5d460613 addi a2,a2,1492 # 80002f9c <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00002797 auipc a5,0x2
+80002a4c: 5b878793 addi a5,a5,1464 # 80005000 <begin_signature+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00001697 auipc a3,0x1
+80002a60: 5af6a223 sw a5,1444(a3) # 80004000 <begin_signature>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00001717 auipc a4,0x1
+80002a6c: 59870713 addi a4,a4,1432 # 80004000 <begin_signature>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00002697 auipc a3,0x2
+80002a7c: 58f6a223 sw a5,1412(a3) # 80004ffc <begin_signature+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf9ccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc03797 auipc a5,0x7fc03
+80002aec: 51878793 addi a5,a5,1304 # ffc06000 <_end+0x7fbffc08>
+80002af0: 00004717 auipc a4,0x4
+80002af4: 90f72223 sw a5,-1788(a4) # 800063f4 <freelist_head>
+80002af8: 7fc03797 auipc a5,0x7fc03
+80002afc: 6f878793 addi a5,a5,1784 # ffc061f0 <_end+0x7fbffdf8>
+80002b00: 00004717 auipc a4,0x4
+80002b04: 8ef72823 sw a5,-1808(a4) # 800063f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00003717 auipc a4,0x3
+80002b10: 4f470713 addi a4,a4,1268 # 80006000 <freelist_nodes>
+80002b14: 00003317 auipc t1,0x3
+80002b18: 6e430313 addi t1,t1,1764 # 800061f8 <user_mapping>
+80002b1c: 00100793 li a5,1
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00003797 auipc a5,0x3
+80002b6c: 6807a623 sw zero,1676(a5) # 800061f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 04e8f7b7 lui a5,0x4e8f
+80002b9c: 00080637 lui a2,0x80
+80002ba0: 26878793 addi a5,a5,616 # 4e8f268 <_start-0x7b170d98>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: 00200193 li gp,2
+80002be4: 00000093 li ra,0
+80002be8: 00000113 li sp,0
+80002bec: 00208663 beq ra,sp,80002bf8 <userstart+0x18>
+80002bf0: 2a301863 bne zero,gp,80002ea0 <fail>
+80002bf4: 00301663 bne zero,gp,80002c00 <test_3>
+80002bf8: fe208ee3 beq ra,sp,80002bf4 <userstart+0x14>
+80002bfc: 2a301263 bne zero,gp,80002ea0 <fail>
+
+80002c00 <test_3>:
+80002c00: 00300193 li gp,3
+80002c04: 00100093 li ra,1
+80002c08: 00100113 li sp,1
+80002c0c: 00208663 beq ra,sp,80002c18 <test_3+0x18>
+80002c10: 28301863 bne zero,gp,80002ea0 <fail>
+80002c14: 00301663 bne zero,gp,80002c20 <test_4>
+80002c18: fe208ee3 beq ra,sp,80002c14 <test_3+0x14>
+80002c1c: 28301263 bne zero,gp,80002ea0 <fail>
+
+80002c20 <test_4>:
+80002c20: 00400193 li gp,4
+80002c24: fff00093 li ra,-1
+80002c28: fff00113 li sp,-1
+80002c2c: 00208663 beq ra,sp,80002c38 <test_4+0x18>
+80002c30: 26301863 bne zero,gp,80002ea0 <fail>
+80002c34: 00301663 bne zero,gp,80002c40 <test_5>
+80002c38: fe208ee3 beq ra,sp,80002c34 <test_4+0x14>
+80002c3c: 26301263 bne zero,gp,80002ea0 <fail>
+
+80002c40 <test_5>:
+80002c40: 00500193 li gp,5
+80002c44: 00000093 li ra,0
+80002c48: 00100113 li sp,1
+80002c4c: 00208463 beq ra,sp,80002c54 <test_5+0x14>
+80002c50: 00301463 bne zero,gp,80002c58 <test_5+0x18>
+80002c54: 24301663 bne zero,gp,80002ea0 <fail>
+80002c58: fe208ee3 beq ra,sp,80002c54 <test_5+0x14>
+
+80002c5c <test_6>:
+80002c5c: 00600193 li gp,6
+80002c60: 00100093 li ra,1
+80002c64: 00000113 li sp,0
+80002c68: 00208463 beq ra,sp,80002c70 <test_6+0x14>
+80002c6c: 00301463 bne zero,gp,80002c74 <test_6+0x18>
+80002c70: 22301863 bne zero,gp,80002ea0 <fail>
+80002c74: fe208ee3 beq ra,sp,80002c70 <test_6+0x14>
+
+80002c78 <test_7>:
+80002c78: 00700193 li gp,7
+80002c7c: fff00093 li ra,-1
+80002c80: 00100113 li sp,1
+80002c84: 00208463 beq ra,sp,80002c8c <test_7+0x14>
+80002c88: 00301463 bne zero,gp,80002c90 <test_7+0x18>
+80002c8c: 20301a63 bne zero,gp,80002ea0 <fail>
+80002c90: fe208ee3 beq ra,sp,80002c8c <test_7+0x14>
+
+80002c94 <test_8>:
+80002c94: 00800193 li gp,8
+80002c98: 00100093 li ra,1
+80002c9c: fff00113 li sp,-1
+80002ca0: 00208463 beq ra,sp,80002ca8 <test_8+0x14>
+80002ca4: 00301463 bne zero,gp,80002cac <test_8+0x18>
+80002ca8: 1e301c63 bne zero,gp,80002ea0 <fail>
+80002cac: fe208ee3 beq ra,sp,80002ca8 <test_8+0x14>
+
+80002cb0 <test_9>:
+80002cb0: 00900193 li gp,9
+80002cb4: 00000213 li tp,0
+80002cb8: 00000093 li ra,0
+80002cbc: fff00113 li sp,-1
+80002cc0: 1e208063 beq ra,sp,80002ea0 <fail>
+80002cc4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002cc8: 00200293 li t0,2
+80002ccc: fe5216e3 bne tp,t0,80002cb8 <test_9+0x8>
+
+80002cd0 <test_10>:
+80002cd0: 00a00193 li gp,10
+80002cd4: 00000213 li tp,0
+80002cd8: 00000093 li ra,0
+80002cdc: fff00113 li sp,-1
+80002ce0: 00000013 nop
+80002ce4: 1a208e63 beq ra,sp,80002ea0 <fail>
+80002ce8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002cec: 00200293 li t0,2
+80002cf0: fe5214e3 bne tp,t0,80002cd8 <test_10+0x8>
+
+80002cf4 <test_11>:
+80002cf4: 00b00193 li gp,11
+80002cf8: 00000213 li tp,0
+80002cfc: 00000093 li ra,0
+80002d00: fff00113 li sp,-1
+80002d04: 00000013 nop
+80002d08: 00000013 nop
+80002d0c: 18208a63 beq ra,sp,80002ea0 <fail>
+80002d10: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d14: 00200293 li t0,2
+80002d18: fe5212e3 bne tp,t0,80002cfc <test_11+0x8>
+
+80002d1c <test_12>:
+80002d1c: 00c00193 li gp,12
+80002d20: 00000213 li tp,0
+80002d24: 00000093 li ra,0
+80002d28: 00000013 nop
+80002d2c: fff00113 li sp,-1
+80002d30: 16208863 beq ra,sp,80002ea0 <fail>
+80002d34: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d38: 00200293 li t0,2
+80002d3c: fe5214e3 bne tp,t0,80002d24 <test_12+0x8>
+
+80002d40 <test_13>:
+80002d40: 00d00193 li gp,13
+80002d44: 00000213 li tp,0
+80002d48: 00000093 li ra,0
+80002d4c: 00000013 nop
+80002d50: fff00113 li sp,-1
+80002d54: 00000013 nop
+80002d58: 14208463 beq ra,sp,80002ea0 <fail>
+80002d5c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d60: 00200293 li t0,2
+80002d64: fe5212e3 bne tp,t0,80002d48 <test_13+0x8>
+
+80002d68 <test_14>:
+80002d68: 00e00193 li gp,14
+80002d6c: 00000213 li tp,0
+80002d70: 00000093 li ra,0
+80002d74: 00000013 nop
+80002d78: 00000013 nop
+80002d7c: fff00113 li sp,-1
+80002d80: 12208063 beq ra,sp,80002ea0 <fail>
+80002d84: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d88: 00200293 li t0,2
+80002d8c: fe5212e3 bne tp,t0,80002d70 <test_14+0x8>
+
+80002d90 <test_15>:
+80002d90: 00f00193 li gp,15
+80002d94: 00000213 li tp,0
+80002d98: 00000093 li ra,0
+80002d9c: fff00113 li sp,-1
+80002da0: 10208063 beq ra,sp,80002ea0 <fail>
+80002da4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002da8: 00200293 li t0,2
+80002dac: fe5216e3 bne tp,t0,80002d98 <test_15+0x8>
+
+80002db0 <test_16>:
+80002db0: 01000193 li gp,16
+80002db4: 00000213 li tp,0
+80002db8: 00000093 li ra,0
+80002dbc: fff00113 li sp,-1
+80002dc0: 00000013 nop
+80002dc4: 0c208e63 beq ra,sp,80002ea0 <fail>
+80002dc8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002dcc: 00200293 li t0,2
+80002dd0: fe5214e3 bne tp,t0,80002db8 <test_16+0x8>
+
+80002dd4 <test_17>:
+80002dd4: 01100193 li gp,17
+80002dd8: 00000213 li tp,0
+80002ddc: 00000093 li ra,0
+80002de0: fff00113 li sp,-1
+80002de4: 00000013 nop
+80002de8: 00000013 nop
+80002dec: 0a208a63 beq ra,sp,80002ea0 <fail>
+80002df0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002df4: 00200293 li t0,2
+80002df8: fe5212e3 bne tp,t0,80002ddc <test_17+0x8>
+
+80002dfc <test_18>:
+80002dfc: 01200193 li gp,18
+80002e00: 00000213 li tp,0
+80002e04: 00000093 li ra,0
+80002e08: 00000013 nop
+80002e0c: fff00113 li sp,-1
+80002e10: 08208863 beq ra,sp,80002ea0 <fail>
+80002e14: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e18: 00200293 li t0,2
+80002e1c: fe5214e3 bne tp,t0,80002e04 <test_18+0x8>
+
+80002e20 <test_19>:
+80002e20: 01300193 li gp,19
+80002e24: 00000213 li tp,0
+80002e28: 00000093 li ra,0
+80002e2c: 00000013 nop
+80002e30: fff00113 li sp,-1
+80002e34: 00000013 nop
+80002e38: 06208463 beq ra,sp,80002ea0 <fail>
+80002e3c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e40: 00200293 li t0,2
+80002e44: fe5212e3 bne tp,t0,80002e28 <test_19+0x8>
+
+80002e48 <test_20>:
+80002e48: 01400193 li gp,20
+80002e4c: 00000213 li tp,0
+80002e50: 00000093 li ra,0
+80002e54: 00000013 nop
+80002e58: 00000013 nop
+80002e5c: fff00113 li sp,-1
+80002e60: 04208063 beq ra,sp,80002ea0 <fail>
+80002e64: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e68: 00200293 li t0,2
+80002e6c: fe5212e3 bne tp,t0,80002e50 <test_20+0x8>
+
+80002e70 <test_21>:
+80002e70: 00100093 li ra,1
+80002e74: 00000a63 beqz zero,80002e88 <test_21+0x18>
+80002e78: 00108093 addi ra,ra,1
+80002e7c: 00108093 addi ra,ra,1
+80002e80: 00108093 addi ra,ra,1
+80002e84: 00108093 addi ra,ra,1
+80002e88: 00108093 addi ra,ra,1
+80002e8c: 00108093 addi ra,ra,1
+80002e90: 00300e93 li t4,3
+80002e94: 01500193 li gp,21
+80002e98: 01d09463 bne ra,t4,80002ea0 <fail>
+80002e9c: 00301a63 bne zero,gp,80002eb0 <pass>
+
+80002ea0 <fail>:
+80002ea0: 00119513 slli a0,gp,0x1
+80002ea4: 00050063 beqz a0,80002ea4 <fail+0x4>
+80002ea8: 00156513 ori a0,a0,1
+80002eac: 00000073 ecall
+
+80002eb0 <pass>:
+80002eb0: 00100513 li a0,1
+80002eb4: 00000073 ecall
+80002eb8: c0001073 unimp
diff --git a/test/riscv-tests/rv32ui-v-beq.elf b/test/riscv-tests/rv32ui-v-beq.elf
new file mode 100644
index 0000000..7509ca9
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-beq.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-v-bge.dump b/test/riscv-tests/rv32ui-v-bge.dump
new file mode 100644
index 0000000..2b459c8
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-bge.dump
@@ -0,0 +1,1154 @@
+
+rv32ui-v-bge: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00007117 auipc sp,0x7
+8000001c: 35010113 addi sp,sp,848 # 80007368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00002317 auipc t1,0x2
+80002370: c9430313 addi t1,t1,-876 # 80004000 <begin_signature>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00004797 auipc a5,0x4
+8000238c: 06c78793 addi a5,a5,108 # 800063f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00004717 auipc a4,0x4
+800023a0: 05470713 addi a4,a4,84 # 800063f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00004697 auipc a3,0x4
+800023ac: 04f6a623 sw a5,76(a3) # 800063f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00004717 auipc a4,0x4
+800023dc: e2070713 addi a4,a4,-480 # 800061f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf9c08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00004797 auipc a5,0x4
+800024bc: f207ac23 sw zero,-200(a5) # 800063f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00001597 auipc a1,0x1
+800024cc: a5458593 addi a1,a1,-1452 # 80002f1c <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00001597 auipc a1,0x1
+8000253c: a7058593 addi a1,a1,-1424 # 80002fa8 <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00001597 auipc a1,0x1
+800025a8: a1c58593 addi a1,a1,-1508 # 80002fc0 <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00001597 auipc a1,0x1
+80002614: 95058593 addi a1,a1,-1712 # 80002f60 <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00001597 auipc a1,0x1
+8000274c: 94058593 addi a1,a1,-1728 # 80003088 <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00001597 auipc a1,0x1
+800027c0: 8a858593 addi a1,a1,-1880 # 80003064 <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00004b17 auipc s6,0x4
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800061f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00001d17 auipc s10,0x1
+80002840: 7c4d0d13 addi s10,s10,1988 # 80004000 <begin_signature>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00004717 auipc a4,0x4
+8000285c: b8f72c23 sw a5,-1128(a4) # 800063f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00004717 auipc a4,0x4
+800028e8: b0c70713 addi a4,a4,-1268 # 800063f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00004717 auipc a4,0x4
+800028fc: aef72c23 sw a5,-1288(a4) # 800063f0 <freelist_tail>
+80002900: 00004717 auipc a4,0x4
+80002904: aef72a23 sw a5,-1292(a4) # 800063f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00000617 auipc a2,0x0
+80002914: 7a460613 addi a2,a2,1956 # 800030b4 <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00000617 auipc a2,0x0
+80002980: 6b460613 addi a2,a2,1716 # 80003030 <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 63460613 addi a2,a2,1588 # 80002ffc <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00002797 auipc a5,0x2
+80002a4c: 5b878793 addi a5,a5,1464 # 80005000 <begin_signature+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00001697 auipc a3,0x1
+80002a60: 5af6a223 sw a5,1444(a3) # 80004000 <begin_signature>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00001717 auipc a4,0x1
+80002a6c: 59870713 addi a4,a4,1432 # 80004000 <begin_signature>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00002697 auipc a3,0x2
+80002a7c: 58f6a223 sw a5,1412(a3) # 80004ffc <begin_signature+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf9ccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc03797 auipc a5,0x7fc03
+80002aec: 51878793 addi a5,a5,1304 # ffc06000 <_end+0x7fbffc08>
+80002af0: 00004717 auipc a4,0x4
+80002af4: 90f72223 sw a5,-1788(a4) # 800063f4 <freelist_head>
+80002af8: 7fc03797 auipc a5,0x7fc03
+80002afc: 6f878793 addi a5,a5,1784 # ffc061f0 <_end+0x7fbffdf8>
+80002b00: 00004717 auipc a4,0x4
+80002b04: 8ef72823 sw a5,-1808(a4) # 800063f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00003717 auipc a4,0x3
+80002b10: 4f470713 addi a4,a4,1268 # 80006000 <freelist_nodes>
+80002b14: 00003317 auipc t1,0x3
+80002b18: 6e430313 addi t1,t1,1764 # 800061f8 <user_mapping>
+80002b1c: 02a00793 li a5,42
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00003797 auipc a5,0x3
+80002b6c: 6807a623 sw zero,1676(a5) # 800061f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 0635e7b7 lui a5,0x635e
+80002b9c: 00080637 lui a2,0x80
+80002ba0: 3e878793 addi a5,a5,1000 # 635e3e8 <_start-0x79ca1c18>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: 00200193 li gp,2
+80002be4: 00000093 li ra,0
+80002be8: 00000113 li sp,0
+80002bec: 0020d663 ble sp,ra,80002bf8 <userstart+0x18>
+80002bf0: 30301863 bne zero,gp,80002f00 <fail>
+80002bf4: 00301663 bne zero,gp,80002c00 <test_3>
+80002bf8: fe20dee3 ble sp,ra,80002bf4 <userstart+0x14>
+80002bfc: 30301263 bne zero,gp,80002f00 <fail>
+
+80002c00 <test_3>:
+80002c00: 00300193 li gp,3
+80002c04: 00100093 li ra,1
+80002c08: 00100113 li sp,1
+80002c0c: 0020d663 ble sp,ra,80002c18 <test_3+0x18>
+80002c10: 2e301863 bne zero,gp,80002f00 <fail>
+80002c14: 00301663 bne zero,gp,80002c20 <test_4>
+80002c18: fe20dee3 ble sp,ra,80002c14 <test_3+0x14>
+80002c1c: 2e301263 bne zero,gp,80002f00 <fail>
+
+80002c20 <test_4>:
+80002c20: 00400193 li gp,4
+80002c24: fff00093 li ra,-1
+80002c28: fff00113 li sp,-1
+80002c2c: 0020d663 ble sp,ra,80002c38 <test_4+0x18>
+80002c30: 2c301863 bne zero,gp,80002f00 <fail>
+80002c34: 00301663 bne zero,gp,80002c40 <test_5>
+80002c38: fe20dee3 ble sp,ra,80002c34 <test_4+0x14>
+80002c3c: 2c301263 bne zero,gp,80002f00 <fail>
+
+80002c40 <test_5>:
+80002c40: 00500193 li gp,5
+80002c44: 00100093 li ra,1
+80002c48: 00000113 li sp,0
+80002c4c: 0020d663 ble sp,ra,80002c58 <test_5+0x18>
+80002c50: 2a301863 bne zero,gp,80002f00 <fail>
+80002c54: 00301663 bne zero,gp,80002c60 <test_6>
+80002c58: fe20dee3 ble sp,ra,80002c54 <test_5+0x14>
+80002c5c: 2a301263 bne zero,gp,80002f00 <fail>
+
+80002c60 <test_6>:
+80002c60: 00600193 li gp,6
+80002c64: 00100093 li ra,1
+80002c68: fff00113 li sp,-1
+80002c6c: 0020d663 ble sp,ra,80002c78 <test_6+0x18>
+80002c70: 28301863 bne zero,gp,80002f00 <fail>
+80002c74: 00301663 bne zero,gp,80002c80 <test_7>
+80002c78: fe20dee3 ble sp,ra,80002c74 <test_6+0x14>
+80002c7c: 28301263 bne zero,gp,80002f00 <fail>
+
+80002c80 <test_7>:
+80002c80: 00700193 li gp,7
+80002c84: fff00093 li ra,-1
+80002c88: ffe00113 li sp,-2
+80002c8c: 0020d663 ble sp,ra,80002c98 <test_7+0x18>
+80002c90: 26301863 bne zero,gp,80002f00 <fail>
+80002c94: 00301663 bne zero,gp,80002ca0 <test_8>
+80002c98: fe20dee3 ble sp,ra,80002c94 <test_7+0x14>
+80002c9c: 26301263 bne zero,gp,80002f00 <fail>
+
+80002ca0 <test_8>:
+80002ca0: 00800193 li gp,8
+80002ca4: 00000093 li ra,0
+80002ca8: 00100113 li sp,1
+80002cac: 0020d463 ble sp,ra,80002cb4 <test_8+0x14>
+80002cb0: 00301463 bne zero,gp,80002cb8 <test_8+0x18>
+80002cb4: 24301663 bne zero,gp,80002f00 <fail>
+80002cb8: fe20dee3 ble sp,ra,80002cb4 <test_8+0x14>
+
+80002cbc <test_9>:
+80002cbc: 00900193 li gp,9
+80002cc0: fff00093 li ra,-1
+80002cc4: 00100113 li sp,1
+80002cc8: 0020d463 ble sp,ra,80002cd0 <test_9+0x14>
+80002ccc: 00301463 bne zero,gp,80002cd4 <test_9+0x18>
+80002cd0: 22301863 bne zero,gp,80002f00 <fail>
+80002cd4: fe20dee3 ble sp,ra,80002cd0 <test_9+0x14>
+
+80002cd8 <test_10>:
+80002cd8: 00a00193 li gp,10
+80002cdc: ffe00093 li ra,-2
+80002ce0: fff00113 li sp,-1
+80002ce4: 0020d463 ble sp,ra,80002cec <test_10+0x14>
+80002ce8: 00301463 bne zero,gp,80002cf0 <test_10+0x18>
+80002cec: 20301a63 bne zero,gp,80002f00 <fail>
+80002cf0: fe20dee3 ble sp,ra,80002cec <test_10+0x14>
+
+80002cf4 <test_11>:
+80002cf4: 00b00193 li gp,11
+80002cf8: ffe00093 li ra,-2
+80002cfc: 00100113 li sp,1
+80002d00: 0020d463 ble sp,ra,80002d08 <test_11+0x14>
+80002d04: 00301463 bne zero,gp,80002d0c <test_11+0x18>
+80002d08: 1e301c63 bne zero,gp,80002f00 <fail>
+80002d0c: fe20dee3 ble sp,ra,80002d08 <test_11+0x14>
+
+80002d10 <test_12>:
+80002d10: 00c00193 li gp,12
+80002d14: 00000213 li tp,0
+80002d18: fff00093 li ra,-1
+80002d1c: 00000113 li sp,0
+80002d20: 1e20d063 ble sp,ra,80002f00 <fail>
+80002d24: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d28: 00200293 li t0,2
+80002d2c: fe5216e3 bne tp,t0,80002d18 <test_12+0x8>
+
+80002d30 <test_13>:
+80002d30: 00d00193 li gp,13
+80002d34: 00000213 li tp,0
+80002d38: fff00093 li ra,-1
+80002d3c: 00000113 li sp,0
+80002d40: 00000013 nop
+80002d44: 1a20de63 ble sp,ra,80002f00 <fail>
+80002d48: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d4c: 00200293 li t0,2
+80002d50: fe5214e3 bne tp,t0,80002d38 <test_13+0x8>
+
+80002d54 <test_14>:
+80002d54: 00e00193 li gp,14
+80002d58: 00000213 li tp,0
+80002d5c: fff00093 li ra,-1
+80002d60: 00000113 li sp,0
+80002d64: 00000013 nop
+80002d68: 00000013 nop
+80002d6c: 1820da63 ble sp,ra,80002f00 <fail>
+80002d70: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d74: 00200293 li t0,2
+80002d78: fe5212e3 bne tp,t0,80002d5c <test_14+0x8>
+
+80002d7c <test_15>:
+80002d7c: 00f00193 li gp,15
+80002d80: 00000213 li tp,0
+80002d84: fff00093 li ra,-1
+80002d88: 00000013 nop
+80002d8c: 00000113 li sp,0
+80002d90: 1620d863 ble sp,ra,80002f00 <fail>
+80002d94: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d98: 00200293 li t0,2
+80002d9c: fe5214e3 bne tp,t0,80002d84 <test_15+0x8>
+
+80002da0 <test_16>:
+80002da0: 01000193 li gp,16
+80002da4: 00000213 li tp,0
+80002da8: fff00093 li ra,-1
+80002dac: 00000013 nop
+80002db0: 00000113 li sp,0
+80002db4: 00000013 nop
+80002db8: 1420d463 ble sp,ra,80002f00 <fail>
+80002dbc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002dc0: 00200293 li t0,2
+80002dc4: fe5212e3 bne tp,t0,80002da8 <test_16+0x8>
+
+80002dc8 <test_17>:
+80002dc8: 01100193 li gp,17
+80002dcc: 00000213 li tp,0
+80002dd0: fff00093 li ra,-1
+80002dd4: 00000013 nop
+80002dd8: 00000013 nop
+80002ddc: 00000113 li sp,0
+80002de0: 1220d063 ble sp,ra,80002f00 <fail>
+80002de4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002de8: 00200293 li t0,2
+80002dec: fe5212e3 bne tp,t0,80002dd0 <test_17+0x8>
+
+80002df0 <test_18>:
+80002df0: 01200193 li gp,18
+80002df4: 00000213 li tp,0
+80002df8: fff00093 li ra,-1
+80002dfc: 00000113 li sp,0
+80002e00: 1020d063 ble sp,ra,80002f00 <fail>
+80002e04: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e08: 00200293 li t0,2
+80002e0c: fe5216e3 bne tp,t0,80002df8 <test_18+0x8>
+
+80002e10 <test_19>:
+80002e10: 01300193 li gp,19
+80002e14: 00000213 li tp,0
+80002e18: fff00093 li ra,-1
+80002e1c: 00000113 li sp,0
+80002e20: 00000013 nop
+80002e24: 0c20de63 ble sp,ra,80002f00 <fail>
+80002e28: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e2c: 00200293 li t0,2
+80002e30: fe5214e3 bne tp,t0,80002e18 <test_19+0x8>
+
+80002e34 <test_20>:
+80002e34: 01400193 li gp,20
+80002e38: 00000213 li tp,0
+80002e3c: fff00093 li ra,-1
+80002e40: 00000113 li sp,0
+80002e44: 00000013 nop
+80002e48: 00000013 nop
+80002e4c: 0a20da63 ble sp,ra,80002f00 <fail>
+80002e50: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e54: 00200293 li t0,2
+80002e58: fe5212e3 bne tp,t0,80002e3c <test_20+0x8>
+
+80002e5c <test_21>:
+80002e5c: 01500193 li gp,21
+80002e60: 00000213 li tp,0
+80002e64: fff00093 li ra,-1
+80002e68: 00000013 nop
+80002e6c: 00000113 li sp,0
+80002e70: 0820d863 ble sp,ra,80002f00 <fail>
+80002e74: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e78: 00200293 li t0,2
+80002e7c: fe5214e3 bne tp,t0,80002e64 <test_21+0x8>
+
+80002e80 <test_22>:
+80002e80: 01600193 li gp,22
+80002e84: 00000213 li tp,0
+80002e88: fff00093 li ra,-1
+80002e8c: 00000013 nop
+80002e90: 00000113 li sp,0
+80002e94: 00000013 nop
+80002e98: 0620d463 ble sp,ra,80002f00 <fail>
+80002e9c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002ea0: 00200293 li t0,2
+80002ea4: fe5212e3 bne tp,t0,80002e88 <test_22+0x8>
+
+80002ea8 <test_23>:
+80002ea8: 01700193 li gp,23
+80002eac: 00000213 li tp,0
+80002eb0: fff00093 li ra,-1
+80002eb4: 00000013 nop
+80002eb8: 00000013 nop
+80002ebc: 00000113 li sp,0
+80002ec0: 0420d063 ble sp,ra,80002f00 <fail>
+80002ec4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002ec8: 00200293 li t0,2
+80002ecc: fe5212e3 bne tp,t0,80002eb0 <test_23+0x8>
+
+80002ed0 <test_24>:
+80002ed0: 00100093 li ra,1
+80002ed4: 0000da63 bgez ra,80002ee8 <test_24+0x18>
+80002ed8: 00108093 addi ra,ra,1
+80002edc: 00108093 addi ra,ra,1
+80002ee0: 00108093 addi ra,ra,1
+80002ee4: 00108093 addi ra,ra,1
+80002ee8: 00108093 addi ra,ra,1
+80002eec: 00108093 addi ra,ra,1
+80002ef0: 00300e93 li t4,3
+80002ef4: 01800193 li gp,24
+80002ef8: 01d09463 bne ra,t4,80002f00 <fail>
+80002efc: 00301a63 bne zero,gp,80002f10 <pass>
+
+80002f00 <fail>:
+80002f00: 00119513 slli a0,gp,0x1
+80002f04: 00050063 beqz a0,80002f04 <fail+0x4>
+80002f08: 00156513 ori a0,a0,1
+80002f0c: 00000073 ecall
+
+80002f10 <pass>:
+80002f10: 00100513 li a0,1
+80002f14: 00000073 ecall
+80002f18: c0001073 unimp
diff --git a/test/riscv-tests/rv32ui-v-bge.elf b/test/riscv-tests/rv32ui-v-bge.elf
new file mode 100644
index 0000000..b3b3aee
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-bge.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-v-bgeu.dump b/test/riscv-tests/rv32ui-v-bgeu.dump
new file mode 100644
index 0000000..ac6bfe1
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-bgeu.dump
@@ -0,0 +1,1167 @@
+
+rv32ui-v-bgeu: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00007117 auipc sp,0x7
+8000001c: 35010113 addi sp,sp,848 # 80007368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00002317 auipc t1,0x2
+80002370: c9430313 addi t1,t1,-876 # 80004000 <begin_signature>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00004797 auipc a5,0x4
+8000238c: 06c78793 addi a5,a5,108 # 800063f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00004717 auipc a4,0x4
+800023a0: 05470713 addi a4,a4,84 # 800063f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00004697 auipc a3,0x4
+800023ac: 04f6a623 sw a5,76(a3) # 800063f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00004717 auipc a4,0x4
+800023dc: e2070713 addi a4,a4,-480 # 800061f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf9c08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00004797 auipc a5,0x4
+800024bc: f207ac23 sw zero,-200(a5) # 800063f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00001597 auipc a1,0x1
+800024cc: a8858593 addi a1,a1,-1400 # 80002f50 <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00001597 auipc a1,0x1
+8000253c: aa458593 addi a1,a1,-1372 # 80002fdc <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00001597 auipc a1,0x1
+800025a8: a5058593 addi a1,a1,-1456 # 80002ff4 <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00001597 auipc a1,0x1
+80002614: 98458593 addi a1,a1,-1660 # 80002f94 <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00001597 auipc a1,0x1
+8000274c: 97458593 addi a1,a1,-1676 # 800030bc <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00001597 auipc a1,0x1
+800027c0: 8dc58593 addi a1,a1,-1828 # 80003098 <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00004b17 auipc s6,0x4
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800061f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00001d17 auipc s10,0x1
+80002840: 7c4d0d13 addi s10,s10,1988 # 80004000 <begin_signature>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00004717 auipc a4,0x4
+8000285c: b8f72c23 sw a5,-1128(a4) # 800063f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00004717 auipc a4,0x4
+800028e8: b0c70713 addi a4,a4,-1268 # 800063f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00004717 auipc a4,0x4
+800028fc: aef72c23 sw a5,-1288(a4) # 800063f0 <freelist_tail>
+80002900: 00004717 auipc a4,0x4
+80002904: aef72a23 sw a5,-1292(a4) # 800063f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00000617 auipc a2,0x0
+80002914: 7d860613 addi a2,a2,2008 # 800030e8 <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00000617 auipc a2,0x0
+80002980: 6e860613 addi a2,a2,1768 # 80003064 <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 66860613 addi a2,a2,1640 # 80003030 <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00002797 auipc a5,0x2
+80002a4c: 5b878793 addi a5,a5,1464 # 80005000 <begin_signature+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00001697 auipc a3,0x1
+80002a60: 5af6a223 sw a5,1444(a3) # 80004000 <begin_signature>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00001717 auipc a4,0x1
+80002a6c: 59870713 addi a4,a4,1432 # 80004000 <begin_signature>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00002697 auipc a3,0x2
+80002a7c: 58f6a223 sw a5,1412(a3) # 80004ffc <begin_signature+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf9ccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc03797 auipc a5,0x7fc03
+80002aec: 51878793 addi a5,a5,1304 # ffc06000 <_end+0x7fbffc08>
+80002af0: 00004717 auipc a4,0x4
+80002af4: 90f72223 sw a5,-1788(a4) # 800063f4 <freelist_head>
+80002af8: 7fc03797 auipc a5,0x7fc03
+80002afc: 6f878793 addi a5,a5,1784 # ffc061f0 <_end+0x7fbffdf8>
+80002b00: 00004717 auipc a4,0x4
+80002b04: 8ef72823 sw a5,-1808(a4) # 800063f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00003717 auipc a4,0x3
+80002b10: 4f470713 addi a4,a4,1268 # 80006000 <freelist_nodes>
+80002b14: 00003317 auipc t1,0x3
+80002b18: 6e430313 addi t1,t1,1764 # 800061f8 <user_mapping>
+80002b1c: 01a00793 li a5,26
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00003797 auipc a5,0x3
+80002b6c: 6807a623 sw zero,1676(a5) # 800061f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 0e56a7b7 lui a5,0xe56a
+80002b9c: 00080637 lui a2,0x80
+80002ba0: d9578793 addi a5,a5,-619 # e569d95 <_start-0x71a9626b>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: 00200193 li gp,2
+80002be4: 00000093 li ra,0
+80002be8: 00000113 li sp,0
+80002bec: 0020f663 bleu sp,ra,80002bf8 <userstart+0x18>
+80002bf0: 34301263 bne zero,gp,80002f34 <fail>
+80002bf4: 00301663 bne zero,gp,80002c00 <test_3>
+80002bf8: fe20fee3 bleu sp,ra,80002bf4 <userstart+0x14>
+80002bfc: 32301c63 bne zero,gp,80002f34 <fail>
+
+80002c00 <test_3>:
+80002c00: 00300193 li gp,3
+80002c04: 00100093 li ra,1
+80002c08: 00100113 li sp,1
+80002c0c: 0020f663 bleu sp,ra,80002c18 <test_3+0x18>
+80002c10: 32301263 bne zero,gp,80002f34 <fail>
+80002c14: 00301663 bne zero,gp,80002c20 <test_4>
+80002c18: fe20fee3 bleu sp,ra,80002c14 <test_3+0x14>
+80002c1c: 30301c63 bne zero,gp,80002f34 <fail>
+
+80002c20 <test_4>:
+80002c20: 00400193 li gp,4
+80002c24: fff00093 li ra,-1
+80002c28: fff00113 li sp,-1
+80002c2c: 0020f663 bleu sp,ra,80002c38 <test_4+0x18>
+80002c30: 30301263 bne zero,gp,80002f34 <fail>
+80002c34: 00301663 bne zero,gp,80002c40 <test_5>
+80002c38: fe20fee3 bleu sp,ra,80002c34 <test_4+0x14>
+80002c3c: 2e301c63 bne zero,gp,80002f34 <fail>
+
+80002c40 <test_5>:
+80002c40: 00500193 li gp,5
+80002c44: 00100093 li ra,1
+80002c48: 00000113 li sp,0
+80002c4c: 0020f663 bleu sp,ra,80002c58 <test_5+0x18>
+80002c50: 2e301263 bne zero,gp,80002f34 <fail>
+80002c54: 00301663 bne zero,gp,80002c60 <test_6>
+80002c58: fe20fee3 bleu sp,ra,80002c54 <test_5+0x14>
+80002c5c: 2c301c63 bne zero,gp,80002f34 <fail>
+
+80002c60 <test_6>:
+80002c60: 00600193 li gp,6
+80002c64: fff00093 li ra,-1
+80002c68: ffe00113 li sp,-2
+80002c6c: 0020f663 bleu sp,ra,80002c78 <test_6+0x18>
+80002c70: 2c301263 bne zero,gp,80002f34 <fail>
+80002c74: 00301663 bne zero,gp,80002c80 <test_7>
+80002c78: fe20fee3 bleu sp,ra,80002c74 <test_6+0x14>
+80002c7c: 2a301c63 bne zero,gp,80002f34 <fail>
+
+80002c80 <test_7>:
+80002c80: 00700193 li gp,7
+80002c84: fff00093 li ra,-1
+80002c88: 00000113 li sp,0
+80002c8c: 0020f663 bleu sp,ra,80002c98 <test_7+0x18>
+80002c90: 2a301263 bne zero,gp,80002f34 <fail>
+80002c94: 00301663 bne zero,gp,80002ca0 <test_8>
+80002c98: fe20fee3 bleu sp,ra,80002c94 <test_7+0x14>
+80002c9c: 28301c63 bne zero,gp,80002f34 <fail>
+
+80002ca0 <test_8>:
+80002ca0: 00800193 li gp,8
+80002ca4: 00000093 li ra,0
+80002ca8: 00100113 li sp,1
+80002cac: 0020f463 bleu sp,ra,80002cb4 <test_8+0x14>
+80002cb0: 00301463 bne zero,gp,80002cb8 <test_8+0x18>
+80002cb4: 28301063 bne zero,gp,80002f34 <fail>
+80002cb8: fe20fee3 bleu sp,ra,80002cb4 <test_8+0x14>
+
+80002cbc <test_9>:
+80002cbc: 00900193 li gp,9
+80002cc0: ffe00093 li ra,-2
+80002cc4: fff00113 li sp,-1
+80002cc8: 0020f463 bleu sp,ra,80002cd0 <test_9+0x14>
+80002ccc: 00301463 bne zero,gp,80002cd4 <test_9+0x18>
+80002cd0: 26301263 bne zero,gp,80002f34 <fail>
+80002cd4: fe20fee3 bleu sp,ra,80002cd0 <test_9+0x14>
+
+80002cd8 <test_10>:
+80002cd8: 00a00193 li gp,10
+80002cdc: 00000093 li ra,0
+80002ce0: fff00113 li sp,-1
+80002ce4: 0020f463 bleu sp,ra,80002cec <test_10+0x14>
+80002ce8: 00301463 bne zero,gp,80002cf0 <test_10+0x18>
+80002cec: 24301463 bne zero,gp,80002f34 <fail>
+80002cf0: fe20fee3 bleu sp,ra,80002cec <test_10+0x14>
+
+80002cf4 <test_11>:
+80002cf4: 00b00193 li gp,11
+80002cf8: 800000b7 lui ra,0x80000
+80002cfc: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffff9c07>
+80002d00: 80000137 lui sp,0x80000
+80002d04: 0020f463 bleu sp,ra,80002d0c <test_11+0x18>
+80002d08: 00301463 bne zero,gp,80002d10 <test_11+0x1c>
+80002d0c: 22301463 bne zero,gp,80002f34 <fail>
+80002d10: fe20fee3 bleu sp,ra,80002d0c <test_11+0x18>
+
+80002d14 <test_12>:
+80002d14: 00c00193 li gp,12
+80002d18: 00000213 li tp,0
+80002d1c: f00000b7 lui ra,0xf0000
+80002d20: fff08093 addi ra,ra,-1 # efffffff <_end+0x6fff9c07>
+80002d24: f0000137 lui sp,0xf0000
+80002d28: 2020f663 bleu sp,ra,80002f34 <fail>
+80002d2c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d30: 00200293 li t0,2
+80002d34: fe5214e3 bne tp,t0,80002d1c <test_12+0x8>
+
+80002d38 <test_13>:
+80002d38: 00d00193 li gp,13
+80002d3c: 00000213 li tp,0
+80002d40: f00000b7 lui ra,0xf0000
+80002d44: fff08093 addi ra,ra,-1 # efffffff <_end+0x6fff9c07>
+80002d48: f0000137 lui sp,0xf0000
+80002d4c: 00000013 nop
+80002d50: 1e20f263 bleu sp,ra,80002f34 <fail>
+80002d54: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d58: 00200293 li t0,2
+80002d5c: fe5212e3 bne tp,t0,80002d40 <test_13+0x8>
+
+80002d60 <test_14>:
+80002d60: 00e00193 li gp,14
+80002d64: 00000213 li tp,0
+80002d68: f00000b7 lui ra,0xf0000
+80002d6c: fff08093 addi ra,ra,-1 # efffffff <_end+0x6fff9c07>
+80002d70: f0000137 lui sp,0xf0000
+80002d74: 00000013 nop
+80002d78: 00000013 nop
+80002d7c: 1a20fc63 bleu sp,ra,80002f34 <fail>
+80002d80: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d84: 00200293 li t0,2
+80002d88: fe5210e3 bne tp,t0,80002d68 <test_14+0x8>
+
+80002d8c <test_15>:
+80002d8c: 00f00193 li gp,15
+80002d90: 00000213 li tp,0
+80002d94: f00000b7 lui ra,0xf0000
+80002d98: fff08093 addi ra,ra,-1 # efffffff <_end+0x6fff9c07>
+80002d9c: 00000013 nop
+80002da0: f0000137 lui sp,0xf0000
+80002da4: 1820f863 bleu sp,ra,80002f34 <fail>
+80002da8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002dac: 00200293 li t0,2
+80002db0: fe5212e3 bne tp,t0,80002d94 <test_15+0x8>
+
+80002db4 <test_16>:
+80002db4: 01000193 li gp,16
+80002db8: 00000213 li tp,0
+80002dbc: f00000b7 lui ra,0xf0000
+80002dc0: fff08093 addi ra,ra,-1 # efffffff <_end+0x6fff9c07>
+80002dc4: 00000013 nop
+80002dc8: f0000137 lui sp,0xf0000
+80002dcc: 00000013 nop
+80002dd0: 1620f263 bleu sp,ra,80002f34 <fail>
+80002dd4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002dd8: 00200293 li t0,2
+80002ddc: fe5210e3 bne tp,t0,80002dbc <test_16+0x8>
+
+80002de0 <test_17>:
+80002de0: 01100193 li gp,17
+80002de4: 00000213 li tp,0
+80002de8: f00000b7 lui ra,0xf0000
+80002dec: fff08093 addi ra,ra,-1 # efffffff <_end+0x6fff9c07>
+80002df0: 00000013 nop
+80002df4: 00000013 nop
+80002df8: f0000137 lui sp,0xf0000
+80002dfc: 1220fc63 bleu sp,ra,80002f34 <fail>
+80002e00: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e04: 00200293 li t0,2
+80002e08: fe5210e3 bne tp,t0,80002de8 <test_17+0x8>
+
+80002e0c <test_18>:
+80002e0c: 01200193 li gp,18
+80002e10: 00000213 li tp,0
+80002e14: f00000b7 lui ra,0xf0000
+80002e18: fff08093 addi ra,ra,-1 # efffffff <_end+0x6fff9c07>
+80002e1c: f0000137 lui sp,0xf0000
+80002e20: 1020fa63 bleu sp,ra,80002f34 <fail>
+80002e24: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e28: 00200293 li t0,2
+80002e2c: fe5214e3 bne tp,t0,80002e14 <test_18+0x8>
+
+80002e30 <test_19>:
+80002e30: 01300193 li gp,19
+80002e34: 00000213 li tp,0
+80002e38: f00000b7 lui ra,0xf0000
+80002e3c: fff08093 addi ra,ra,-1 # efffffff <_end+0x6fff9c07>
+80002e40: f0000137 lui sp,0xf0000
+80002e44: 00000013 nop
+80002e48: 0e20f663 bleu sp,ra,80002f34 <fail>
+80002e4c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e50: 00200293 li t0,2
+80002e54: fe5212e3 bne tp,t0,80002e38 <test_19+0x8>
+
+80002e58 <test_20>:
+80002e58: 01400193 li gp,20
+80002e5c: 00000213 li tp,0
+80002e60: f00000b7 lui ra,0xf0000
+80002e64: fff08093 addi ra,ra,-1 # efffffff <_end+0x6fff9c07>
+80002e68: f0000137 lui sp,0xf0000
+80002e6c: 00000013 nop
+80002e70: 00000013 nop
+80002e74: 0c20f063 bleu sp,ra,80002f34 <fail>
+80002e78: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e7c: 00200293 li t0,2
+80002e80: fe5210e3 bne tp,t0,80002e60 <test_20+0x8>
+
+80002e84 <test_21>:
+80002e84: 01500193 li gp,21
+80002e88: 00000213 li tp,0
+80002e8c: f00000b7 lui ra,0xf0000
+80002e90: fff08093 addi ra,ra,-1 # efffffff <_end+0x6fff9c07>
+80002e94: 00000013 nop
+80002e98: f0000137 lui sp,0xf0000
+80002e9c: 0820fc63 bleu sp,ra,80002f34 <fail>
+80002ea0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002ea4: 00200293 li t0,2
+80002ea8: fe5212e3 bne tp,t0,80002e8c <test_21+0x8>
+
+80002eac <test_22>:
+80002eac: 01600193 li gp,22
+80002eb0: 00000213 li tp,0
+80002eb4: f00000b7 lui ra,0xf0000
+80002eb8: fff08093 addi ra,ra,-1 # efffffff <_end+0x6fff9c07>
+80002ebc: 00000013 nop
+80002ec0: f0000137 lui sp,0xf0000
+80002ec4: 00000013 nop
+80002ec8: 0620f663 bleu sp,ra,80002f34 <fail>
+80002ecc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002ed0: 00200293 li t0,2
+80002ed4: fe5210e3 bne tp,t0,80002eb4 <test_22+0x8>
+
+80002ed8 <test_23>:
+80002ed8: 01700193 li gp,23
+80002edc: 00000213 li tp,0
+80002ee0: f00000b7 lui ra,0xf0000
+80002ee4: fff08093 addi ra,ra,-1 # efffffff <_end+0x6fff9c07>
+80002ee8: 00000013 nop
+80002eec: 00000013 nop
+80002ef0: f0000137 lui sp,0xf0000
+80002ef4: 0420f063 bleu sp,ra,80002f34 <fail>
+80002ef8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002efc: 00200293 li t0,2
+80002f00: fe5210e3 bne tp,t0,80002ee0 <test_23+0x8>
+
+80002f04 <test_24>:
+80002f04: 00100093 li ra,1
+80002f08: 0000fa63 bleu zero,ra,80002f1c <test_24+0x18>
+80002f0c: 00108093 addi ra,ra,1
+80002f10: 00108093 addi ra,ra,1
+80002f14: 00108093 addi ra,ra,1
+80002f18: 00108093 addi ra,ra,1
+80002f1c: 00108093 addi ra,ra,1
+80002f20: 00108093 addi ra,ra,1
+80002f24: 00300e93 li t4,3
+80002f28: 01800193 li gp,24
+80002f2c: 01d09463 bne ra,t4,80002f34 <fail>
+80002f30: 00301a63 bne zero,gp,80002f44 <pass>
+
+80002f34 <fail>:
+80002f34: 00119513 slli a0,gp,0x1
+80002f38: 00050063 beqz a0,80002f38 <fail+0x4>
+80002f3c: 00156513 ori a0,a0,1
+80002f40: 00000073 ecall
+
+80002f44 <pass>:
+80002f44: 00100513 li a0,1
+80002f48: 00000073 ecall
+80002f4c: c0001073 unimp
diff --git a/test/riscv-tests/rv32ui-v-bgeu.elf b/test/riscv-tests/rv32ui-v-bgeu.elf
new file mode 100644
index 0000000..2f4d882
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-bgeu.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-v-blt.dump b/test/riscv-tests/rv32ui-v-blt.dump
new file mode 100644
index 0000000..24b1d64
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-blt.dump
@@ -0,0 +1,1124 @@
+
+rv32ui-v-blt: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00007117 auipc sp,0x7
+8000001c: 35010113 addi sp,sp,848 # 80007368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00002317 auipc t1,0x2
+80002370: c9430313 addi t1,t1,-876 # 80004000 <begin_signature>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00004797 auipc a5,0x4
+8000238c: 06c78793 addi a5,a5,108 # 800063f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00004717 auipc a4,0x4
+800023a0: 05470713 addi a4,a4,84 # 800063f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00004697 auipc a3,0x4
+800023ac: 04f6a623 sw a5,76(a3) # 800063f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00004717 auipc a4,0x4
+800023dc: e2070713 addi a4,a4,-480 # 800061f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf9c08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00004797 auipc a5,0x4
+800024bc: f207ac23 sw zero,-200(a5) # 800063f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00001597 auipc a1,0x1
+800024cc: 9f458593 addi a1,a1,-1548 # 80002ebc <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00001597 auipc a1,0x1
+8000253c: a1058593 addi a1,a1,-1520 # 80002f48 <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00001597 auipc a1,0x1
+800025a8: 9bc58593 addi a1,a1,-1604 # 80002f60 <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00001597 auipc a1,0x1
+80002614: 8f058593 addi a1,a1,-1808 # 80002f00 <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00001597 auipc a1,0x1
+8000274c: 8e058593 addi a1,a1,-1824 # 80003028 <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00001597 auipc a1,0x1
+800027c0: 84858593 addi a1,a1,-1976 # 80003004 <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00004b17 auipc s6,0x4
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800061f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00001d17 auipc s10,0x1
+80002840: 7c4d0d13 addi s10,s10,1988 # 80004000 <begin_signature>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00004717 auipc a4,0x4
+8000285c: b8f72c23 sw a5,-1128(a4) # 800063f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00004717 auipc a4,0x4
+800028e8: b0c70713 addi a4,a4,-1268 # 800063f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00004717 auipc a4,0x4
+800028fc: aef72c23 sw a5,-1288(a4) # 800063f0 <freelist_tail>
+80002900: 00004717 auipc a4,0x4
+80002904: aef72a23 sw a5,-1292(a4) # 800063f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00000617 auipc a2,0x0
+80002914: 74460613 addi a2,a2,1860 # 80003054 <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00000617 auipc a2,0x0
+80002980: 65460613 addi a2,a2,1620 # 80002fd0 <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 5d460613 addi a2,a2,1492 # 80002f9c <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00002797 auipc a5,0x2
+80002a4c: 5b878793 addi a5,a5,1464 # 80005000 <begin_signature+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00001697 auipc a3,0x1
+80002a60: 5af6a223 sw a5,1444(a3) # 80004000 <begin_signature>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00001717 auipc a4,0x1
+80002a6c: 59870713 addi a4,a4,1432 # 80004000 <begin_signature>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00002697 auipc a3,0x2
+80002a7c: 58f6a223 sw a5,1412(a3) # 80004ffc <begin_signature+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf9ccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc03797 auipc a5,0x7fc03
+80002aec: 51878793 addi a5,a5,1304 # ffc06000 <_end+0x7fbffc08>
+80002af0: 00004717 auipc a4,0x4
+80002af4: 90f72223 sw a5,-1788(a4) # 800063f4 <freelist_head>
+80002af8: 7fc03797 auipc a5,0x7fc03
+80002afc: 6f878793 addi a5,a5,1784 # ffc061f0 <_end+0x7fbffdf8>
+80002b00: 00004717 auipc a4,0x4
+80002b04: 8ef72823 sw a5,-1808(a4) # 800063f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00003717 auipc a4,0x3
+80002b10: 4f470713 addi a4,a4,1268 # 80006000 <freelist_nodes>
+80002b14: 00003317 auipc t1,0x3
+80002b18: 6e430313 addi t1,t1,1764 # 800061f8 <user_mapping>
+80002b1c: 01200793 li a5,18
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00003797 auipc a5,0x3
+80002b6c: 6807a623 sw zero,1676(a5) # 800061f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 021ab7b7 lui a5,0x21ab
+80002b9c: 00080637 lui a2,0x80
+80002ba0: d6878793 addi a5,a5,-664 # 21aad68 <_start-0x7de55298>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: 00200193 li gp,2
+80002be4: 00000093 li ra,0
+80002be8: 00100113 li sp,1
+80002bec: 0020c663 blt ra,sp,80002bf8 <userstart+0x18>
+80002bf0: 2a301863 bne zero,gp,80002ea0 <fail>
+80002bf4: 00301663 bne zero,gp,80002c00 <test_3>
+80002bf8: fe20cee3 blt ra,sp,80002bf4 <userstart+0x14>
+80002bfc: 2a301263 bne zero,gp,80002ea0 <fail>
+
+80002c00 <test_3>:
+80002c00: 00300193 li gp,3
+80002c04: fff00093 li ra,-1
+80002c08: 00100113 li sp,1
+80002c0c: 0020c663 blt ra,sp,80002c18 <test_3+0x18>
+80002c10: 28301863 bne zero,gp,80002ea0 <fail>
+80002c14: 00301663 bne zero,gp,80002c20 <test_4>
+80002c18: fe20cee3 blt ra,sp,80002c14 <test_3+0x14>
+80002c1c: 28301263 bne zero,gp,80002ea0 <fail>
+
+80002c20 <test_4>:
+80002c20: 00400193 li gp,4
+80002c24: ffe00093 li ra,-2
+80002c28: fff00113 li sp,-1
+80002c2c: 0020c663 blt ra,sp,80002c38 <test_4+0x18>
+80002c30: 26301863 bne zero,gp,80002ea0 <fail>
+80002c34: 00301663 bne zero,gp,80002c40 <test_5>
+80002c38: fe20cee3 blt ra,sp,80002c34 <test_4+0x14>
+80002c3c: 26301263 bne zero,gp,80002ea0 <fail>
+
+80002c40 <test_5>:
+80002c40: 00500193 li gp,5
+80002c44: 00100093 li ra,1
+80002c48: 00000113 li sp,0
+80002c4c: 0020c463 blt ra,sp,80002c54 <test_5+0x14>
+80002c50: 00301463 bne zero,gp,80002c58 <test_5+0x18>
+80002c54: 24301663 bne zero,gp,80002ea0 <fail>
+80002c58: fe20cee3 blt ra,sp,80002c54 <test_5+0x14>
+
+80002c5c <test_6>:
+80002c5c: 00600193 li gp,6
+80002c60: 00100093 li ra,1
+80002c64: fff00113 li sp,-1
+80002c68: 0020c463 blt ra,sp,80002c70 <test_6+0x14>
+80002c6c: 00301463 bne zero,gp,80002c74 <test_6+0x18>
+80002c70: 22301863 bne zero,gp,80002ea0 <fail>
+80002c74: fe20cee3 blt ra,sp,80002c70 <test_6+0x14>
+
+80002c78 <test_7>:
+80002c78: 00700193 li gp,7
+80002c7c: fff00093 li ra,-1
+80002c80: ffe00113 li sp,-2
+80002c84: 0020c463 blt ra,sp,80002c8c <test_7+0x14>
+80002c88: 00301463 bne zero,gp,80002c90 <test_7+0x18>
+80002c8c: 20301a63 bne zero,gp,80002ea0 <fail>
+80002c90: fe20cee3 blt ra,sp,80002c8c <test_7+0x14>
+
+80002c94 <test_8>:
+80002c94: 00800193 li gp,8
+80002c98: 00100093 li ra,1
+80002c9c: ffe00113 li sp,-2
+80002ca0: 0020c463 blt ra,sp,80002ca8 <test_8+0x14>
+80002ca4: 00301463 bne zero,gp,80002cac <test_8+0x18>
+80002ca8: 1e301c63 bne zero,gp,80002ea0 <fail>
+80002cac: fe20cee3 blt ra,sp,80002ca8 <test_8+0x14>
+
+80002cb0 <test_9>:
+80002cb0: 00900193 li gp,9
+80002cb4: 00000213 li tp,0
+80002cb8: 00000093 li ra,0
+80002cbc: fff00113 li sp,-1
+80002cc0: 1e20c063 blt ra,sp,80002ea0 <fail>
+80002cc4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002cc8: 00200293 li t0,2
+80002ccc: fe5216e3 bne tp,t0,80002cb8 <test_9+0x8>
+
+80002cd0 <test_10>:
+80002cd0: 00a00193 li gp,10
+80002cd4: 00000213 li tp,0
+80002cd8: 00000093 li ra,0
+80002cdc: fff00113 li sp,-1
+80002ce0: 00000013 nop
+80002ce4: 1a20ce63 blt ra,sp,80002ea0 <fail>
+80002ce8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002cec: 00200293 li t0,2
+80002cf0: fe5214e3 bne tp,t0,80002cd8 <test_10+0x8>
+
+80002cf4 <test_11>:
+80002cf4: 00b00193 li gp,11
+80002cf8: 00000213 li tp,0
+80002cfc: 00000093 li ra,0
+80002d00: fff00113 li sp,-1
+80002d04: 00000013 nop
+80002d08: 00000013 nop
+80002d0c: 1820ca63 blt ra,sp,80002ea0 <fail>
+80002d10: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d14: 00200293 li t0,2
+80002d18: fe5212e3 bne tp,t0,80002cfc <test_11+0x8>
+
+80002d1c <test_12>:
+80002d1c: 00c00193 li gp,12
+80002d20: 00000213 li tp,0
+80002d24: 00000093 li ra,0
+80002d28: 00000013 nop
+80002d2c: fff00113 li sp,-1
+80002d30: 1620c863 blt ra,sp,80002ea0 <fail>
+80002d34: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d38: 00200293 li t0,2
+80002d3c: fe5214e3 bne tp,t0,80002d24 <test_12+0x8>
+
+80002d40 <test_13>:
+80002d40: 00d00193 li gp,13
+80002d44: 00000213 li tp,0
+80002d48: 00000093 li ra,0
+80002d4c: 00000013 nop
+80002d50: fff00113 li sp,-1
+80002d54: 00000013 nop
+80002d58: 1420c463 blt ra,sp,80002ea0 <fail>
+80002d5c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d60: 00200293 li t0,2
+80002d64: fe5212e3 bne tp,t0,80002d48 <test_13+0x8>
+
+80002d68 <test_14>:
+80002d68: 00e00193 li gp,14
+80002d6c: 00000213 li tp,0
+80002d70: 00000093 li ra,0
+80002d74: 00000013 nop
+80002d78: 00000013 nop
+80002d7c: fff00113 li sp,-1
+80002d80: 1220c063 blt ra,sp,80002ea0 <fail>
+80002d84: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d88: 00200293 li t0,2
+80002d8c: fe5212e3 bne tp,t0,80002d70 <test_14+0x8>
+
+80002d90 <test_15>:
+80002d90: 00f00193 li gp,15
+80002d94: 00000213 li tp,0
+80002d98: 00000093 li ra,0
+80002d9c: fff00113 li sp,-1
+80002da0: 1020c063 blt ra,sp,80002ea0 <fail>
+80002da4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002da8: 00200293 li t0,2
+80002dac: fe5216e3 bne tp,t0,80002d98 <test_15+0x8>
+
+80002db0 <test_16>:
+80002db0: 01000193 li gp,16
+80002db4: 00000213 li tp,0
+80002db8: 00000093 li ra,0
+80002dbc: fff00113 li sp,-1
+80002dc0: 00000013 nop
+80002dc4: 0c20ce63 blt ra,sp,80002ea0 <fail>
+80002dc8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002dcc: 00200293 li t0,2
+80002dd0: fe5214e3 bne tp,t0,80002db8 <test_16+0x8>
+
+80002dd4 <test_17>:
+80002dd4: 01100193 li gp,17
+80002dd8: 00000213 li tp,0
+80002ddc: 00000093 li ra,0
+80002de0: fff00113 li sp,-1
+80002de4: 00000013 nop
+80002de8: 00000013 nop
+80002dec: 0a20ca63 blt ra,sp,80002ea0 <fail>
+80002df0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002df4: 00200293 li t0,2
+80002df8: fe5212e3 bne tp,t0,80002ddc <test_17+0x8>
+
+80002dfc <test_18>:
+80002dfc: 01200193 li gp,18
+80002e00: 00000213 li tp,0
+80002e04: 00000093 li ra,0
+80002e08: 00000013 nop
+80002e0c: fff00113 li sp,-1
+80002e10: 0820c863 blt ra,sp,80002ea0 <fail>
+80002e14: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e18: 00200293 li t0,2
+80002e1c: fe5214e3 bne tp,t0,80002e04 <test_18+0x8>
+
+80002e20 <test_19>:
+80002e20: 01300193 li gp,19
+80002e24: 00000213 li tp,0
+80002e28: 00000093 li ra,0
+80002e2c: 00000013 nop
+80002e30: fff00113 li sp,-1
+80002e34: 00000013 nop
+80002e38: 0620c463 blt ra,sp,80002ea0 <fail>
+80002e3c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e40: 00200293 li t0,2
+80002e44: fe5212e3 bne tp,t0,80002e28 <test_19+0x8>
+
+80002e48 <test_20>:
+80002e48: 01400193 li gp,20
+80002e4c: 00000213 li tp,0
+80002e50: 00000093 li ra,0
+80002e54: 00000013 nop
+80002e58: 00000013 nop
+80002e5c: fff00113 li sp,-1
+80002e60: 0420c063 blt ra,sp,80002ea0 <fail>
+80002e64: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e68: 00200293 li t0,2
+80002e6c: fe5212e3 bne tp,t0,80002e50 <test_20+0x8>
+
+80002e70 <test_21>:
+80002e70: 00100093 li ra,1
+80002e74: 00104a63 bgtz ra,80002e88 <test_21+0x18>
+80002e78: 00108093 addi ra,ra,1
+80002e7c: 00108093 addi ra,ra,1
+80002e80: 00108093 addi ra,ra,1
+80002e84: 00108093 addi ra,ra,1
+80002e88: 00108093 addi ra,ra,1
+80002e8c: 00108093 addi ra,ra,1
+80002e90: 00300e93 li t4,3
+80002e94: 01500193 li gp,21
+80002e98: 01d09463 bne ra,t4,80002ea0 <fail>
+80002e9c: 00301a63 bne zero,gp,80002eb0 <pass>
+
+80002ea0 <fail>:
+80002ea0: 00119513 slli a0,gp,0x1
+80002ea4: 00050063 beqz a0,80002ea4 <fail+0x4>
+80002ea8: 00156513 ori a0,a0,1
+80002eac: 00000073 ecall
+
+80002eb0 <pass>:
+80002eb0: 00100513 li a0,1
+80002eb4: 00000073 ecall
+80002eb8: c0001073 unimp
diff --git a/test/riscv-tests/rv32ui-v-blt.elf b/test/riscv-tests/rv32ui-v-blt.elf
new file mode 100644
index 0000000..b1a527f
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-blt.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-v-bltu.dump b/test/riscv-tests/rv32ui-v-bltu.dump
new file mode 100644
index 0000000..cd3fffb
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-bltu.dump
@@ -0,0 +1,1137 @@
+
+rv32ui-v-bltu: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00007117 auipc sp,0x7
+8000001c: 35010113 addi sp,sp,848 # 80007368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00002317 auipc t1,0x2
+80002370: c9430313 addi t1,t1,-876 # 80004000 <begin_signature>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00004797 auipc a5,0x4
+8000238c: 06c78793 addi a5,a5,108 # 800063f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00004717 auipc a4,0x4
+800023a0: 05470713 addi a4,a4,84 # 800063f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00004697 auipc a3,0x4
+800023ac: 04f6a623 sw a5,76(a3) # 800063f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00004717 auipc a4,0x4
+800023dc: e2070713 addi a4,a4,-480 # 800061f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf9c08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00004797 auipc a5,0x4
+800024bc: f207ac23 sw zero,-200(a5) # 800063f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00001597 auipc a1,0x1
+800024cc: a2858593 addi a1,a1,-1496 # 80002ef0 <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00001597 auipc a1,0x1
+8000253c: a4458593 addi a1,a1,-1468 # 80002f7c <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00001597 auipc a1,0x1
+800025a8: 9f058593 addi a1,a1,-1552 # 80002f94 <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00001597 auipc a1,0x1
+80002614: 92458593 addi a1,a1,-1756 # 80002f34 <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00001597 auipc a1,0x1
+8000274c: 91458593 addi a1,a1,-1772 # 8000305c <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00001597 auipc a1,0x1
+800027c0: 87c58593 addi a1,a1,-1924 # 80003038 <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00004b17 auipc s6,0x4
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800061f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00001d17 auipc s10,0x1
+80002840: 7c4d0d13 addi s10,s10,1988 # 80004000 <begin_signature>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00004717 auipc a4,0x4
+8000285c: b8f72c23 sw a5,-1128(a4) # 800063f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00004717 auipc a4,0x4
+800028e8: b0c70713 addi a4,a4,-1268 # 800063f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00004717 auipc a4,0x4
+800028fc: aef72c23 sw a5,-1288(a4) # 800063f0 <freelist_tail>
+80002900: 00004717 auipc a4,0x4
+80002904: aef72a23 sw a5,-1292(a4) # 800063f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00000617 auipc a2,0x0
+80002914: 77860613 addi a2,a2,1912 # 80003088 <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00000617 auipc a2,0x0
+80002980: 68860613 addi a2,a2,1672 # 80003004 <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 60860613 addi a2,a2,1544 # 80002fd0 <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00002797 auipc a5,0x2
+80002a4c: 5b878793 addi a5,a5,1464 # 80005000 <begin_signature+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00001697 auipc a3,0x1
+80002a60: 5af6a223 sw a5,1444(a3) # 80004000 <begin_signature>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00001717 auipc a4,0x1
+80002a6c: 59870713 addi a4,a4,1432 # 80004000 <begin_signature>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00002697 auipc a3,0x2
+80002a7c: 58f6a223 sw a5,1412(a3) # 80004ffc <begin_signature+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf9ccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc03797 auipc a5,0x7fc03
+80002aec: 51878793 addi a5,a5,1304 # ffc06000 <_end+0x7fbffc08>
+80002af0: 00004717 auipc a4,0x4
+80002af4: 90f72223 sw a5,-1788(a4) # 800063f4 <freelist_head>
+80002af8: 7fc03797 auipc a5,0x7fc03
+80002afc: 6f878793 addi a5,a5,1784 # ffc061f0 <_end+0x7fbffdf8>
+80002b00: 00004717 auipc a4,0x4
+80002b04: 8ef72823 sw a5,-1808(a4) # 800063f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00003717 auipc a4,0x3
+80002b10: 4f470713 addi a4,a4,1268 # 80006000 <freelist_nodes>
+80002b14: 00003317 auipc t1,0x3
+80002b18: 6e430313 addi t1,t1,1764 # 800061f8 <user_mapping>
+80002b1c: 03b00793 li a5,59
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00003797 auipc a5,0x3
+80002b6c: 6807a623 sw zero,1676(a5) # 800061f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 096517b7 lui a5,0x9651
+80002b9c: 00080637 lui a2,0x80
+80002ba0: 2bc78793 addi a5,a5,700 # 96512bc <_start-0x769aed44>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: 00200193 li gp,2
+80002be4: 00000093 li ra,0
+80002be8: 00100113 li sp,1
+80002bec: 0020e663 bltu ra,sp,80002bf8 <userstart+0x18>
+80002bf0: 2e301263 bne zero,gp,80002ed4 <fail>
+80002bf4: 00301663 bne zero,gp,80002c00 <test_3>
+80002bf8: fe20eee3 bltu ra,sp,80002bf4 <userstart+0x14>
+80002bfc: 2c301c63 bne zero,gp,80002ed4 <fail>
+
+80002c00 <test_3>:
+80002c00: 00300193 li gp,3
+80002c04: ffe00093 li ra,-2
+80002c08: fff00113 li sp,-1
+80002c0c: 0020e663 bltu ra,sp,80002c18 <test_3+0x18>
+80002c10: 2c301263 bne zero,gp,80002ed4 <fail>
+80002c14: 00301663 bne zero,gp,80002c20 <test_4>
+80002c18: fe20eee3 bltu ra,sp,80002c14 <test_3+0x14>
+80002c1c: 2a301c63 bne zero,gp,80002ed4 <fail>
+
+80002c20 <test_4>:
+80002c20: 00400193 li gp,4
+80002c24: 00000093 li ra,0
+80002c28: fff00113 li sp,-1
+80002c2c: 0020e663 bltu ra,sp,80002c38 <test_4+0x18>
+80002c30: 2a301263 bne zero,gp,80002ed4 <fail>
+80002c34: 00301663 bne zero,gp,80002c40 <test_5>
+80002c38: fe20eee3 bltu ra,sp,80002c34 <test_4+0x14>
+80002c3c: 28301c63 bne zero,gp,80002ed4 <fail>
+
+80002c40 <test_5>:
+80002c40: 00500193 li gp,5
+80002c44: 00100093 li ra,1
+80002c48: 00000113 li sp,0
+80002c4c: 0020e463 bltu ra,sp,80002c54 <test_5+0x14>
+80002c50: 00301463 bne zero,gp,80002c58 <test_5+0x18>
+80002c54: 28301063 bne zero,gp,80002ed4 <fail>
+80002c58: fe20eee3 bltu ra,sp,80002c54 <test_5+0x14>
+
+80002c5c <test_6>:
+80002c5c: 00600193 li gp,6
+80002c60: fff00093 li ra,-1
+80002c64: ffe00113 li sp,-2
+80002c68: 0020e463 bltu ra,sp,80002c70 <test_6+0x14>
+80002c6c: 00301463 bne zero,gp,80002c74 <test_6+0x18>
+80002c70: 26301263 bne zero,gp,80002ed4 <fail>
+80002c74: fe20eee3 bltu ra,sp,80002c70 <test_6+0x14>
+
+80002c78 <test_7>:
+80002c78: 00700193 li gp,7
+80002c7c: fff00093 li ra,-1
+80002c80: 00000113 li sp,0
+80002c84: 0020e463 bltu ra,sp,80002c8c <test_7+0x14>
+80002c88: 00301463 bne zero,gp,80002c90 <test_7+0x18>
+80002c8c: 24301463 bne zero,gp,80002ed4 <fail>
+80002c90: fe20eee3 bltu ra,sp,80002c8c <test_7+0x14>
+
+80002c94 <test_8>:
+80002c94: 00800193 li gp,8
+80002c98: 800000b7 lui ra,0x80000
+80002c9c: 80000137 lui sp,0x80000
+80002ca0: fff10113 addi sp,sp,-1 # 7fffffff <_end+0xffff9c07>
+80002ca4: 0020e463 bltu ra,sp,80002cac <test_8+0x18>
+80002ca8: 00301463 bne zero,gp,80002cb0 <test_8+0x1c>
+80002cac: 22301463 bne zero,gp,80002ed4 <fail>
+80002cb0: fe20eee3 bltu ra,sp,80002cac <test_8+0x18>
+
+80002cb4 <test_9>:
+80002cb4: 00900193 li gp,9
+80002cb8: 00000213 li tp,0
+80002cbc: f00000b7 lui ra,0xf0000
+80002cc0: f0000137 lui sp,0xf0000
+80002cc4: fff10113 addi sp,sp,-1 # efffffff <_end+0x6fff9c07>
+80002cc8: 2020e663 bltu ra,sp,80002ed4 <fail>
+80002ccc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002cd0: 00200293 li t0,2
+80002cd4: fe5214e3 bne tp,t0,80002cbc <test_9+0x8>
+
+80002cd8 <test_10>:
+80002cd8: 00a00193 li gp,10
+80002cdc: 00000213 li tp,0
+80002ce0: f00000b7 lui ra,0xf0000
+80002ce4: f0000137 lui sp,0xf0000
+80002ce8: fff10113 addi sp,sp,-1 # efffffff <_end+0x6fff9c07>
+80002cec: 00000013 nop
+80002cf0: 1e20e263 bltu ra,sp,80002ed4 <fail>
+80002cf4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002cf8: 00200293 li t0,2
+80002cfc: fe5212e3 bne tp,t0,80002ce0 <test_10+0x8>
+
+80002d00 <test_11>:
+80002d00: 00b00193 li gp,11
+80002d04: 00000213 li tp,0
+80002d08: f00000b7 lui ra,0xf0000
+80002d0c: f0000137 lui sp,0xf0000
+80002d10: fff10113 addi sp,sp,-1 # efffffff <_end+0x6fff9c07>
+80002d14: 00000013 nop
+80002d18: 00000013 nop
+80002d1c: 1a20ec63 bltu ra,sp,80002ed4 <fail>
+80002d20: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d24: 00200293 li t0,2
+80002d28: fe5210e3 bne tp,t0,80002d08 <test_11+0x8>
+
+80002d2c <test_12>:
+80002d2c: 00c00193 li gp,12
+80002d30: 00000213 li tp,0
+80002d34: f00000b7 lui ra,0xf0000
+80002d38: 00000013 nop
+80002d3c: f0000137 lui sp,0xf0000
+80002d40: fff10113 addi sp,sp,-1 # efffffff <_end+0x6fff9c07>
+80002d44: 1820e863 bltu ra,sp,80002ed4 <fail>
+80002d48: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d4c: 00200293 li t0,2
+80002d50: fe5212e3 bne tp,t0,80002d34 <test_12+0x8>
+
+80002d54 <test_13>:
+80002d54: 00d00193 li gp,13
+80002d58: 00000213 li tp,0
+80002d5c: f00000b7 lui ra,0xf0000
+80002d60: 00000013 nop
+80002d64: f0000137 lui sp,0xf0000
+80002d68: fff10113 addi sp,sp,-1 # efffffff <_end+0x6fff9c07>
+80002d6c: 00000013 nop
+80002d70: 1620e263 bltu ra,sp,80002ed4 <fail>
+80002d74: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d78: 00200293 li t0,2
+80002d7c: fe5210e3 bne tp,t0,80002d5c <test_13+0x8>
+
+80002d80 <test_14>:
+80002d80: 00e00193 li gp,14
+80002d84: 00000213 li tp,0
+80002d88: f00000b7 lui ra,0xf0000
+80002d8c: 00000013 nop
+80002d90: 00000013 nop
+80002d94: f0000137 lui sp,0xf0000
+80002d98: fff10113 addi sp,sp,-1 # efffffff <_end+0x6fff9c07>
+80002d9c: 1220ec63 bltu ra,sp,80002ed4 <fail>
+80002da0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002da4: 00200293 li t0,2
+80002da8: fe5210e3 bne tp,t0,80002d88 <test_14+0x8>
+
+80002dac <test_15>:
+80002dac: 00f00193 li gp,15
+80002db0: 00000213 li tp,0
+80002db4: f00000b7 lui ra,0xf0000
+80002db8: f0000137 lui sp,0xf0000
+80002dbc: fff10113 addi sp,sp,-1 # efffffff <_end+0x6fff9c07>
+80002dc0: 1020ea63 bltu ra,sp,80002ed4 <fail>
+80002dc4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002dc8: 00200293 li t0,2
+80002dcc: fe5214e3 bne tp,t0,80002db4 <test_15+0x8>
+
+80002dd0 <test_16>:
+80002dd0: 01000193 li gp,16
+80002dd4: 00000213 li tp,0
+80002dd8: f00000b7 lui ra,0xf0000
+80002ddc: f0000137 lui sp,0xf0000
+80002de0: fff10113 addi sp,sp,-1 # efffffff <_end+0x6fff9c07>
+80002de4: 00000013 nop
+80002de8: 0e20e663 bltu ra,sp,80002ed4 <fail>
+80002dec: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002df0: 00200293 li t0,2
+80002df4: fe5212e3 bne tp,t0,80002dd8 <test_16+0x8>
+
+80002df8 <test_17>:
+80002df8: 01100193 li gp,17
+80002dfc: 00000213 li tp,0
+80002e00: f00000b7 lui ra,0xf0000
+80002e04: f0000137 lui sp,0xf0000
+80002e08: fff10113 addi sp,sp,-1 # efffffff <_end+0x6fff9c07>
+80002e0c: 00000013 nop
+80002e10: 00000013 nop
+80002e14: 0c20e063 bltu ra,sp,80002ed4 <fail>
+80002e18: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e1c: 00200293 li t0,2
+80002e20: fe5210e3 bne tp,t0,80002e00 <test_17+0x8>
+
+80002e24 <test_18>:
+80002e24: 01200193 li gp,18
+80002e28: 00000213 li tp,0
+80002e2c: f00000b7 lui ra,0xf0000
+80002e30: 00000013 nop
+80002e34: f0000137 lui sp,0xf0000
+80002e38: fff10113 addi sp,sp,-1 # efffffff <_end+0x6fff9c07>
+80002e3c: 0820ec63 bltu ra,sp,80002ed4 <fail>
+80002e40: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e44: 00200293 li t0,2
+80002e48: fe5212e3 bne tp,t0,80002e2c <test_18+0x8>
+
+80002e4c <test_19>:
+80002e4c: 01300193 li gp,19
+80002e50: 00000213 li tp,0
+80002e54: f00000b7 lui ra,0xf0000
+80002e58: 00000013 nop
+80002e5c: f0000137 lui sp,0xf0000
+80002e60: fff10113 addi sp,sp,-1 # efffffff <_end+0x6fff9c07>
+80002e64: 00000013 nop
+80002e68: 0620e663 bltu ra,sp,80002ed4 <fail>
+80002e6c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e70: 00200293 li t0,2
+80002e74: fe5210e3 bne tp,t0,80002e54 <test_19+0x8>
+
+80002e78 <test_20>:
+80002e78: 01400193 li gp,20
+80002e7c: 00000213 li tp,0
+80002e80: f00000b7 lui ra,0xf0000
+80002e84: 00000013 nop
+80002e88: 00000013 nop
+80002e8c: f0000137 lui sp,0xf0000
+80002e90: fff10113 addi sp,sp,-1 # efffffff <_end+0x6fff9c07>
+80002e94: 0420e063 bltu ra,sp,80002ed4 <fail>
+80002e98: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e9c: 00200293 li t0,2
+80002ea0: fe5210e3 bne tp,t0,80002e80 <test_20+0x8>
+
+80002ea4 <test_21>:
+80002ea4: 00100093 li ra,1
+80002ea8: 00106a63 bltu zero,ra,80002ebc <test_21+0x18>
+80002eac: 00108093 addi ra,ra,1 # f0000001 <_end+0x6fff9c09>
+80002eb0: 00108093 addi ra,ra,1
+80002eb4: 00108093 addi ra,ra,1
+80002eb8: 00108093 addi ra,ra,1
+80002ebc: 00108093 addi ra,ra,1
+80002ec0: 00108093 addi ra,ra,1
+80002ec4: 00300e93 li t4,3
+80002ec8: 01500193 li gp,21
+80002ecc: 01d09463 bne ra,t4,80002ed4 <fail>
+80002ed0: 00301a63 bne zero,gp,80002ee4 <pass>
+
+80002ed4 <fail>:
+80002ed4: 00119513 slli a0,gp,0x1
+80002ed8: 00050063 beqz a0,80002ed8 <fail+0x4>
+80002edc: 00156513 ori a0,a0,1
+80002ee0: 00000073 ecall
+
+80002ee4 <pass>:
+80002ee4: 00100513 li a0,1
+80002ee8: 00000073 ecall
+80002eec: c0001073 unimp
diff --git a/test/riscv-tests/rv32ui-v-bltu.elf b/test/riscv-tests/rv32ui-v-bltu.elf
new file mode 100644
index 0000000..eda976a
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-bltu.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-v-bne.dump b/test/riscv-tests/rv32ui-v-bne.dump
new file mode 100644
index 0000000..2b4de55
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-bne.dump
@@ -0,0 +1,1125 @@
+
+rv32ui-v-bne: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00007117 auipc sp,0x7
+8000001c: 35010113 addi sp,sp,848 # 80007368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00002317 auipc t1,0x2
+80002370: c9430313 addi t1,t1,-876 # 80004000 <begin_signature>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00004797 auipc a5,0x4
+8000238c: 06c78793 addi a5,a5,108 # 800063f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00004717 auipc a4,0x4
+800023a0: 05470713 addi a4,a4,84 # 800063f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00004697 auipc a3,0x4
+800023ac: 04f6a623 sw a5,76(a3) # 800063f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00004717 auipc a4,0x4
+800023dc: e2070713 addi a4,a4,-480 # 800061f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf9c08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00004797 auipc a5,0x4
+800024bc: f207ac23 sw zero,-200(a5) # 800063f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00001597 auipc a1,0x1
+800024cc: 9f858593 addi a1,a1,-1544 # 80002ec0 <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00001597 auipc a1,0x1
+8000253c: a1458593 addi a1,a1,-1516 # 80002f4c <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00001597 auipc a1,0x1
+800025a8: 9c058593 addi a1,a1,-1600 # 80002f64 <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00001597 auipc a1,0x1
+80002614: 8f458593 addi a1,a1,-1804 # 80002f04 <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00001597 auipc a1,0x1
+8000274c: 8e458593 addi a1,a1,-1820 # 8000302c <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00001597 auipc a1,0x1
+800027c0: 84c58593 addi a1,a1,-1972 # 80003008 <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00004b17 auipc s6,0x4
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800061f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00001d17 auipc s10,0x1
+80002840: 7c4d0d13 addi s10,s10,1988 # 80004000 <begin_signature>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00004717 auipc a4,0x4
+8000285c: b8f72c23 sw a5,-1128(a4) # 800063f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00004717 auipc a4,0x4
+800028e8: b0c70713 addi a4,a4,-1268 # 800063f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00004717 auipc a4,0x4
+800028fc: aef72c23 sw a5,-1288(a4) # 800063f0 <freelist_tail>
+80002900: 00004717 auipc a4,0x4
+80002904: aef72a23 sw a5,-1292(a4) # 800063f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00000617 auipc a2,0x0
+80002914: 74860613 addi a2,a2,1864 # 80003058 <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00000617 auipc a2,0x0
+80002980: 65860613 addi a2,a2,1624 # 80002fd4 <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 5d860613 addi a2,a2,1496 # 80002fa0 <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00002797 auipc a5,0x2
+80002a4c: 5b878793 addi a5,a5,1464 # 80005000 <begin_signature+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00001697 auipc a3,0x1
+80002a60: 5af6a223 sw a5,1444(a3) # 80004000 <begin_signature>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00001717 auipc a4,0x1
+80002a6c: 59870713 addi a4,a4,1432 # 80004000 <begin_signature>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00002697 auipc a3,0x2
+80002a7c: 58f6a223 sw a5,1412(a3) # 80004ffc <begin_signature+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf9ccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc03797 auipc a5,0x7fc03
+80002aec: 51878793 addi a5,a5,1304 # ffc06000 <_end+0x7fbffc08>
+80002af0: 00004717 auipc a4,0x4
+80002af4: 90f72223 sw a5,-1788(a4) # 800063f4 <freelist_head>
+80002af8: 7fc03797 auipc a5,0x7fc03
+80002afc: 6f878793 addi a5,a5,1784 # ffc061f0 <_end+0x7fbffdf8>
+80002b00: 00004717 auipc a4,0x4
+80002b04: 8ef72823 sw a5,-1808(a4) # 800063f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00003717 auipc a4,0x3
+80002b10: 4f470713 addi a4,a4,1268 # 80006000 <freelist_nodes>
+80002b14: 00003317 auipc t1,0x3
+80002b18: 6e430313 addi t1,t1,1764 # 800061f8 <user_mapping>
+80002b1c: 02500793 li a5,37
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00003797 auipc a5,0x3
+80002b6c: 6807a623 sw zero,1676(a5) # 800061f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 039337b7 lui a5,0x3933
+80002b9c: 00080637 lui a2,0x80
+80002ba0: ade78793 addi a5,a5,-1314 # 3932ade <_start-0x7c6cd522>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: 00200193 li gp,2
+80002be4: 00000093 li ra,0
+80002be8: 00100113 li sp,1
+80002bec: 00209663 bne ra,sp,80002bf8 <userstart+0x18>
+80002bf0: 2a301a63 bne zero,gp,80002ea4 <fail>
+80002bf4: 00301663 bne zero,gp,80002c00 <test_3>
+80002bf8: fe209ee3 bne ra,sp,80002bf4 <userstart+0x14>
+80002bfc: 2a301463 bne zero,gp,80002ea4 <fail>
+
+80002c00 <test_3>:
+80002c00: 00300193 li gp,3
+80002c04: 00100093 li ra,1
+80002c08: 00000113 li sp,0
+80002c0c: 00209663 bne ra,sp,80002c18 <test_3+0x18>
+80002c10: 28301a63 bne zero,gp,80002ea4 <fail>
+80002c14: 00301663 bne zero,gp,80002c20 <test_4>
+80002c18: fe209ee3 bne ra,sp,80002c14 <test_3+0x14>
+80002c1c: 28301463 bne zero,gp,80002ea4 <fail>
+
+80002c20 <test_4>:
+80002c20: 00400193 li gp,4
+80002c24: fff00093 li ra,-1
+80002c28: 00100113 li sp,1
+80002c2c: 00209663 bne ra,sp,80002c38 <test_4+0x18>
+80002c30: 26301a63 bne zero,gp,80002ea4 <fail>
+80002c34: 00301663 bne zero,gp,80002c40 <test_5>
+80002c38: fe209ee3 bne ra,sp,80002c34 <test_4+0x14>
+80002c3c: 26301463 bne zero,gp,80002ea4 <fail>
+
+80002c40 <test_5>:
+80002c40: 00500193 li gp,5
+80002c44: 00100093 li ra,1
+80002c48: fff00113 li sp,-1
+80002c4c: 00209663 bne ra,sp,80002c58 <test_5+0x18>
+80002c50: 24301a63 bne zero,gp,80002ea4 <fail>
+80002c54: 00301663 bne zero,gp,80002c60 <test_6>
+80002c58: fe209ee3 bne ra,sp,80002c54 <test_5+0x14>
+80002c5c: 24301463 bne zero,gp,80002ea4 <fail>
+
+80002c60 <test_6>:
+80002c60: 00600193 li gp,6
+80002c64: 00000093 li ra,0
+80002c68: 00000113 li sp,0
+80002c6c: 00209463 bne ra,sp,80002c74 <test_6+0x14>
+80002c70: 00301463 bne zero,gp,80002c78 <test_6+0x18>
+80002c74: 22301863 bne zero,gp,80002ea4 <fail>
+80002c78: fe209ee3 bne ra,sp,80002c74 <test_6+0x14>
+
+80002c7c <test_7>:
+80002c7c: 00700193 li gp,7
+80002c80: 00100093 li ra,1
+80002c84: 00100113 li sp,1
+80002c88: 00209463 bne ra,sp,80002c90 <test_7+0x14>
+80002c8c: 00301463 bne zero,gp,80002c94 <test_7+0x18>
+80002c90: 20301a63 bne zero,gp,80002ea4 <fail>
+80002c94: fe209ee3 bne ra,sp,80002c90 <test_7+0x14>
+
+80002c98 <test_8>:
+80002c98: 00800193 li gp,8
+80002c9c: fff00093 li ra,-1
+80002ca0: fff00113 li sp,-1
+80002ca4: 00209463 bne ra,sp,80002cac <test_8+0x14>
+80002ca8: 00301463 bne zero,gp,80002cb0 <test_8+0x18>
+80002cac: 1e301c63 bne zero,gp,80002ea4 <fail>
+80002cb0: fe209ee3 bne ra,sp,80002cac <test_8+0x14>
+
+80002cb4 <test_9>:
+80002cb4: 00900193 li gp,9
+80002cb8: 00000213 li tp,0
+80002cbc: 00000093 li ra,0
+80002cc0: 00000113 li sp,0
+80002cc4: 1e209063 bne ra,sp,80002ea4 <fail>
+80002cc8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002ccc: 00200293 li t0,2
+80002cd0: fe5216e3 bne tp,t0,80002cbc <test_9+0x8>
+
+80002cd4 <test_10>:
+80002cd4: 00a00193 li gp,10
+80002cd8: 00000213 li tp,0
+80002cdc: 00000093 li ra,0
+80002ce0: 00000113 li sp,0
+80002ce4: 00000013 nop
+80002ce8: 1a209e63 bne ra,sp,80002ea4 <fail>
+80002cec: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002cf0: 00200293 li t0,2
+80002cf4: fe5214e3 bne tp,t0,80002cdc <test_10+0x8>
+
+80002cf8 <test_11>:
+80002cf8: 00b00193 li gp,11
+80002cfc: 00000213 li tp,0
+80002d00: 00000093 li ra,0
+80002d04: 00000113 li sp,0
+80002d08: 00000013 nop
+80002d0c: 00000013 nop
+80002d10: 18209a63 bne ra,sp,80002ea4 <fail>
+80002d14: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d18: 00200293 li t0,2
+80002d1c: fe5212e3 bne tp,t0,80002d00 <test_11+0x8>
+
+80002d20 <test_12>:
+80002d20: 00c00193 li gp,12
+80002d24: 00000213 li tp,0
+80002d28: 00000093 li ra,0
+80002d2c: 00000013 nop
+80002d30: 00000113 li sp,0
+80002d34: 16209863 bne ra,sp,80002ea4 <fail>
+80002d38: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d3c: 00200293 li t0,2
+80002d40: fe5214e3 bne tp,t0,80002d28 <test_12+0x8>
+
+80002d44 <test_13>:
+80002d44: 00d00193 li gp,13
+80002d48: 00000213 li tp,0
+80002d4c: 00000093 li ra,0
+80002d50: 00000013 nop
+80002d54: 00000113 li sp,0
+80002d58: 00000013 nop
+80002d5c: 14209463 bne ra,sp,80002ea4 <fail>
+80002d60: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d64: 00200293 li t0,2
+80002d68: fe5212e3 bne tp,t0,80002d4c <test_13+0x8>
+
+80002d6c <test_14>:
+80002d6c: 00e00193 li gp,14
+80002d70: 00000213 li tp,0
+80002d74: 00000093 li ra,0
+80002d78: 00000013 nop
+80002d7c: 00000013 nop
+80002d80: 00000113 li sp,0
+80002d84: 12209063 bne ra,sp,80002ea4 <fail>
+80002d88: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d8c: 00200293 li t0,2
+80002d90: fe5212e3 bne tp,t0,80002d74 <test_14+0x8>
+
+80002d94 <test_15>:
+80002d94: 00f00193 li gp,15
+80002d98: 00000213 li tp,0
+80002d9c: 00000093 li ra,0
+80002da0: 00000113 li sp,0
+80002da4: 10209063 bne ra,sp,80002ea4 <fail>
+80002da8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002dac: 00200293 li t0,2
+80002db0: fe5216e3 bne tp,t0,80002d9c <test_15+0x8>
+
+80002db4 <test_16>:
+80002db4: 01000193 li gp,16
+80002db8: 00000213 li tp,0
+80002dbc: 00000093 li ra,0
+80002dc0: 00000113 li sp,0
+80002dc4: 00000013 nop
+80002dc8: 0c209e63 bne ra,sp,80002ea4 <fail>
+80002dcc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002dd0: 00200293 li t0,2
+80002dd4: fe5214e3 bne tp,t0,80002dbc <test_16+0x8>
+
+80002dd8 <test_17>:
+80002dd8: 01100193 li gp,17
+80002ddc: 00000213 li tp,0
+80002de0: 00000093 li ra,0
+80002de4: 00000113 li sp,0
+80002de8: 00000013 nop
+80002dec: 00000013 nop
+80002df0: 0a209a63 bne ra,sp,80002ea4 <fail>
+80002df4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002df8: 00200293 li t0,2
+80002dfc: fe5212e3 bne tp,t0,80002de0 <test_17+0x8>
+
+80002e00 <test_18>:
+80002e00: 01200193 li gp,18
+80002e04: 00000213 li tp,0
+80002e08: 00000093 li ra,0
+80002e0c: 00000013 nop
+80002e10: 00000113 li sp,0
+80002e14: 08209863 bne ra,sp,80002ea4 <fail>
+80002e18: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e1c: 00200293 li t0,2
+80002e20: fe5214e3 bne tp,t0,80002e08 <test_18+0x8>
+
+80002e24 <test_19>:
+80002e24: 01300193 li gp,19
+80002e28: 00000213 li tp,0
+80002e2c: 00000093 li ra,0
+80002e30: 00000013 nop
+80002e34: 00000113 li sp,0
+80002e38: 00000013 nop
+80002e3c: 06209463 bne ra,sp,80002ea4 <fail>
+80002e40: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e44: 00200293 li t0,2
+80002e48: fe5212e3 bne tp,t0,80002e2c <test_19+0x8>
+
+80002e4c <test_20>:
+80002e4c: 01400193 li gp,20
+80002e50: 00000213 li tp,0
+80002e54: 00000093 li ra,0
+80002e58: 00000013 nop
+80002e5c: 00000013 nop
+80002e60: 00000113 li sp,0
+80002e64: 04209063 bne ra,sp,80002ea4 <fail>
+80002e68: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e6c: 00200293 li t0,2
+80002e70: fe5212e3 bne tp,t0,80002e54 <test_20+0x8>
+
+80002e74 <test_21>:
+80002e74: 00100093 li ra,1
+80002e78: 00009a63 bnez ra,80002e8c <test_21+0x18>
+80002e7c: 00108093 addi ra,ra,1
+80002e80: 00108093 addi ra,ra,1
+80002e84: 00108093 addi ra,ra,1
+80002e88: 00108093 addi ra,ra,1
+80002e8c: 00108093 addi ra,ra,1
+80002e90: 00108093 addi ra,ra,1
+80002e94: 00300e93 li t4,3
+80002e98: 01500193 li gp,21
+80002e9c: 01d09463 bne ra,t4,80002ea4 <fail>
+80002ea0: 00301a63 bne zero,gp,80002eb4 <pass>
+
+80002ea4 <fail>:
+80002ea4: 00119513 slli a0,gp,0x1
+80002ea8: 00050063 beqz a0,80002ea8 <fail+0x4>
+80002eac: 00156513 ori a0,a0,1
+80002eb0: 00000073 ecall
+
+80002eb4 <pass>:
+80002eb4: 00100513 li a0,1
+80002eb8: 00000073 ecall
+80002ebc: c0001073 unimp
diff --git a/test/riscv-tests/rv32ui-v-bne.elf b/test/riscv-tests/rv32ui-v-bne.elf
new file mode 100644
index 0000000..4757ddc
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-bne.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-v-fence_i.dump b/test/riscv-tests/rv32ui-v-fence_i.dump
new file mode 100644
index 0000000..59500cb
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-fence_i.dump
@@ -0,0 +1,1017 @@
+
+rv32ui-v-fence_i: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00007117 auipc sp,0x7
+8000001c: 35010113 addi sp,sp,848 # 80007368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bd050513 addi a0,a0,-1072 # 80002c00 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00002317 auipc t1,0x2
+80002370: c9430313 addi t1,t1,-876 # 80004000 <pt>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00004797 auipc a5,0x4
+8000238c: 06c78793 addi a5,a5,108 # 800063f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00004717 auipc a4,0x4
+800023a0: 05470713 addi a4,a4,84 # 800063f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00004697 auipc a3,0x4
+800023ac: 04f6a623 sw a5,76(a3) # 800063f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00004717 auipc a4,0x4
+800023dc: e2070713 addi a4,a4,-480 # 800061f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf9c08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00004797 auipc a5,0x4
+800024bc: f207ac23 sw zero,-200(a5) # 800063f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00001597 auipc a1,0x1
+800024cc: 86458593 addi a1,a1,-1948 # 80002d2c <pass+0x44>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00001597 auipc a1,0x1
+8000253c: 88058593 addi a1,a1,-1920 # 80002db8 <pass+0xd0>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00001597 auipc a1,0x1
+800025a8: 82c58593 addi a1,a1,-2004 # 80002dd0 <pass+0xe8>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00000597 auipc a1,0x0
+80002614: 76058593 addi a1,a1,1888 # 80002d70 <pass+0x88>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00000597 auipc a1,0x0
+8000274c: 75058593 addi a1,a1,1872 # 80002e98 <pass+0x1b0>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00000597 auipc a1,0x0
+800027c0: 6b858593 addi a1,a1,1720 # 80002e74 <pass+0x18c>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00004b17 auipc s6,0x4
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800061f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00001d17 auipc s10,0x1
+80002840: 7c4d0d13 addi s10,s10,1988 # 80004000 <pt>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00004717 auipc a4,0x4
+8000285c: b8f72c23 sw a5,-1128(a4) # 800063f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00004717 auipc a4,0x4
+800028e8: b0c70713 addi a4,a4,-1268 # 800063f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00004717 auipc a4,0x4
+800028fc: aef72c23 sw a5,-1288(a4) # 800063f0 <freelist_tail>
+80002900: 00004717 auipc a4,0x4
+80002904: aef72a23 sw a5,-1292(a4) # 800063f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00000617 auipc a2,0x0
+80002914: 5b460613 addi a2,a2,1460 # 80002ec4 <pass+0x1dc>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00000617 auipc a2,0x0
+80002980: 4c460613 addi a2,a2,1220 # 80002e40 <pass+0x158>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 44460613 addi a2,a2,1092 # 80002e0c <pass+0x124>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00002797 auipc a5,0x2
+80002a4c: 5b878793 addi a5,a5,1464 # 80005000 <pt+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00001697 auipc a3,0x1
+80002a60: 5af6a223 sw a5,1444(a3) # 80004000 <pt>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00001717 auipc a4,0x1
+80002a6c: 59870713 addi a4,a4,1432 # 80004000 <pt>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00002697 auipc a3,0x2
+80002a7c: 58f6a223 sw a5,1412(a3) # 80004ffc <pt+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf9ccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc03797 auipc a5,0x7fc03
+80002aec: 51878793 addi a5,a5,1304 # ffc06000 <_end+0x7fbffc08>
+80002af0: 00004717 auipc a4,0x4
+80002af4: 90f72223 sw a5,-1788(a4) # 800063f4 <freelist_head>
+80002af8: 7fc03797 auipc a5,0x7fc03
+80002afc: 6f878793 addi a5,a5,1784 # ffc061f0 <_end+0x7fbffdf8>
+80002b00: 00004717 auipc a4,0x4
+80002b04: 8ef72823 sw a5,-1808(a4) # 800063f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00003717 auipc a4,0x3
+80002b10: 4f470713 addi a4,a4,1268 # 80006000 <freelist_nodes>
+80002b14: 00003317 auipc t1,0x3
+80002b18: 6e430313 addi t1,t1,1764 # 800061f8 <user_mapping>
+80002b1c: 00500793 li a5,5
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00003797 auipc a5,0x3
+80002b6c: 6807a623 sw zero,1676(a5) # 800061f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 08d6d7b7 lui a5,0x8d6d
+80002b9c: 00080637 lui a2,0x80
+80002ba0: e9e78793 addi a5,a5,-354 # 8d6ce9e <_start-0x77293162>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+80002be0: 0000 unimp
+80002be2: 0000 unimp
+80002be4: 0000 unimp
+80002be6: 0000 unimp
+80002be8: 0000 unimp
+80002bea: 0000 unimp
+80002bec: 0000 unimp
+80002bee: 0000 unimp
+80002bf0: 0000 unimp
+80002bf2: 0000 unimp
+80002bf4: 0000 unimp
+80002bf6: 0000 unimp
+80002bf8: 0000 unimp
+80002bfa: 0000 unimp
+80002bfc: 0000 unimp
+80002bfe: 0000 unimp
+
+80002c00 <userstart>:
+80002c00: 06f00693 li a3,111
+80002c04: 00000517 auipc a0,0x0
+80002c08: 3fc51503 lh a0,1020(a0) # 80003000 <begin_signature>
+80002c0c: 00000597 auipc a1,0x0
+80002c10: 3f659583 lh a1,1014(a1) # 80003002 <begin_signature+0x2>
+80002c14: 00000013 nop
+80002c18: 00000013 nop
+80002c1c: 00000013 nop
+80002c20: 00000013 nop
+80002c24: 00000013 nop
+80002c28: 00000013 nop
+80002c2c: 00000013 nop
+80002c30: 00000013 nop
+80002c34: 00000013 nop
+80002c38: 00000013 nop
+80002c3c: 00000013 nop
+80002c40: 00000297 auipc t0,0x0
+80002c44: 00a29a23 sh a0,20(t0) # 80002c54 <userstart+0x54>
+80002c48: 00000297 auipc t0,0x0
+80002c4c: 00b29723 sh a1,14(t0) # 80002c56 <userstart+0x56>
+80002c50: 0000100f fence.i
+80002c54: 0de68693 addi a3,a3,222
+
+80002c58 <test_2>:
+80002c58: 00000013 nop
+80002c5c: 1bc00e93 li t4,444
+80002c60: 00200193 li gp,2
+80002c64: 07d69a63 bne a3,t4,80002cd8 <fail>
+80002c68: 06400713 li a4,100
+80002c6c: fff70713 addi a4,a4,-1
+80002c70: fe071ee3 bnez a4,80002c6c <test_2+0x14>
+80002c74: 00000297 auipc t0,0x0
+80002c78: 04a29623 sh a0,76(t0) # 80002cc0 <test_2+0x68>
+80002c7c: 00000297 auipc t0,0x0
+80002c80: 04b29323 sh a1,70(t0) # 80002cc2 <test_2+0x6a>
+80002c84: 0000100f fence.i
+80002c88: 00000013 nop
+80002c8c: 00000013 nop
+80002c90: 00000013 nop
+80002c94: 00000013 nop
+80002c98: 00000013 nop
+80002c9c: 00000013 nop
+80002ca0: 00000013 nop
+80002ca4: 00000013 nop
+80002ca8: 00000013 nop
+80002cac: 00000013 nop
+80002cb0: 00000013 nop
+80002cb4: 00000013 nop
+80002cb8: 00000013 nop
+80002cbc: 00000013 nop
+80002cc0: 22b68693 addi a3,a3,555
+
+80002cc4 <test_3>:
+80002cc4: 00000013 nop
+80002cc8: 30900e93 li t4,777
+80002ccc: 00300193 li gp,3
+80002cd0: 01d69463 bne a3,t4,80002cd8 <fail>
+80002cd4: 00301a63 bne zero,gp,80002ce8 <pass>
+
+80002cd8 <fail>:
+80002cd8: 00119513 slli a0,gp,0x1
+80002cdc: 00050063 beqz a0,80002cdc <fail+0x4>
+80002ce0: 00156513 ori a0,a0,1
+80002ce4: 00000073 ecall
+
+80002ce8 <pass>:
+80002ce8: 00100513 li a0,1
+80002cec: 00000073 ecall
+80002cf0: c0001073 unimp
+80002cf4: 0000 unimp
+80002cf6: 0000 unimp
+80002cf8: 0000 unimp
+80002cfa: 0000 unimp
+80002cfc: 0000 unimp
+80002cfe: 0000 unimp
+80002d00: 0000 unimp
+80002d02: 0000 unimp
+80002d04: 0000 unimp
+80002d06: 0000 unimp
+80002d08: 0000 unimp
+80002d0a: 0000 unimp
+80002d0c: 0000 unimp
+80002d0e: 0000 unimp
+80002d10: 0000 unimp
+80002d12: 0000 unimp
+80002d14: 0000 unimp
+80002d16: 0000 unimp
+80002d18: 0000 unimp
+80002d1a: 0000 unimp
+80002d1c: 0000 unimp
+80002d1e: 0000 unimp
+80002d20: 0000 unimp
+80002d22: 0000 unimp
+80002d24: 0000 unimp
+80002d26: 0000 unimp
+80002d28: 0000 unimp
+80002d2a: 0000 unimp
+
+Disassembly of section .data:
+
+80003000 <begin_signature>:
+80003000: 14d68693 addi a3,a3,333
diff --git a/test/riscv-tests/rv32ui-v-fence_i.elf b/test/riscv-tests/rv32ui-v-fence_i.elf
new file mode 100644
index 0000000..9489075
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-fence_i.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-v-jal.dump b/test/riscv-tests/rv32ui-v-jal.dump
new file mode 100644
index 0000000..7f96c3c
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-jal.dump
@@ -0,0 +1,937 @@
+
+rv32ui-v-jal: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00006117 auipc sp,0x6
+8000001c: 35010113 addi sp,sp,848 # 80006368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00001317 auipc t1,0x1
+80002370: c9430313 addi t1,t1,-876 # 80003000 <begin_signature>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00003797 auipc a5,0x3
+8000238c: 06c78793 addi a5,a5,108 # 800053f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00003717 auipc a4,0x3
+800023a0: 05470713 addi a4,a4,84 # 800053f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00003697 auipc a3,0x3
+800023ac: 04f6a623 sw a5,76(a3) # 800053f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00003717 auipc a4,0x3
+800023dc: e2070713 addi a4,a4,-480 # 800051f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbfac08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00003797 auipc a5,0x3
+800024bc: f207ac23 sw zero,-200(a5) # 800053f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00000597 auipc a1,0x0
+800024cc: 78858593 addi a1,a1,1928 # 80002c50 <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00000597 auipc a1,0x0
+8000253c: 7a458593 addi a1,a1,1956 # 80002cdc <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00000597 auipc a1,0x0
+800025a8: 75058593 addi a1,a1,1872 # 80002cf4 <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00000597 auipc a1,0x0
+80002614: 68458593 addi a1,a1,1668 # 80002c94 <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00000597 auipc a1,0x0
+8000274c: 67458593 addi a1,a1,1652 # 80002dbc <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00000597 auipc a1,0x0
+800027c0: 5dc58593 addi a1,a1,1500 # 80002d98 <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00003b17 auipc s6,0x3
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800051f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00000d17 auipc s10,0x0
+80002840: 7c4d0d13 addi s10,s10,1988 # 80003000 <begin_signature>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00003717 auipc a4,0x3
+8000285c: b8f72c23 sw a5,-1128(a4) # 800053f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00003717 auipc a4,0x3
+800028e8: b0c70713 addi a4,a4,-1268 # 800053f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00003717 auipc a4,0x3
+800028fc: aef72c23 sw a5,-1288(a4) # 800053f0 <freelist_tail>
+80002900: 00003717 auipc a4,0x3
+80002904: aef72a23 sw a5,-1292(a4) # 800053f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00000617 auipc a2,0x0
+80002914: 4d860613 addi a2,a2,1240 # 80002de8 <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00000617 auipc a2,0x0
+80002980: 3e860613 addi a2,a2,1000 # 80002d64 <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 36860613 addi a2,a2,872 # 80002d30 <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00001797 auipc a5,0x1
+80002a4c: 5b878793 addi a5,a5,1464 # 80004000 <begin_signature+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00000697 auipc a3,0x0
+80002a60: 5af6a223 sw a5,1444(a3) # 80003000 <begin_signature>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00000717 auipc a4,0x0
+80002a6c: 59870713 addi a4,a4,1432 # 80003000 <begin_signature>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00001697 auipc a3,0x1
+80002a7c: 58f6a223 sw a5,1412(a3) # 80003ffc <begin_signature+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbfaccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc02797 auipc a5,0x7fc02
+80002aec: 51878793 addi a5,a5,1304 # ffc05000 <_end+0x7fbffc08>
+80002af0: 00003717 auipc a4,0x3
+80002af4: 90f72223 sw a5,-1788(a4) # 800053f4 <freelist_head>
+80002af8: 7fc02797 auipc a5,0x7fc02
+80002afc: 6f878793 addi a5,a5,1784 # ffc051f0 <_end+0x7fbffdf8>
+80002b00: 00003717 auipc a4,0x3
+80002b04: 8ef72823 sw a5,-1808(a4) # 800053f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00002717 auipc a4,0x2
+80002b10: 4f470713 addi a4,a4,1268 # 80005000 <freelist_nodes>
+80002b14: 00002317 auipc t1,0x2
+80002b18: 6e430313 addi t1,t1,1764 # 800051f8 <user_mapping>
+80002b1c: 01900793 li a5,25
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00002797 auipc a5,0x2
+80002b6c: 6807a623 sw zero,1676(a5) # 800051f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 0b08b7b7 lui a5,0xb08b
+80002b9c: 00080637 lui a2,0x80
+80002ba0: 85f78793 addi a5,a5,-1953 # b08a85f <_start-0x74f757a1>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: 00200193 li gp,2
+80002be4: 00000093 li ra,0
+80002be8: 0100026f jal tp,80002bf8 <target_2>
+
+80002bec <linkaddr_2>:
+80002bec: 00000013 nop
+80002bf0: 00000013 nop
+80002bf4: 0400006f j 80002c34 <fail>
+
+80002bf8 <target_2>:
+80002bf8: 00000117 auipc sp,0x0
+80002bfc: ff410113 addi sp,sp,-12 # 80002bec <linkaddr_2>
+80002c00: 02411a63 bne sp,tp,80002c34 <fail>
+
+80002c04 <test_3>:
+80002c04: 00100093 li ra,1
+80002c08: 0140006f j 80002c1c <test_3+0x18>
+80002c0c: 00108093 addi ra,ra,1
+80002c10: 00108093 addi ra,ra,1
+80002c14: 00108093 addi ra,ra,1
+80002c18: 00108093 addi ra,ra,1
+80002c1c: 00108093 addi ra,ra,1
+80002c20: 00108093 addi ra,ra,1
+80002c24: 00300e93 li t4,3
+80002c28: 00300193 li gp,3
+80002c2c: 01d09463 bne ra,t4,80002c34 <fail>
+80002c30: 00301a63 bne zero,gp,80002c44 <pass>
+
+80002c34 <fail>:
+80002c34: 00119513 slli a0,gp,0x1
+80002c38: 00050063 beqz a0,80002c38 <fail+0x4>
+80002c3c: 00156513 ori a0,a0,1
+80002c40: 00000073 ecall
+
+80002c44 <pass>:
+80002c44: 00100513 li a0,1
+80002c48: 00000073 ecall
+80002c4c: c0001073 unimp
diff --git a/test/riscv-tests/rv32ui-v-jal.elf b/test/riscv-tests/rv32ui-v-jal.elf
new file mode 100644
index 0000000..c059f2a
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-jal.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-v-jalr.dump b/test/riscv-tests/rv32ui-v-jalr.dump
new file mode 100644
index 0000000..b6b2395
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-jalr.dump
@@ -0,0 +1,975 @@
+
+rv32ui-v-jalr: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00006117 auipc sp,0x6
+8000001c: 35010113 addi sp,sp,848 # 80006368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00001317 auipc t1,0x1
+80002370: c9430313 addi t1,t1,-876 # 80003000 <begin_signature>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00003797 auipc a5,0x3
+8000238c: 06c78793 addi a5,a5,108 # 800053f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00003717 auipc a4,0x3
+800023a0: 05470713 addi a4,a4,84 # 800053f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00003697 auipc a3,0x3
+800023ac: 04f6a623 sw a5,76(a3) # 800053f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00003717 auipc a4,0x3
+800023dc: e2070713 addi a4,a4,-480 # 800051f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbfac08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00003797 auipc a5,0x3
+800024bc: f207ac23 sw zero,-200(a5) # 800053f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00001597 auipc a1,0x1
+800024cc: 80858593 addi a1,a1,-2040 # 80002cd0 <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00001597 auipc a1,0x1
+8000253c: 82458593 addi a1,a1,-2012 # 80002d5c <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00000597 auipc a1,0x0
+800025a8: 7d058593 addi a1,a1,2000 # 80002d74 <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00000597 auipc a1,0x0
+80002614: 70458593 addi a1,a1,1796 # 80002d14 <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00000597 auipc a1,0x0
+8000274c: 6f458593 addi a1,a1,1780 # 80002e3c <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00000597 auipc a1,0x0
+800027c0: 65c58593 addi a1,a1,1628 # 80002e18 <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00003b17 auipc s6,0x3
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800051f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00000d17 auipc s10,0x0
+80002840: 7c4d0d13 addi s10,s10,1988 # 80003000 <begin_signature>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00003717 auipc a4,0x3
+8000285c: b8f72c23 sw a5,-1128(a4) # 800053f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00003717 auipc a4,0x3
+800028e8: b0c70713 addi a4,a4,-1268 # 800053f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00003717 auipc a4,0x3
+800028fc: aef72c23 sw a5,-1288(a4) # 800053f0 <freelist_tail>
+80002900: 00003717 auipc a4,0x3
+80002904: aef72a23 sw a5,-1292(a4) # 800053f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00000617 auipc a2,0x0
+80002914: 55860613 addi a2,a2,1368 # 80002e68 <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00000617 auipc a2,0x0
+80002980: 46860613 addi a2,a2,1128 # 80002de4 <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 3e860613 addi a2,a2,1000 # 80002db0 <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00001797 auipc a5,0x1
+80002a4c: 5b878793 addi a5,a5,1464 # 80004000 <begin_signature+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00000697 auipc a3,0x0
+80002a60: 5af6a223 sw a5,1444(a3) # 80003000 <begin_signature>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00000717 auipc a4,0x0
+80002a6c: 59870713 addi a4,a4,1432 # 80003000 <begin_signature>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00001697 auipc a3,0x1
+80002a7c: 58f6a223 sw a5,1412(a3) # 80003ffc <begin_signature+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbfaccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc02797 auipc a5,0x7fc02
+80002aec: 51878793 addi a5,a5,1304 # ffc05000 <_end+0x7fbffc08>
+80002af0: 00003717 auipc a4,0x3
+80002af4: 90f72223 sw a5,-1788(a4) # 800053f4 <freelist_head>
+80002af8: 7fc02797 auipc a5,0x7fc02
+80002afc: 6f878793 addi a5,a5,1784 # ffc051f0 <_end+0x7fbffdf8>
+80002b00: 00003717 auipc a4,0x3
+80002b04: 8ef72823 sw a5,-1808(a4) # 800053f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00002717 auipc a4,0x2
+80002b10: 4f470713 addi a4,a4,1268 # 80005000 <freelist_nodes>
+80002b14: 00002317 auipc t1,0x2
+80002b18: 6e430313 addi t1,t1,1764 # 800051f8 <user_mapping>
+80002b1c: 03b00793 li a5,59
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00002797 auipc a5,0x2
+80002b6c: 6807a623 sw zero,1676(a5) # 800051f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 0b7f17b7 lui a5,0xb7f1
+80002b9c: 00080637 lui a2,0x80
+80002ba0: a3678793 addi a5,a5,-1482 # b7f0a36 <_start-0x7480f5ca>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: 00200193 li gp,2
+80002be4: 00000293 li t0,0
+80002be8: 00000317 auipc t1,0x0
+80002bec: 01030313 addi t1,t1,16 # 80002bf8 <target_2>
+80002bf0: 000302e7 jalr t0,t1
+
+80002bf4 <linkaddr_2>:
+80002bf4: 0c00006f j 80002cb4 <fail>
+
+80002bf8 <target_2>:
+80002bf8: 00000317 auipc t1,0x0
+80002bfc: ffc30313 addi t1,t1,-4 # 80002bf4 <linkaddr_2>
+80002c00: 0a629a63 bne t0,t1,80002cb4 <fail>
+
+80002c04 <test_4>:
+80002c04: 00400193 li gp,4
+80002c08: 00000213 li tp,0
+80002c0c: 00000317 auipc t1,0x0
+80002c10: 01030313 addi t1,t1,16 # 80002c1c <test_4+0x18>
+80002c14: 000309e7 jalr s3,t1
+80002c18: 08301e63 bne zero,gp,80002cb4 <fail>
+80002c1c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002c20: 00200293 li t0,2
+80002c24: fe5214e3 bne tp,t0,80002c0c <test_4+0x8>
+
+80002c28 <test_5>:
+80002c28: 00500193 li gp,5
+80002c2c: 00000213 li tp,0
+80002c30: 00000317 auipc t1,0x0
+80002c34: 01430313 addi t1,t1,20 # 80002c44 <test_5+0x1c>
+80002c38: 00000013 nop
+80002c3c: 000309e7 jalr s3,t1
+80002c40: 06301a63 bne zero,gp,80002cb4 <fail>
+80002c44: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002c48: 00200293 li t0,2
+80002c4c: fe5212e3 bne tp,t0,80002c30 <test_5+0x8>
+
+80002c50 <test_6>:
+80002c50: 00600193 li gp,6
+80002c54: 00000213 li tp,0
+80002c58: 00000317 auipc t1,0x0
+80002c5c: 01830313 addi t1,t1,24 # 80002c70 <test_6+0x20>
+80002c60: 00000013 nop
+80002c64: 00000013 nop
+80002c68: 000309e7 jalr s3,t1
+80002c6c: 04301463 bne zero,gp,80002cb4 <fail>
+80002c70: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002c74: 00200293 li t0,2
+80002c78: fe5210e3 bne tp,t0,80002c58 <test_6+0x8>
+
+80002c7c <test_7>:
+80002c7c: 00100293 li t0,1
+80002c80: 00000317 auipc t1,0x0
+80002c84: 01c30313 addi t1,t1,28 # 80002c9c <test_7+0x20>
+80002c88: ffc30067 jr -4(t1)
+80002c8c: 00128293 addi t0,t0,1
+80002c90: 00128293 addi t0,t0,1
+80002c94: 00128293 addi t0,t0,1
+80002c98: 00128293 addi t0,t0,1
+80002c9c: 00128293 addi t0,t0,1
+80002ca0: 00128293 addi t0,t0,1
+80002ca4: 00400e93 li t4,4
+80002ca8: 00700193 li gp,7
+80002cac: 01d29463 bne t0,t4,80002cb4 <fail>
+80002cb0: 00301a63 bne zero,gp,80002cc4 <pass>
+
+80002cb4 <fail>:
+80002cb4: 00119513 slli a0,gp,0x1
+80002cb8: 00050063 beqz a0,80002cb8 <fail+0x4>
+80002cbc: 00156513 ori a0,a0,1
+80002cc0: 00000073 ecall
+
+80002cc4 <pass>:
+80002cc4: 00100513 li a0,1
+80002cc8: 00000073 ecall
+80002ccc: c0001073 unimp
diff --git a/test/riscv-tests/rv32ui-v-jalr.elf b/test/riscv-tests/rv32ui-v-jalr.elf
new file mode 100644
index 0000000..2eb7966
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-jalr.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-v-lb.dump b/test/riscv-tests/rv32ui-v-lb.dump
new file mode 100644
index 0000000..72282ab
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-lb.dump
@@ -0,0 +1,1107 @@
+
+rv32ui-v-lb: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00008117 auipc sp,0x8
+8000001c: 35010113 addi sp,sp,848 # 80008368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00003317 auipc t1,0x3
+80002370: c9430313 addi t1,t1,-876 # 80005000 <pt>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00005797 auipc a5,0x5
+8000238c: 06c78793 addi a5,a5,108 # 800073f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00005717 auipc a4,0x5
+800023a0: 05470713 addi a4,a4,84 # 800073f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00005697 auipc a3,0x5
+800023ac: 04f6a623 sw a5,76(a3) # 800073f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00005717 auipc a4,0x5
+800023dc: e2070713 addi a4,a4,-480 # 800071f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf8c08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00005797 auipc a5,0x5
+800024bc: f207ac23 sw zero,-200(a5) # 800073f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00001597 auipc a1,0x1
+800024cc: 98058593 addi a1,a1,-1664 # 80002e48 <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00001597 auipc a1,0x1
+8000253c: 99c58593 addi a1,a1,-1636 # 80002ed4 <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00001597 auipc a1,0x1
+800025a8: 94858593 addi a1,a1,-1720 # 80002eec <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00001597 auipc a1,0x1
+80002614: 87c58593 addi a1,a1,-1924 # 80002e8c <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00001597 auipc a1,0x1
+8000274c: 86c58593 addi a1,a1,-1940 # 80002fb4 <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00000597 auipc a1,0x0
+800027c0: 7d458593 addi a1,a1,2004 # 80002f90 <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00005b17 auipc s6,0x5
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800071f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00002d17 auipc s10,0x2
+80002840: 7c4d0d13 addi s10,s10,1988 # 80005000 <pt>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00005717 auipc a4,0x5
+8000285c: b8f72c23 sw a5,-1128(a4) # 800073f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00005717 auipc a4,0x5
+800028e8: b0c70713 addi a4,a4,-1268 # 800073f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00005717 auipc a4,0x5
+800028fc: aef72c23 sw a5,-1288(a4) # 800073f0 <freelist_tail>
+80002900: 00005717 auipc a4,0x5
+80002904: aef72a23 sw a5,-1292(a4) # 800073f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00000617 auipc a2,0x0
+80002914: 6d060613 addi a2,a2,1744 # 80002fe0 <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00000617 auipc a2,0x0
+80002980: 5e060613 addi a2,a2,1504 # 80002f5c <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 56060613 addi a2,a2,1376 # 80002f28 <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00003797 auipc a5,0x3
+80002a4c: 5b878793 addi a5,a5,1464 # 80006000 <pt+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00002697 auipc a3,0x2
+80002a60: 5af6a223 sw a5,1444(a3) # 80005000 <pt>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00002717 auipc a4,0x2
+80002a6c: 59870713 addi a4,a4,1432 # 80005000 <pt>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00003697 auipc a3,0x3
+80002a7c: 58f6a223 sw a5,1412(a3) # 80005ffc <pt+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf8ccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc04797 auipc a5,0x7fc04
+80002aec: 51878793 addi a5,a5,1304 # ffc07000 <_end+0x7fbffc08>
+80002af0: 00005717 auipc a4,0x5
+80002af4: 90f72223 sw a5,-1788(a4) # 800073f4 <freelist_head>
+80002af8: 7fc04797 auipc a5,0x7fc04
+80002afc: 6f878793 addi a5,a5,1784 # ffc071f0 <_end+0x7fbffdf8>
+80002b00: 00005717 auipc a4,0x5
+80002b04: 8ef72823 sw a5,-1808(a4) # 800073f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00004717 auipc a4,0x4
+80002b10: 4f470713 addi a4,a4,1268 # 80007000 <freelist_nodes>
+80002b14: 00004317 auipc t1,0x4
+80002b18: 6e430313 addi t1,t1,1764 # 800071f8 <user_mapping>
+80002b1c: 00b00793 li a5,11
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00004797 auipc a5,0x4
+80002b6c: 6807a623 sw zero,1676(a5) # 800071f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 074ad7b7 lui a5,0x74ad
+80002b9c: 00080637 lui a2,0x80
+80002ba0: a5a78793 addi a5,a5,-1446 # 74aca5a <_start-0x78b535a6>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: 00001097 auipc ra,0x1
+80002be4: 42008093 addi ra,ra,1056 # 80004000 <begin_signature>
+80002be8: 00008f03 lb t5,0(ra)
+80002bec: fff00e93 li t4,-1
+80002bf0: 00200193 li gp,2
+80002bf4: 23df1c63 bne t5,t4,80002e2c <fail>
+
+80002bf8 <test_3>:
+80002bf8: 00001097 auipc ra,0x1
+80002bfc: 40808093 addi ra,ra,1032 # 80004000 <begin_signature>
+80002c00: 00108f03 lb t5,1(ra)
+80002c04: 00000e93 li t4,0
+80002c08: 00300193 li gp,3
+80002c0c: 23df1063 bne t5,t4,80002e2c <fail>
+
+80002c10 <test_4>:
+80002c10: 00001097 auipc ra,0x1
+80002c14: 3f008093 addi ra,ra,1008 # 80004000 <begin_signature>
+80002c18: 00208f03 lb t5,2(ra)
+80002c1c: ff000e93 li t4,-16
+80002c20: 00400193 li gp,4
+80002c24: 21df1463 bne t5,t4,80002e2c <fail>
+
+80002c28 <test_5>:
+80002c28: 00001097 auipc ra,0x1
+80002c2c: 3d808093 addi ra,ra,984 # 80004000 <begin_signature>
+80002c30: 00308f03 lb t5,3(ra)
+80002c34: 00f00e93 li t4,15
+80002c38: 00500193 li gp,5
+80002c3c: 1fdf1863 bne t5,t4,80002e2c <fail>
+
+80002c40 <test_6>:
+80002c40: 00001097 auipc ra,0x1
+80002c44: 3c308093 addi ra,ra,963 # 80004003 <tdat4>
+80002c48: ffd08f03 lb t5,-3(ra)
+80002c4c: fff00e93 li t4,-1
+80002c50: 00600193 li gp,6
+80002c54: 1ddf1c63 bne t5,t4,80002e2c <fail>
+
+80002c58 <test_7>:
+80002c58: 00001097 auipc ra,0x1
+80002c5c: 3ab08093 addi ra,ra,939 # 80004003 <tdat4>
+80002c60: ffe08f03 lb t5,-2(ra)
+80002c64: 00000e93 li t4,0
+80002c68: 00700193 li gp,7
+80002c6c: 1ddf1063 bne t5,t4,80002e2c <fail>
+
+80002c70 <test_8>:
+80002c70: 00001097 auipc ra,0x1
+80002c74: 39308093 addi ra,ra,915 # 80004003 <tdat4>
+80002c78: fff08f03 lb t5,-1(ra)
+80002c7c: ff000e93 li t4,-16
+80002c80: 00800193 li gp,8
+80002c84: 1bdf1463 bne t5,t4,80002e2c <fail>
+
+80002c88 <test_9>:
+80002c88: 00001097 auipc ra,0x1
+80002c8c: 37b08093 addi ra,ra,891 # 80004003 <tdat4>
+80002c90: 00008f03 lb t5,0(ra)
+80002c94: 00f00e93 li t4,15
+80002c98: 00900193 li gp,9
+80002c9c: 19df1863 bne t5,t4,80002e2c <fail>
+
+80002ca0 <test_10>:
+80002ca0: 00001097 auipc ra,0x1
+80002ca4: 36008093 addi ra,ra,864 # 80004000 <begin_signature>
+80002ca8: fe008093 addi ra,ra,-32
+80002cac: 02008283 lb t0,32(ra)
+80002cb0: fff00e93 li t4,-1
+80002cb4: 00a00193 li gp,10
+80002cb8: 17d29a63 bne t0,t4,80002e2c <fail>
+
+80002cbc <test_11>:
+80002cbc: 00001097 auipc ra,0x1
+80002cc0: 34408093 addi ra,ra,836 # 80004000 <begin_signature>
+80002cc4: ffa08093 addi ra,ra,-6
+80002cc8: 00708283 lb t0,7(ra)
+80002ccc: 00000e93 li t4,0
+80002cd0: 00b00193 li gp,11
+80002cd4: 15d29c63 bne t0,t4,80002e2c <fail>
+
+80002cd8 <test_12>:
+80002cd8: 00c00193 li gp,12
+80002cdc: 00000213 li tp,0
+80002ce0: 00001097 auipc ra,0x1
+80002ce4: 32108093 addi ra,ra,801 # 80004001 <tdat2>
+80002ce8: 00108f03 lb t5,1(ra)
+80002cec: 000f0313 mv t1,t5
+80002cf0: ff000e93 li t4,-16
+80002cf4: 13d31c63 bne t1,t4,80002e2c <fail>
+80002cf8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002cfc: 00200293 li t0,2
+80002d00: fe5210e3 bne tp,t0,80002ce0 <test_12+0x8>
+
+80002d04 <test_13>:
+80002d04: 00d00193 li gp,13
+80002d08: 00000213 li tp,0
+80002d0c: 00001097 auipc ra,0x1
+80002d10: 2f608093 addi ra,ra,758 # 80004002 <tdat3>
+80002d14: 00108f03 lb t5,1(ra)
+80002d18: 00000013 nop
+80002d1c: 000f0313 mv t1,t5
+80002d20: 00f00e93 li t4,15
+80002d24: 11d31463 bne t1,t4,80002e2c <fail>
+80002d28: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d2c: 00200293 li t0,2
+80002d30: fc521ee3 bne tp,t0,80002d0c <test_13+0x8>
+
+80002d34 <test_14>:
+80002d34: 00e00193 li gp,14
+80002d38: 00000213 li tp,0
+80002d3c: 00001097 auipc ra,0x1
+80002d40: 2c408093 addi ra,ra,708 # 80004000 <begin_signature>
+80002d44: 00108f03 lb t5,1(ra)
+80002d48: 00000013 nop
+80002d4c: 00000013 nop
+80002d50: 000f0313 mv t1,t5
+80002d54: 00000e93 li t4,0
+80002d58: 0dd31a63 bne t1,t4,80002e2c <fail>
+80002d5c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d60: 00200293 li t0,2
+80002d64: fc521ce3 bne tp,t0,80002d3c <test_14+0x8>
+
+80002d68 <test_15>:
+80002d68: 00f00193 li gp,15
+80002d6c: 00000213 li tp,0
+80002d70: 00001097 auipc ra,0x1
+80002d74: 29108093 addi ra,ra,657 # 80004001 <tdat2>
+80002d78: 00108f03 lb t5,1(ra)
+80002d7c: ff000e93 li t4,-16
+80002d80: 0bdf1663 bne t5,t4,80002e2c <fail>
+80002d84: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d88: 00200293 li t0,2
+80002d8c: fe5212e3 bne tp,t0,80002d70 <test_15+0x8>
+
+80002d90 <test_16>:
+80002d90: 01000193 li gp,16
+80002d94: 00000213 li tp,0
+80002d98: 00001097 auipc ra,0x1
+80002d9c: 26a08093 addi ra,ra,618 # 80004002 <tdat3>
+80002da0: 00000013 nop
+80002da4: 00108f03 lb t5,1(ra)
+80002da8: 00f00e93 li t4,15
+80002dac: 09df1063 bne t5,t4,80002e2c <fail>
+80002db0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002db4: 00200293 li t0,2
+80002db8: fe5210e3 bne tp,t0,80002d98 <test_16+0x8>
+
+80002dbc <test_17>:
+80002dbc: 01100193 li gp,17
+80002dc0: 00000213 li tp,0
+80002dc4: 00001097 auipc ra,0x1
+80002dc8: 23c08093 addi ra,ra,572 # 80004000 <begin_signature>
+80002dcc: 00000013 nop
+80002dd0: 00000013 nop
+80002dd4: 00108f03 lb t5,1(ra)
+80002dd8: 00000e93 li t4,0
+80002ddc: 05df1863 bne t5,t4,80002e2c <fail>
+80002de0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002de4: 00200293 li t0,2
+80002de8: fc521ee3 bne tp,t0,80002dc4 <test_17+0x8>
+
+80002dec <test_18>:
+80002dec: 00001297 auipc t0,0x1
+80002df0: 21428293 addi t0,t0,532 # 80004000 <begin_signature>
+80002df4: 00028103 lb sp,0(t0)
+80002df8: 00200113 li sp,2
+80002dfc: 00200e93 li t4,2
+80002e00: 01200193 li gp,18
+80002e04: 03d11463 bne sp,t4,80002e2c <fail>
+
+80002e08 <test_19>:
+80002e08: 00001297 auipc t0,0x1
+80002e0c: 1f828293 addi t0,t0,504 # 80004000 <begin_signature>
+80002e10: 00028103 lb sp,0(t0)
+80002e14: 00000013 nop
+80002e18: 00200113 li sp,2
+80002e1c: 00200e93 li t4,2
+80002e20: 01300193 li gp,19
+80002e24: 01d11463 bne sp,t4,80002e2c <fail>
+80002e28: 00301a63 bne zero,gp,80002e3c <pass>
+
+80002e2c <fail>:
+80002e2c: 00119513 slli a0,gp,0x1
+80002e30: 00050063 beqz a0,80002e30 <fail+0x4>
+80002e34: 00156513 ori a0,a0,1
+80002e38: 00000073 ecall
+
+80002e3c <pass>:
+80002e3c: 00100513 li a0,1
+80002e40: 00000073 ecall
+80002e44: c0001073 unimp
+
+Disassembly of section .data:
+
+80004000 <begin_signature>:
+80004000: 0xff
+
+80004001 <tdat2>:
+80004001: fsw fs0,32(s0)
+
+80004002 <tdat3>:
+80004002: addi a2,sp,988
+
+80004003 <tdat4>:
+80004003: 0f Address 0x0000000080004003 is out of bounds.
+
+80004007:
diff --git a/test/riscv-tests/rv32ui-v-lb.elf b/test/riscv-tests/rv32ui-v-lb.elf
new file mode 100644
index 0000000..cb02bba
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-lb.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-v-lbu.dump b/test/riscv-tests/rv32ui-v-lbu.dump
new file mode 100644
index 0000000..9ad9e74
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-lbu.dump
@@ -0,0 +1,1107 @@
+
+rv32ui-v-lbu: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00008117 auipc sp,0x8
+8000001c: 35010113 addi sp,sp,848 # 80008368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00003317 auipc t1,0x3
+80002370: c9430313 addi t1,t1,-876 # 80005000 <pt>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00005797 auipc a5,0x5
+8000238c: 06c78793 addi a5,a5,108 # 800073f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00005717 auipc a4,0x5
+800023a0: 05470713 addi a4,a4,84 # 800073f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00005697 auipc a3,0x5
+800023ac: 04f6a623 sw a5,76(a3) # 800073f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00005717 auipc a4,0x5
+800023dc: e2070713 addi a4,a4,-480 # 800071f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf8c08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00005797 auipc a5,0x5
+800024bc: f207ac23 sw zero,-200(a5) # 800073f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00001597 auipc a1,0x1
+800024cc: 98058593 addi a1,a1,-1664 # 80002e48 <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00001597 auipc a1,0x1
+8000253c: 99c58593 addi a1,a1,-1636 # 80002ed4 <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00001597 auipc a1,0x1
+800025a8: 94858593 addi a1,a1,-1720 # 80002eec <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00001597 auipc a1,0x1
+80002614: 87c58593 addi a1,a1,-1924 # 80002e8c <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00001597 auipc a1,0x1
+8000274c: 86c58593 addi a1,a1,-1940 # 80002fb4 <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00000597 auipc a1,0x0
+800027c0: 7d458593 addi a1,a1,2004 # 80002f90 <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00005b17 auipc s6,0x5
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800071f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00002d17 auipc s10,0x2
+80002840: 7c4d0d13 addi s10,s10,1988 # 80005000 <pt>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00005717 auipc a4,0x5
+8000285c: b8f72c23 sw a5,-1128(a4) # 800073f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00005717 auipc a4,0x5
+800028e8: b0c70713 addi a4,a4,-1268 # 800073f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00005717 auipc a4,0x5
+800028fc: aef72c23 sw a5,-1288(a4) # 800073f0 <freelist_tail>
+80002900: 00005717 auipc a4,0x5
+80002904: aef72a23 sw a5,-1292(a4) # 800073f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00000617 auipc a2,0x0
+80002914: 6d060613 addi a2,a2,1744 # 80002fe0 <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00000617 auipc a2,0x0
+80002980: 5e060613 addi a2,a2,1504 # 80002f5c <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 56060613 addi a2,a2,1376 # 80002f28 <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00003797 auipc a5,0x3
+80002a4c: 5b878793 addi a5,a5,1464 # 80006000 <pt+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00002697 auipc a3,0x2
+80002a60: 5af6a223 sw a5,1444(a3) # 80005000 <pt>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00002717 auipc a4,0x2
+80002a6c: 59870713 addi a4,a4,1432 # 80005000 <pt>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00003697 auipc a3,0x3
+80002a7c: 58f6a223 sw a5,1412(a3) # 80005ffc <pt+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf8ccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc04797 auipc a5,0x7fc04
+80002aec: 51878793 addi a5,a5,1304 # ffc07000 <_end+0x7fbffc08>
+80002af0: 00005717 auipc a4,0x5
+80002af4: 90f72223 sw a5,-1788(a4) # 800073f4 <freelist_head>
+80002af8: 7fc04797 auipc a5,0x7fc04
+80002afc: 6f878793 addi a5,a5,1784 # ffc071f0 <_end+0x7fbffdf8>
+80002b00: 00005717 auipc a4,0x5
+80002b04: 8ef72823 sw a5,-1808(a4) # 800073f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00004717 auipc a4,0x4
+80002b10: 4f470713 addi a4,a4,1268 # 80007000 <freelist_nodes>
+80002b14: 00004317 auipc t1,0x4
+80002b18: 6e430313 addi t1,t1,1764 # 800071f8 <user_mapping>
+80002b1c: 02d00793 li a5,45
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00004797 auipc a5,0x4
+80002b6c: 6807a623 sw zero,1676(a5) # 800071f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 0bbae7b7 lui a5,0xbbae
+80002b9c: 00080637 lui a2,0x80
+80002ba0: 7e478793 addi a5,a5,2020 # bbae7e4 <_start-0x7445181c>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: 00001097 auipc ra,0x1
+80002be4: 42008093 addi ra,ra,1056 # 80004000 <begin_signature>
+80002be8: 0000cf03 lbu t5,0(ra)
+80002bec: 0ff00e93 li t4,255
+80002bf0: 00200193 li gp,2
+80002bf4: 23df1c63 bne t5,t4,80002e2c <fail>
+
+80002bf8 <test_3>:
+80002bf8: 00001097 auipc ra,0x1
+80002bfc: 40808093 addi ra,ra,1032 # 80004000 <begin_signature>
+80002c00: 0010cf03 lbu t5,1(ra)
+80002c04: 00000e93 li t4,0
+80002c08: 00300193 li gp,3
+80002c0c: 23df1063 bne t5,t4,80002e2c <fail>
+
+80002c10 <test_4>:
+80002c10: 00001097 auipc ra,0x1
+80002c14: 3f008093 addi ra,ra,1008 # 80004000 <begin_signature>
+80002c18: 0020cf03 lbu t5,2(ra)
+80002c1c: 0f000e93 li t4,240
+80002c20: 00400193 li gp,4
+80002c24: 21df1463 bne t5,t4,80002e2c <fail>
+
+80002c28 <test_5>:
+80002c28: 00001097 auipc ra,0x1
+80002c2c: 3d808093 addi ra,ra,984 # 80004000 <begin_signature>
+80002c30: 0030cf03 lbu t5,3(ra)
+80002c34: 00f00e93 li t4,15
+80002c38: 00500193 li gp,5
+80002c3c: 1fdf1863 bne t5,t4,80002e2c <fail>
+
+80002c40 <test_6>:
+80002c40: 00001097 auipc ra,0x1
+80002c44: 3c308093 addi ra,ra,963 # 80004003 <tdat4>
+80002c48: ffd0cf03 lbu t5,-3(ra)
+80002c4c: 0ff00e93 li t4,255
+80002c50: 00600193 li gp,6
+80002c54: 1ddf1c63 bne t5,t4,80002e2c <fail>
+
+80002c58 <test_7>:
+80002c58: 00001097 auipc ra,0x1
+80002c5c: 3ab08093 addi ra,ra,939 # 80004003 <tdat4>
+80002c60: ffe0cf03 lbu t5,-2(ra)
+80002c64: 00000e93 li t4,0
+80002c68: 00700193 li gp,7
+80002c6c: 1ddf1063 bne t5,t4,80002e2c <fail>
+
+80002c70 <test_8>:
+80002c70: 00001097 auipc ra,0x1
+80002c74: 39308093 addi ra,ra,915 # 80004003 <tdat4>
+80002c78: fff0cf03 lbu t5,-1(ra)
+80002c7c: 0f000e93 li t4,240
+80002c80: 00800193 li gp,8
+80002c84: 1bdf1463 bne t5,t4,80002e2c <fail>
+
+80002c88 <test_9>:
+80002c88: 00001097 auipc ra,0x1
+80002c8c: 37b08093 addi ra,ra,891 # 80004003 <tdat4>
+80002c90: 0000cf03 lbu t5,0(ra)
+80002c94: 00f00e93 li t4,15
+80002c98: 00900193 li gp,9
+80002c9c: 19df1863 bne t5,t4,80002e2c <fail>
+
+80002ca0 <test_10>:
+80002ca0: 00001097 auipc ra,0x1
+80002ca4: 36008093 addi ra,ra,864 # 80004000 <begin_signature>
+80002ca8: fe008093 addi ra,ra,-32
+80002cac: 0200c283 lbu t0,32(ra)
+80002cb0: 0ff00e93 li t4,255
+80002cb4: 00a00193 li gp,10
+80002cb8: 17d29a63 bne t0,t4,80002e2c <fail>
+
+80002cbc <test_11>:
+80002cbc: 00001097 auipc ra,0x1
+80002cc0: 34408093 addi ra,ra,836 # 80004000 <begin_signature>
+80002cc4: ffa08093 addi ra,ra,-6
+80002cc8: 0070c283 lbu t0,7(ra)
+80002ccc: 00000e93 li t4,0
+80002cd0: 00b00193 li gp,11
+80002cd4: 15d29c63 bne t0,t4,80002e2c <fail>
+
+80002cd8 <test_12>:
+80002cd8: 00c00193 li gp,12
+80002cdc: 00000213 li tp,0
+80002ce0: 00001097 auipc ra,0x1
+80002ce4: 32108093 addi ra,ra,801 # 80004001 <tdat2>
+80002ce8: 0010cf03 lbu t5,1(ra)
+80002cec: 000f0313 mv t1,t5
+80002cf0: 0f000e93 li t4,240
+80002cf4: 13d31c63 bne t1,t4,80002e2c <fail>
+80002cf8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002cfc: 00200293 li t0,2
+80002d00: fe5210e3 bne tp,t0,80002ce0 <test_12+0x8>
+
+80002d04 <test_13>:
+80002d04: 00d00193 li gp,13
+80002d08: 00000213 li tp,0
+80002d0c: 00001097 auipc ra,0x1
+80002d10: 2f608093 addi ra,ra,758 # 80004002 <tdat3>
+80002d14: 0010cf03 lbu t5,1(ra)
+80002d18: 00000013 nop
+80002d1c: 000f0313 mv t1,t5
+80002d20: 00f00e93 li t4,15
+80002d24: 11d31463 bne t1,t4,80002e2c <fail>
+80002d28: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d2c: 00200293 li t0,2
+80002d30: fc521ee3 bne tp,t0,80002d0c <test_13+0x8>
+
+80002d34 <test_14>:
+80002d34: 00e00193 li gp,14
+80002d38: 00000213 li tp,0
+80002d3c: 00001097 auipc ra,0x1
+80002d40: 2c408093 addi ra,ra,708 # 80004000 <begin_signature>
+80002d44: 0010cf03 lbu t5,1(ra)
+80002d48: 00000013 nop
+80002d4c: 00000013 nop
+80002d50: 000f0313 mv t1,t5
+80002d54: 00000e93 li t4,0
+80002d58: 0dd31a63 bne t1,t4,80002e2c <fail>
+80002d5c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d60: 00200293 li t0,2
+80002d64: fc521ce3 bne tp,t0,80002d3c <test_14+0x8>
+
+80002d68 <test_15>:
+80002d68: 00f00193 li gp,15
+80002d6c: 00000213 li tp,0
+80002d70: 00001097 auipc ra,0x1
+80002d74: 29108093 addi ra,ra,657 # 80004001 <tdat2>
+80002d78: 0010cf03 lbu t5,1(ra)
+80002d7c: 0f000e93 li t4,240
+80002d80: 0bdf1663 bne t5,t4,80002e2c <fail>
+80002d84: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d88: 00200293 li t0,2
+80002d8c: fe5212e3 bne tp,t0,80002d70 <test_15+0x8>
+
+80002d90 <test_16>:
+80002d90: 01000193 li gp,16
+80002d94: 00000213 li tp,0
+80002d98: 00001097 auipc ra,0x1
+80002d9c: 26a08093 addi ra,ra,618 # 80004002 <tdat3>
+80002da0: 00000013 nop
+80002da4: 0010cf03 lbu t5,1(ra)
+80002da8: 00f00e93 li t4,15
+80002dac: 09df1063 bne t5,t4,80002e2c <fail>
+80002db0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002db4: 00200293 li t0,2
+80002db8: fe5210e3 bne tp,t0,80002d98 <test_16+0x8>
+
+80002dbc <test_17>:
+80002dbc: 01100193 li gp,17
+80002dc0: 00000213 li tp,0
+80002dc4: 00001097 auipc ra,0x1
+80002dc8: 23c08093 addi ra,ra,572 # 80004000 <begin_signature>
+80002dcc: 00000013 nop
+80002dd0: 00000013 nop
+80002dd4: 0010cf03 lbu t5,1(ra)
+80002dd8: 00000e93 li t4,0
+80002ddc: 05df1863 bne t5,t4,80002e2c <fail>
+80002de0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002de4: 00200293 li t0,2
+80002de8: fc521ee3 bne tp,t0,80002dc4 <test_17+0x8>
+
+80002dec <test_18>:
+80002dec: 00001297 auipc t0,0x1
+80002df0: 21428293 addi t0,t0,532 # 80004000 <begin_signature>
+80002df4: 0002c103 lbu sp,0(t0)
+80002df8: 00200113 li sp,2
+80002dfc: 00200e93 li t4,2
+80002e00: 01200193 li gp,18
+80002e04: 03d11463 bne sp,t4,80002e2c <fail>
+
+80002e08 <test_19>:
+80002e08: 00001297 auipc t0,0x1
+80002e0c: 1f828293 addi t0,t0,504 # 80004000 <begin_signature>
+80002e10: 0002c103 lbu sp,0(t0)
+80002e14: 00000013 nop
+80002e18: 00200113 li sp,2
+80002e1c: 00200e93 li t4,2
+80002e20: 01300193 li gp,19
+80002e24: 01d11463 bne sp,t4,80002e2c <fail>
+80002e28: 00301a63 bne zero,gp,80002e3c <pass>
+
+80002e2c <fail>:
+80002e2c: 00119513 slli a0,gp,0x1
+80002e30: 00050063 beqz a0,80002e30 <fail+0x4>
+80002e34: 00156513 ori a0,a0,1
+80002e38: 00000073 ecall
+
+80002e3c <pass>:
+80002e3c: 00100513 li a0,1
+80002e40: 00000073 ecall
+80002e44: c0001073 unimp
+
+Disassembly of section .data:
+
+80004000 <begin_signature>:
+80004000: 0xff
+
+80004001 <tdat2>:
+80004001: fsw fs0,32(s0)
+
+80004002 <tdat3>:
+80004002: addi a2,sp,988
+
+80004003 <tdat4>:
+80004003: 0f Address 0x0000000080004003 is out of bounds.
+
+80004007:
diff --git a/test/riscv-tests/rv32ui-v-lbu.elf b/test/riscv-tests/rv32ui-v-lbu.elf
new file mode 100644
index 0000000..8e29583
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-lbu.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-v-lh.dump b/test/riscv-tests/rv32ui-v-lh.dump
new file mode 100644
index 0000000..4e9df63
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-lh.dump
@@ -0,0 +1,1113 @@
+
+rv32ui-v-lh: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00008117 auipc sp,0x8
+8000001c: 35010113 addi sp,sp,848 # 80008368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00003317 auipc t1,0x3
+80002370: c9430313 addi t1,t1,-876 # 80005000 <pt>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00005797 auipc a5,0x5
+8000238c: 06c78793 addi a5,a5,108 # 800073f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00005717 auipc a4,0x5
+800023a0: 05470713 addi a4,a4,84 # 800073f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00005697 auipc a3,0x5
+800023ac: 04f6a623 sw a5,76(a3) # 800073f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00005717 auipc a4,0x5
+800023dc: e2070713 addi a4,a4,-480 # 800071f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf8c08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00005797 auipc a5,0x5
+800024bc: f207ac23 sw zero,-200(a5) # 800073f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00001597 auipc a1,0x1
+800024cc: 9a058593 addi a1,a1,-1632 # 80002e68 <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00001597 auipc a1,0x1
+8000253c: 9bc58593 addi a1,a1,-1604 # 80002ef4 <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00001597 auipc a1,0x1
+800025a8: 96858593 addi a1,a1,-1688 # 80002f0c <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00001597 auipc a1,0x1
+80002614: 89c58593 addi a1,a1,-1892 # 80002eac <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00001597 auipc a1,0x1
+8000274c: 88c58593 addi a1,a1,-1908 # 80002fd4 <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00000597 auipc a1,0x0
+800027c0: 7f458593 addi a1,a1,2036 # 80002fb0 <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00005b17 auipc s6,0x5
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800071f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00002d17 auipc s10,0x2
+80002840: 7c4d0d13 addi s10,s10,1988 # 80005000 <pt>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00005717 auipc a4,0x5
+8000285c: b8f72c23 sw a5,-1128(a4) # 800073f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00005717 auipc a4,0x5
+800028e8: b0c70713 addi a4,a4,-1268 # 800073f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00005717 auipc a4,0x5
+800028fc: aef72c23 sw a5,-1288(a4) # 800073f0 <freelist_tail>
+80002900: 00005717 auipc a4,0x5
+80002904: aef72a23 sw a5,-1292(a4) # 800073f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00000617 auipc a2,0x0
+80002914: 6f060613 addi a2,a2,1776 # 80003000 <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00000617 auipc a2,0x0
+80002980: 60060613 addi a2,a2,1536 # 80002f7c <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 58060613 addi a2,a2,1408 # 80002f48 <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00003797 auipc a5,0x3
+80002a4c: 5b878793 addi a5,a5,1464 # 80006000 <pt+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00002697 auipc a3,0x2
+80002a60: 5af6a223 sw a5,1444(a3) # 80005000 <pt>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00002717 auipc a4,0x2
+80002a6c: 59870713 addi a4,a4,1432 # 80005000 <pt>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00003697 auipc a3,0x3
+80002a7c: 58f6a223 sw a5,1412(a3) # 80005ffc <pt+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf8ccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc04797 auipc a5,0x7fc04
+80002aec: 51878793 addi a5,a5,1304 # ffc07000 <_end+0x7fbffc08>
+80002af0: 00005717 auipc a4,0x5
+80002af4: 90f72223 sw a5,-1788(a4) # 800073f4 <freelist_head>
+80002af8: 7fc04797 auipc a5,0x7fc04
+80002afc: 6f878793 addi a5,a5,1784 # ffc071f0 <_end+0x7fbffdf8>
+80002b00: 00005717 auipc a4,0x5
+80002b04: 8ef72823 sw a5,-1808(a4) # 800073f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00004717 auipc a4,0x4
+80002b10: 4f470713 addi a4,a4,1268 # 80007000 <freelist_nodes>
+80002b14: 00004317 auipc t1,0x4
+80002b18: 6e430313 addi t1,t1,1764 # 800071f8 <user_mapping>
+80002b1c: 00b00793 li a5,11
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00004797 auipc a5,0x4
+80002b6c: 6807a623 sw zero,1676(a5) # 800071f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 0a0d07b7 lui a5,0xa0d0
+80002b9c: 00080637 lui a2,0x80
+80002ba0: 22478793 addi a5,a5,548 # a0d0224 <_start-0x75f2fddc>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: 00001097 auipc ra,0x1
+80002be4: 42008093 addi ra,ra,1056 # 80004000 <begin_signature>
+80002be8: 00009f03 lh t5,0(ra)
+80002bec: 0ff00e93 li t4,255
+80002bf0: 00200193 li gp,2
+80002bf4: 25df1c63 bne t5,t4,80002e4c <fail>
+
+80002bf8 <test_3>:
+80002bf8: 00001097 auipc ra,0x1
+80002bfc: 40808093 addi ra,ra,1032 # 80004000 <begin_signature>
+80002c00: 00209f03 lh t5,2(ra)
+80002c04: f0000e93 li t4,-256
+80002c08: 00300193 li gp,3
+80002c0c: 25df1063 bne t5,t4,80002e4c <fail>
+
+80002c10 <test_4>:
+80002c10: 00001097 auipc ra,0x1
+80002c14: 3f008093 addi ra,ra,1008 # 80004000 <begin_signature>
+80002c18: 00409f03 lh t5,4(ra)
+80002c1c: 00001eb7 lui t4,0x1
+80002c20: ff0e8e93 addi t4,t4,-16 # ff0 <_start-0x7ffff010>
+80002c24: 00400193 li gp,4
+80002c28: 23df1263 bne t5,t4,80002e4c <fail>
+
+80002c2c <test_5>:
+80002c2c: 00001097 auipc ra,0x1
+80002c30: 3d408093 addi ra,ra,980 # 80004000 <begin_signature>
+80002c34: 00609f03 lh t5,6(ra)
+80002c38: fffffeb7 lui t4,0xfffff
+80002c3c: 00fe8e93 addi t4,t4,15 # fffff00f <_end+0x7fff7c17>
+80002c40: 00500193 li gp,5
+80002c44: 21df1463 bne t5,t4,80002e4c <fail>
+
+80002c48 <test_6>:
+80002c48: 00001097 auipc ra,0x1
+80002c4c: 3be08093 addi ra,ra,958 # 80004006 <tdat4>
+80002c50: ffa09f03 lh t5,-6(ra)
+80002c54: 0ff00e93 li t4,255
+80002c58: 00600193 li gp,6
+80002c5c: 1fdf1863 bne t5,t4,80002e4c <fail>
+
+80002c60 <test_7>:
+80002c60: 00001097 auipc ra,0x1
+80002c64: 3a608093 addi ra,ra,934 # 80004006 <tdat4>
+80002c68: ffc09f03 lh t5,-4(ra)
+80002c6c: f0000e93 li t4,-256
+80002c70: 00700193 li gp,7
+80002c74: 1ddf1c63 bne t5,t4,80002e4c <fail>
+
+80002c78 <test_8>:
+80002c78: 00001097 auipc ra,0x1
+80002c7c: 38e08093 addi ra,ra,910 # 80004006 <tdat4>
+80002c80: ffe09f03 lh t5,-2(ra)
+80002c84: 00001eb7 lui t4,0x1
+80002c88: ff0e8e93 addi t4,t4,-16 # ff0 <_start-0x7ffff010>
+80002c8c: 00800193 li gp,8
+80002c90: 1bdf1e63 bne t5,t4,80002e4c <fail>
+
+80002c94 <test_9>:
+80002c94: 00001097 auipc ra,0x1
+80002c98: 37208093 addi ra,ra,882 # 80004006 <tdat4>
+80002c9c: 00009f03 lh t5,0(ra)
+80002ca0: fffffeb7 lui t4,0xfffff
+80002ca4: 00fe8e93 addi t4,t4,15 # fffff00f <_end+0x7fff7c17>
+80002ca8: 00900193 li gp,9
+80002cac: 1bdf1063 bne t5,t4,80002e4c <fail>
+
+80002cb0 <test_10>:
+80002cb0: 00001097 auipc ra,0x1
+80002cb4: 35008093 addi ra,ra,848 # 80004000 <begin_signature>
+80002cb8: fe008093 addi ra,ra,-32
+80002cbc: 02009283 lh t0,32(ra)
+80002cc0: 0ff00e93 li t4,255
+80002cc4: 00a00193 li gp,10
+80002cc8: 19d29263 bne t0,t4,80002e4c <fail>
+
+80002ccc <test_11>:
+80002ccc: 00001097 auipc ra,0x1
+80002cd0: 33408093 addi ra,ra,820 # 80004000 <begin_signature>
+80002cd4: ffb08093 addi ra,ra,-5
+80002cd8: 00709283 lh t0,7(ra)
+80002cdc: f0000e93 li t4,-256
+80002ce0: 00b00193 li gp,11
+80002ce4: 17d29463 bne t0,t4,80002e4c <fail>
+
+80002ce8 <test_12>:
+80002ce8: 00c00193 li gp,12
+80002cec: 00000213 li tp,0
+80002cf0: 00001097 auipc ra,0x1
+80002cf4: 31208093 addi ra,ra,786 # 80004002 <tdat2>
+80002cf8: 00209f03 lh t5,2(ra)
+80002cfc: 000f0313 mv t1,t5
+80002d00: 00001eb7 lui t4,0x1
+80002d04: ff0e8e93 addi t4,t4,-16 # ff0 <_start-0x7ffff010>
+80002d08: 15d31263 bne t1,t4,80002e4c <fail>
+80002d0c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d10: 00200293 li t0,2
+80002d14: fc521ee3 bne tp,t0,80002cf0 <test_12+0x8>
+
+80002d18 <test_13>:
+80002d18: 00d00193 li gp,13
+80002d1c: 00000213 li tp,0
+80002d20: 00001097 auipc ra,0x1
+80002d24: 2e408093 addi ra,ra,740 # 80004004 <tdat3>
+80002d28: 00209f03 lh t5,2(ra)
+80002d2c: 00000013 nop
+80002d30: 000f0313 mv t1,t5
+80002d34: fffffeb7 lui t4,0xfffff
+80002d38: 00fe8e93 addi t4,t4,15 # fffff00f <_end+0x7fff7c17>
+80002d3c: 11d31863 bne t1,t4,80002e4c <fail>
+80002d40: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d44: 00200293 li t0,2
+80002d48: fc521ce3 bne tp,t0,80002d20 <test_13+0x8>
+
+80002d4c <test_14>:
+80002d4c: 00e00193 li gp,14
+80002d50: 00000213 li tp,0
+80002d54: 00001097 auipc ra,0x1
+80002d58: 2ac08093 addi ra,ra,684 # 80004000 <begin_signature>
+80002d5c: 00209f03 lh t5,2(ra)
+80002d60: 00000013 nop
+80002d64: 00000013 nop
+80002d68: 000f0313 mv t1,t5
+80002d6c: f0000e93 li t4,-256
+80002d70: 0dd31e63 bne t1,t4,80002e4c <fail>
+80002d74: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d78: 00200293 li t0,2
+80002d7c: fc521ce3 bne tp,t0,80002d54 <test_14+0x8>
+
+80002d80 <test_15>:
+80002d80: 00f00193 li gp,15
+80002d84: 00000213 li tp,0
+80002d88: 00001097 auipc ra,0x1
+80002d8c: 27a08093 addi ra,ra,634 # 80004002 <tdat2>
+80002d90: 00209f03 lh t5,2(ra)
+80002d94: 00001eb7 lui t4,0x1
+80002d98: ff0e8e93 addi t4,t4,-16 # ff0 <_start-0x7ffff010>
+80002d9c: 0bdf1863 bne t5,t4,80002e4c <fail>
+80002da0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002da4: 00200293 li t0,2
+80002da8: fe5210e3 bne tp,t0,80002d88 <test_15+0x8>
+
+80002dac <test_16>:
+80002dac: 01000193 li gp,16
+80002db0: 00000213 li tp,0
+80002db4: 00001097 auipc ra,0x1
+80002db8: 25008093 addi ra,ra,592 # 80004004 <tdat3>
+80002dbc: 00000013 nop
+80002dc0: 00209f03 lh t5,2(ra)
+80002dc4: fffffeb7 lui t4,0xfffff
+80002dc8: 00fe8e93 addi t4,t4,15 # fffff00f <_end+0x7fff7c17>
+80002dcc: 09df1063 bne t5,t4,80002e4c <fail>
+80002dd0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002dd4: 00200293 li t0,2
+80002dd8: fc521ee3 bne tp,t0,80002db4 <test_16+0x8>
+
+80002ddc <test_17>:
+80002ddc: 01100193 li gp,17
+80002de0: 00000213 li tp,0
+80002de4: 00001097 auipc ra,0x1
+80002de8: 21c08093 addi ra,ra,540 # 80004000 <begin_signature>
+80002dec: 00000013 nop
+80002df0: 00000013 nop
+80002df4: 00209f03 lh t5,2(ra)
+80002df8: f0000e93 li t4,-256
+80002dfc: 05df1863 bne t5,t4,80002e4c <fail>
+80002e00: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e04: 00200293 li t0,2
+80002e08: fc521ee3 bne tp,t0,80002de4 <test_17+0x8>
+
+80002e0c <test_18>:
+80002e0c: 00001297 auipc t0,0x1
+80002e10: 1f428293 addi t0,t0,500 # 80004000 <begin_signature>
+80002e14: 00029103 lh sp,0(t0)
+80002e18: 00200113 li sp,2
+80002e1c: 00200e93 li t4,2
+80002e20: 01200193 li gp,18
+80002e24: 03d11463 bne sp,t4,80002e4c <fail>
+
+80002e28 <test_19>:
+80002e28: 00001297 auipc t0,0x1
+80002e2c: 1d828293 addi t0,t0,472 # 80004000 <begin_signature>
+80002e30: 00029103 lh sp,0(t0)
+80002e34: 00000013 nop
+80002e38: 00200113 li sp,2
+80002e3c: 00200e93 li t4,2
+80002e40: 01300193 li gp,19
+80002e44: 01d11463 bne sp,t4,80002e4c <fail>
+80002e48: 00301a63 bne zero,gp,80002e5c <pass>
+
+80002e4c <fail>:
+80002e4c: 00119513 slli a0,gp,0x1
+80002e50: 00050063 beqz a0,80002e50 <fail+0x4>
+80002e54: 00156513 ori a0,a0,1
+80002e58: 00000073 ecall
+
+80002e5c <pass>:
+80002e5c: 00100513 li a0,1
+80002e60: 00000073 ecall
+80002e64: c0001073 unimp
+
+Disassembly of section .data:
+
+80004000 <begin_signature>:
+80004000: 00ff 0xff
+
+80004002 <tdat2>:
+80004002: ff00 fsw fs0,56(a4)
+
+80004004 <tdat3>:
+80004004: 0ff0 addi a2,sp,988
+
+80004006 <tdat4>:
+80004006: 0xf00f
diff --git a/test/riscv-tests/rv32ui-v-lh.elf b/test/riscv-tests/rv32ui-v-lh.elf
new file mode 100644
index 0000000..a5118d4
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-lh.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-v-lhu.dump b/test/riscv-tests/rv32ui-v-lhu.dump
new file mode 100644
index 0000000..86e4b7d
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-lhu.dump
@@ -0,0 +1,1118 @@
+
+rv32ui-v-lhu: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00008117 auipc sp,0x8
+8000001c: 35010113 addi sp,sp,848 # 80008368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00003317 auipc t1,0x3
+80002370: c9430313 addi t1,t1,-876 # 80005000 <pt>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00005797 auipc a5,0x5
+8000238c: 06c78793 addi a5,a5,108 # 800073f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00005717 auipc a4,0x5
+800023a0: 05470713 addi a4,a4,84 # 800073f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00005697 auipc a3,0x5
+800023ac: 04f6a623 sw a5,76(a3) # 800073f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00005717 auipc a4,0x5
+800023dc: e2070713 addi a4,a4,-480 # 800071f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf8c08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00005797 auipc a5,0x5
+800024bc: f207ac23 sw zero,-200(a5) # 800073f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00001597 auipc a1,0x1
+800024cc: 9b458593 addi a1,a1,-1612 # 80002e7c <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00001597 auipc a1,0x1
+8000253c: 9d058593 addi a1,a1,-1584 # 80002f08 <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00001597 auipc a1,0x1
+800025a8: 97c58593 addi a1,a1,-1668 # 80002f20 <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00001597 auipc a1,0x1
+80002614: 8b058593 addi a1,a1,-1872 # 80002ec0 <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00001597 auipc a1,0x1
+8000274c: 8a058593 addi a1,a1,-1888 # 80002fe8 <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00001597 auipc a1,0x1
+800027c0: 80858593 addi a1,a1,-2040 # 80002fc4 <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00005b17 auipc s6,0x5
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800071f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00002d17 auipc s10,0x2
+80002840: 7c4d0d13 addi s10,s10,1988 # 80005000 <pt>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00005717 auipc a4,0x5
+8000285c: b8f72c23 sw a5,-1128(a4) # 800073f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00005717 auipc a4,0x5
+800028e8: b0c70713 addi a4,a4,-1268 # 800073f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00005717 auipc a4,0x5
+800028fc: aef72c23 sw a5,-1288(a4) # 800073f0 <freelist_tail>
+80002900: 00005717 auipc a4,0x5
+80002904: aef72a23 sw a5,-1292(a4) # 800073f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00000617 auipc a2,0x0
+80002914: 70460613 addi a2,a2,1796 # 80003014 <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00000617 auipc a2,0x0
+80002980: 61460613 addi a2,a2,1556 # 80002f90 <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 59460613 addi a2,a2,1428 # 80002f5c <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00003797 auipc a5,0x3
+80002a4c: 5b878793 addi a5,a5,1464 # 80006000 <pt+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00002697 auipc a3,0x2
+80002a60: 5af6a223 sw a5,1444(a3) # 80005000 <pt>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00002717 auipc a4,0x2
+80002a6c: 59870713 addi a4,a4,1432 # 80005000 <pt>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00003697 auipc a3,0x3
+80002a7c: 58f6a223 sw a5,1412(a3) # 80005ffc <pt+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf8ccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc04797 auipc a5,0x7fc04
+80002aec: 51878793 addi a5,a5,1304 # ffc07000 <_end+0x7fbffc08>
+80002af0: 00005717 auipc a4,0x5
+80002af4: 90f72223 sw a5,-1788(a4) # 800073f4 <freelist_head>
+80002af8: 7fc04797 auipc a5,0x7fc04
+80002afc: 6f878793 addi a5,a5,1784 # ffc071f0 <_end+0x7fbffdf8>
+80002b00: 00005717 auipc a4,0x5
+80002b04: 8ef72823 sw a5,-1808(a4) # 800073f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00004717 auipc a4,0x4
+80002b10: 4f470713 addi a4,a4,1268 # 80007000 <freelist_nodes>
+80002b14: 00004317 auipc t1,0x4
+80002b18: 6e430313 addi t1,t1,1764 # 800071f8 <user_mapping>
+80002b1c: 02a00793 li a5,42
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00004797 auipc a5,0x4
+80002b6c: 6807a623 sw zero,1676(a5) # 800071f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 0fdfd7b7 lui a5,0xfdfd
+80002b9c: 00080637 lui a2,0x80
+80002ba0: ee978793 addi a5,a5,-279 # fdfcee9 <_start-0x70203117>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: 00001097 auipc ra,0x1
+80002be4: 42008093 addi ra,ra,1056 # 80004000 <begin_signature>
+80002be8: 0000df03 lhu t5,0(ra)
+80002bec: 0ff00e93 li t4,255
+80002bf0: 00200193 li gp,2
+80002bf4: 27df1663 bne t5,t4,80002e60 <fail>
+
+80002bf8 <test_3>:
+80002bf8: 00001097 auipc ra,0x1
+80002bfc: 40808093 addi ra,ra,1032 # 80004000 <begin_signature>
+80002c00: 0020df03 lhu t5,2(ra)
+80002c04: 00010eb7 lui t4,0x10
+80002c08: f00e8e93 addi t4,t4,-256 # ff00 <_start-0x7fff0100>
+80002c0c: 00300193 li gp,3
+80002c10: 25df1863 bne t5,t4,80002e60 <fail>
+
+80002c14 <test_4>:
+80002c14: 00001097 auipc ra,0x1
+80002c18: 3ec08093 addi ra,ra,1004 # 80004000 <begin_signature>
+80002c1c: 0040df03 lhu t5,4(ra)
+80002c20: 00001eb7 lui t4,0x1
+80002c24: ff0e8e93 addi t4,t4,-16 # ff0 <_start-0x7ffff010>
+80002c28: 00400193 li gp,4
+80002c2c: 23df1a63 bne t5,t4,80002e60 <fail>
+
+80002c30 <test_5>:
+80002c30: 00001097 auipc ra,0x1
+80002c34: 3d008093 addi ra,ra,976 # 80004000 <begin_signature>
+80002c38: 0060df03 lhu t5,6(ra)
+80002c3c: 0000feb7 lui t4,0xf
+80002c40: 00fe8e93 addi t4,t4,15 # f00f <_start-0x7fff0ff1>
+80002c44: 00500193 li gp,5
+80002c48: 21df1c63 bne t5,t4,80002e60 <fail>
+
+80002c4c <test_6>:
+80002c4c: 00001097 auipc ra,0x1
+80002c50: 3ba08093 addi ra,ra,954 # 80004006 <tdat4>
+80002c54: ffa0df03 lhu t5,-6(ra)
+80002c58: 0ff00e93 li t4,255
+80002c5c: 00600193 li gp,6
+80002c60: 21df1063 bne t5,t4,80002e60 <fail>
+
+80002c64 <test_7>:
+80002c64: 00001097 auipc ra,0x1
+80002c68: 3a208093 addi ra,ra,930 # 80004006 <tdat4>
+80002c6c: ffc0df03 lhu t5,-4(ra)
+80002c70: 00010eb7 lui t4,0x10
+80002c74: f00e8e93 addi t4,t4,-256 # ff00 <_start-0x7fff0100>
+80002c78: 00700193 li gp,7
+80002c7c: 1fdf1263 bne t5,t4,80002e60 <fail>
+
+80002c80 <test_8>:
+80002c80: 00001097 auipc ra,0x1
+80002c84: 38608093 addi ra,ra,902 # 80004006 <tdat4>
+80002c88: ffe0df03 lhu t5,-2(ra)
+80002c8c: 00001eb7 lui t4,0x1
+80002c90: ff0e8e93 addi t4,t4,-16 # ff0 <_start-0x7ffff010>
+80002c94: 00800193 li gp,8
+80002c98: 1ddf1463 bne t5,t4,80002e60 <fail>
+
+80002c9c <test_9>:
+80002c9c: 00001097 auipc ra,0x1
+80002ca0: 36a08093 addi ra,ra,874 # 80004006 <tdat4>
+80002ca4: 0000df03 lhu t5,0(ra)
+80002ca8: 0000feb7 lui t4,0xf
+80002cac: 00fe8e93 addi t4,t4,15 # f00f <_start-0x7fff0ff1>
+80002cb0: 00900193 li gp,9
+80002cb4: 1bdf1663 bne t5,t4,80002e60 <fail>
+
+80002cb8 <test_10>:
+80002cb8: 00001097 auipc ra,0x1
+80002cbc: 34808093 addi ra,ra,840 # 80004000 <begin_signature>
+80002cc0: fe008093 addi ra,ra,-32
+80002cc4: 0200d283 lhu t0,32(ra)
+80002cc8: 0ff00e93 li t4,255
+80002ccc: 00a00193 li gp,10
+80002cd0: 19d29863 bne t0,t4,80002e60 <fail>
+
+80002cd4 <test_11>:
+80002cd4: 00001097 auipc ra,0x1
+80002cd8: 32c08093 addi ra,ra,812 # 80004000 <begin_signature>
+80002cdc: ffb08093 addi ra,ra,-5
+80002ce0: 0070d283 lhu t0,7(ra)
+80002ce4: 00010eb7 lui t4,0x10
+80002ce8: f00e8e93 addi t4,t4,-256 # ff00 <_start-0x7fff0100>
+80002cec: 00b00193 li gp,11
+80002cf0: 17d29863 bne t0,t4,80002e60 <fail>
+
+80002cf4 <test_12>:
+80002cf4: 00c00193 li gp,12
+80002cf8: 00000213 li tp,0
+80002cfc: 00001097 auipc ra,0x1
+80002d00: 30608093 addi ra,ra,774 # 80004002 <tdat2>
+80002d04: 0020df03 lhu t5,2(ra)
+80002d08: 000f0313 mv t1,t5
+80002d0c: 00001eb7 lui t4,0x1
+80002d10: ff0e8e93 addi t4,t4,-16 # ff0 <_start-0x7ffff010>
+80002d14: 15d31663 bne t1,t4,80002e60 <fail>
+80002d18: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d1c: 00200293 li t0,2
+80002d20: fc521ee3 bne tp,t0,80002cfc <test_12+0x8>
+
+80002d24 <test_13>:
+80002d24: 00d00193 li gp,13
+80002d28: 00000213 li tp,0
+80002d2c: 00001097 auipc ra,0x1
+80002d30: 2d808093 addi ra,ra,728 # 80004004 <tdat3>
+80002d34: 0020df03 lhu t5,2(ra)
+80002d38: 00000013 nop
+80002d3c: 000f0313 mv t1,t5
+80002d40: 0000feb7 lui t4,0xf
+80002d44: 00fe8e93 addi t4,t4,15 # f00f <_start-0x7fff0ff1>
+80002d48: 11d31c63 bne t1,t4,80002e60 <fail>
+80002d4c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d50: 00200293 li t0,2
+80002d54: fc521ce3 bne tp,t0,80002d2c <test_13+0x8>
+
+80002d58 <test_14>:
+80002d58: 00e00193 li gp,14
+80002d5c: 00000213 li tp,0
+80002d60: 00001097 auipc ra,0x1
+80002d64: 2a008093 addi ra,ra,672 # 80004000 <begin_signature>
+80002d68: 0020df03 lhu t5,2(ra)
+80002d6c: 00000013 nop
+80002d70: 00000013 nop
+80002d74: 000f0313 mv t1,t5
+80002d78: 00010eb7 lui t4,0x10
+80002d7c: f00e8e93 addi t4,t4,-256 # ff00 <_start-0x7fff0100>
+80002d80: 0fd31063 bne t1,t4,80002e60 <fail>
+80002d84: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d88: 00200293 li t0,2
+80002d8c: fc521ae3 bne tp,t0,80002d60 <test_14+0x8>
+
+80002d90 <test_15>:
+80002d90: 00f00193 li gp,15
+80002d94: 00000213 li tp,0
+80002d98: 00001097 auipc ra,0x1
+80002d9c: 26a08093 addi ra,ra,618 # 80004002 <tdat2>
+80002da0: 0020df03 lhu t5,2(ra)
+80002da4: 00001eb7 lui t4,0x1
+80002da8: ff0e8e93 addi t4,t4,-16 # ff0 <_start-0x7ffff010>
+80002dac: 0bdf1a63 bne t5,t4,80002e60 <fail>
+80002db0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002db4: 00200293 li t0,2
+80002db8: fe5210e3 bne tp,t0,80002d98 <test_15+0x8>
+
+80002dbc <test_16>:
+80002dbc: 01000193 li gp,16
+80002dc0: 00000213 li tp,0
+80002dc4: 00001097 auipc ra,0x1
+80002dc8: 24008093 addi ra,ra,576 # 80004004 <tdat3>
+80002dcc: 00000013 nop
+80002dd0: 0020df03 lhu t5,2(ra)
+80002dd4: 0000feb7 lui t4,0xf
+80002dd8: 00fe8e93 addi t4,t4,15 # f00f <_start-0x7fff0ff1>
+80002ddc: 09df1263 bne t5,t4,80002e60 <fail>
+80002de0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002de4: 00200293 li t0,2
+80002de8: fc521ee3 bne tp,t0,80002dc4 <test_16+0x8>
+
+80002dec <test_17>:
+80002dec: 01100193 li gp,17
+80002df0: 00000213 li tp,0
+80002df4: 00001097 auipc ra,0x1
+80002df8: 20c08093 addi ra,ra,524 # 80004000 <begin_signature>
+80002dfc: 00000013 nop
+80002e00: 00000013 nop
+80002e04: 0020df03 lhu t5,2(ra)
+80002e08: 00010eb7 lui t4,0x10
+80002e0c: f00e8e93 addi t4,t4,-256 # ff00 <_start-0x7fff0100>
+80002e10: 05df1863 bne t5,t4,80002e60 <fail>
+80002e14: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e18: 00200293 li t0,2
+80002e1c: fc521ce3 bne tp,t0,80002df4 <test_17+0x8>
+
+80002e20 <test_18>:
+80002e20: 00001297 auipc t0,0x1
+80002e24: 1e028293 addi t0,t0,480 # 80004000 <begin_signature>
+80002e28: 0002d103 lhu sp,0(t0)
+80002e2c: 00200113 li sp,2
+80002e30: 00200e93 li t4,2
+80002e34: 01200193 li gp,18
+80002e38: 03d11463 bne sp,t4,80002e60 <fail>
+
+80002e3c <test_19>:
+80002e3c: 00001297 auipc t0,0x1
+80002e40: 1c428293 addi t0,t0,452 # 80004000 <begin_signature>
+80002e44: 0002d103 lhu sp,0(t0)
+80002e48: 00000013 nop
+80002e4c: 00200113 li sp,2
+80002e50: 00200e93 li t4,2
+80002e54: 01300193 li gp,19
+80002e58: 01d11463 bne sp,t4,80002e60 <fail>
+80002e5c: 00301a63 bne zero,gp,80002e70 <pass>
+
+80002e60 <fail>:
+80002e60: 00119513 slli a0,gp,0x1
+80002e64: 00050063 beqz a0,80002e64 <fail+0x4>
+80002e68: 00156513 ori a0,a0,1
+80002e6c: 00000073 ecall
+
+80002e70 <pass>:
+80002e70: 00100513 li a0,1
+80002e74: 00000073 ecall
+80002e78: c0001073 unimp
+
+Disassembly of section .data:
+
+80004000 <begin_signature>:
+80004000: 00ff 0xff
+
+80004002 <tdat2>:
+80004002: ff00 fsw fs0,56(a4)
+
+80004004 <tdat3>:
+80004004: 0ff0 addi a2,sp,988
+
+80004006 <tdat4>:
+80004006: 0xf00f
diff --git a/test/riscv-tests/rv32ui-v-lhu.elf b/test/riscv-tests/rv32ui-v-lhu.elf
new file mode 100644
index 0000000..f6d350f
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-lhu.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-v-lui.dump b/test/riscv-tests/rv32ui-v-lui.dump
new file mode 100644
index 0000000..c9abb43
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-lui.dump
@@ -0,0 +1,942 @@
+
+rv32ui-v-lui: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00006117 auipc sp,0x6
+8000001c: 35010113 addi sp,sp,848 # 80006368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00001317 auipc t1,0x1
+80002370: c9430313 addi t1,t1,-876 # 80003000 <begin_signature>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00003797 auipc a5,0x3
+8000238c: 06c78793 addi a5,a5,108 # 800053f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00003717 auipc a4,0x3
+800023a0: 05470713 addi a4,a4,84 # 800053f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00003697 auipc a3,0x3
+800023ac: 04f6a623 sw a5,76(a3) # 800053f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00003717 auipc a4,0x3
+800023dc: e2070713 addi a4,a4,-480 # 800051f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbfac08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00003797 auipc a5,0x3
+800024bc: f207ac23 sw zero,-200(a5) # 800053f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00000597 auipc a1,0x0
+800024cc: 79458593 addi a1,a1,1940 # 80002c5c <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00000597 auipc a1,0x0
+8000253c: 7b058593 addi a1,a1,1968 # 80002ce8 <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00000597 auipc a1,0x0
+800025a8: 75c58593 addi a1,a1,1884 # 80002d00 <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00000597 auipc a1,0x0
+80002614: 69058593 addi a1,a1,1680 # 80002ca0 <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00000597 auipc a1,0x0
+8000274c: 68058593 addi a1,a1,1664 # 80002dc8 <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00000597 auipc a1,0x0
+800027c0: 5e858593 addi a1,a1,1512 # 80002da4 <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00003b17 auipc s6,0x3
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800051f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00000d17 auipc s10,0x0
+80002840: 7c4d0d13 addi s10,s10,1988 # 80003000 <begin_signature>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00003717 auipc a4,0x3
+8000285c: b8f72c23 sw a5,-1128(a4) # 800053f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00003717 auipc a4,0x3
+800028e8: b0c70713 addi a4,a4,-1268 # 800053f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00003717 auipc a4,0x3
+800028fc: aef72c23 sw a5,-1288(a4) # 800053f0 <freelist_tail>
+80002900: 00003717 auipc a4,0x3
+80002904: aef72a23 sw a5,-1292(a4) # 800053f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00000617 auipc a2,0x0
+80002914: 4e460613 addi a2,a2,1252 # 80002df4 <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00000617 auipc a2,0x0
+80002980: 3f460613 addi a2,a2,1012 # 80002d70 <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 37460613 addi a2,a2,884 # 80002d3c <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00001797 auipc a5,0x1
+80002a4c: 5b878793 addi a5,a5,1464 # 80004000 <begin_signature+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00000697 auipc a3,0x0
+80002a60: 5af6a223 sw a5,1444(a3) # 80003000 <begin_signature>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00000717 auipc a4,0x0
+80002a6c: 59870713 addi a4,a4,1432 # 80003000 <begin_signature>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00001697 auipc a3,0x1
+80002a7c: 58f6a223 sw a5,1412(a3) # 80003ffc <begin_signature+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbfaccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc02797 auipc a5,0x7fc02
+80002aec: 51878793 addi a5,a5,1304 # ffc05000 <_end+0x7fbffc08>
+80002af0: 00003717 auipc a4,0x3
+80002af4: 90f72223 sw a5,-1788(a4) # 800053f4 <freelist_head>
+80002af8: 7fc02797 auipc a5,0x7fc02
+80002afc: 6f878793 addi a5,a5,1784 # ffc051f0 <_end+0x7fbffdf8>
+80002b00: 00003717 auipc a4,0x3
+80002b04: 8ef72823 sw a5,-1808(a4) # 800053f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00002717 auipc a4,0x2
+80002b10: 4f470713 addi a4,a4,1268 # 80005000 <freelist_nodes>
+80002b14: 00002317 auipc t1,0x2
+80002b18: 6e430313 addi t1,t1,1764 # 800051f8 <user_mapping>
+80002b1c: 01700793 li a5,23
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00002797 auipc a5,0x2
+80002b6c: 6807a623 sw zero,1676(a5) # 800051f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 0f81c7b7 lui a5,0xf81c
+80002b9c: 00080637 lui a2,0x80
+80002ba0: 76c78793 addi a5,a5,1900 # f81c76c <_start-0x707e3894>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: 000000b7 lui ra,0x0
+80002be4: 00000e93 li t4,0
+80002be8: 00200193 li gp,2
+80002bec: 05d09a63 bne ra,t4,80002c40 <fail>
+
+80002bf0 <test_3>:
+80002bf0: fffff0b7 lui ra,0xfffff
+80002bf4: 4010d093 srai ra,ra,0x1
+80002bf8: 80000e93 li t4,-2048
+80002bfc: 00300193 li gp,3
+80002c00: 05d09063 bne ra,t4,80002c40 <fail>
+
+80002c04 <test_4>:
+80002c04: 7ffff0b7 lui ra,0x7ffff
+80002c08: 4140d093 srai ra,ra,0x14
+80002c0c: 7ff00e93 li t4,2047
+80002c10: 00400193 li gp,4
+80002c14: 03d09663 bne ra,t4,80002c40 <fail>
+
+80002c18 <test_5>:
+80002c18: 800000b7 lui ra,0x80000
+80002c1c: 4140d093 srai ra,ra,0x14
+80002c20: 80000e93 li t4,-2048
+80002c24: 00500193 li gp,5
+80002c28: 01d09c63 bne ra,t4,80002c40 <fail>
+
+80002c2c <test_6>:
+80002c2c: 80000037 lui zero,0x80000
+80002c30: 00000e93 li t4,0
+80002c34: 00600193 li gp,6
+80002c38: 01d01463 bne zero,t4,80002c40 <fail>
+80002c3c: 00301a63 bne zero,gp,80002c50 <pass>
+
+80002c40 <fail>:
+80002c40: 00119513 slli a0,gp,0x1
+80002c44: 00050063 beqz a0,80002c44 <fail+0x4>
+80002c48: 00156513 ori a0,a0,1
+80002c4c: 00000073 ecall
+
+80002c50 <pass>:
+80002c50: 00100513 li a0,1
+80002c54: 00000073 ecall
+80002c58: c0001073 unimp
diff --git a/test/riscv-tests/rv32ui-v-lui.elf b/test/riscv-tests/rv32ui-v-lui.elf
new file mode 100644
index 0000000..de2ba2d
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-lui.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-v-lw.dump b/test/riscv-tests/rv32ui-v-lw.dump
new file mode 100644
index 0000000..e8f1f4c
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-lw.dump
@@ -0,0 +1,1124 @@
+
+rv32ui-v-lw: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00008117 auipc sp,0x8
+8000001c: 35010113 addi sp,sp,848 # 80008368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00003317 auipc t1,0x3
+80002370: c9430313 addi t1,t1,-876 # 80005000 <pt>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00005797 auipc a5,0x5
+8000238c: 06c78793 addi a5,a5,108 # 800073f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00005717 auipc a4,0x5
+800023a0: 05470713 addi a4,a4,84 # 800073f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00005697 auipc a3,0x5
+800023ac: 04f6a623 sw a5,76(a3) # 800073f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00005717 auipc a4,0x5
+800023dc: e2070713 addi a4,a4,-480 # 800071f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf8c08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00005797 auipc a5,0x5
+800024bc: f207ac23 sw zero,-200(a5) # 800073f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00001597 auipc a1,0x1
+800024cc: 9c058593 addi a1,a1,-1600 # 80002e88 <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00001597 auipc a1,0x1
+8000253c: 9dc58593 addi a1,a1,-1572 # 80002f14 <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00001597 auipc a1,0x1
+800025a8: 98858593 addi a1,a1,-1656 # 80002f2c <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00001597 auipc a1,0x1
+80002614: 8bc58593 addi a1,a1,-1860 # 80002ecc <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00001597 auipc a1,0x1
+8000274c: 8ac58593 addi a1,a1,-1876 # 80002ff4 <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00001597 auipc a1,0x1
+800027c0: 81458593 addi a1,a1,-2028 # 80002fd0 <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00005b17 auipc s6,0x5
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800071f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00002d17 auipc s10,0x2
+80002840: 7c4d0d13 addi s10,s10,1988 # 80005000 <pt>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00005717 auipc a4,0x5
+8000285c: b8f72c23 sw a5,-1128(a4) # 800073f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00005717 auipc a4,0x5
+800028e8: b0c70713 addi a4,a4,-1268 # 800073f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00005717 auipc a4,0x5
+800028fc: aef72c23 sw a5,-1288(a4) # 800073f0 <freelist_tail>
+80002900: 00005717 auipc a4,0x5
+80002904: aef72a23 sw a5,-1292(a4) # 800073f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00000617 auipc a2,0x0
+80002914: 71060613 addi a2,a2,1808 # 80003020 <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00000617 auipc a2,0x0
+80002980: 62060613 addi a2,a2,1568 # 80002f9c <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 5a060613 addi a2,a2,1440 # 80002f68 <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00003797 auipc a5,0x3
+80002a4c: 5b878793 addi a5,a5,1464 # 80006000 <pt+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00002697 auipc a3,0x2
+80002a60: 5af6a223 sw a5,1444(a3) # 80005000 <pt>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00002717 auipc a4,0x2
+80002a6c: 59870713 addi a4,a4,1432 # 80005000 <pt>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00003697 auipc a3,0x3
+80002a7c: 58f6a223 sw a5,1412(a3) # 80005ffc <pt+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf8ccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc04797 auipc a5,0x7fc04
+80002aec: 51878793 addi a5,a5,1304 # ffc07000 <_end+0x7fbffc08>
+80002af0: 00005717 auipc a4,0x5
+80002af4: 90f72223 sw a5,-1788(a4) # 800073f4 <freelist_head>
+80002af8: 7fc04797 auipc a5,0x7fc04
+80002afc: 6f878793 addi a5,a5,1784 # ffc071f0 <_end+0x7fbffdf8>
+80002b00: 00005717 auipc a4,0x5
+80002b04: 8ef72823 sw a5,-1808(a4) # 800073f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00004717 auipc a4,0x4
+80002b10: 4f470713 addi a4,a4,1268 # 80007000 <freelist_nodes>
+80002b14: 00004317 auipc t1,0x4
+80002b18: 6e430313 addi t1,t1,1764 # 800071f8 <user_mapping>
+80002b1c: 03b00793 li a5,59
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00004797 auipc a5,0x4
+80002b6c: 6807a623 sw zero,1676(a5) # 800071f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 0a9027b7 lui a5,0xa902
+80002b9c: 00080637 lui a2,0x80
+80002ba0: 47878793 addi a5,a5,1144 # a902478 <_start-0x756fdb88>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: 00001097 auipc ra,0x1
+80002be4: 42008093 addi ra,ra,1056 # 80004000 <begin_signature>
+80002be8: 0000af03 lw t5,0(ra)
+80002bec: 00ff0eb7 lui t4,0xff0
+80002bf0: 0ffe8e93 addi t4,t4,255 # ff00ff <_start-0x7f00ff01>
+80002bf4: 00200193 li gp,2
+80002bf8: 27df1a63 bne t5,t4,80002e6c <fail>
+
+80002bfc <test_3>:
+80002bfc: 00001097 auipc ra,0x1
+80002c00: 40408093 addi ra,ra,1028 # 80004000 <begin_signature>
+80002c04: 0040af03 lw t5,4(ra)
+80002c08: ff010eb7 lui t4,0xff010
+80002c0c: f00e8e93 addi t4,t4,-256 # ff00ff00 <_end+0x7f008b08>
+80002c10: 00300193 li gp,3
+80002c14: 25df1c63 bne t5,t4,80002e6c <fail>
+
+80002c18 <test_4>:
+80002c18: 00001097 auipc ra,0x1
+80002c1c: 3e808093 addi ra,ra,1000 # 80004000 <begin_signature>
+80002c20: 0080af03 lw t5,8(ra)
+80002c24: 0ff01eb7 lui t4,0xff01
+80002c28: ff0e8e93 addi t4,t4,-16 # ff00ff0 <_start-0x700ff010>
+80002c2c: 00400193 li gp,4
+80002c30: 23df1e63 bne t5,t4,80002e6c <fail>
+
+80002c34 <test_5>:
+80002c34: 00001097 auipc ra,0x1
+80002c38: 3cc08093 addi ra,ra,972 # 80004000 <begin_signature>
+80002c3c: 00c0af03 lw t5,12(ra)
+80002c40: f00ffeb7 lui t4,0xf00ff
+80002c44: 00fe8e93 addi t4,t4,15 # f00ff00f <_end+0x700f7c17>
+80002c48: 00500193 li gp,5
+80002c4c: 23df1063 bne t5,t4,80002e6c <fail>
+
+80002c50 <test_6>:
+80002c50: 00001097 auipc ra,0x1
+80002c54: 3bc08093 addi ra,ra,956 # 8000400c <tdat4>
+80002c58: ff40af03 lw t5,-12(ra)
+80002c5c: 00ff0eb7 lui t4,0xff0
+80002c60: 0ffe8e93 addi t4,t4,255 # ff00ff <_start-0x7f00ff01>
+80002c64: 00600193 li gp,6
+80002c68: 21df1263 bne t5,t4,80002e6c <fail>
+
+80002c6c <test_7>:
+80002c6c: 00001097 auipc ra,0x1
+80002c70: 3a008093 addi ra,ra,928 # 8000400c <tdat4>
+80002c74: ff80af03 lw t5,-8(ra)
+80002c78: ff010eb7 lui t4,0xff010
+80002c7c: f00e8e93 addi t4,t4,-256 # ff00ff00 <_end+0x7f008b08>
+80002c80: 00700193 li gp,7
+80002c84: 1fdf1463 bne t5,t4,80002e6c <fail>
+
+80002c88 <test_8>:
+80002c88: 00001097 auipc ra,0x1
+80002c8c: 38408093 addi ra,ra,900 # 8000400c <tdat4>
+80002c90: ffc0af03 lw t5,-4(ra)
+80002c94: 0ff01eb7 lui t4,0xff01
+80002c98: ff0e8e93 addi t4,t4,-16 # ff00ff0 <_start-0x700ff010>
+80002c9c: 00800193 li gp,8
+80002ca0: 1ddf1663 bne t5,t4,80002e6c <fail>
+
+80002ca4 <test_9>:
+80002ca4: 00001097 auipc ra,0x1
+80002ca8: 36808093 addi ra,ra,872 # 8000400c <tdat4>
+80002cac: 0000af03 lw t5,0(ra)
+80002cb0: f00ffeb7 lui t4,0xf00ff
+80002cb4: 00fe8e93 addi t4,t4,15 # f00ff00f <_end+0x700f7c17>
+80002cb8: 00900193 li gp,9
+80002cbc: 1bdf1863 bne t5,t4,80002e6c <fail>
+
+80002cc0 <test_10>:
+80002cc0: 00001097 auipc ra,0x1
+80002cc4: 34008093 addi ra,ra,832 # 80004000 <begin_signature>
+80002cc8: fe008093 addi ra,ra,-32
+80002ccc: 0200a283 lw t0,32(ra)
+80002cd0: 00ff0eb7 lui t4,0xff0
+80002cd4: 0ffe8e93 addi t4,t4,255 # ff00ff <_start-0x7f00ff01>
+80002cd8: 00a00193 li gp,10
+80002cdc: 19d29863 bne t0,t4,80002e6c <fail>
+
+80002ce0 <test_11>:
+80002ce0: 00001097 auipc ra,0x1
+80002ce4: 32008093 addi ra,ra,800 # 80004000 <begin_signature>
+80002ce8: ffd08093 addi ra,ra,-3
+80002cec: 0070a283 lw t0,7(ra)
+80002cf0: ff010eb7 lui t4,0xff010
+80002cf4: f00e8e93 addi t4,t4,-256 # ff00ff00 <_end+0x7f008b08>
+80002cf8: 00b00193 li gp,11
+80002cfc: 17d29863 bne t0,t4,80002e6c <fail>
+
+80002d00 <test_12>:
+80002d00: 00c00193 li gp,12
+80002d04: 00000213 li tp,0
+80002d08: 00001097 auipc ra,0x1
+80002d0c: 2fc08093 addi ra,ra,764 # 80004004 <tdat2>
+80002d10: 0040af03 lw t5,4(ra)
+80002d14: 000f0313 mv t1,t5
+80002d18: 0ff01eb7 lui t4,0xff01
+80002d1c: ff0e8e93 addi t4,t4,-16 # ff00ff0 <_start-0x700ff010>
+80002d20: 15d31663 bne t1,t4,80002e6c <fail>
+80002d24: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d28: 00200293 li t0,2
+80002d2c: fc521ee3 bne tp,t0,80002d08 <test_12+0x8>
+
+80002d30 <test_13>:
+80002d30: 00d00193 li gp,13
+80002d34: 00000213 li tp,0
+80002d38: 00001097 auipc ra,0x1
+80002d3c: 2d008093 addi ra,ra,720 # 80004008 <tdat3>
+80002d40: 0040af03 lw t5,4(ra)
+80002d44: 00000013 nop
+80002d48: 000f0313 mv t1,t5
+80002d4c: f00ffeb7 lui t4,0xf00ff
+80002d50: 00fe8e93 addi t4,t4,15 # f00ff00f <_end+0x700f7c17>
+80002d54: 11d31c63 bne t1,t4,80002e6c <fail>
+80002d58: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d5c: 00200293 li t0,2
+80002d60: fc521ce3 bne tp,t0,80002d38 <test_13+0x8>
+
+80002d64 <test_14>:
+80002d64: 00e00193 li gp,14
+80002d68: 00000213 li tp,0
+80002d6c: 00001097 auipc ra,0x1
+80002d70: 29408093 addi ra,ra,660 # 80004000 <begin_signature>
+80002d74: 0040af03 lw t5,4(ra)
+80002d78: 00000013 nop
+80002d7c: 00000013 nop
+80002d80: 000f0313 mv t1,t5
+80002d84: ff010eb7 lui t4,0xff010
+80002d88: f00e8e93 addi t4,t4,-256 # ff00ff00 <_end+0x7f008b08>
+80002d8c: 0fd31063 bne t1,t4,80002e6c <fail>
+80002d90: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d94: 00200293 li t0,2
+80002d98: fc521ae3 bne tp,t0,80002d6c <test_14+0x8>
+
+80002d9c <test_15>:
+80002d9c: 00f00193 li gp,15
+80002da0: 00000213 li tp,0
+80002da4: 00001097 auipc ra,0x1
+80002da8: 26008093 addi ra,ra,608 # 80004004 <tdat2>
+80002dac: 0040af03 lw t5,4(ra)
+80002db0: 0ff01eb7 lui t4,0xff01
+80002db4: ff0e8e93 addi t4,t4,-16 # ff00ff0 <_start-0x700ff010>
+80002db8: 0bdf1a63 bne t5,t4,80002e6c <fail>
+80002dbc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002dc0: 00200293 li t0,2
+80002dc4: fe5210e3 bne tp,t0,80002da4 <test_15+0x8>
+
+80002dc8 <test_16>:
+80002dc8: 01000193 li gp,16
+80002dcc: 00000213 li tp,0
+80002dd0: 00001097 auipc ra,0x1
+80002dd4: 23808093 addi ra,ra,568 # 80004008 <tdat3>
+80002dd8: 00000013 nop
+80002ddc: 0040af03 lw t5,4(ra)
+80002de0: f00ffeb7 lui t4,0xf00ff
+80002de4: 00fe8e93 addi t4,t4,15 # f00ff00f <_end+0x700f7c17>
+80002de8: 09df1263 bne t5,t4,80002e6c <fail>
+80002dec: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002df0: 00200293 li t0,2
+80002df4: fc521ee3 bne tp,t0,80002dd0 <test_16+0x8>
+
+80002df8 <test_17>:
+80002df8: 01100193 li gp,17
+80002dfc: 00000213 li tp,0
+80002e00: 00001097 auipc ra,0x1
+80002e04: 20008093 addi ra,ra,512 # 80004000 <begin_signature>
+80002e08: 00000013 nop
+80002e0c: 00000013 nop
+80002e10: 0040af03 lw t5,4(ra)
+80002e14: ff010eb7 lui t4,0xff010
+80002e18: f00e8e93 addi t4,t4,-256 # ff00ff00 <_end+0x7f008b08>
+80002e1c: 05df1863 bne t5,t4,80002e6c <fail>
+80002e20: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e24: 00200293 li t0,2
+80002e28: fc521ce3 bne tp,t0,80002e00 <test_17+0x8>
+
+80002e2c <test_18>:
+80002e2c: 00001297 auipc t0,0x1
+80002e30: 1d428293 addi t0,t0,468 # 80004000 <begin_signature>
+80002e34: 0002a103 lw sp,0(t0)
+80002e38: 00200113 li sp,2
+80002e3c: 00200e93 li t4,2
+80002e40: 01200193 li gp,18
+80002e44: 03d11463 bne sp,t4,80002e6c <fail>
+
+80002e48 <test_19>:
+80002e48: 00001297 auipc t0,0x1
+80002e4c: 1b828293 addi t0,t0,440 # 80004000 <begin_signature>
+80002e50: 0002a103 lw sp,0(t0)
+80002e54: 00000013 nop
+80002e58: 00200113 li sp,2
+80002e5c: 00200e93 li t4,2
+80002e60: 01300193 li gp,19
+80002e64: 01d11463 bne sp,t4,80002e6c <fail>
+80002e68: 00301a63 bne zero,gp,80002e7c <pass>
+
+80002e6c <fail>:
+80002e6c: 00119513 slli a0,gp,0x1
+80002e70: 00050063 beqz a0,80002e70 <fail+0x4>
+80002e74: 00156513 ori a0,a0,1
+80002e78: 00000073 ecall
+
+80002e7c <pass>:
+80002e7c: 00100513 li a0,1
+80002e80: 00000073 ecall
+80002e84: c0001073 unimp
+
+Disassembly of section .data:
+
+80004000 <begin_signature>:
+80004000: 00ff 0xff
+80004002: 00ff 0xff
+
+80004004 <tdat2>:
+80004004: ff00 fsw fs0,56(a4)
+80004006: ff00 fsw fs0,56(a4)
+
+80004008 <tdat3>:
+80004008: 0ff0 addi a2,sp,988
+8000400a: 0ff0 addi a2,sp,988
+
+8000400c <tdat4>:
+8000400c: f00ff00f 0xf00ff00f
diff --git a/test/riscv-tests/rv32ui-v-lw.elf b/test/riscv-tests/rv32ui-v-lw.elf
new file mode 100644
index 0000000..a88c1d7
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-lw.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-v-or.dump b/test/riscv-tests/rv32ui-v-or.dump
new file mode 100644
index 0000000..2b4c8cb
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-or.dump
@@ -0,0 +1,1265 @@
+
+rv32ui-v-or: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00007117 auipc sp,0x7
+8000001c: 35010113 addi sp,sp,848 # 80007368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00002317 auipc t1,0x2
+80002370: c9430313 addi t1,t1,-876 # 80004000 <begin_signature>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00004797 auipc a5,0x4
+8000238c: 06c78793 addi a5,a5,108 # 800063f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00004717 auipc a4,0x4
+800023a0: 05470713 addi a4,a4,84 # 800063f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00004697 auipc a3,0x4
+800023ac: 04f6a623 sw a5,76(a3) # 800063f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00004717 auipc a4,0x4
+800023dc: e2070713 addi a4,a4,-480 # 800061f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf9c08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00004797 auipc a5,0x4
+800024bc: f207ac23 sw zero,-200(a5) # 800063f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00001597 auipc a1,0x1
+800024cc: bf858593 addi a1,a1,-1032 # 800030c0 <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00001597 auipc a1,0x1
+8000253c: c1458593 addi a1,a1,-1004 # 8000314c <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00001597 auipc a1,0x1
+800025a8: bc058593 addi a1,a1,-1088 # 80003164 <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00001597 auipc a1,0x1
+80002614: af458593 addi a1,a1,-1292 # 80003104 <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00001597 auipc a1,0x1
+8000274c: ae458593 addi a1,a1,-1308 # 8000322c <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00001597 auipc a1,0x1
+800027c0: a4c58593 addi a1,a1,-1460 # 80003208 <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00004b17 auipc s6,0x4
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800061f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00001d17 auipc s10,0x1
+80002840: 7c4d0d13 addi s10,s10,1988 # 80004000 <begin_signature>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00004717 auipc a4,0x4
+8000285c: b8f72c23 sw a5,-1128(a4) # 800063f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00004717 auipc a4,0x4
+800028e8: b0c70713 addi a4,a4,-1268 # 800063f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00004717 auipc a4,0x4
+800028fc: aef72c23 sw a5,-1288(a4) # 800063f0 <freelist_tail>
+80002900: 00004717 auipc a4,0x4
+80002904: aef72a23 sw a5,-1292(a4) # 800063f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00001617 auipc a2,0x1
+80002914: 94860613 addi a2,a2,-1720 # 80003258 <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00001617 auipc a2,0x1
+80002980: 85860613 addi a2,a2,-1960 # 800031d4 <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 7d860613 addi a2,a2,2008 # 800031a0 <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00002797 auipc a5,0x2
+80002a4c: 5b878793 addi a5,a5,1464 # 80005000 <begin_signature+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00001697 auipc a3,0x1
+80002a60: 5af6a223 sw a5,1444(a3) # 80004000 <begin_signature>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00001717 auipc a4,0x1
+80002a6c: 59870713 addi a4,a4,1432 # 80004000 <begin_signature>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00002697 auipc a3,0x2
+80002a7c: 58f6a223 sw a5,1412(a3) # 80004ffc <begin_signature+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf9ccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc03797 auipc a5,0x7fc03
+80002aec: 51878793 addi a5,a5,1304 # ffc06000 <_end+0x7fbffc08>
+80002af0: 00004717 auipc a4,0x4
+80002af4: 90f72223 sw a5,-1788(a4) # 800063f4 <freelist_head>
+80002af8: 7fc03797 auipc a5,0x7fc03
+80002afc: 6f878793 addi a5,a5,1784 # ffc061f0 <_end+0x7fbffdf8>
+80002b00: 00004717 auipc a4,0x4
+80002b04: 8ef72823 sw a5,-1808(a4) # 800063f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00003717 auipc a4,0x3
+80002b10: 4f470713 addi a4,a4,1268 # 80006000 <freelist_nodes>
+80002b14: 00003317 auipc t1,0x3
+80002b18: 6e430313 addi t1,t1,1764 # 800061f8 <user_mapping>
+80002b1c: 00e00793 li a5,14
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00003797 auipc a5,0x3
+80002b6c: 6807a623 sw zero,1676(a5) # 800061f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 009d97b7 lui a5,0x9d9
+80002b9c: 00080637 lui a2,0x80
+80002ba0: 37e78793 addi a5,a5,894 # 9d937e <_start-0x7f626c82>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: ff0100b7 lui ra,0xff010
+80002be4: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f009b08>
+80002be8: 0f0f1137 lui sp,0xf0f1
+80002bec: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80002bf0: 0020ef33 or t5,ra,sp
+80002bf4: ff100eb7 lui t4,0xff100
+80002bf8: f0fe8e93 addi t4,t4,-241 # ff0fff0f <_end+0x7f0f9b17>
+80002bfc: 00200193 li gp,2
+80002c00: 4bdf1263 bne t5,t4,800030a4 <fail>
+
+80002c04 <test_3>:
+80002c04: 0ff010b7 lui ra,0xff01
+80002c08: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+80002c0c: f0f0f137 lui sp,0xf0f0f
+80002c10: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f08cf8>
+80002c14: 0020ef33 or t5,ra,sp
+80002c18: fff10eb7 lui t4,0xfff10
+80002c1c: ff0e8e93 addi t4,t4,-16 # fff0fff0 <_end+0x7ff09bf8>
+80002c20: 00300193 li gp,3
+80002c24: 49df1063 bne t5,t4,800030a4 <fail>
+
+80002c28 <test_4>:
+80002c28: 00ff00b7 lui ra,0xff0
+80002c2c: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+80002c30: 0f0f1137 lui sp,0xf0f1
+80002c34: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80002c38: 0020ef33 or t5,ra,sp
+80002c3c: 0fff1eb7 lui t4,0xfff1
+80002c40: fffe8e93 addi t4,t4,-1 # fff0fff <_start-0x7000f001>
+80002c44: 00400193 li gp,4
+80002c48: 45df1e63 bne t5,t4,800030a4 <fail>
+
+80002c4c <test_5>:
+80002c4c: f00ff0b7 lui ra,0xf00ff
+80002c50: 00f08093 addi ra,ra,15 # f00ff00f <_end+0x700f8c17>
+80002c54: f0f0f137 lui sp,0xf0f0f
+80002c58: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f08cf8>
+80002c5c: 0020ef33 or t5,ra,sp
+80002c60: f0fffeb7 lui t4,0xf0fff
+80002c64: 0ffe8e93 addi t4,t4,255 # f0fff0ff <_end+0x70ff8d07>
+80002c68: 00500193 li gp,5
+80002c6c: 43df1c63 bne t5,t4,800030a4 <fail>
+
+80002c70 <test_6>:
+80002c70: ff0100b7 lui ra,0xff010
+80002c74: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f009b08>
+80002c78: 0f0f1137 lui sp,0xf0f1
+80002c7c: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80002c80: 0020e0b3 or ra,ra,sp
+80002c84: ff100eb7 lui t4,0xff100
+80002c88: f0fe8e93 addi t4,t4,-241 # ff0fff0f <_end+0x7f0f9b17>
+80002c8c: 00600193 li gp,6
+80002c90: 41d09a63 bne ra,t4,800030a4 <fail>
+
+80002c94 <test_7>:
+80002c94: ff0100b7 lui ra,0xff010
+80002c98: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f009b08>
+80002c9c: 0f0f1137 lui sp,0xf0f1
+80002ca0: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80002ca4: 0020e133 or sp,ra,sp
+80002ca8: ff100eb7 lui t4,0xff100
+80002cac: f0fe8e93 addi t4,t4,-241 # ff0fff0f <_end+0x7f0f9b17>
+80002cb0: 00700193 li gp,7
+80002cb4: 3fd11863 bne sp,t4,800030a4 <fail>
+
+80002cb8 <test_8>:
+80002cb8: ff0100b7 lui ra,0xff010
+80002cbc: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f009b08>
+80002cc0: 0010e0b3 or ra,ra,ra
+80002cc4: ff010eb7 lui t4,0xff010
+80002cc8: f00e8e93 addi t4,t4,-256 # ff00ff00 <_end+0x7f009b08>
+80002ccc: 00800193 li gp,8
+80002cd0: 3dd09a63 bne ra,t4,800030a4 <fail>
+
+80002cd4 <test_9>:
+80002cd4: 00000213 li tp,0
+80002cd8: ff0100b7 lui ra,0xff010
+80002cdc: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f009b08>
+80002ce0: 0f0f1137 lui sp,0xf0f1
+80002ce4: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80002ce8: 0020ef33 or t5,ra,sp
+80002cec: 000f0313 mv t1,t5
+80002cf0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002cf4: 00200293 li t0,2
+80002cf8: fe5210e3 bne tp,t0,80002cd8 <test_9+0x4>
+80002cfc: ff100eb7 lui t4,0xff100
+80002d00: f0fe8e93 addi t4,t4,-241 # ff0fff0f <_end+0x7f0f9b17>
+80002d04: 00900193 li gp,9
+80002d08: 39d31e63 bne t1,t4,800030a4 <fail>
+
+80002d0c <test_10>:
+80002d0c: 00000213 li tp,0
+80002d10: 0ff010b7 lui ra,0xff01
+80002d14: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+80002d18: f0f0f137 lui sp,0xf0f0f
+80002d1c: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f08cf8>
+80002d20: 0020ef33 or t5,ra,sp
+80002d24: 00000013 nop
+80002d28: 000f0313 mv t1,t5
+80002d2c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d30: 00200293 li t0,2
+80002d34: fc521ee3 bne tp,t0,80002d10 <test_10+0x4>
+80002d38: fff10eb7 lui t4,0xfff10
+80002d3c: ff0e8e93 addi t4,t4,-16 # fff0fff0 <_end+0x7ff09bf8>
+80002d40: 00a00193 li gp,10
+80002d44: 37d31063 bne t1,t4,800030a4 <fail>
+
+80002d48 <test_11>:
+80002d48: 00000213 li tp,0
+80002d4c: 00ff00b7 lui ra,0xff0
+80002d50: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+80002d54: 0f0f1137 lui sp,0xf0f1
+80002d58: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80002d5c: 0020ef33 or t5,ra,sp
+80002d60: 00000013 nop
+80002d64: 00000013 nop
+80002d68: 000f0313 mv t1,t5
+80002d6c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d70: 00200293 li t0,2
+80002d74: fc521ce3 bne tp,t0,80002d4c <test_11+0x4>
+80002d78: 0fff1eb7 lui t4,0xfff1
+80002d7c: fffe8e93 addi t4,t4,-1 # fff0fff <_start-0x7000f001>
+80002d80: 00b00193 li gp,11
+80002d84: 33d31063 bne t1,t4,800030a4 <fail>
+
+80002d88 <test_12>:
+80002d88: 00000213 li tp,0
+80002d8c: ff0100b7 lui ra,0xff010
+80002d90: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f009b08>
+80002d94: 0f0f1137 lui sp,0xf0f1
+80002d98: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80002d9c: 0020ef33 or t5,ra,sp
+80002da0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002da4: 00200293 li t0,2
+80002da8: fe5212e3 bne tp,t0,80002d8c <test_12+0x4>
+80002dac: ff100eb7 lui t4,0xff100
+80002db0: f0fe8e93 addi t4,t4,-241 # ff0fff0f <_end+0x7f0f9b17>
+80002db4: 00c00193 li gp,12
+80002db8: 2fdf1663 bne t5,t4,800030a4 <fail>
+
+80002dbc <test_13>:
+80002dbc: 00000213 li tp,0
+80002dc0: 0ff010b7 lui ra,0xff01
+80002dc4: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+80002dc8: f0f0f137 lui sp,0xf0f0f
+80002dcc: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f08cf8>
+80002dd0: 00000013 nop
+80002dd4: 0020ef33 or t5,ra,sp
+80002dd8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002ddc: 00200293 li t0,2
+80002de0: fe5210e3 bne tp,t0,80002dc0 <test_13+0x4>
+80002de4: fff10eb7 lui t4,0xfff10
+80002de8: ff0e8e93 addi t4,t4,-16 # fff0fff0 <_end+0x7ff09bf8>
+80002dec: 00d00193 li gp,13
+80002df0: 2bdf1a63 bne t5,t4,800030a4 <fail>
+
+80002df4 <test_14>:
+80002df4: 00000213 li tp,0
+80002df8: 00ff00b7 lui ra,0xff0
+80002dfc: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+80002e00: 0f0f1137 lui sp,0xf0f1
+80002e04: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80002e08: 00000013 nop
+80002e0c: 00000013 nop
+80002e10: 0020ef33 or t5,ra,sp
+80002e14: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e18: 00200293 li t0,2
+80002e1c: fc521ee3 bne tp,t0,80002df8 <test_14+0x4>
+80002e20: 0fff1eb7 lui t4,0xfff1
+80002e24: fffe8e93 addi t4,t4,-1 # fff0fff <_start-0x7000f001>
+80002e28: 00e00193 li gp,14
+80002e2c: 27df1c63 bne t5,t4,800030a4 <fail>
+
+80002e30 <test_15>:
+80002e30: 00000213 li tp,0
+80002e34: ff0100b7 lui ra,0xff010
+80002e38: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f009b08>
+80002e3c: 00000013 nop
+80002e40: 0f0f1137 lui sp,0xf0f1
+80002e44: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80002e48: 0020ef33 or t5,ra,sp
+80002e4c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e50: 00200293 li t0,2
+80002e54: fe5210e3 bne tp,t0,80002e34 <test_15+0x4>
+80002e58: ff100eb7 lui t4,0xff100
+80002e5c: f0fe8e93 addi t4,t4,-241 # ff0fff0f <_end+0x7f0f9b17>
+80002e60: 00f00193 li gp,15
+80002e64: 25df1063 bne t5,t4,800030a4 <fail>
+
+80002e68 <test_16>:
+80002e68: 00000213 li tp,0
+80002e6c: 0ff010b7 lui ra,0xff01
+80002e70: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+80002e74: 00000013 nop
+80002e78: f0f0f137 lui sp,0xf0f0f
+80002e7c: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f08cf8>
+80002e80: 00000013 nop
+80002e84: 0020ef33 or t5,ra,sp
+80002e88: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e8c: 00200293 li t0,2
+80002e90: fc521ee3 bne tp,t0,80002e6c <test_16+0x4>
+80002e94: fff10eb7 lui t4,0xfff10
+80002e98: ff0e8e93 addi t4,t4,-16 # fff0fff0 <_end+0x7ff09bf8>
+80002e9c: 01000193 li gp,16
+80002ea0: 21df1263 bne t5,t4,800030a4 <fail>
+
+80002ea4 <test_17>:
+80002ea4: 00000213 li tp,0
+80002ea8: 00ff00b7 lui ra,0xff0
+80002eac: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+80002eb0: 00000013 nop
+80002eb4: 00000013 nop
+80002eb8: 0f0f1137 lui sp,0xf0f1
+80002ebc: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80002ec0: 0020ef33 or t5,ra,sp
+80002ec4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002ec8: 00200293 li t0,2
+80002ecc: fc521ee3 bne tp,t0,80002ea8 <test_17+0x4>
+80002ed0: 0fff1eb7 lui t4,0xfff1
+80002ed4: fffe8e93 addi t4,t4,-1 # fff0fff <_start-0x7000f001>
+80002ed8: 01100193 li gp,17
+80002edc: 1ddf1463 bne t5,t4,800030a4 <fail>
+
+80002ee0 <test_18>:
+80002ee0: 00000213 li tp,0
+80002ee4: 0f0f1137 lui sp,0xf0f1
+80002ee8: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80002eec: ff0100b7 lui ra,0xff010
+80002ef0: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f009b08>
+80002ef4: 0020ef33 or t5,ra,sp
+80002ef8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002efc: 00200293 li t0,2
+80002f00: fe5212e3 bne tp,t0,80002ee4 <test_18+0x4>
+80002f04: ff100eb7 lui t4,0xff100
+80002f08: f0fe8e93 addi t4,t4,-241 # ff0fff0f <_end+0x7f0f9b17>
+80002f0c: 01200193 li gp,18
+80002f10: 19df1a63 bne t5,t4,800030a4 <fail>
+
+80002f14 <test_19>:
+80002f14: 00000213 li tp,0
+80002f18: f0f0f137 lui sp,0xf0f0f
+80002f1c: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f08cf8>
+80002f20: 0ff010b7 lui ra,0xff01
+80002f24: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+80002f28: 00000013 nop
+80002f2c: 0020ef33 or t5,ra,sp
+80002f30: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002f34: 00200293 li t0,2
+80002f38: fe5210e3 bne tp,t0,80002f18 <test_19+0x4>
+80002f3c: fff10eb7 lui t4,0xfff10
+80002f40: ff0e8e93 addi t4,t4,-16 # fff0fff0 <_end+0x7ff09bf8>
+80002f44: 01300193 li gp,19
+80002f48: 15df1e63 bne t5,t4,800030a4 <fail>
+
+80002f4c <test_20>:
+80002f4c: 00000213 li tp,0
+80002f50: 0f0f1137 lui sp,0xf0f1
+80002f54: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80002f58: 00ff00b7 lui ra,0xff0
+80002f5c: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+80002f60: 00000013 nop
+80002f64: 00000013 nop
+80002f68: 0020ef33 or t5,ra,sp
+80002f6c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002f70: 00200293 li t0,2
+80002f74: fc521ee3 bne tp,t0,80002f50 <test_20+0x4>
+80002f78: 0fff1eb7 lui t4,0xfff1
+80002f7c: fffe8e93 addi t4,t4,-1 # fff0fff <_start-0x7000f001>
+80002f80: 01400193 li gp,20
+80002f84: 13df1063 bne t5,t4,800030a4 <fail>
+
+80002f88 <test_21>:
+80002f88: 00000213 li tp,0
+80002f8c: 0f0f1137 lui sp,0xf0f1
+80002f90: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80002f94: 00000013 nop
+80002f98: ff0100b7 lui ra,0xff010
+80002f9c: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f009b08>
+80002fa0: 0020ef33 or t5,ra,sp
+80002fa4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002fa8: 00200293 li t0,2
+80002fac: fe5210e3 bne tp,t0,80002f8c <test_21+0x4>
+80002fb0: ff100eb7 lui t4,0xff100
+80002fb4: f0fe8e93 addi t4,t4,-241 # ff0fff0f <_end+0x7f0f9b17>
+80002fb8: 01500193 li gp,21
+80002fbc: 0fdf1463 bne t5,t4,800030a4 <fail>
+
+80002fc0 <test_22>:
+80002fc0: 00000213 li tp,0
+80002fc4: f0f0f137 lui sp,0xf0f0f
+80002fc8: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f08cf8>
+80002fcc: 00000013 nop
+80002fd0: 0ff010b7 lui ra,0xff01
+80002fd4: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+80002fd8: 00000013 nop
+80002fdc: 0020ef33 or t5,ra,sp
+80002fe0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002fe4: 00200293 li t0,2
+80002fe8: fc521ee3 bne tp,t0,80002fc4 <test_22+0x4>
+80002fec: fff10eb7 lui t4,0xfff10
+80002ff0: ff0e8e93 addi t4,t4,-16 # fff0fff0 <_end+0x7ff09bf8>
+80002ff4: 01600193 li gp,22
+80002ff8: 0bdf1663 bne t5,t4,800030a4 <fail>
+
+80002ffc <test_23>:
+80002ffc: 00000213 li tp,0
+80003000: 0f0f1137 lui sp,0xf0f1
+80003004: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80003008: 00000013 nop
+8000300c: 00000013 nop
+80003010: 00ff00b7 lui ra,0xff0
+80003014: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+80003018: 0020ef33 or t5,ra,sp
+8000301c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80003020: 00200293 li t0,2
+80003024: fc521ee3 bne tp,t0,80003000 <test_23+0x4>
+80003028: 0fff1eb7 lui t4,0xfff1
+8000302c: fffe8e93 addi t4,t4,-1 # fff0fff <_start-0x7000f001>
+80003030: 01700193 li gp,23
+80003034: 07df1863 bne t5,t4,800030a4 <fail>
+
+80003038 <test_24>:
+80003038: ff0100b7 lui ra,0xff010
+8000303c: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f009b08>
+80003040: 00106133 or sp,zero,ra
+80003044: ff010eb7 lui t4,0xff010
+80003048: f00e8e93 addi t4,t4,-256 # ff00ff00 <_end+0x7f009b08>
+8000304c: 01800193 li gp,24
+80003050: 05d11a63 bne sp,t4,800030a4 <fail>
+
+80003054 <test_25>:
+80003054: 00ff00b7 lui ra,0xff0
+80003058: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+8000305c: 0000e133 or sp,ra,zero
+80003060: 00ff0eb7 lui t4,0xff0
+80003064: 0ffe8e93 addi t4,t4,255 # ff00ff <_start-0x7f00ff01>
+80003068: 01900193 li gp,25
+8000306c: 03d11c63 bne sp,t4,800030a4 <fail>
+
+80003070 <test_26>:
+80003070: 000060b3 or ra,zero,zero
+80003074: 00000e93 li t4,0
+80003078: 01a00193 li gp,26
+8000307c: 03d09463 bne ra,t4,800030a4 <fail>
+
+80003080 <test_27>:
+80003080: 111110b7 lui ra,0x11111
+80003084: 11108093 addi ra,ra,273 # 11111111 <_start-0x6eeeeeef>
+80003088: 22222137 lui sp,0x22222
+8000308c: 22210113 addi sp,sp,546 # 22222222 <_start-0x5dddddde>
+80003090: 0020e033 or zero,ra,sp
+80003094: 00000e93 li t4,0
+80003098: 01b00193 li gp,27
+8000309c: 01d01463 bne zero,t4,800030a4 <fail>
+800030a0: 00301a63 bne zero,gp,800030b4 <pass>
+
+800030a4 <fail>:
+800030a4: 00119513 slli a0,gp,0x1
+800030a8: 00050063 beqz a0,800030a8 <fail+0x4>
+800030ac: 00156513 ori a0,a0,1
+800030b0: 00000073 ecall
+
+800030b4 <pass>:
+800030b4: 00100513 li a0,1
+800030b8: 00000073 ecall
+800030bc: c0001073 unimp
diff --git a/test/riscv-tests/rv32ui-v-or.elf b/test/riscv-tests/rv32ui-v-or.elf
new file mode 100644
index 0000000..541ab9c
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-or.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-v-ori.dump b/test/riscv-tests/rv32ui-v-ori.dump
new file mode 100644
index 0000000..662257e
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-ori.dump
@@ -0,0 +1,1053 @@
+
+rv32ui-v-ori: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00006117 auipc sp,0x6
+8000001c: 35010113 addi sp,sp,848 # 80006368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00001317 auipc t1,0x1
+80002370: c9430313 addi t1,t1,-876 # 80003000 <begin_signature>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00003797 auipc a5,0x3
+8000238c: 06c78793 addi a5,a5,108 # 800053f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00003717 auipc a4,0x3
+800023a0: 05470713 addi a4,a4,84 # 800053f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00003697 auipc a3,0x3
+800023ac: 04f6a623 sw a5,76(a3) # 800053f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00003717 auipc a4,0x3
+800023dc: e2070713 addi a4,a4,-480 # 800051f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbfac08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00003797 auipc a5,0x3
+800024bc: f207ac23 sw zero,-200(a5) # 800053f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00001597 auipc a1,0x1
+800024cc: 91058593 addi a1,a1,-1776 # 80002dd8 <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00001597 auipc a1,0x1
+8000253c: 92c58593 addi a1,a1,-1748 # 80002e64 <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00001597 auipc a1,0x1
+800025a8: 8d858593 addi a1,a1,-1832 # 80002e7c <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00001597 auipc a1,0x1
+80002614: 80c58593 addi a1,a1,-2036 # 80002e1c <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00000597 auipc a1,0x0
+8000274c: 7fc58593 addi a1,a1,2044 # 80002f44 <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00000597 auipc a1,0x0
+800027c0: 76458593 addi a1,a1,1892 # 80002f20 <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00003b17 auipc s6,0x3
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800051f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00000d17 auipc s10,0x0
+80002840: 7c4d0d13 addi s10,s10,1988 # 80003000 <begin_signature>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00003717 auipc a4,0x3
+8000285c: b8f72c23 sw a5,-1128(a4) # 800053f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00003717 auipc a4,0x3
+800028e8: b0c70713 addi a4,a4,-1268 # 800053f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00003717 auipc a4,0x3
+800028fc: aef72c23 sw a5,-1288(a4) # 800053f0 <freelist_tail>
+80002900: 00003717 auipc a4,0x3
+80002904: aef72a23 sw a5,-1292(a4) # 800053f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00000617 auipc a2,0x0
+80002914: 66060613 addi a2,a2,1632 # 80002f70 <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00000617 auipc a2,0x0
+80002980: 57060613 addi a2,a2,1392 # 80002eec <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 4f060613 addi a2,a2,1264 # 80002eb8 <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00001797 auipc a5,0x1
+80002a4c: 5b878793 addi a5,a5,1464 # 80004000 <begin_signature+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00000697 auipc a3,0x0
+80002a60: 5af6a223 sw a5,1444(a3) # 80003000 <begin_signature>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00000717 auipc a4,0x0
+80002a6c: 59870713 addi a4,a4,1432 # 80003000 <begin_signature>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00001697 auipc a3,0x1
+80002a7c: 58f6a223 sw a5,1412(a3) # 80003ffc <begin_signature+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbfaccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc02797 auipc a5,0x7fc02
+80002aec: 51878793 addi a5,a5,1304 # ffc05000 <_end+0x7fbffc08>
+80002af0: 00003717 auipc a4,0x3
+80002af4: 90f72223 sw a5,-1788(a4) # 800053f4 <freelist_head>
+80002af8: 7fc02797 auipc a5,0x7fc02
+80002afc: 6f878793 addi a5,a5,1784 # ffc051f0 <_end+0x7fbffdf8>
+80002b00: 00003717 auipc a4,0x3
+80002b04: 8ef72823 sw a5,-1808(a4) # 800053f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00002717 auipc a4,0x2
+80002b10: 4f470713 addi a4,a4,1268 # 80005000 <freelist_nodes>
+80002b14: 00002317 auipc t1,0x2
+80002b18: 6e430313 addi t1,t1,1764 # 800051f8 <user_mapping>
+80002b1c: 02f00793 li a5,47
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00002797 auipc a5,0x2
+80002b6c: 6807a623 sw zero,1676(a5) # 800051f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 03ce67b7 lui a5,0x3ce6
+80002b9c: 00080637 lui a2,0x80
+80002ba0: 9ea78793 addi a5,a5,-1558 # 3ce59ea <_start-0x7c31a616>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: ff0100b7 lui ra,0xff010
+80002be4: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00ab08>
+80002be8: f0f0ef13 ori t5,ra,-241
+80002bec: f0f00e93 li t4,-241
+80002bf0: 00200193 li gp,2
+80002bf4: 1ddf1463 bne t5,t4,80002dbc <fail>
+
+80002bf8 <test_3>:
+80002bf8: 0ff010b7 lui ra,0xff01
+80002bfc: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+80002c00: 0f00ef13 ori t5,ra,240
+80002c04: 0ff01eb7 lui t4,0xff01
+80002c08: ff0e8e93 addi t4,t4,-16 # ff00ff0 <_start-0x700ff010>
+80002c0c: 00300193 li gp,3
+80002c10: 1bdf1663 bne t5,t4,80002dbc <fail>
+
+80002c14 <test_4>:
+80002c14: 00ff00b7 lui ra,0xff0
+80002c18: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+80002c1c: 70f0ef13 ori t5,ra,1807
+80002c20: 00ff0eb7 lui t4,0xff0
+80002c24: 7ffe8e93 addi t4,t4,2047 # ff07ff <_start-0x7f00f801>
+80002c28: 00400193 li gp,4
+80002c2c: 19df1863 bne t5,t4,80002dbc <fail>
+
+80002c30 <test_5>:
+80002c30: f00ff0b7 lui ra,0xf00ff
+80002c34: 00f08093 addi ra,ra,15 # f00ff00f <_end+0x700f9c17>
+80002c38: 0f00ef13 ori t5,ra,240
+80002c3c: f00ffeb7 lui t4,0xf00ff
+80002c40: 0ffe8e93 addi t4,t4,255 # f00ff0ff <_end+0x700f9d07>
+80002c44: 00500193 li gp,5
+80002c48: 17df1a63 bne t5,t4,80002dbc <fail>
+
+80002c4c <test_6>:
+80002c4c: ff0100b7 lui ra,0xff010
+80002c50: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f00ab08>
+80002c54: 0f00e093 ori ra,ra,240
+80002c58: ff010eb7 lui t4,0xff010
+80002c5c: ff0e8e93 addi t4,t4,-16 # ff00fff0 <_end+0x7f00abf8>
+80002c60: 00600193 li gp,6
+80002c64: 15d09c63 bne ra,t4,80002dbc <fail>
+
+80002c68 <test_7>:
+80002c68: 00000213 li tp,0
+80002c6c: 0ff010b7 lui ra,0xff01
+80002c70: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+80002c74: 0f00ef13 ori t5,ra,240
+80002c78: 000f0313 mv t1,t5
+80002c7c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002c80: 00200293 li t0,2
+80002c84: fe5214e3 bne tp,t0,80002c6c <test_7+0x4>
+80002c88: 0ff01eb7 lui t4,0xff01
+80002c8c: ff0e8e93 addi t4,t4,-16 # ff00ff0 <_start-0x700ff010>
+80002c90: 00700193 li gp,7
+80002c94: 13d31463 bne t1,t4,80002dbc <fail>
+
+80002c98 <test_8>:
+80002c98: 00000213 li tp,0
+80002c9c: 00ff00b7 lui ra,0xff0
+80002ca0: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+80002ca4: 70f0ef13 ori t5,ra,1807
+80002ca8: 00000013 nop
+80002cac: 000f0313 mv t1,t5
+80002cb0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002cb4: 00200293 li t0,2
+80002cb8: fe5212e3 bne tp,t0,80002c9c <test_8+0x4>
+80002cbc: 00ff0eb7 lui t4,0xff0
+80002cc0: 7ffe8e93 addi t4,t4,2047 # ff07ff <_start-0x7f00f801>
+80002cc4: 00800193 li gp,8
+80002cc8: 0fd31a63 bne t1,t4,80002dbc <fail>
+
+80002ccc <test_9>:
+80002ccc: 00000213 li tp,0
+80002cd0: f00ff0b7 lui ra,0xf00ff
+80002cd4: 00f08093 addi ra,ra,15 # f00ff00f <_end+0x700f9c17>
+80002cd8: 0f00ef13 ori t5,ra,240
+80002cdc: 00000013 nop
+80002ce0: 00000013 nop
+80002ce4: 000f0313 mv t1,t5
+80002ce8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002cec: 00200293 li t0,2
+80002cf0: fe5210e3 bne tp,t0,80002cd0 <test_9+0x4>
+80002cf4: f00ffeb7 lui t4,0xf00ff
+80002cf8: 0ffe8e93 addi t4,t4,255 # f00ff0ff <_end+0x700f9d07>
+80002cfc: 00900193 li gp,9
+80002d00: 0bd31e63 bne t1,t4,80002dbc <fail>
+
+80002d04 <test_10>:
+80002d04: 00000213 li tp,0
+80002d08: 0ff010b7 lui ra,0xff01
+80002d0c: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+80002d10: 0f00ef13 ori t5,ra,240
+80002d14: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d18: 00200293 li t0,2
+80002d1c: fe5216e3 bne tp,t0,80002d08 <test_10+0x4>
+80002d20: 0ff01eb7 lui t4,0xff01
+80002d24: ff0e8e93 addi t4,t4,-16 # ff00ff0 <_start-0x700ff010>
+80002d28: 00a00193 li gp,10
+80002d2c: 09df1863 bne t5,t4,80002dbc <fail>
+
+80002d30 <test_11>:
+80002d30: 00000213 li tp,0
+80002d34: 00ff00b7 lui ra,0xff0
+80002d38: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+80002d3c: 00000013 nop
+80002d40: f0f0ef13 ori t5,ra,-241
+80002d44: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d48: 00200293 li t0,2
+80002d4c: fe5214e3 bne tp,t0,80002d34 <test_11+0x4>
+80002d50: fff00e93 li t4,-1
+80002d54: 00b00193 li gp,11
+80002d58: 07df1263 bne t5,t4,80002dbc <fail>
+
+80002d5c <test_12>:
+80002d5c: 00000213 li tp,0
+80002d60: f00ff0b7 lui ra,0xf00ff
+80002d64: 00f08093 addi ra,ra,15 # f00ff00f <_end+0x700f9c17>
+80002d68: 00000013 nop
+80002d6c: 00000013 nop
+80002d70: 0f00ef13 ori t5,ra,240
+80002d74: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d78: 00200293 li t0,2
+80002d7c: fe5212e3 bne tp,t0,80002d60 <test_12+0x4>
+80002d80: f00ffeb7 lui t4,0xf00ff
+80002d84: 0ffe8e93 addi t4,t4,255 # f00ff0ff <_end+0x700f9d07>
+80002d88: 00c00193 li gp,12
+80002d8c: 03df1863 bne t5,t4,80002dbc <fail>
+
+80002d90 <test_13>:
+80002d90: 0f006093 ori ra,zero,240
+80002d94: 0f000e93 li t4,240
+80002d98: 00d00193 li gp,13
+80002d9c: 03d09063 bne ra,t4,80002dbc <fail>
+
+80002da0 <test_14>:
+80002da0: 00ff00b7 lui ra,0xff0
+80002da4: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+80002da8: 70f0e013 ori zero,ra,1807
+80002dac: 00000e93 li t4,0
+80002db0: 00e00193 li gp,14
+80002db4: 01d01463 bne zero,t4,80002dbc <fail>
+80002db8: 00301a63 bne zero,gp,80002dcc <pass>
+
+80002dbc <fail>:
+80002dbc: 00119513 slli a0,gp,0x1
+80002dc0: 00050063 beqz a0,80002dc0 <fail+0x4>
+80002dc4: 00156513 ori a0,a0,1
+80002dc8: 00000073 ecall
+
+80002dcc <pass>:
+80002dcc: 00100513 li a0,1
+80002dd0: 00000073 ecall
+80002dd4: c0001073 unimp
diff --git a/test/riscv-tests/rv32ui-v-ori.elf b/test/riscv-tests/rv32ui-v-ori.elf
new file mode 100644
index 0000000..2bf2e67
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-ori.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-v-sb.dump b/test/riscv-tests/rv32ui-v-sb.dump
new file mode 100644
index 0000000..6b6ed07
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-sb.dump
@@ -0,0 +1,1239 @@
+
+rv32ui-v-sb: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00008117 auipc sp,0x8
+8000001c: 35010113 addi sp,sp,848 # 80008368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00003317 auipc t1,0x3
+80002370: c9430313 addi t1,t1,-876 # 80005000 <pt>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00005797 auipc a5,0x5
+8000238c: 06c78793 addi a5,a5,108 # 800073f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00005717 auipc a4,0x5
+800023a0: 05470713 addi a4,a4,84 # 800073f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00005697 auipc a3,0x5
+800023ac: 04f6a623 sw a5,76(a3) # 800073f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00005717 auipc a4,0x5
+800023dc: e2070713 addi a4,a4,-480 # 800071f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf8c08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00005797 auipc a5,0x5
+800024bc: f207ac23 sw zero,-200(a5) # 800073f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00001597 auipc a1,0x1
+800024cc: b2858593 addi a1,a1,-1240 # 80002ff0 <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00001597 auipc a1,0x1
+8000253c: b4458593 addi a1,a1,-1212 # 8000307c <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00001597 auipc a1,0x1
+800025a8: af058593 addi a1,a1,-1296 # 80003094 <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00001597 auipc a1,0x1
+80002614: a2458593 addi a1,a1,-1500 # 80003034 <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00001597 auipc a1,0x1
+8000274c: a1458593 addi a1,a1,-1516 # 8000315c <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00001597 auipc a1,0x1
+800027c0: 97c58593 addi a1,a1,-1668 # 80003138 <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00005b17 auipc s6,0x5
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800071f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00002d17 auipc s10,0x2
+80002840: 7c4d0d13 addi s10,s10,1988 # 80005000 <pt>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00005717 auipc a4,0x5
+8000285c: b8f72c23 sw a5,-1128(a4) # 800073f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00005717 auipc a4,0x5
+800028e8: b0c70713 addi a4,a4,-1268 # 800073f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00005717 auipc a4,0x5
+800028fc: aef72c23 sw a5,-1288(a4) # 800073f0 <freelist_tail>
+80002900: 00005717 auipc a4,0x5
+80002904: aef72a23 sw a5,-1292(a4) # 800073f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00001617 auipc a2,0x1
+80002914: 87860613 addi a2,a2,-1928 # 80003188 <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00000617 auipc a2,0x0
+80002980: 78860613 addi a2,a2,1928 # 80003104 <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 70860613 addi a2,a2,1800 # 800030d0 <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00003797 auipc a5,0x3
+80002a4c: 5b878793 addi a5,a5,1464 # 80006000 <pt+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00002697 auipc a3,0x2
+80002a60: 5af6a223 sw a5,1444(a3) # 80005000 <pt>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00002717 auipc a4,0x2
+80002a6c: 59870713 addi a4,a4,1432 # 80005000 <pt>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00003697 auipc a3,0x3
+80002a7c: 58f6a223 sw a5,1412(a3) # 80005ffc <pt+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf8ccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc04797 auipc a5,0x7fc04
+80002aec: 51878793 addi a5,a5,1304 # ffc07000 <_end+0x7fbffc08>
+80002af0: 00005717 auipc a4,0x5
+80002af4: 90f72223 sw a5,-1788(a4) # 800073f4 <freelist_head>
+80002af8: 7fc04797 auipc a5,0x7fc04
+80002afc: 6f878793 addi a5,a5,1784 # ffc071f0 <_end+0x7fbffdf8>
+80002b00: 00005717 auipc a4,0x5
+80002b04: 8ef72823 sw a5,-1808(a4) # 800073f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00004717 auipc a4,0x4
+80002b10: 4f470713 addi a4,a4,1268 # 80007000 <freelist_nodes>
+80002b14: 00004317 auipc t1,0x4
+80002b18: 6e430313 addi t1,t1,1764 # 800071f8 <user_mapping>
+80002b1c: 02f00793 li a5,47
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00004797 auipc a5,0x4
+80002b6c: 6807a623 sw zero,1676(a5) # 800071f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 0925a7b7 lui a5,0x925a
+80002b9c: 00080637 lui a2,0x80
+80002ba0: 0fe78793 addi a5,a5,254 # 925a0fe <_start-0x76da5f02>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: 00001097 auipc ra,0x1
+80002be4: 42008093 addi ra,ra,1056 # 80004000 <begin_signature>
+80002be8: faa00113 li sp,-86
+80002bec: 00208023 sb sp,0(ra)
+80002bf0: 00008f03 lb t5,0(ra)
+80002bf4: faa00e93 li t4,-86
+80002bf8: 00200193 li gp,2
+80002bfc: 3ddf1c63 bne t5,t4,80002fd4 <fail>
+
+80002c00 <test_3>:
+80002c00: 00001097 auipc ra,0x1
+80002c04: 40008093 addi ra,ra,1024 # 80004000 <begin_signature>
+80002c08: 00000113 li sp,0
+80002c0c: 002080a3 sb sp,1(ra)
+80002c10: 00108f03 lb t5,1(ra)
+80002c14: 00000e93 li t4,0
+80002c18: 00300193 li gp,3
+80002c1c: 3bdf1c63 bne t5,t4,80002fd4 <fail>
+
+80002c20 <test_4>:
+80002c20: 00001097 auipc ra,0x1
+80002c24: 3e008093 addi ra,ra,992 # 80004000 <begin_signature>
+80002c28: fffff137 lui sp,0xfffff
+80002c2c: fa010113 addi sp,sp,-96 # ffffefa0 <_end+0x7fff7ba8>
+80002c30: 00208123 sb sp,2(ra)
+80002c34: 00209f03 lh t5,2(ra)
+80002c38: fffffeb7 lui t4,0xfffff
+80002c3c: fa0e8e93 addi t4,t4,-96 # ffffefa0 <_end+0x7fff7ba8>
+80002c40: 00400193 li gp,4
+80002c44: 39df1863 bne t5,t4,80002fd4 <fail>
+
+80002c48 <test_5>:
+80002c48: 00001097 auipc ra,0x1
+80002c4c: 3b808093 addi ra,ra,952 # 80004000 <begin_signature>
+80002c50: 00a00113 li sp,10
+80002c54: 002081a3 sb sp,3(ra)
+80002c58: 00308f03 lb t5,3(ra)
+80002c5c: 00a00e93 li t4,10
+80002c60: 00500193 li gp,5
+80002c64: 37df1863 bne t5,t4,80002fd4 <fail>
+
+80002c68 <test_6>:
+80002c68: 00001097 auipc ra,0x1
+80002c6c: 39f08093 addi ra,ra,927 # 80004007 <tdat8>
+80002c70: faa00113 li sp,-86
+80002c74: fe208ea3 sb sp,-3(ra)
+80002c78: ffd08f03 lb t5,-3(ra)
+80002c7c: faa00e93 li t4,-86
+80002c80: 00600193 li gp,6
+80002c84: 35df1863 bne t5,t4,80002fd4 <fail>
+
+80002c88 <test_7>:
+80002c88: 00001097 auipc ra,0x1
+80002c8c: 37f08093 addi ra,ra,895 # 80004007 <tdat8>
+80002c90: 00000113 li sp,0
+80002c94: fe208f23 sb sp,-2(ra)
+80002c98: ffe08f03 lb t5,-2(ra)
+80002c9c: 00000e93 li t4,0
+80002ca0: 00700193 li gp,7
+80002ca4: 33df1863 bne t5,t4,80002fd4 <fail>
+
+80002ca8 <test_8>:
+80002ca8: 00001097 auipc ra,0x1
+80002cac: 35f08093 addi ra,ra,863 # 80004007 <tdat8>
+80002cb0: fa000113 li sp,-96
+80002cb4: fe208fa3 sb sp,-1(ra)
+80002cb8: fff08f03 lb t5,-1(ra)
+80002cbc: fa000e93 li t4,-96
+80002cc0: 00800193 li gp,8
+80002cc4: 31df1863 bne t5,t4,80002fd4 <fail>
+
+80002cc8 <test_9>:
+80002cc8: 00001097 auipc ra,0x1
+80002ccc: 33f08093 addi ra,ra,831 # 80004007 <tdat8>
+80002cd0: 00a00113 li sp,10
+80002cd4: 00208023 sb sp,0(ra)
+80002cd8: 00008f03 lb t5,0(ra)
+80002cdc: 00a00e93 li t4,10
+80002ce0: 00900193 li gp,9
+80002ce4: 2fdf1863 bne t5,t4,80002fd4 <fail>
+
+80002ce8 <test_10>:
+80002ce8: 00001097 auipc ra,0x1
+80002cec: 32008093 addi ra,ra,800 # 80004008 <tdat9>
+80002cf0: 12345137 lui sp,0x12345
+80002cf4: 67810113 addi sp,sp,1656 # 12345678 <_start-0x6dcba988>
+80002cf8: fe008213 addi tp,ra,-32
+80002cfc: 02220023 sb sp,32(tp) # 20 <_start-0x7fffffe0>
+80002d00: 00008283 lb t0,0(ra)
+80002d04: 07800e93 li t4,120
+80002d08: 00a00193 li gp,10
+80002d0c: 2dd29463 bne t0,t4,80002fd4 <fail>
+
+80002d10 <test_11>:
+80002d10: 00001097 auipc ra,0x1
+80002d14: 2f808093 addi ra,ra,760 # 80004008 <tdat9>
+80002d18: 00003137 lui sp,0x3
+80002d1c: 09810113 addi sp,sp,152 # 3098 <_start-0x7fffcf68>
+80002d20: ffa08093 addi ra,ra,-6
+80002d24: 002083a3 sb sp,7(ra)
+80002d28: 00001217 auipc tp,0x1
+80002d2c: 2e120213 addi tp,tp,737 # 80004009 <tdat10>
+80002d30: 00020283 lb t0,0(tp) # 0 <_start-0x80000000>
+80002d34: f9800e93 li t4,-104
+80002d38: 00b00193 li gp,11
+80002d3c: 29d29c63 bne t0,t4,80002fd4 <fail>
+
+80002d40 <test_12>:
+80002d40: 00c00193 li gp,12
+80002d44: 00000213 li tp,0
+80002d48: fdd00093 li ra,-35
+80002d4c: 00001117 auipc sp,0x1
+80002d50: 2b410113 addi sp,sp,692 # 80004000 <begin_signature>
+80002d54: 00110023 sb ra,0(sp)
+80002d58: 00010f03 lb t5,0(sp)
+80002d5c: fdd00e93 li t4,-35
+80002d60: 27df1a63 bne t5,t4,80002fd4 <fail>
+80002d64: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d68: 00200293 li t0,2
+80002d6c: fc521ee3 bne tp,t0,80002d48 <test_12+0x8>
+
+80002d70 <test_13>:
+80002d70: 00d00193 li gp,13
+80002d74: 00000213 li tp,0
+80002d78: fcd00093 li ra,-51
+80002d7c: 00001117 auipc sp,0x1
+80002d80: 28410113 addi sp,sp,644 # 80004000 <begin_signature>
+80002d84: 00000013 nop
+80002d88: 001100a3 sb ra,1(sp)
+80002d8c: 00110f03 lb t5,1(sp)
+80002d90: fcd00e93 li t4,-51
+80002d94: 25df1063 bne t5,t4,80002fd4 <fail>
+80002d98: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d9c: 00200293 li t0,2
+80002da0: fc521ce3 bne tp,t0,80002d78 <test_13+0x8>
+
+80002da4 <test_14>:
+80002da4: 00e00193 li gp,14
+80002da8: 00000213 li tp,0
+80002dac: fcc00093 li ra,-52
+80002db0: 00001117 auipc sp,0x1
+80002db4: 25010113 addi sp,sp,592 # 80004000 <begin_signature>
+80002db8: 00000013 nop
+80002dbc: 00000013 nop
+80002dc0: 00110123 sb ra,2(sp)
+80002dc4: 00210f03 lb t5,2(sp)
+80002dc8: fcc00e93 li t4,-52
+80002dcc: 21df1463 bne t5,t4,80002fd4 <fail>
+80002dd0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002dd4: 00200293 li t0,2
+80002dd8: fc521ae3 bne tp,t0,80002dac <test_14+0x8>
+
+80002ddc <test_15>:
+80002ddc: 00f00193 li gp,15
+80002de0: 00000213 li tp,0
+80002de4: fbc00093 li ra,-68
+80002de8: 00000013 nop
+80002dec: 00001117 auipc sp,0x1
+80002df0: 21410113 addi sp,sp,532 # 80004000 <begin_signature>
+80002df4: 001101a3 sb ra,3(sp)
+80002df8: 00310f03 lb t5,3(sp)
+80002dfc: fbc00e93 li t4,-68
+80002e00: 1ddf1a63 bne t5,t4,80002fd4 <fail>
+80002e04: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e08: 00200293 li t0,2
+80002e0c: fc521ce3 bne tp,t0,80002de4 <test_15+0x8>
+
+80002e10 <test_16>:
+80002e10: 01000193 li gp,16
+80002e14: 00000213 li tp,0
+80002e18: fbb00093 li ra,-69
+80002e1c: 00000013 nop
+80002e20: 00001117 auipc sp,0x1
+80002e24: 1e010113 addi sp,sp,480 # 80004000 <begin_signature>
+80002e28: 00000013 nop
+80002e2c: 00110223 sb ra,4(sp)
+80002e30: 00410f03 lb t5,4(sp)
+80002e34: fbb00e93 li t4,-69
+80002e38: 19df1e63 bne t5,t4,80002fd4 <fail>
+80002e3c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e40: 00200293 li t0,2
+80002e44: fc521ae3 bne tp,t0,80002e18 <test_16+0x8>
+
+80002e48 <test_17>:
+80002e48: 01100193 li gp,17
+80002e4c: 00000213 li tp,0
+80002e50: fab00093 li ra,-85
+80002e54: 00000013 nop
+80002e58: 00000013 nop
+80002e5c: 00001117 auipc sp,0x1
+80002e60: 1a410113 addi sp,sp,420 # 80004000 <begin_signature>
+80002e64: 001102a3 sb ra,5(sp)
+80002e68: 00510f03 lb t5,5(sp)
+80002e6c: fab00e93 li t4,-85
+80002e70: 17df1263 bne t5,t4,80002fd4 <fail>
+80002e74: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e78: 00200293 li t0,2
+80002e7c: fc521ae3 bne tp,t0,80002e50 <test_17+0x8>
+
+80002e80 <test_18>:
+80002e80: 01200193 li gp,18
+80002e84: 00000213 li tp,0
+80002e88: 00001117 auipc sp,0x1
+80002e8c: 17810113 addi sp,sp,376 # 80004000 <begin_signature>
+80002e90: 03300093 li ra,51
+80002e94: 00110023 sb ra,0(sp)
+80002e98: 00010f03 lb t5,0(sp)
+80002e9c: 03300e93 li t4,51
+80002ea0: 13df1a63 bne t5,t4,80002fd4 <fail>
+80002ea4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002ea8: 00200293 li t0,2
+80002eac: fc521ee3 bne tp,t0,80002e88 <test_18+0x8>
+
+80002eb0 <test_19>:
+80002eb0: 01300193 li gp,19
+80002eb4: 00000213 li tp,0
+80002eb8: 00001117 auipc sp,0x1
+80002ebc: 14810113 addi sp,sp,328 # 80004000 <begin_signature>
+80002ec0: 02300093 li ra,35
+80002ec4: 00000013 nop
+80002ec8: 001100a3 sb ra,1(sp)
+80002ecc: 00110f03 lb t5,1(sp)
+80002ed0: 02300e93 li t4,35
+80002ed4: 11df1063 bne t5,t4,80002fd4 <fail>
+80002ed8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002edc: 00200293 li t0,2
+80002ee0: fc521ce3 bne tp,t0,80002eb8 <test_19+0x8>
+
+80002ee4 <test_20>:
+80002ee4: 01400193 li gp,20
+80002ee8: 00000213 li tp,0
+80002eec: 00001117 auipc sp,0x1
+80002ef0: 11410113 addi sp,sp,276 # 80004000 <begin_signature>
+80002ef4: 02200093 li ra,34
+80002ef8: 00000013 nop
+80002efc: 00000013 nop
+80002f00: 00110123 sb ra,2(sp)
+80002f04: 00210f03 lb t5,2(sp)
+80002f08: 02200e93 li t4,34
+80002f0c: 0ddf1463 bne t5,t4,80002fd4 <fail>
+80002f10: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002f14: 00200293 li t0,2
+80002f18: fc521ae3 bne tp,t0,80002eec <test_20+0x8>
+
+80002f1c <test_21>:
+80002f1c: 01500193 li gp,21
+80002f20: 00000213 li tp,0
+80002f24: 00001117 auipc sp,0x1
+80002f28: 0dc10113 addi sp,sp,220 # 80004000 <begin_signature>
+80002f2c: 00000013 nop
+80002f30: 01200093 li ra,18
+80002f34: 001101a3 sb ra,3(sp)
+80002f38: 00310f03 lb t5,3(sp)
+80002f3c: 01200e93 li t4,18
+80002f40: 09df1a63 bne t5,t4,80002fd4 <fail>
+80002f44: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002f48: 00200293 li t0,2
+80002f4c: fc521ce3 bne tp,t0,80002f24 <test_21+0x8>
+
+80002f50 <test_22>:
+80002f50: 01600193 li gp,22
+80002f54: 00000213 li tp,0
+80002f58: 00001117 auipc sp,0x1
+80002f5c: 0a810113 addi sp,sp,168 # 80004000 <begin_signature>
+80002f60: 00000013 nop
+80002f64: 01100093 li ra,17
+80002f68: 00000013 nop
+80002f6c: 00110223 sb ra,4(sp)
+80002f70: 00410f03 lb t5,4(sp)
+80002f74: 01100e93 li t4,17
+80002f78: 05df1e63 bne t5,t4,80002fd4 <fail>
+80002f7c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002f80: 00200293 li t0,2
+80002f84: fc521ae3 bne tp,t0,80002f58 <test_22+0x8>
+
+80002f88 <test_23>:
+80002f88: 01700193 li gp,23
+80002f8c: 00000213 li tp,0
+80002f90: 00001117 auipc sp,0x1
+80002f94: 07010113 addi sp,sp,112 # 80004000 <begin_signature>
+80002f98: 00000013 nop
+80002f9c: 00000013 nop
+80002fa0: 00100093 li ra,1
+80002fa4: 001102a3 sb ra,5(sp)
+80002fa8: 00510f03 lb t5,5(sp)
+80002fac: 00100e93 li t4,1
+80002fb0: 03df1263 bne t5,t4,80002fd4 <fail>
+80002fb4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002fb8: 00200293 li t0,2
+80002fbc: fc521ae3 bne tp,t0,80002f90 <test_23+0x8>
+80002fc0: 0ef00513 li a0,239
+80002fc4: 00001597 auipc a1,0x1
+80002fc8: 03c58593 addi a1,a1,60 # 80004000 <begin_signature>
+80002fcc: 00a581a3 sb a0,3(a1)
+80002fd0: 00301a63 bne zero,gp,80002fe4 <pass>
+
+80002fd4 <fail>:
+80002fd4: 00119513 slli a0,gp,0x1
+80002fd8: 00050063 beqz a0,80002fd8 <fail+0x4>
+80002fdc: 00156513 ori a0,a0,1
+80002fe0: 00000073 ecall
+
+80002fe4 <pass>:
+80002fe4: 00100513 li a0,1
+80002fe8: 00000073 ecall
+80002fec: c0001073 unimp
+
+Disassembly of section .data:
+
+80004000 <begin_signature>:
+80004000: jal t6,800026fe <handle_trap+0x86>
+
+80004001 <tdat2>:
+80004001: jal t6,800026ff <handle_trap+0x87>
+
+80004002 <tdat3>:
+80004002: jal t6,80002700 <handle_trap+0x88>
+
+80004003 <tdat4>:
+80004003: jal t6,80002701 <handle_trap+0x89>
+
+80004004 <tdat5>:
+80004004: jal t6,80002702 <handle_trap+0x8a>
+
+80004005 <tdat6>:
+80004005: jal t6,80002703 <handle_trap+0x8b>
+
+80004006 <tdat7>:
+80004006: jal t6,80002704 <handle_trap+0x8c>
+
+80004007 <tdat8>:
+80004007: jal t6,80012007 <_end+0xac0f>
+
+80004008 <tdat9>:
+80004008: jal t6,80012008 <_end+0xac10>
+
+80004009 <tdat10>:
+80004009: ef Address 0x0000000080004009 is out of bounds.
+
+8000400d:
diff --git a/test/riscv-tests/rv32ui-v-sb.elf b/test/riscv-tests/rv32ui-v-sb.elf
new file mode 100644
index 0000000..0fad6f1
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-sb.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-v-sh.dump b/test/riscv-tests/rv32ui-v-sh.dump
new file mode 100644
index 0000000..9fbbea1
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-sh.dump
@@ -0,0 +1,1270 @@
+
+rv32ui-v-sh: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00008117 auipc sp,0x8
+8000001c: 35010113 addi sp,sp,848 # 80008368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00003317 auipc t1,0x3
+80002370: c9430313 addi t1,t1,-876 # 80005000 <pt>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00005797 auipc a5,0x5
+8000238c: 06c78793 addi a5,a5,108 # 800073f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00005717 auipc a4,0x5
+800023a0: 05470713 addi a4,a4,84 # 800073f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00005697 auipc a3,0x5
+800023ac: 04f6a623 sw a5,76(a3) # 800073f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00005717 auipc a4,0x5
+800023dc: e2070713 addi a4,a4,-480 # 800071f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf8c08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00005797 auipc a5,0x5
+800024bc: f207ac23 sw zero,-200(a5) # 800073f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00001597 auipc a1,0x1
+800024cc: bac58593 addi a1,a1,-1108 # 80003074 <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00001597 auipc a1,0x1
+8000253c: bc858593 addi a1,a1,-1080 # 80003100 <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00001597 auipc a1,0x1
+800025a8: b7458593 addi a1,a1,-1164 # 80003118 <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00001597 auipc a1,0x1
+80002614: aa858593 addi a1,a1,-1368 # 800030b8 <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00001597 auipc a1,0x1
+8000274c: a9858593 addi a1,a1,-1384 # 800031e0 <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00001597 auipc a1,0x1
+800027c0: a0058593 addi a1,a1,-1536 # 800031bc <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00005b17 auipc s6,0x5
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800071f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00002d17 auipc s10,0x2
+80002840: 7c4d0d13 addi s10,s10,1988 # 80005000 <pt>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00005717 auipc a4,0x5
+8000285c: b8f72c23 sw a5,-1128(a4) # 800073f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00005717 auipc a4,0x5
+800028e8: b0c70713 addi a4,a4,-1268 # 800073f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00005717 auipc a4,0x5
+800028fc: aef72c23 sw a5,-1288(a4) # 800073f0 <freelist_tail>
+80002900: 00005717 auipc a4,0x5
+80002904: aef72a23 sw a5,-1292(a4) # 800073f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00001617 auipc a2,0x1
+80002914: 8fc60613 addi a2,a2,-1796 # 8000320c <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00001617 auipc a2,0x1
+80002980: 80c60613 addi a2,a2,-2036 # 80003188 <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 78c60613 addi a2,a2,1932 # 80003154 <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00003797 auipc a5,0x3
+80002a4c: 5b878793 addi a5,a5,1464 # 80006000 <pt+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00002697 auipc a3,0x2
+80002a60: 5af6a223 sw a5,1444(a3) # 80005000 <pt>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00002717 auipc a4,0x2
+80002a6c: 59870713 addi a4,a4,1432 # 80005000 <pt>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00003697 auipc a3,0x3
+80002a7c: 58f6a223 sw a5,1412(a3) # 80005ffc <pt+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf8ccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc04797 auipc a5,0x7fc04
+80002aec: 51878793 addi a5,a5,1304 # ffc07000 <_end+0x7fbffc08>
+80002af0: 00005717 auipc a4,0x5
+80002af4: 90f72223 sw a5,-1788(a4) # 800073f4 <freelist_head>
+80002af8: 7fc04797 auipc a5,0x7fc04
+80002afc: 6f878793 addi a5,a5,1784 # ffc071f0 <_end+0x7fbffdf8>
+80002b00: 00005717 auipc a4,0x5
+80002b04: 8ef72823 sw a5,-1808(a4) # 800073f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00004717 auipc a4,0x4
+80002b10: 4f470713 addi a4,a4,1268 # 80007000 <freelist_nodes>
+80002b14: 00004317 auipc t1,0x4
+80002b18: 6e430313 addi t1,t1,1764 # 800071f8 <user_mapping>
+80002b1c: 02200793 li a5,34
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00004797 auipc a5,0x4
+80002b6c: 6807a623 sw zero,1676(a5) # 800071f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 0e9af7b7 lui a5,0xe9af
+80002b9c: 00080637 lui a2,0x80
+80002ba0: 36f78793 addi a5,a5,879 # e9af36f <_start-0x71650c91>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: 00001097 auipc ra,0x1
+80002be4: 42008093 addi ra,ra,1056 # 80004000 <begin_signature>
+80002be8: 0aa00113 li sp,170
+80002bec: 00209023 sh sp,0(ra)
+80002bf0: 00009f03 lh t5,0(ra)
+80002bf4: 0aa00e93 li t4,170
+80002bf8: 00200193 li gp,2
+80002bfc: 45df1e63 bne t5,t4,80003058 <fail>
+
+80002c00 <test_3>:
+80002c00: 00001097 auipc ra,0x1
+80002c04: 40008093 addi ra,ra,1024 # 80004000 <begin_signature>
+80002c08: ffffb137 lui sp,0xffffb
+80002c0c: a0010113 addi sp,sp,-1536 # ffffaa00 <_end+0x7fff3608>
+80002c10: 00209123 sh sp,2(ra)
+80002c14: 00209f03 lh t5,2(ra)
+80002c18: ffffbeb7 lui t4,0xffffb
+80002c1c: a00e8e93 addi t4,t4,-1536 # ffffaa00 <_end+0x7fff3608>
+80002c20: 00300193 li gp,3
+80002c24: 43df1a63 bne t5,t4,80003058 <fail>
+
+80002c28 <test_4>:
+80002c28: 00001097 auipc ra,0x1
+80002c2c: 3d808093 addi ra,ra,984 # 80004000 <begin_signature>
+80002c30: beef1137 lui sp,0xbeef1
+80002c34: aa010113 addi sp,sp,-1376 # beef0aa0 <_end+0x3eee96a8>
+80002c38: 00209223 sh sp,4(ra)
+80002c3c: 0040af03 lw t5,4(ra)
+80002c40: beef1eb7 lui t4,0xbeef1
+80002c44: aa0e8e93 addi t4,t4,-1376 # beef0aa0 <_end+0x3eee96a8>
+80002c48: 00400193 li gp,4
+80002c4c: 41df1663 bne t5,t4,80003058 <fail>
+
+80002c50 <test_5>:
+80002c50: 00001097 auipc ra,0x1
+80002c54: 3b008093 addi ra,ra,944 # 80004000 <begin_signature>
+80002c58: ffffa137 lui sp,0xffffa
+80002c5c: 00a10113 addi sp,sp,10 # ffffa00a <_end+0x7fff2c12>
+80002c60: 00209323 sh sp,6(ra)
+80002c64: 00609f03 lh t5,6(ra)
+80002c68: ffffaeb7 lui t4,0xffffa
+80002c6c: 00ae8e93 addi t4,t4,10 # ffffa00a <_end+0x7fff2c12>
+80002c70: 00500193 li gp,5
+80002c74: 3fdf1263 bne t5,t4,80003058 <fail>
+
+80002c78 <test_6>:
+80002c78: 00001097 auipc ra,0x1
+80002c7c: 39608093 addi ra,ra,918 # 8000400e <tdat8>
+80002c80: 0aa00113 li sp,170
+80002c84: fe209d23 sh sp,-6(ra)
+80002c88: ffa09f03 lh t5,-6(ra)
+80002c8c: 0aa00e93 li t4,170
+80002c90: 00600193 li gp,6
+80002c94: 3ddf1263 bne t5,t4,80003058 <fail>
+
+80002c98 <test_7>:
+80002c98: 00001097 auipc ra,0x1
+80002c9c: 37608093 addi ra,ra,886 # 8000400e <tdat8>
+80002ca0: ffffb137 lui sp,0xffffb
+80002ca4: a0010113 addi sp,sp,-1536 # ffffaa00 <_end+0x7fff3608>
+80002ca8: fe209e23 sh sp,-4(ra)
+80002cac: ffc09f03 lh t5,-4(ra)
+80002cb0: ffffbeb7 lui t4,0xffffb
+80002cb4: a00e8e93 addi t4,t4,-1536 # ffffaa00 <_end+0x7fff3608>
+80002cb8: 00700193 li gp,7
+80002cbc: 39df1e63 bne t5,t4,80003058 <fail>
+
+80002cc0 <test_8>:
+80002cc0: 00001097 auipc ra,0x1
+80002cc4: 34e08093 addi ra,ra,846 # 8000400e <tdat8>
+80002cc8: 00001137 lui sp,0x1
+80002ccc: aa010113 addi sp,sp,-1376 # aa0 <_start-0x7ffff560>
+80002cd0: fe209f23 sh sp,-2(ra)
+80002cd4: ffe09f03 lh t5,-2(ra)
+80002cd8: 00001eb7 lui t4,0x1
+80002cdc: aa0e8e93 addi t4,t4,-1376 # aa0 <_start-0x7ffff560>
+80002ce0: 00800193 li gp,8
+80002ce4: 37df1a63 bne t5,t4,80003058 <fail>
+
+80002ce8 <test_9>:
+80002ce8: 00001097 auipc ra,0x1
+80002cec: 32608093 addi ra,ra,806 # 8000400e <tdat8>
+80002cf0: ffffa137 lui sp,0xffffa
+80002cf4: 00a10113 addi sp,sp,10 # ffffa00a <_end+0x7fff2c12>
+80002cf8: 00209023 sh sp,0(ra)
+80002cfc: 00009f03 lh t5,0(ra)
+80002d00: ffffaeb7 lui t4,0xffffa
+80002d04: 00ae8e93 addi t4,t4,10 # ffffa00a <_end+0x7fff2c12>
+80002d08: 00900193 li gp,9
+80002d0c: 35df1663 bne t5,t4,80003058 <fail>
+
+80002d10 <test_10>:
+80002d10: 00001097 auipc ra,0x1
+80002d14: 30008093 addi ra,ra,768 # 80004010 <tdat9>
+80002d18: 12345137 lui sp,0x12345
+80002d1c: 67810113 addi sp,sp,1656 # 12345678 <_start-0x6dcba988>
+80002d20: fe008213 addi tp,ra,-32
+80002d24: 02221023 sh sp,32(tp) # 20 <_start-0x7fffffe0>
+80002d28: 00009283 lh t0,0(ra)
+80002d2c: 00005eb7 lui t4,0x5
+80002d30: 678e8e93 addi t4,t4,1656 # 5678 <_start-0x7fffa988>
+80002d34: 00a00193 li gp,10
+80002d38: 33d29063 bne t0,t4,80003058 <fail>
+
+80002d3c <test_11>:
+80002d3c: 00001097 auipc ra,0x1
+80002d40: 2d408093 addi ra,ra,724 # 80004010 <tdat9>
+80002d44: 00003137 lui sp,0x3
+80002d48: 09810113 addi sp,sp,152 # 3098 <_start-0x7fffcf68>
+80002d4c: ffb08093 addi ra,ra,-5
+80002d50: 002093a3 sh sp,7(ra)
+80002d54: 00001217 auipc tp,0x1
+80002d58: 2be20213 addi tp,tp,702 # 80004012 <tdat10>
+80002d5c: 00021283 lh t0,0(tp) # 0 <_start-0x80000000>
+80002d60: 00003eb7 lui t4,0x3
+80002d64: 098e8e93 addi t4,t4,152 # 3098 <_start-0x7fffcf68>
+80002d68: 00b00193 li gp,11
+80002d6c: 2fd29663 bne t0,t4,80003058 <fail>
+
+80002d70 <test_12>:
+80002d70: 00c00193 li gp,12
+80002d74: 00000213 li tp,0
+80002d78: ffffd0b7 lui ra,0xffffd
+80002d7c: cdd08093 addi ra,ra,-803 # ffffccdd <_end+0x7fff58e5>
+80002d80: 00001117 auipc sp,0x1
+80002d84: 28010113 addi sp,sp,640 # 80004000 <begin_signature>
+80002d88: 00111023 sh ra,0(sp)
+80002d8c: 00011f03 lh t5,0(sp)
+80002d90: ffffdeb7 lui t4,0xffffd
+80002d94: cdde8e93 addi t4,t4,-803 # ffffccdd <_end+0x7fff58e5>
+80002d98: 2ddf1063 bne t5,t4,80003058 <fail>
+80002d9c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002da0: 00200293 li t0,2
+80002da4: fc521ae3 bne tp,t0,80002d78 <test_12+0x8>
+
+80002da8 <test_13>:
+80002da8: 00d00193 li gp,13
+80002dac: 00000213 li tp,0
+80002db0: ffffc0b7 lui ra,0xffffc
+80002db4: ccd08093 addi ra,ra,-819 # ffffbccd <_end+0x7fff48d5>
+80002db8: 00001117 auipc sp,0x1
+80002dbc: 24810113 addi sp,sp,584 # 80004000 <begin_signature>
+80002dc0: 00000013 nop
+80002dc4: 00111123 sh ra,2(sp)
+80002dc8: 00211f03 lh t5,2(sp)
+80002dcc: ffffceb7 lui t4,0xffffc
+80002dd0: ccde8e93 addi t4,t4,-819 # ffffbccd <_end+0x7fff48d5>
+80002dd4: 29df1263 bne t5,t4,80003058 <fail>
+80002dd8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002ddc: 00200293 li t0,2
+80002de0: fc5218e3 bne tp,t0,80002db0 <test_13+0x8>
+
+80002de4 <test_14>:
+80002de4: 00e00193 li gp,14
+80002de8: 00000213 li tp,0
+80002dec: ffffc0b7 lui ra,0xffffc
+80002df0: bcc08093 addi ra,ra,-1076 # ffffbbcc <_end+0x7fff47d4>
+80002df4: 00001117 auipc sp,0x1
+80002df8: 20c10113 addi sp,sp,524 # 80004000 <begin_signature>
+80002dfc: 00000013 nop
+80002e00: 00000013 nop
+80002e04: 00111223 sh ra,4(sp)
+80002e08: 00411f03 lh t5,4(sp)
+80002e0c: ffffceb7 lui t4,0xffffc
+80002e10: bcce8e93 addi t4,t4,-1076 # ffffbbcc <_end+0x7fff47d4>
+80002e14: 25df1263 bne t5,t4,80003058 <fail>
+80002e18: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e1c: 00200293 li t0,2
+80002e20: fc5216e3 bne tp,t0,80002dec <test_14+0x8>
+
+80002e24 <test_15>:
+80002e24: 00f00193 li gp,15
+80002e28: 00000213 li tp,0
+80002e2c: ffffb0b7 lui ra,0xffffb
+80002e30: bbc08093 addi ra,ra,-1092 # ffffabbc <_end+0x7fff37c4>
+80002e34: 00000013 nop
+80002e38: 00001117 auipc sp,0x1
+80002e3c: 1c810113 addi sp,sp,456 # 80004000 <begin_signature>
+80002e40: 00111323 sh ra,6(sp)
+80002e44: 00611f03 lh t5,6(sp)
+80002e48: ffffbeb7 lui t4,0xffffb
+80002e4c: bbce8e93 addi t4,t4,-1092 # ffffabbc <_end+0x7fff37c4>
+80002e50: 21df1463 bne t5,t4,80003058 <fail>
+80002e54: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e58: 00200293 li t0,2
+80002e5c: fc5218e3 bne tp,t0,80002e2c <test_15+0x8>
+
+80002e60 <test_16>:
+80002e60: 01000193 li gp,16
+80002e64: 00000213 li tp,0
+80002e68: ffffb0b7 lui ra,0xffffb
+80002e6c: abb08093 addi ra,ra,-1349 # ffffaabb <_end+0x7fff36c3>
+80002e70: 00000013 nop
+80002e74: 00001117 auipc sp,0x1
+80002e78: 18c10113 addi sp,sp,396 # 80004000 <begin_signature>
+80002e7c: 00000013 nop
+80002e80: 00111423 sh ra,8(sp)
+80002e84: 00811f03 lh t5,8(sp)
+80002e88: ffffbeb7 lui t4,0xffffb
+80002e8c: abbe8e93 addi t4,t4,-1349 # ffffaabb <_end+0x7fff36c3>
+80002e90: 1ddf1463 bne t5,t4,80003058 <fail>
+80002e94: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e98: 00200293 li t0,2
+80002e9c: fc5216e3 bne tp,t0,80002e68 <test_16+0x8>
+
+80002ea0 <test_17>:
+80002ea0: 01100193 li gp,17
+80002ea4: 00000213 li tp,0
+80002ea8: ffffe0b7 lui ra,0xffffe
+80002eac: aab08093 addi ra,ra,-1365 # ffffdaab <_end+0x7fff66b3>
+80002eb0: 00000013 nop
+80002eb4: 00000013 nop
+80002eb8: 00001117 auipc sp,0x1
+80002ebc: 14810113 addi sp,sp,328 # 80004000 <begin_signature>
+80002ec0: 00111523 sh ra,10(sp)
+80002ec4: 00a11f03 lh t5,10(sp)
+80002ec8: ffffeeb7 lui t4,0xffffe
+80002ecc: aabe8e93 addi t4,t4,-1365 # ffffdaab <_end+0x7fff66b3>
+80002ed0: 19df1463 bne t5,t4,80003058 <fail>
+80002ed4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002ed8: 00200293 li t0,2
+80002edc: fc5216e3 bne tp,t0,80002ea8 <test_17+0x8>
+
+80002ee0 <test_18>:
+80002ee0: 01200193 li gp,18
+80002ee4: 00000213 li tp,0
+80002ee8: 00001117 auipc sp,0x1
+80002eec: 11810113 addi sp,sp,280 # 80004000 <begin_signature>
+80002ef0: 000020b7 lui ra,0x2
+80002ef4: 23308093 addi ra,ra,563 # 2233 <_start-0x7fffddcd>
+80002ef8: 00111023 sh ra,0(sp)
+80002efc: 00011f03 lh t5,0(sp)
+80002f00: 00002eb7 lui t4,0x2
+80002f04: 233e8e93 addi t4,t4,563 # 2233 <_start-0x7fffddcd>
+80002f08: 15df1863 bne t5,t4,80003058 <fail>
+80002f0c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002f10: 00200293 li t0,2
+80002f14: fc521ae3 bne tp,t0,80002ee8 <test_18+0x8>
+
+80002f18 <test_19>:
+80002f18: 01300193 li gp,19
+80002f1c: 00000213 li tp,0
+80002f20: 00001117 auipc sp,0x1
+80002f24: 0e010113 addi sp,sp,224 # 80004000 <begin_signature>
+80002f28: 000010b7 lui ra,0x1
+80002f2c: 22308093 addi ra,ra,547 # 1223 <_start-0x7fffeddd>
+80002f30: 00000013 nop
+80002f34: 00111123 sh ra,2(sp)
+80002f38: 00211f03 lh t5,2(sp)
+80002f3c: 00001eb7 lui t4,0x1
+80002f40: 223e8e93 addi t4,t4,547 # 1223 <_start-0x7fffeddd>
+80002f44: 11df1a63 bne t5,t4,80003058 <fail>
+80002f48: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002f4c: 00200293 li t0,2
+80002f50: fc5218e3 bne tp,t0,80002f20 <test_19+0x8>
+
+80002f54 <test_20>:
+80002f54: 01400193 li gp,20
+80002f58: 00000213 li tp,0
+80002f5c: 00001117 auipc sp,0x1
+80002f60: 0a410113 addi sp,sp,164 # 80004000 <begin_signature>
+80002f64: 000010b7 lui ra,0x1
+80002f68: 12208093 addi ra,ra,290 # 1122 <_start-0x7fffeede>
+80002f6c: 00000013 nop
+80002f70: 00000013 nop
+80002f74: 00111223 sh ra,4(sp)
+80002f78: 00411f03 lh t5,4(sp)
+80002f7c: 00001eb7 lui t4,0x1
+80002f80: 122e8e93 addi t4,t4,290 # 1122 <_start-0x7fffeede>
+80002f84: 0ddf1a63 bne t5,t4,80003058 <fail>
+80002f88: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002f8c: 00200293 li t0,2
+80002f90: fc5216e3 bne tp,t0,80002f5c <test_20+0x8>
+
+80002f94 <test_21>:
+80002f94: 01500193 li gp,21
+80002f98: 00000213 li tp,0
+80002f9c: 00001117 auipc sp,0x1
+80002fa0: 06410113 addi sp,sp,100 # 80004000 <begin_signature>
+80002fa4: 00000013 nop
+80002fa8: 11200093 li ra,274
+80002fac: 00111323 sh ra,6(sp)
+80002fb0: 00611f03 lh t5,6(sp)
+80002fb4: 11200e93 li t4,274
+80002fb8: 0bdf1063 bne t5,t4,80003058 <fail>
+80002fbc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002fc0: 00200293 li t0,2
+80002fc4: fc521ce3 bne tp,t0,80002f9c <test_21+0x8>
+
+80002fc8 <test_22>:
+80002fc8: 01600193 li gp,22
+80002fcc: 00000213 li tp,0
+80002fd0: 00001117 auipc sp,0x1
+80002fd4: 03010113 addi sp,sp,48 # 80004000 <begin_signature>
+80002fd8: 00000013 nop
+80002fdc: 01100093 li ra,17
+80002fe0: 00000013 nop
+80002fe4: 00111423 sh ra,8(sp)
+80002fe8: 00811f03 lh t5,8(sp)
+80002fec: 01100e93 li t4,17
+80002ff0: 07df1463 bne t5,t4,80003058 <fail>
+80002ff4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002ff8: 00200293 li t0,2
+80002ffc: fc521ae3 bne tp,t0,80002fd0 <test_22+0x8>
+
+80003000 <test_23>:
+80003000: 01700193 li gp,23
+80003004: 00000213 li tp,0
+80003008: 00001117 auipc sp,0x1
+8000300c: ff810113 addi sp,sp,-8 # 80004000 <begin_signature>
+80003010: 00000013 nop
+80003014: 00000013 nop
+80003018: 000030b7 lui ra,0x3
+8000301c: 00108093 addi ra,ra,1 # 3001 <_start-0x7fffcfff>
+80003020: 00111523 sh ra,10(sp)
+80003024: 00a11f03 lh t5,10(sp)
+80003028: 00003eb7 lui t4,0x3
+8000302c: 001e8e93 addi t4,t4,1 # 3001 <_start-0x7fffcfff>
+80003030: 03df1463 bne t5,t4,80003058 <fail>
+80003034: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80003038: 00200293 li t0,2
+8000303c: fc5216e3 bne tp,t0,80003008 <test_23+0x8>
+80003040: 0000c537 lui a0,0xc
+80003044: eef50513 addi a0,a0,-273 # beef <_start-0x7fff4111>
+80003048: 00001597 auipc a1,0x1
+8000304c: fb858593 addi a1,a1,-72 # 80004000 <begin_signature>
+80003050: 00a59323 sh a0,6(a1)
+80003054: 00301a63 bne zero,gp,80003068 <pass>
+
+80003058 <fail>:
+80003058: 00119513 slli a0,gp,0x1
+8000305c: 00050063 beqz a0,8000305c <fail+0x4>
+80003060: 00156513 ori a0,a0,1
+80003064: 00000073 ecall
+
+80003068 <pass>:
+80003068: 00100513 li a0,1
+8000306c: 00000073 ecall
+80003070: c0001073 unimp
+
+Disassembly of section .data:
+
+80004000 <begin_signature>:
+80004000: jal t4,7ffff3ee <_start-0xc12>
+
+80004002 <tdat2>:
+80004002: jal t4,7ffff3f0 <_start-0xc10>
+
+80004004 <tdat3>:
+80004004: jal t4,7ffff3f2 <_start-0xc0e>
+
+80004006 <tdat4>:
+80004006: jal t4,7ffff3f4 <_start-0xc0c>
+
+80004008 <tdat5>:
+80004008: jal t4,7ffff3f6 <_start-0xc0a>
+
+8000400a <tdat6>:
+8000400a: jal t4,7ffff3f8 <_start-0xc08>
+
+8000400c <tdat7>:
+8000400c: jal t4,7ffff3fa <_start-0xc06>
+
+8000400e <tdat8>:
+8000400e: jal t4,7ffff3fc <_start-0xc04>
+
+80004010 <tdat9>:
+80004010: jal t4,7ffff3fe <_start-0xc02>
+
+80004012 <tdat10>:
+80004012: jal t4,8000f012 <_end+0x7c1a>
diff --git a/test/riscv-tests/rv32ui-v-sh.elf b/test/riscv-tests/rv32ui-v-sh.elf
new file mode 100644
index 0000000..78f6a5d
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-sh.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-v-simple.dump b/test/riscv-tests/rv32ui-v-simple.dump
new file mode 100644
index 0000000..bfe12f5
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-simple.dump
@@ -0,0 +1,902 @@
+
+rv32ui-v-simple: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00006117 auipc sp,0x6
+8000001c: 35010113 addi sp,sp,848 # 80006368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00001317 auipc t1,0x1
+80002370: c9430313 addi t1,t1,-876 # 80003000 <begin_signature>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00003797 auipc a5,0x3
+8000238c: 06c78793 addi a5,a5,108 # 800053f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00003717 auipc a4,0x3
+800023a0: 05470713 addi a4,a4,84 # 800053f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00003697 auipc a3,0x3
+800023ac: 04f6a623 sw a5,76(a3) # 800053f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00003717 auipc a4,0x3
+800023dc: e2070713 addi a4,a4,-480 # 800051f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbfac08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00003797 auipc a5,0x3
+800024bc: f207ac23 sw zero,-200(a5) # 800053f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00000597 auipc a1,0x0
+800024cc: 72458593 addi a1,a1,1828 # 80002bec <userstart+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00000597 auipc a1,0x0
+8000253c: 74058593 addi a1,a1,1856 # 80002c78 <userstart+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00000597 auipc a1,0x0
+800025a8: 6ec58593 addi a1,a1,1772 # 80002c90 <userstart+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00000597 auipc a1,0x0
+80002614: 62058593 addi a1,a1,1568 # 80002c30 <userstart+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00000597 auipc a1,0x0
+8000274c: 61058593 addi a1,a1,1552 # 80002d58 <userstart+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00000597 auipc a1,0x0
+800027c0: 57858593 addi a1,a1,1400 # 80002d34 <userstart+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00003b17 auipc s6,0x3
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800051f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00000d17 auipc s10,0x0
+80002840: 7c4d0d13 addi s10,s10,1988 # 80003000 <begin_signature>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00003717 auipc a4,0x3
+8000285c: b8f72c23 sw a5,-1128(a4) # 800053f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00003717 auipc a4,0x3
+800028e8: b0c70713 addi a4,a4,-1268 # 800053f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00003717 auipc a4,0x3
+800028fc: aef72c23 sw a5,-1288(a4) # 800053f0 <freelist_tail>
+80002900: 00003717 auipc a4,0x3
+80002904: aef72a23 sw a5,-1292(a4) # 800053f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00000617 auipc a2,0x0
+80002914: 47460613 addi a2,a2,1140 # 80002d84 <userstart+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00000617 auipc a2,0x0
+80002980: 38460613 addi a2,a2,900 # 80002d00 <userstart+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 30460613 addi a2,a2,772 # 80002ccc <userstart+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00001797 auipc a5,0x1
+80002a4c: 5b878793 addi a5,a5,1464 # 80004000 <begin_signature+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00000697 auipc a3,0x0
+80002a60: 5af6a223 sw a5,1444(a3) # 80003000 <begin_signature>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00000717 auipc a4,0x0
+80002a6c: 59870713 addi a4,a4,1432 # 80003000 <begin_signature>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00001697 auipc a3,0x1
+80002a7c: 58f6a223 sw a5,1412(a3) # 80003ffc <begin_signature+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbfaccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc02797 auipc a5,0x7fc02
+80002aec: 51878793 addi a5,a5,1304 # ffc05000 <_end+0x7fbffc08>
+80002af0: 00003717 auipc a4,0x3
+80002af4: 90f72223 sw a5,-1788(a4) # 800053f4 <freelist_head>
+80002af8: 7fc02797 auipc a5,0x7fc02
+80002afc: 6f878793 addi a5,a5,1784 # ffc051f0 <_end+0x7fbffdf8>
+80002b00: 00003717 auipc a4,0x3
+80002b04: 8ef72823 sw a5,-1808(a4) # 800053f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00002717 auipc a4,0x2
+80002b10: 4f470713 addi a4,a4,1268 # 80005000 <freelist_nodes>
+80002b14: 00002317 auipc t1,0x2
+80002b18: 6e430313 addi t1,t1,1764 # 800051f8 <user_mapping>
+80002b1c: 03c00793 li a5,60
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00002797 auipc a5,0x2
+80002b6c: 6807a623 sw zero,1676(a5) # 800051f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 0f7937b7 lui a5,0xf793
+80002b9c: 00080637 lui a2,0x80
+80002ba0: 0f778793 addi a5,a5,247 # f7930f7 <_start-0x7086cf09>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: 00100513 li a0,1
+80002be4: 00000073 ecall
+80002be8: c0001073 unimp
diff --git a/test/riscv-tests/rv32ui-v-simple.elf b/test/riscv-tests/rv32ui-v-simple.elf
new file mode 100644
index 0000000..61413b2
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-simple.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-v-sll.dump b/test/riscv-tests/rv32ui-v-sll.dump
new file mode 100644
index 0000000..abb36d2
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-sll.dump
@@ -0,0 +1,1330 @@
+
+rv32ui-v-sll: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00007117 auipc sp,0x7
+8000001c: 35010113 addi sp,sp,848 # 80007368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00002317 auipc t1,0x2
+80002370: c9430313 addi t1,t1,-876 # 80004000 <begin_signature>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00004797 auipc a5,0x4
+8000238c: 06c78793 addi a5,a5,108 # 800063f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00004717 auipc a4,0x4
+800023a0: 05470713 addi a4,a4,84 # 800063f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00004697 auipc a3,0x4
+800023ac: 04f6a623 sw a5,76(a3) # 800063f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00004717 auipc a4,0x4
+800023dc: e2070713 addi a4,a4,-480 # 800061f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf9c08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00004797 auipc a5,0x4
+800024bc: f207ac23 sw zero,-200(a5) # 800063f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00001597 auipc a1,0x1
+800024cc: c8458593 addi a1,a1,-892 # 8000314c <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00001597 auipc a1,0x1
+8000253c: ca058593 addi a1,a1,-864 # 800031d8 <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00001597 auipc a1,0x1
+800025a8: c4c58593 addi a1,a1,-948 # 800031f0 <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00001597 auipc a1,0x1
+80002614: b8058593 addi a1,a1,-1152 # 80003190 <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00001597 auipc a1,0x1
+8000274c: b7058593 addi a1,a1,-1168 # 800032b8 <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00001597 auipc a1,0x1
+800027c0: ad858593 addi a1,a1,-1320 # 80003294 <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00004b17 auipc s6,0x4
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800061f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00001d17 auipc s10,0x1
+80002840: 7c4d0d13 addi s10,s10,1988 # 80004000 <begin_signature>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00004717 auipc a4,0x4
+8000285c: b8f72c23 sw a5,-1128(a4) # 800063f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00004717 auipc a4,0x4
+800028e8: b0c70713 addi a4,a4,-1268 # 800063f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00004717 auipc a4,0x4
+800028fc: aef72c23 sw a5,-1288(a4) # 800063f0 <freelist_tail>
+80002900: 00004717 auipc a4,0x4
+80002904: aef72a23 sw a5,-1292(a4) # 800063f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00001617 auipc a2,0x1
+80002914: 9d460613 addi a2,a2,-1580 # 800032e4 <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00001617 auipc a2,0x1
+80002980: 8e460613 addi a2,a2,-1820 # 80003260 <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00001617 auipc a2,0x1
+800029cc: 86460613 addi a2,a2,-1948 # 8000322c <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00002797 auipc a5,0x2
+80002a4c: 5b878793 addi a5,a5,1464 # 80005000 <begin_signature+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00001697 auipc a3,0x1
+80002a60: 5af6a223 sw a5,1444(a3) # 80004000 <begin_signature>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00001717 auipc a4,0x1
+80002a6c: 59870713 addi a4,a4,1432 # 80004000 <begin_signature>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00002697 auipc a3,0x2
+80002a7c: 58f6a223 sw a5,1412(a3) # 80004ffc <begin_signature+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf9ccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc03797 auipc a5,0x7fc03
+80002aec: 51878793 addi a5,a5,1304 # ffc06000 <_end+0x7fbffc08>
+80002af0: 00004717 auipc a4,0x4
+80002af4: 90f72223 sw a5,-1788(a4) # 800063f4 <freelist_head>
+80002af8: 7fc03797 auipc a5,0x7fc03
+80002afc: 6f878793 addi a5,a5,1784 # ffc061f0 <_end+0x7fbffdf8>
+80002b00: 00004717 auipc a4,0x4
+80002b04: 8ef72823 sw a5,-1808(a4) # 800063f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00003717 auipc a4,0x3
+80002b10: 4f470713 addi a4,a4,1268 # 80006000 <freelist_nodes>
+80002b14: 00003317 auipc t1,0x3
+80002b18: 6e430313 addi t1,t1,1764 # 800061f8 <user_mapping>
+80002b1c: 01100793 li a5,17
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00003797 auipc a5,0x3
+80002b6c: 6807a623 sw zero,1676(a5) # 800061f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 02a257b7 lui a5,0x2a25
+80002b9c: 00080637 lui a2,0x80
+80002ba0: e4778793 addi a5,a5,-441 # 2a24e47 <_start-0x7d5db1b9>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: 00100093 li ra,1
+80002be4: 00000113 li sp,0
+80002be8: 00209f33 sll t5,ra,sp
+80002bec: 00100e93 li t4,1
+80002bf0: 00200193 li gp,2
+80002bf4: 53df1e63 bne t5,t4,80003130 <fail>
+
+80002bf8 <test_3>:
+80002bf8: 00100093 li ra,1
+80002bfc: 00100113 li sp,1
+80002c00: 00209f33 sll t5,ra,sp
+80002c04: 00200e93 li t4,2
+80002c08: 00300193 li gp,3
+80002c0c: 53df1263 bne t5,t4,80003130 <fail>
+
+80002c10 <test_4>:
+80002c10: 00100093 li ra,1
+80002c14: 00700113 li sp,7
+80002c18: 00209f33 sll t5,ra,sp
+80002c1c: 08000e93 li t4,128
+80002c20: 00400193 li gp,4
+80002c24: 51df1663 bne t5,t4,80003130 <fail>
+
+80002c28 <test_5>:
+80002c28: 00100093 li ra,1
+80002c2c: 00e00113 li sp,14
+80002c30: 00209f33 sll t5,ra,sp
+80002c34: 00004eb7 lui t4,0x4
+80002c38: 00500193 li gp,5
+80002c3c: 4fdf1a63 bne t5,t4,80003130 <fail>
+
+80002c40 <test_6>:
+80002c40: 00100093 li ra,1
+80002c44: 01f00113 li sp,31
+80002c48: 00209f33 sll t5,ra,sp
+80002c4c: 80000eb7 lui t4,0x80000
+80002c50: 00600193 li gp,6
+80002c54: 4ddf1e63 bne t5,t4,80003130 <fail>
+
+80002c58 <test_7>:
+80002c58: fff00093 li ra,-1
+80002c5c: 00000113 li sp,0
+80002c60: 00209f33 sll t5,ra,sp
+80002c64: fff00e93 li t4,-1
+80002c68: 00700193 li gp,7
+80002c6c: 4ddf1263 bne t5,t4,80003130 <fail>
+
+80002c70 <test_8>:
+80002c70: fff00093 li ra,-1
+80002c74: 00100113 li sp,1
+80002c78: 00209f33 sll t5,ra,sp
+80002c7c: ffe00e93 li t4,-2
+80002c80: 00800193 li gp,8
+80002c84: 4bdf1663 bne t5,t4,80003130 <fail>
+
+80002c88 <test_9>:
+80002c88: fff00093 li ra,-1
+80002c8c: 00700113 li sp,7
+80002c90: 00209f33 sll t5,ra,sp
+80002c94: f8000e93 li t4,-128
+80002c98: 00900193 li gp,9
+80002c9c: 49df1a63 bne t5,t4,80003130 <fail>
+
+80002ca0 <test_10>:
+80002ca0: fff00093 li ra,-1
+80002ca4: 00e00113 li sp,14
+80002ca8: 00209f33 sll t5,ra,sp
+80002cac: ffffceb7 lui t4,0xffffc
+80002cb0: 00a00193 li gp,10
+80002cb4: 47df1e63 bne t5,t4,80003130 <fail>
+
+80002cb8 <test_11>:
+80002cb8: fff00093 li ra,-1
+80002cbc: 01f00113 li sp,31
+80002cc0: 00209f33 sll t5,ra,sp
+80002cc4: 80000eb7 lui t4,0x80000
+80002cc8: 00b00193 li gp,11
+80002ccc: 47df1263 bne t5,t4,80003130 <fail>
+
+80002cd0 <test_12>:
+80002cd0: 212120b7 lui ra,0x21212
+80002cd4: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
+80002cd8: 00000113 li sp,0
+80002cdc: 00209f33 sll t5,ra,sp
+80002ce0: 21212eb7 lui t4,0x21212
+80002ce4: 121e8e93 addi t4,t4,289 # 21212121 <_start-0x5edededf>
+80002ce8: 00c00193 li gp,12
+80002cec: 45df1263 bne t5,t4,80003130 <fail>
+
+80002cf0 <test_13>:
+80002cf0: 212120b7 lui ra,0x21212
+80002cf4: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
+80002cf8: 00100113 li sp,1
+80002cfc: 00209f33 sll t5,ra,sp
+80002d00: 42424eb7 lui t4,0x42424
+80002d04: 242e8e93 addi t4,t4,578 # 42424242 <_start-0x3dbdbdbe>
+80002d08: 00d00193 li gp,13
+80002d0c: 43df1263 bne t5,t4,80003130 <fail>
+
+80002d10 <test_14>:
+80002d10: 212120b7 lui ra,0x21212
+80002d14: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
+80002d18: 00700113 li sp,7
+80002d1c: 00209f33 sll t5,ra,sp
+80002d20: 90909eb7 lui t4,0x90909
+80002d24: 080e8e93 addi t4,t4,128 # 90909080 <_end+0x10902c88>
+80002d28: 00e00193 li gp,14
+80002d2c: 41df1263 bne t5,t4,80003130 <fail>
+
+80002d30 <test_15>:
+80002d30: 212120b7 lui ra,0x21212
+80002d34: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
+80002d38: 00e00113 li sp,14
+80002d3c: 00209f33 sll t5,ra,sp
+80002d40: 48484eb7 lui t4,0x48484
+80002d44: 00f00193 li gp,15
+80002d48: 3fdf1463 bne t5,t4,80003130 <fail>
+
+80002d4c <test_16>:
+80002d4c: 212120b7 lui ra,0x21212
+80002d50: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
+80002d54: 01f00113 li sp,31
+80002d58: 00209f33 sll t5,ra,sp
+80002d5c: 80000eb7 lui t4,0x80000
+80002d60: 01000193 li gp,16
+80002d64: 3ddf1663 bne t5,t4,80003130 <fail>
+
+80002d68 <test_17>:
+80002d68: 212120b7 lui ra,0x21212
+80002d6c: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
+80002d70: fc000113 li sp,-64
+80002d74: 00209f33 sll t5,ra,sp
+80002d78: 21212eb7 lui t4,0x21212
+80002d7c: 121e8e93 addi t4,t4,289 # 21212121 <_start-0x5edededf>
+80002d80: 01100193 li gp,17
+80002d84: 3bdf1663 bne t5,t4,80003130 <fail>
+
+80002d88 <test_18>:
+80002d88: 212120b7 lui ra,0x21212
+80002d8c: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
+80002d90: fc100113 li sp,-63
+80002d94: 00209f33 sll t5,ra,sp
+80002d98: 42424eb7 lui t4,0x42424
+80002d9c: 242e8e93 addi t4,t4,578 # 42424242 <_start-0x3dbdbdbe>
+80002da0: 01200193 li gp,18
+80002da4: 39df1663 bne t5,t4,80003130 <fail>
+
+80002da8 <test_19>:
+80002da8: 212120b7 lui ra,0x21212
+80002dac: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
+80002db0: fc700113 li sp,-57
+80002db4: 00209f33 sll t5,ra,sp
+80002db8: 90909eb7 lui t4,0x90909
+80002dbc: 080e8e93 addi t4,t4,128 # 90909080 <_end+0x10902c88>
+80002dc0: 01300193 li gp,19
+80002dc4: 37df1663 bne t5,t4,80003130 <fail>
+
+80002dc8 <test_20>:
+80002dc8: 212120b7 lui ra,0x21212
+80002dcc: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
+80002dd0: fce00113 li sp,-50
+80002dd4: 00209f33 sll t5,ra,sp
+80002dd8: 48484eb7 lui t4,0x48484
+80002ddc: 01400193 li gp,20
+80002de0: 35df1863 bne t5,t4,80003130 <fail>
+
+80002de4 <test_22>:
+80002de4: 00100093 li ra,1
+80002de8: 00700113 li sp,7
+80002dec: 002090b3 sll ra,ra,sp
+80002df0: 08000e93 li t4,128
+80002df4: 01600193 li gp,22
+80002df8: 33d09c63 bne ra,t4,80003130 <fail>
+
+80002dfc <test_23>:
+80002dfc: 00100093 li ra,1
+80002e00: 00e00113 li sp,14
+80002e04: 00209133 sll sp,ra,sp
+80002e08: 00004eb7 lui t4,0x4
+80002e0c: 01700193 li gp,23
+80002e10: 33d11063 bne sp,t4,80003130 <fail>
+
+80002e14 <test_24>:
+80002e14: 00300093 li ra,3
+80002e18: 001090b3 sll ra,ra,ra
+80002e1c: 01800e93 li t4,24
+80002e20: 01800193 li gp,24
+80002e24: 31d09663 bne ra,t4,80003130 <fail>
+
+80002e28 <test_25>:
+80002e28: 00000213 li tp,0
+80002e2c: 00100093 li ra,1
+80002e30: 00700113 li sp,7
+80002e34: 00209f33 sll t5,ra,sp
+80002e38: 000f0313 mv t1,t5
+80002e3c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e40: 00200293 li t0,2
+80002e44: fe5214e3 bne tp,t0,80002e2c <test_25+0x4>
+80002e48: 08000e93 li t4,128
+80002e4c: 01900193 li gp,25
+80002e50: 2fd31063 bne t1,t4,80003130 <fail>
+
+80002e54 <test_26>:
+80002e54: 00000213 li tp,0
+80002e58: 00100093 li ra,1
+80002e5c: 00e00113 li sp,14
+80002e60: 00209f33 sll t5,ra,sp
+80002e64: 00000013 nop
+80002e68: 000f0313 mv t1,t5
+80002e6c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e70: 00200293 li t0,2
+80002e74: fe5212e3 bne tp,t0,80002e58 <test_26+0x4>
+80002e78: 00004eb7 lui t4,0x4
+80002e7c: 01a00193 li gp,26
+80002e80: 2bd31863 bne t1,t4,80003130 <fail>
+
+80002e84 <test_27>:
+80002e84: 00000213 li tp,0
+80002e88: 00100093 li ra,1
+80002e8c: 01f00113 li sp,31
+80002e90: 00209f33 sll t5,ra,sp
+80002e94: 00000013 nop
+80002e98: 00000013 nop
+80002e9c: 000f0313 mv t1,t5
+80002ea0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002ea4: 00200293 li t0,2
+80002ea8: fe5210e3 bne tp,t0,80002e88 <test_27+0x4>
+80002eac: 80000eb7 lui t4,0x80000
+80002eb0: 01b00193 li gp,27
+80002eb4: 27d31e63 bne t1,t4,80003130 <fail>
+
+80002eb8 <test_28>:
+80002eb8: 00000213 li tp,0
+80002ebc: 00100093 li ra,1
+80002ec0: 00700113 li sp,7
+80002ec4: 00209f33 sll t5,ra,sp
+80002ec8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002ecc: 00200293 li t0,2
+80002ed0: fe5216e3 bne tp,t0,80002ebc <test_28+0x4>
+80002ed4: 08000e93 li t4,128
+80002ed8: 01c00193 li gp,28
+80002edc: 25df1a63 bne t5,t4,80003130 <fail>
+
+80002ee0 <test_29>:
+80002ee0: 00000213 li tp,0
+80002ee4: 00100093 li ra,1
+80002ee8: 00e00113 li sp,14
+80002eec: 00000013 nop
+80002ef0: 00209f33 sll t5,ra,sp
+80002ef4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002ef8: 00200293 li t0,2
+80002efc: fe5214e3 bne tp,t0,80002ee4 <test_29+0x4>
+80002f00: 00004eb7 lui t4,0x4
+80002f04: 01d00193 li gp,29
+80002f08: 23df1463 bne t5,t4,80003130 <fail>
+
+80002f0c <test_30>:
+80002f0c: 00000213 li tp,0
+80002f10: 00100093 li ra,1
+80002f14: 01f00113 li sp,31
+80002f18: 00000013 nop
+80002f1c: 00000013 nop
+80002f20: 00209f33 sll t5,ra,sp
+80002f24: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002f28: 00200293 li t0,2
+80002f2c: fe5212e3 bne tp,t0,80002f10 <test_30+0x4>
+80002f30: 80000eb7 lui t4,0x80000
+80002f34: 01e00193 li gp,30
+80002f38: 1fdf1c63 bne t5,t4,80003130 <fail>
+
+80002f3c <test_31>:
+80002f3c: 00000213 li tp,0
+80002f40: 00100093 li ra,1
+80002f44: 00000013 nop
+80002f48: 00700113 li sp,7
+80002f4c: 00209f33 sll t5,ra,sp
+80002f50: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002f54: 00200293 li t0,2
+80002f58: fe5214e3 bne tp,t0,80002f40 <test_31+0x4>
+80002f5c: 08000e93 li t4,128
+80002f60: 01f00193 li gp,31
+80002f64: 1ddf1663 bne t5,t4,80003130 <fail>
+
+80002f68 <test_32>:
+80002f68: 00000213 li tp,0
+80002f6c: 00100093 li ra,1
+80002f70: 00000013 nop
+80002f74: 00e00113 li sp,14
+80002f78: 00000013 nop
+80002f7c: 00209f33 sll t5,ra,sp
+80002f80: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002f84: 00200293 li t0,2
+80002f88: fe5212e3 bne tp,t0,80002f6c <test_32+0x4>
+80002f8c: 00004eb7 lui t4,0x4
+80002f90: 02000193 li gp,32
+80002f94: 19df1e63 bne t5,t4,80003130 <fail>
+
+80002f98 <test_33>:
+80002f98: 00000213 li tp,0
+80002f9c: 00100093 li ra,1
+80002fa0: 00000013 nop
+80002fa4: 00000013 nop
+80002fa8: 01f00113 li sp,31
+80002fac: 00209f33 sll t5,ra,sp
+80002fb0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002fb4: 00200293 li t0,2
+80002fb8: fe5212e3 bne tp,t0,80002f9c <test_33+0x4>
+80002fbc: 80000eb7 lui t4,0x80000
+80002fc0: 02100193 li gp,33
+80002fc4: 17df1663 bne t5,t4,80003130 <fail>
+
+80002fc8 <test_34>:
+80002fc8: 00000213 li tp,0
+80002fcc: 00700113 li sp,7
+80002fd0: 00100093 li ra,1
+80002fd4: 00209f33 sll t5,ra,sp
+80002fd8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002fdc: 00200293 li t0,2
+80002fe0: fe5216e3 bne tp,t0,80002fcc <test_34+0x4>
+80002fe4: 08000e93 li t4,128
+80002fe8: 02200193 li gp,34
+80002fec: 15df1263 bne t5,t4,80003130 <fail>
+
+80002ff0 <test_35>:
+80002ff0: 00000213 li tp,0
+80002ff4: 00e00113 li sp,14
+80002ff8: 00100093 li ra,1
+80002ffc: 00000013 nop
+80003000: 00209f33 sll t5,ra,sp
+80003004: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80003008: 00200293 li t0,2
+8000300c: fe5214e3 bne tp,t0,80002ff4 <test_35+0x4>
+80003010: 00004eb7 lui t4,0x4
+80003014: 02300193 li gp,35
+80003018: 11df1c63 bne t5,t4,80003130 <fail>
+
+8000301c <test_36>:
+8000301c: 00000213 li tp,0
+80003020: 01f00113 li sp,31
+80003024: 00100093 li ra,1
+80003028: 00000013 nop
+8000302c: 00000013 nop
+80003030: 00209f33 sll t5,ra,sp
+80003034: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80003038: 00200293 li t0,2
+8000303c: fe5212e3 bne tp,t0,80003020 <test_36+0x4>
+80003040: 80000eb7 lui t4,0x80000
+80003044: 02400193 li gp,36
+80003048: 0fdf1463 bne t5,t4,80003130 <fail>
+
+8000304c <test_37>:
+8000304c: 00000213 li tp,0
+80003050: 00700113 li sp,7
+80003054: 00000013 nop
+80003058: 00100093 li ra,1
+8000305c: 00209f33 sll t5,ra,sp
+80003060: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80003064: 00200293 li t0,2
+80003068: fe5214e3 bne tp,t0,80003050 <test_37+0x4>
+8000306c: 08000e93 li t4,128
+80003070: 02500193 li gp,37
+80003074: 0bdf1e63 bne t5,t4,80003130 <fail>
+
+80003078 <test_38>:
+80003078: 00000213 li tp,0
+8000307c: 00e00113 li sp,14
+80003080: 00000013 nop
+80003084: 00100093 li ra,1
+80003088: 00000013 nop
+8000308c: 00209f33 sll t5,ra,sp
+80003090: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80003094: 00200293 li t0,2
+80003098: fe5212e3 bne tp,t0,8000307c <test_38+0x4>
+8000309c: 00004eb7 lui t4,0x4
+800030a0: 02600193 li gp,38
+800030a4: 09df1663 bne t5,t4,80003130 <fail>
+
+800030a8 <test_39>:
+800030a8: 00000213 li tp,0
+800030ac: 01f00113 li sp,31
+800030b0: 00000013 nop
+800030b4: 00000013 nop
+800030b8: 00100093 li ra,1
+800030bc: 00209f33 sll t5,ra,sp
+800030c0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800030c4: 00200293 li t0,2
+800030c8: fe5212e3 bne tp,t0,800030ac <test_39+0x4>
+800030cc: 80000eb7 lui t4,0x80000
+800030d0: 02700193 li gp,39
+800030d4: 05df1e63 bne t5,t4,80003130 <fail>
+
+800030d8 <test_40>:
+800030d8: 00f00093 li ra,15
+800030dc: 00101133 sll sp,zero,ra
+800030e0: 00000e93 li t4,0
+800030e4: 02800193 li gp,40
+800030e8: 05d11463 bne sp,t4,80003130 <fail>
+
+800030ec <test_41>:
+800030ec: 02000093 li ra,32
+800030f0: 00009133 sll sp,ra,zero
+800030f4: 02000e93 li t4,32
+800030f8: 02900193 li gp,41
+800030fc: 03d11a63 bne sp,t4,80003130 <fail>
+
+80003100 <test_42>:
+80003100: 000010b3 sll ra,zero,zero
+80003104: 00000e93 li t4,0
+80003108: 02a00193 li gp,42
+8000310c: 03d09263 bne ra,t4,80003130 <fail>
+
+80003110 <test_43>:
+80003110: 40000093 li ra,1024
+80003114: 00001137 lui sp,0x1
+80003118: 80010113 addi sp,sp,-2048 # 800 <_start-0x7ffff800>
+8000311c: 00209033 sll zero,ra,sp
+80003120: 00000e93 li t4,0
+80003124: 02b00193 li gp,43
+80003128: 01d01463 bne zero,t4,80003130 <fail>
+8000312c: 00301a63 bne zero,gp,80003140 <pass>
+
+80003130 <fail>:
+80003130: 00119513 slli a0,gp,0x1
+80003134: 00050063 beqz a0,80003134 <fail+0x4>
+80003138: 00156513 ori a0,a0,1
+8000313c: 00000073 ecall
+
+80003140 <pass>:
+80003140: 00100513 li a0,1
+80003144: 00000073 ecall
+80003148: c0001073 unimp
diff --git a/test/riscv-tests/rv32ui-v-sll.elf b/test/riscv-tests/rv32ui-v-sll.elf
new file mode 100644
index 0000000..99cc21f
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-sll.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-v-slli.dump b/test/riscv-tests/rv32ui-v-slli.dump
new file mode 100644
index 0000000..d1abf8b
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-slli.dump
@@ -0,0 +1,1117 @@
+
+rv32ui-v-slli: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00007117 auipc sp,0x7
+8000001c: 35010113 addi sp,sp,848 # 80007368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00002317 auipc t1,0x2
+80002370: c9430313 addi t1,t1,-876 # 80004000 <begin_signature>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00004797 auipc a5,0x4
+8000238c: 06c78793 addi a5,a5,108 # 800063f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00004717 auipc a4,0x4
+800023a0: 05470713 addi a4,a4,84 # 800063f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00004697 auipc a3,0x4
+800023ac: 04f6a623 sw a5,76(a3) # 800063f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00004717 auipc a4,0x4
+800023dc: e2070713 addi a4,a4,-480 # 800061f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf9c08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00004797 auipc a5,0x4
+800024bc: f207ac23 sw zero,-200(a5) # 800063f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00001597 auipc a1,0x1
+800024cc: 9b858593 addi a1,a1,-1608 # 80002e80 <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00001597 auipc a1,0x1
+8000253c: 9d458593 addi a1,a1,-1580 # 80002f0c <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00001597 auipc a1,0x1
+800025a8: 98058593 addi a1,a1,-1664 # 80002f24 <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00001597 auipc a1,0x1
+80002614: 8b458593 addi a1,a1,-1868 # 80002ec4 <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00001597 auipc a1,0x1
+8000274c: 8a458593 addi a1,a1,-1884 # 80002fec <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00001597 auipc a1,0x1
+800027c0: 80c58593 addi a1,a1,-2036 # 80002fc8 <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00004b17 auipc s6,0x4
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800061f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00001d17 auipc s10,0x1
+80002840: 7c4d0d13 addi s10,s10,1988 # 80004000 <begin_signature>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00004717 auipc a4,0x4
+8000285c: b8f72c23 sw a5,-1128(a4) # 800063f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00004717 auipc a4,0x4
+800028e8: b0c70713 addi a4,a4,-1268 # 800063f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00004717 auipc a4,0x4
+800028fc: aef72c23 sw a5,-1288(a4) # 800063f0 <freelist_tail>
+80002900: 00004717 auipc a4,0x4
+80002904: aef72a23 sw a5,-1292(a4) # 800063f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00000617 auipc a2,0x0
+80002914: 70860613 addi a2,a2,1800 # 80003018 <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00000617 auipc a2,0x0
+80002980: 61860613 addi a2,a2,1560 # 80002f94 <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 59860613 addi a2,a2,1432 # 80002f60 <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00002797 auipc a5,0x2
+80002a4c: 5b878793 addi a5,a5,1464 # 80005000 <begin_signature+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00001697 auipc a3,0x1
+80002a60: 5af6a223 sw a5,1444(a3) # 80004000 <begin_signature>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00001717 auipc a4,0x1
+80002a6c: 59870713 addi a4,a4,1432 # 80004000 <begin_signature>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00002697 auipc a3,0x2
+80002a7c: 58f6a223 sw a5,1412(a3) # 80004ffc <begin_signature+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf9ccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc03797 auipc a5,0x7fc03
+80002aec: 51878793 addi a5,a5,1304 # ffc06000 <_end+0x7fbffc08>
+80002af0: 00004717 auipc a4,0x4
+80002af4: 90f72223 sw a5,-1788(a4) # 800063f4 <freelist_head>
+80002af8: 7fc03797 auipc a5,0x7fc03
+80002afc: 6f878793 addi a5,a5,1784 # ffc061f0 <_end+0x7fbffdf8>
+80002b00: 00004717 auipc a4,0x4
+80002b04: 8ef72823 sw a5,-1808(a4) # 800063f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00003717 auipc a4,0x3
+80002b10: 4f470713 addi a4,a4,1268 # 80006000 <freelist_nodes>
+80002b14: 00003317 auipc t1,0x3
+80002b18: 6e430313 addi t1,t1,1764 # 800061f8 <user_mapping>
+80002b1c: 00e00793 li a5,14
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00003797 auipc a5,0x3
+80002b6c: 6807a623 sw zero,1676(a5) # 800061f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 0fdfb7b7 lui a5,0xfdfb
+80002b9c: 00080637 lui a2,0x80
+80002ba0: 47878793 addi a5,a5,1144 # fdfb478 <_start-0x70204b88>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: 00100093 li ra,1
+80002be4: 00009f13 slli t5,ra,0x0
+80002be8: 00100e93 li t4,1
+80002bec: 00200193 li gp,2
+80002bf0: 27df1a63 bne t5,t4,80002e64 <fail>
+
+80002bf4 <test_3>:
+80002bf4: 00100093 li ra,1
+80002bf8: 00109f13 slli t5,ra,0x1
+80002bfc: 00200e93 li t4,2
+80002c00: 00300193 li gp,3
+80002c04: 27df1063 bne t5,t4,80002e64 <fail>
+
+80002c08 <test_4>:
+80002c08: 00100093 li ra,1
+80002c0c: 00709f13 slli t5,ra,0x7
+80002c10: 08000e93 li t4,128
+80002c14: 00400193 li gp,4
+80002c18: 25df1663 bne t5,t4,80002e64 <fail>
+
+80002c1c <test_5>:
+80002c1c: 00100093 li ra,1
+80002c20: 00e09f13 slli t5,ra,0xe
+80002c24: 00004eb7 lui t4,0x4
+80002c28: 00500193 li gp,5
+80002c2c: 23df1c63 bne t5,t4,80002e64 <fail>
+
+80002c30 <test_6>:
+80002c30: 00100093 li ra,1
+80002c34: 01f09f13 slli t5,ra,0x1f
+80002c38: 80000eb7 lui t4,0x80000
+80002c3c: 00600193 li gp,6
+80002c40: 23df1263 bne t5,t4,80002e64 <fail>
+
+80002c44 <test_7>:
+80002c44: fff00093 li ra,-1
+80002c48: 00009f13 slli t5,ra,0x0
+80002c4c: fff00e93 li t4,-1
+80002c50: 00700193 li gp,7
+80002c54: 21df1863 bne t5,t4,80002e64 <fail>
+
+80002c58 <test_8>:
+80002c58: fff00093 li ra,-1
+80002c5c: 00109f13 slli t5,ra,0x1
+80002c60: ffe00e93 li t4,-2
+80002c64: 00800193 li gp,8
+80002c68: 1fdf1e63 bne t5,t4,80002e64 <fail>
+
+80002c6c <test_9>:
+80002c6c: fff00093 li ra,-1
+80002c70: 00709f13 slli t5,ra,0x7
+80002c74: f8000e93 li t4,-128
+80002c78: 00900193 li gp,9
+80002c7c: 1fdf1463 bne t5,t4,80002e64 <fail>
+
+80002c80 <test_10>:
+80002c80: fff00093 li ra,-1
+80002c84: 00e09f13 slli t5,ra,0xe
+80002c88: ffffceb7 lui t4,0xffffc
+80002c8c: 00a00193 li gp,10
+80002c90: 1ddf1a63 bne t5,t4,80002e64 <fail>
+
+80002c94 <test_11>:
+80002c94: fff00093 li ra,-1
+80002c98: 01f09f13 slli t5,ra,0x1f
+80002c9c: 80000eb7 lui t4,0x80000
+80002ca0: 00b00193 li gp,11
+80002ca4: 1ddf1063 bne t5,t4,80002e64 <fail>
+
+80002ca8 <test_12>:
+80002ca8: 212120b7 lui ra,0x21212
+80002cac: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
+80002cb0: 00009f13 slli t5,ra,0x0
+80002cb4: 21212eb7 lui t4,0x21212
+80002cb8: 121e8e93 addi t4,t4,289 # 21212121 <_start-0x5edededf>
+80002cbc: 00c00193 li gp,12
+80002cc0: 1bdf1263 bne t5,t4,80002e64 <fail>
+
+80002cc4 <test_13>:
+80002cc4: 212120b7 lui ra,0x21212
+80002cc8: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
+80002ccc: 00109f13 slli t5,ra,0x1
+80002cd0: 42424eb7 lui t4,0x42424
+80002cd4: 242e8e93 addi t4,t4,578 # 42424242 <_start-0x3dbdbdbe>
+80002cd8: 00d00193 li gp,13
+80002cdc: 19df1463 bne t5,t4,80002e64 <fail>
+
+80002ce0 <test_14>:
+80002ce0: 212120b7 lui ra,0x21212
+80002ce4: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
+80002ce8: 00709f13 slli t5,ra,0x7
+80002cec: 90909eb7 lui t4,0x90909
+80002cf0: 080e8e93 addi t4,t4,128 # 90909080 <_end+0x10902c88>
+80002cf4: 00e00193 li gp,14
+80002cf8: 17df1663 bne t5,t4,80002e64 <fail>
+
+80002cfc <test_15>:
+80002cfc: 212120b7 lui ra,0x21212
+80002d00: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
+80002d04: 00e09f13 slli t5,ra,0xe
+80002d08: 48484eb7 lui t4,0x48484
+80002d0c: 00f00193 li gp,15
+80002d10: 15df1a63 bne t5,t4,80002e64 <fail>
+
+80002d14 <test_16>:
+80002d14: 212120b7 lui ra,0x21212
+80002d18: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
+80002d1c: 01f09f13 slli t5,ra,0x1f
+80002d20: 80000eb7 lui t4,0x80000
+80002d24: 01000193 li gp,16
+80002d28: 13df1e63 bne t5,t4,80002e64 <fail>
+
+80002d2c <test_17>:
+80002d2c: 00100093 li ra,1
+80002d30: 00709093 slli ra,ra,0x7
+80002d34: 08000e93 li t4,128
+80002d38: 01100193 li gp,17
+80002d3c: 13d09463 bne ra,t4,80002e64 <fail>
+
+80002d40 <test_18>:
+80002d40: 00000213 li tp,0
+80002d44: 00100093 li ra,1
+80002d48: 00709f13 slli t5,ra,0x7
+80002d4c: 000f0313 mv t1,t5
+80002d50: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d54: 00200293 li t0,2
+80002d58: fe5216e3 bne tp,t0,80002d44 <test_18+0x4>
+80002d5c: 08000e93 li t4,128
+80002d60: 01200193 li gp,18
+80002d64: 11d31063 bne t1,t4,80002e64 <fail>
+
+80002d68 <test_19>:
+80002d68: 00000213 li tp,0
+80002d6c: 00100093 li ra,1
+80002d70: 00e09f13 slli t5,ra,0xe
+80002d74: 00000013 nop
+80002d78: 000f0313 mv t1,t5
+80002d7c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d80: 00200293 li t0,2
+80002d84: fe5214e3 bne tp,t0,80002d6c <test_19+0x4>
+80002d88: 00004eb7 lui t4,0x4
+80002d8c: 01300193 li gp,19
+80002d90: 0dd31a63 bne t1,t4,80002e64 <fail>
+
+80002d94 <test_20>:
+80002d94: 00000213 li tp,0
+80002d98: 00100093 li ra,1
+80002d9c: 01f09f13 slli t5,ra,0x1f
+80002da0: 00000013 nop
+80002da4: 00000013 nop
+80002da8: 000f0313 mv t1,t5
+80002dac: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002db0: 00200293 li t0,2
+80002db4: fe5212e3 bne tp,t0,80002d98 <test_20+0x4>
+80002db8: 80000eb7 lui t4,0x80000
+80002dbc: 01400193 li gp,20
+80002dc0: 0bd31263 bne t1,t4,80002e64 <fail>
+
+80002dc4 <test_21>:
+80002dc4: 00000213 li tp,0
+80002dc8: 00100093 li ra,1
+80002dcc: 00709f13 slli t5,ra,0x7
+80002dd0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002dd4: 00200293 li t0,2
+80002dd8: fe5218e3 bne tp,t0,80002dc8 <test_21+0x4>
+80002ddc: 08000e93 li t4,128
+80002de0: 01500193 li gp,21
+80002de4: 09df1063 bne t5,t4,80002e64 <fail>
+
+80002de8 <test_22>:
+80002de8: 00000213 li tp,0
+80002dec: 00100093 li ra,1
+80002df0: 00000013 nop
+80002df4: 00e09f13 slli t5,ra,0xe
+80002df8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002dfc: 00200293 li t0,2
+80002e00: fe5216e3 bne tp,t0,80002dec <test_22+0x4>
+80002e04: 00004eb7 lui t4,0x4
+80002e08: 01600193 li gp,22
+80002e0c: 05df1c63 bne t5,t4,80002e64 <fail>
+
+80002e10 <test_23>:
+80002e10: 00000213 li tp,0
+80002e14: 00100093 li ra,1
+80002e18: 00000013 nop
+80002e1c: 00000013 nop
+80002e20: 01f09f13 slli t5,ra,0x1f
+80002e24: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e28: 00200293 li t0,2
+80002e2c: fe5214e3 bne tp,t0,80002e14 <test_23+0x4>
+80002e30: 80000eb7 lui t4,0x80000
+80002e34: 01700193 li gp,23
+80002e38: 03df1663 bne t5,t4,80002e64 <fail>
+
+80002e3c <test_24>:
+80002e3c: 01f01093 slli ra,zero,0x1f
+80002e40: 00000e93 li t4,0
+80002e44: 01800193 li gp,24
+80002e48: 01d09e63 bne ra,t4,80002e64 <fail>
+
+80002e4c <test_25>:
+80002e4c: 02100093 li ra,33
+80002e50: 01409013 slli zero,ra,0x14
+80002e54: 00000e93 li t4,0
+80002e58: 01900193 li gp,25
+80002e5c: 01d01463 bne zero,t4,80002e64 <fail>
+80002e60: 00301a63 bne zero,gp,80002e74 <pass>
+
+80002e64 <fail>:
+80002e64: 00119513 slli a0,gp,0x1
+80002e68: 00050063 beqz a0,80002e68 <fail+0x4>
+80002e6c: 00156513 ori a0,a0,1
+80002e70: 00000073 ecall
+
+80002e74 <pass>:
+80002e74: 00100513 li a0,1
+80002e78: 00000073 ecall
+80002e7c: c0001073 unimp
diff --git a/test/riscv-tests/rv32ui-v-slli.elf b/test/riscv-tests/rv32ui-v-slli.elf
new file mode 100644
index 0000000..b0a02ee
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-slli.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-v-slt.dump b/test/riscv-tests/rv32ui-v-slt.dump
new file mode 100644
index 0000000..307431a
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-slt.dump
@@ -0,0 +1,1288 @@
+
+rv32ui-v-slt: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00007117 auipc sp,0x7
+8000001c: 35010113 addi sp,sp,848 # 80007368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00002317 auipc t1,0x2
+80002370: c9430313 addi t1,t1,-876 # 80004000 <begin_signature>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00004797 auipc a5,0x4
+8000238c: 06c78793 addi a5,a5,108 # 800063f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00004717 auipc a4,0x4
+800023a0: 05470713 addi a4,a4,84 # 800063f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00004697 auipc a3,0x4
+800023ac: 04f6a623 sw a5,76(a3) # 800063f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00004717 auipc a4,0x4
+800023dc: e2070713 addi a4,a4,-480 # 800061f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf9c08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00004797 auipc a5,0x4
+800024bc: f207ac23 sw zero,-200(a5) # 800063f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00001597 auipc a1,0x1
+800024cc: bfc58593 addi a1,a1,-1028 # 800030c4 <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00001597 auipc a1,0x1
+8000253c: c1858593 addi a1,a1,-1000 # 80003150 <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00001597 auipc a1,0x1
+800025a8: bc458593 addi a1,a1,-1084 # 80003168 <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00001597 auipc a1,0x1
+80002614: af858593 addi a1,a1,-1288 # 80003108 <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00001597 auipc a1,0x1
+8000274c: ae858593 addi a1,a1,-1304 # 80003230 <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00001597 auipc a1,0x1
+800027c0: a5058593 addi a1,a1,-1456 # 8000320c <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00004b17 auipc s6,0x4
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800061f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00001d17 auipc s10,0x1
+80002840: 7c4d0d13 addi s10,s10,1988 # 80004000 <begin_signature>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00004717 auipc a4,0x4
+8000285c: b8f72c23 sw a5,-1128(a4) # 800063f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00004717 auipc a4,0x4
+800028e8: b0c70713 addi a4,a4,-1268 # 800063f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00004717 auipc a4,0x4
+800028fc: aef72c23 sw a5,-1288(a4) # 800063f0 <freelist_tail>
+80002900: 00004717 auipc a4,0x4
+80002904: aef72a23 sw a5,-1292(a4) # 800063f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00001617 auipc a2,0x1
+80002914: 94c60613 addi a2,a2,-1716 # 8000325c <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00001617 auipc a2,0x1
+80002980: 85c60613 addi a2,a2,-1956 # 800031d8 <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 7dc60613 addi a2,a2,2012 # 800031a4 <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00002797 auipc a5,0x2
+80002a4c: 5b878793 addi a5,a5,1464 # 80005000 <begin_signature+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00001697 auipc a3,0x1
+80002a60: 5af6a223 sw a5,1444(a3) # 80004000 <begin_signature>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00001717 auipc a4,0x1
+80002a6c: 59870713 addi a4,a4,1432 # 80004000 <begin_signature>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00002697 auipc a3,0x2
+80002a7c: 58f6a223 sw a5,1412(a3) # 80004ffc <begin_signature+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf9ccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc03797 auipc a5,0x7fc03
+80002aec: 51878793 addi a5,a5,1304 # ffc06000 <_end+0x7fbffc08>
+80002af0: 00004717 auipc a4,0x4
+80002af4: 90f72223 sw a5,-1788(a4) # 800063f4 <freelist_head>
+80002af8: 7fc03797 auipc a5,0x7fc03
+80002afc: 6f878793 addi a5,a5,1784 # ffc061f0 <_end+0x7fbffdf8>
+80002b00: 00004717 auipc a4,0x4
+80002b04: 8ef72823 sw a5,-1808(a4) # 800063f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00003717 auipc a4,0x3
+80002b10: 4f470713 addi a4,a4,1268 # 80006000 <freelist_nodes>
+80002b14: 00003317 auipc t1,0x3
+80002b18: 6e430313 addi t1,t1,1764 # 800061f8 <user_mapping>
+80002b1c: 00900793 li a5,9
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00003797 auipc a5,0x3
+80002b6c: 6807a623 sw zero,1676(a5) # 800061f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 0e44a7b7 lui a5,0xe44a
+80002b9c: 00080637 lui a2,0x80
+80002ba0: 29478793 addi a5,a5,660 # e44a294 <_start-0x71bb5d6c>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: 00000093 li ra,0
+80002be4: 00000113 li sp,0
+80002be8: 0020af33 slt t5,ra,sp
+80002bec: 00000e93 li t4,0
+80002bf0: 00200193 li gp,2
+80002bf4: 4bdf1a63 bne t5,t4,800030a8 <fail>
+
+80002bf8 <test_3>:
+80002bf8: 00100093 li ra,1
+80002bfc: 00100113 li sp,1
+80002c00: 0020af33 slt t5,ra,sp
+80002c04: 00000e93 li t4,0
+80002c08: 00300193 li gp,3
+80002c0c: 49df1e63 bne t5,t4,800030a8 <fail>
+
+80002c10 <test_4>:
+80002c10: 00300093 li ra,3
+80002c14: 00700113 li sp,7
+80002c18: 0020af33 slt t5,ra,sp
+80002c1c: 00100e93 li t4,1
+80002c20: 00400193 li gp,4
+80002c24: 49df1263 bne t5,t4,800030a8 <fail>
+
+80002c28 <test_5>:
+80002c28: 00700093 li ra,7
+80002c2c: 00300113 li sp,3
+80002c30: 0020af33 slt t5,ra,sp
+80002c34: 00000e93 li t4,0
+80002c38: 00500193 li gp,5
+80002c3c: 47df1663 bne t5,t4,800030a8 <fail>
+
+80002c40 <test_6>:
+80002c40: 00000093 li ra,0
+80002c44: ffff8137 lui sp,0xffff8
+80002c48: 0020af33 slt t5,ra,sp
+80002c4c: 00000e93 li t4,0
+80002c50: 00600193 li gp,6
+80002c54: 45df1a63 bne t5,t4,800030a8 <fail>
+
+80002c58 <test_7>:
+80002c58: 800000b7 lui ra,0x80000
+80002c5c: 00000113 li sp,0
+80002c60: 0020af33 slt t5,ra,sp
+80002c64: 00100e93 li t4,1
+80002c68: 00700193 li gp,7
+80002c6c: 43df1e63 bne t5,t4,800030a8 <fail>
+
+80002c70 <test_8>:
+80002c70: 800000b7 lui ra,0x80000
+80002c74: ffff8137 lui sp,0xffff8
+80002c78: 0020af33 slt t5,ra,sp
+80002c7c: 00100e93 li t4,1
+80002c80: 00800193 li gp,8
+80002c84: 43df1263 bne t5,t4,800030a8 <fail>
+
+80002c88 <test_9>:
+80002c88: 00000093 li ra,0
+80002c8c: 00008137 lui sp,0x8
+80002c90: fff10113 addi sp,sp,-1 # 7fff <_start-0x7fff8001>
+80002c94: 0020af33 slt t5,ra,sp
+80002c98: 00100e93 li t4,1
+80002c9c: 00900193 li gp,9
+80002ca0: 41df1463 bne t5,t4,800030a8 <fail>
+
+80002ca4 <test_10>:
+80002ca4: 800000b7 lui ra,0x80000
+80002ca8: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffff9c07>
+80002cac: 00000113 li sp,0
+80002cb0: 0020af33 slt t5,ra,sp
+80002cb4: 00000e93 li t4,0
+80002cb8: 00a00193 li gp,10
+80002cbc: 3fdf1663 bne t5,t4,800030a8 <fail>
+
+80002cc0 <test_11>:
+80002cc0: 800000b7 lui ra,0x80000
+80002cc4: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffff9c07>
+80002cc8: 00008137 lui sp,0x8
+80002ccc: fff10113 addi sp,sp,-1 # 7fff <_start-0x7fff8001>
+80002cd0: 0020af33 slt t5,ra,sp
+80002cd4: 00000e93 li t4,0
+80002cd8: 00b00193 li gp,11
+80002cdc: 3ddf1663 bne t5,t4,800030a8 <fail>
+
+80002ce0 <test_12>:
+80002ce0: 800000b7 lui ra,0x80000
+80002ce4: 00008137 lui sp,0x8
+80002ce8: fff10113 addi sp,sp,-1 # 7fff <_start-0x7fff8001>
+80002cec: 0020af33 slt t5,ra,sp
+80002cf0: 00100e93 li t4,1
+80002cf4: 00c00193 li gp,12
+80002cf8: 3bdf1863 bne t5,t4,800030a8 <fail>
+
+80002cfc <test_13>:
+80002cfc: 800000b7 lui ra,0x80000
+80002d00: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffff9c07>
+80002d04: ffff8137 lui sp,0xffff8
+80002d08: 0020af33 slt t5,ra,sp
+80002d0c: 00000e93 li t4,0
+80002d10: 00d00193 li gp,13
+80002d14: 39df1a63 bne t5,t4,800030a8 <fail>
+
+80002d18 <test_14>:
+80002d18: 00000093 li ra,0
+80002d1c: fff00113 li sp,-1
+80002d20: 0020af33 slt t5,ra,sp
+80002d24: 00000e93 li t4,0
+80002d28: 00e00193 li gp,14
+80002d2c: 37df1e63 bne t5,t4,800030a8 <fail>
+
+80002d30 <test_15>:
+80002d30: fff00093 li ra,-1
+80002d34: 00100113 li sp,1
+80002d38: 0020af33 slt t5,ra,sp
+80002d3c: 00100e93 li t4,1
+80002d40: 00f00193 li gp,15
+80002d44: 37df1263 bne t5,t4,800030a8 <fail>
+
+80002d48 <test_16>:
+80002d48: fff00093 li ra,-1
+80002d4c: fff00113 li sp,-1
+80002d50: 0020af33 slt t5,ra,sp
+80002d54: 00000e93 li t4,0
+80002d58: 01000193 li gp,16
+80002d5c: 35df1663 bne t5,t4,800030a8 <fail>
+
+80002d60 <test_17>:
+80002d60: 00e00093 li ra,14
+80002d64: 00d00113 li sp,13
+80002d68: 0020a0b3 slt ra,ra,sp
+80002d6c: 00000e93 li t4,0
+80002d70: 01100193 li gp,17
+80002d74: 33d09a63 bne ra,t4,800030a8 <fail>
+
+80002d78 <test_18>:
+80002d78: 00b00093 li ra,11
+80002d7c: 00d00113 li sp,13
+80002d80: 0020a133 slt sp,ra,sp
+80002d84: 00100e93 li t4,1
+80002d88: 01200193 li gp,18
+80002d8c: 31d11e63 bne sp,t4,800030a8 <fail>
+
+80002d90 <test_19>:
+80002d90: 00d00093 li ra,13
+80002d94: 0010a0b3 slt ra,ra,ra
+80002d98: 00000e93 li t4,0
+80002d9c: 01300193 li gp,19
+80002da0: 31d09463 bne ra,t4,800030a8 <fail>
+
+80002da4 <test_20>:
+80002da4: 00000213 li tp,0
+80002da8: 00b00093 li ra,11
+80002dac: 00d00113 li sp,13
+80002db0: 0020af33 slt t5,ra,sp
+80002db4: 000f0313 mv t1,t5
+80002db8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002dbc: 00200293 li t0,2
+80002dc0: fe5214e3 bne tp,t0,80002da8 <test_20+0x4>
+80002dc4: 00100e93 li t4,1
+80002dc8: 01400193 li gp,20
+80002dcc: 2dd31e63 bne t1,t4,800030a8 <fail>
+
+80002dd0 <test_21>:
+80002dd0: 00000213 li tp,0
+80002dd4: 00e00093 li ra,14
+80002dd8: 00d00113 li sp,13
+80002ddc: 0020af33 slt t5,ra,sp
+80002de0: 00000013 nop
+80002de4: 000f0313 mv t1,t5
+80002de8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002dec: 00200293 li t0,2
+80002df0: fe5212e3 bne tp,t0,80002dd4 <test_21+0x4>
+80002df4: 00000e93 li t4,0
+80002df8: 01500193 li gp,21
+80002dfc: 2bd31663 bne t1,t4,800030a8 <fail>
+
+80002e00 <test_22>:
+80002e00: 00000213 li tp,0
+80002e04: 00c00093 li ra,12
+80002e08: 00d00113 li sp,13
+80002e0c: 0020af33 slt t5,ra,sp
+80002e10: 00000013 nop
+80002e14: 00000013 nop
+80002e18: 000f0313 mv t1,t5
+80002e1c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e20: 00200293 li t0,2
+80002e24: fe5210e3 bne tp,t0,80002e04 <test_22+0x4>
+80002e28: 00100e93 li t4,1
+80002e2c: 01600193 li gp,22
+80002e30: 27d31c63 bne t1,t4,800030a8 <fail>
+
+80002e34 <test_23>:
+80002e34: 00000213 li tp,0
+80002e38: 00e00093 li ra,14
+80002e3c: 00d00113 li sp,13
+80002e40: 0020af33 slt t5,ra,sp
+80002e44: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e48: 00200293 li t0,2
+80002e4c: fe5216e3 bne tp,t0,80002e38 <test_23+0x4>
+80002e50: 00000e93 li t4,0
+80002e54: 01700193 li gp,23
+80002e58: 25df1863 bne t5,t4,800030a8 <fail>
+
+80002e5c <test_24>:
+80002e5c: 00000213 li tp,0
+80002e60: 00b00093 li ra,11
+80002e64: 00d00113 li sp,13
+80002e68: 00000013 nop
+80002e6c: 0020af33 slt t5,ra,sp
+80002e70: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e74: 00200293 li t0,2
+80002e78: fe5214e3 bne tp,t0,80002e60 <test_24+0x4>
+80002e7c: 00100e93 li t4,1
+80002e80: 01800193 li gp,24
+80002e84: 23df1263 bne t5,t4,800030a8 <fail>
+
+80002e88 <test_25>:
+80002e88: 00000213 li tp,0
+80002e8c: 00f00093 li ra,15
+80002e90: 00d00113 li sp,13
+80002e94: 00000013 nop
+80002e98: 00000013 nop
+80002e9c: 0020af33 slt t5,ra,sp
+80002ea0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002ea4: 00200293 li t0,2
+80002ea8: fe5212e3 bne tp,t0,80002e8c <test_25+0x4>
+80002eac: 00000e93 li t4,0
+80002eb0: 01900193 li gp,25
+80002eb4: 1fdf1a63 bne t5,t4,800030a8 <fail>
+
+80002eb8 <test_26>:
+80002eb8: 00000213 li tp,0
+80002ebc: 00a00093 li ra,10
+80002ec0: 00000013 nop
+80002ec4: 00d00113 li sp,13
+80002ec8: 0020af33 slt t5,ra,sp
+80002ecc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002ed0: 00200293 li t0,2
+80002ed4: fe5214e3 bne tp,t0,80002ebc <test_26+0x4>
+80002ed8: 00100e93 li t4,1
+80002edc: 01a00193 li gp,26
+80002ee0: 1ddf1463 bne t5,t4,800030a8 <fail>
+
+80002ee4 <test_27>:
+80002ee4: 00000213 li tp,0
+80002ee8: 01000093 li ra,16
+80002eec: 00000013 nop
+80002ef0: 00d00113 li sp,13
+80002ef4: 00000013 nop
+80002ef8: 0020af33 slt t5,ra,sp
+80002efc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002f00: 00200293 li t0,2
+80002f04: fe5212e3 bne tp,t0,80002ee8 <test_27+0x4>
+80002f08: 00000e93 li t4,0
+80002f0c: 01b00193 li gp,27
+80002f10: 19df1c63 bne t5,t4,800030a8 <fail>
+
+80002f14 <test_28>:
+80002f14: 00000213 li tp,0
+80002f18: 00900093 li ra,9
+80002f1c: 00000013 nop
+80002f20: 00000013 nop
+80002f24: 00d00113 li sp,13
+80002f28: 0020af33 slt t5,ra,sp
+80002f2c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002f30: 00200293 li t0,2
+80002f34: fe5212e3 bne tp,t0,80002f18 <test_28+0x4>
+80002f38: 00100e93 li t4,1
+80002f3c: 01c00193 li gp,28
+80002f40: 17df1463 bne t5,t4,800030a8 <fail>
+
+80002f44 <test_29>:
+80002f44: 00000213 li tp,0
+80002f48: 00d00113 li sp,13
+80002f4c: 01100093 li ra,17
+80002f50: 0020af33 slt t5,ra,sp
+80002f54: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002f58: 00200293 li t0,2
+80002f5c: fe5216e3 bne tp,t0,80002f48 <test_29+0x4>
+80002f60: 00000e93 li t4,0
+80002f64: 01d00193 li gp,29
+80002f68: 15df1063 bne t5,t4,800030a8 <fail>
+
+80002f6c <test_30>:
+80002f6c: 00000213 li tp,0
+80002f70: 00d00113 li sp,13
+80002f74: 00800093 li ra,8
+80002f78: 00000013 nop
+80002f7c: 0020af33 slt t5,ra,sp
+80002f80: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002f84: 00200293 li t0,2
+80002f88: fe5214e3 bne tp,t0,80002f70 <test_30+0x4>
+80002f8c: 00100e93 li t4,1
+80002f90: 01e00193 li gp,30
+80002f94: 11df1a63 bne t5,t4,800030a8 <fail>
+
+80002f98 <test_31>:
+80002f98: 00000213 li tp,0
+80002f9c: 00d00113 li sp,13
+80002fa0: 01200093 li ra,18
+80002fa4: 00000013 nop
+80002fa8: 00000013 nop
+80002fac: 0020af33 slt t5,ra,sp
+80002fb0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002fb4: 00200293 li t0,2
+80002fb8: fe5212e3 bne tp,t0,80002f9c <test_31+0x4>
+80002fbc: 00000e93 li t4,0
+80002fc0: 01f00193 li gp,31
+80002fc4: 0fdf1263 bne t5,t4,800030a8 <fail>
+
+80002fc8 <test_32>:
+80002fc8: 00000213 li tp,0
+80002fcc: 00d00113 li sp,13
+80002fd0: 00000013 nop
+80002fd4: 00700093 li ra,7
+80002fd8: 0020af33 slt t5,ra,sp
+80002fdc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002fe0: 00200293 li t0,2
+80002fe4: fe5214e3 bne tp,t0,80002fcc <test_32+0x4>
+80002fe8: 00100e93 li t4,1
+80002fec: 02000193 li gp,32
+80002ff0: 0bdf1c63 bne t5,t4,800030a8 <fail>
+
+80002ff4 <test_33>:
+80002ff4: 00000213 li tp,0
+80002ff8: 00d00113 li sp,13
+80002ffc: 00000013 nop
+80003000: 01300093 li ra,19
+80003004: 00000013 nop
+80003008: 0020af33 slt t5,ra,sp
+8000300c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80003010: 00200293 li t0,2
+80003014: fe5212e3 bne tp,t0,80002ff8 <test_33+0x4>
+80003018: 00000e93 li t4,0
+8000301c: 02100193 li gp,33
+80003020: 09df1463 bne t5,t4,800030a8 <fail>
+
+80003024 <test_34>:
+80003024: 00000213 li tp,0
+80003028: 00d00113 li sp,13
+8000302c: 00000013 nop
+80003030: 00000013 nop
+80003034: 00600093 li ra,6
+80003038: 0020af33 slt t5,ra,sp
+8000303c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80003040: 00200293 li t0,2
+80003044: fe5212e3 bne tp,t0,80003028 <test_34+0x4>
+80003048: 00100e93 li t4,1
+8000304c: 02200193 li gp,34
+80003050: 05df1c63 bne t5,t4,800030a8 <fail>
+
+80003054 <test_35>:
+80003054: fff00093 li ra,-1
+80003058: 00102133 sgtz sp,ra
+8000305c: 00000e93 li t4,0
+80003060: 02300193 li gp,35
+80003064: 05d11263 bne sp,t4,800030a8 <fail>
+
+80003068 <test_36>:
+80003068: fff00093 li ra,-1
+8000306c: 0000a133 sltz sp,ra
+80003070: 00100e93 li t4,1
+80003074: 02400193 li gp,36
+80003078: 03d11863 bne sp,t4,800030a8 <fail>
+
+8000307c <test_37>:
+8000307c: 000020b3 sltz ra,zero
+80003080: 00000e93 li t4,0
+80003084: 02500193 li gp,37
+80003088: 03d09063 bne ra,t4,800030a8 <fail>
+
+8000308c <test_38>:
+8000308c: 01000093 li ra,16
+80003090: 01e00113 li sp,30
+80003094: 0020a033 slt zero,ra,sp
+80003098: 00000e93 li t4,0
+8000309c: 02600193 li gp,38
+800030a0: 01d01463 bne zero,t4,800030a8 <fail>
+800030a4: 00301a63 bne zero,gp,800030b8 <pass>
+
+800030a8 <fail>:
+800030a8: 00119513 slli a0,gp,0x1
+800030ac: 00050063 beqz a0,800030ac <fail+0x4>
+800030b0: 00156513 ori a0,a0,1
+800030b4: 00000073 ecall
+
+800030b8 <pass>:
+800030b8: 00100513 li a0,1
+800030bc: 00000073 ecall
+800030c0: c0001073 unimp
diff --git a/test/riscv-tests/rv32ui-v-slt.elf b/test/riscv-tests/rv32ui-v-slt.elf
new file mode 100644
index 0000000..cd22dd9
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-slt.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-v-slti.dump b/test/riscv-tests/rv32ui-v-slti.dump
new file mode 100644
index 0000000..3115595
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-slti.dump
@@ -0,0 +1,1113 @@
+
+rv32ui-v-slti: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00007117 auipc sp,0x7
+8000001c: 35010113 addi sp,sp,848 # 80007368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00002317 auipc t1,0x2
+80002370: c9430313 addi t1,t1,-876 # 80004000 <begin_signature>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00004797 auipc a5,0x4
+8000238c: 06c78793 addi a5,a5,108 # 800063f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00004717 auipc a4,0x4
+800023a0: 05470713 addi a4,a4,84 # 800063f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00004697 auipc a3,0x4
+800023ac: 04f6a623 sw a5,76(a3) # 800063f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00004717 auipc a4,0x4
+800023dc: e2070713 addi a4,a4,-480 # 800061f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf9c08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00004797 auipc a5,0x4
+800024bc: f207ac23 sw zero,-200(a5) # 800063f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00001597 auipc a1,0x1
+800024cc: 9a858593 addi a1,a1,-1624 # 80002e70 <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00001597 auipc a1,0x1
+8000253c: 9c458593 addi a1,a1,-1596 # 80002efc <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00001597 auipc a1,0x1
+800025a8: 97058593 addi a1,a1,-1680 # 80002f14 <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00001597 auipc a1,0x1
+80002614: 8a458593 addi a1,a1,-1884 # 80002eb4 <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00001597 auipc a1,0x1
+8000274c: 89458593 addi a1,a1,-1900 # 80002fdc <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00000597 auipc a1,0x0
+800027c0: 7fc58593 addi a1,a1,2044 # 80002fb8 <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00004b17 auipc s6,0x4
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800061f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00001d17 auipc s10,0x1
+80002840: 7c4d0d13 addi s10,s10,1988 # 80004000 <begin_signature>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00004717 auipc a4,0x4
+8000285c: b8f72c23 sw a5,-1128(a4) # 800063f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00004717 auipc a4,0x4
+800028e8: b0c70713 addi a4,a4,-1268 # 800063f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00004717 auipc a4,0x4
+800028fc: aef72c23 sw a5,-1288(a4) # 800063f0 <freelist_tail>
+80002900: 00004717 auipc a4,0x4
+80002904: aef72a23 sw a5,-1292(a4) # 800063f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00000617 auipc a2,0x0
+80002914: 6f860613 addi a2,a2,1784 # 80003008 <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00000617 auipc a2,0x0
+80002980: 60860613 addi a2,a2,1544 # 80002f84 <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 58860613 addi a2,a2,1416 # 80002f50 <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00002797 auipc a5,0x2
+80002a4c: 5b878793 addi a5,a5,1464 # 80005000 <begin_signature+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00001697 auipc a3,0x1
+80002a60: 5af6a223 sw a5,1444(a3) # 80004000 <begin_signature>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00001717 auipc a4,0x1
+80002a6c: 59870713 addi a4,a4,1432 # 80004000 <begin_signature>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00002697 auipc a3,0x2
+80002a7c: 58f6a223 sw a5,1412(a3) # 80004ffc <begin_signature+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf9ccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc03797 auipc a5,0x7fc03
+80002aec: 51878793 addi a5,a5,1304 # ffc06000 <_end+0x7fbffc08>
+80002af0: 00004717 auipc a4,0x4
+80002af4: 90f72223 sw a5,-1788(a4) # 800063f4 <freelist_head>
+80002af8: 7fc03797 auipc a5,0x7fc03
+80002afc: 6f878793 addi a5,a5,1784 # ffc061f0 <_end+0x7fbffdf8>
+80002b00: 00004717 auipc a4,0x4
+80002b04: 8ef72823 sw a5,-1808(a4) # 800063f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00003717 auipc a4,0x3
+80002b10: 4f470713 addi a4,a4,1268 # 80006000 <freelist_nodes>
+80002b14: 00003317 auipc t1,0x3
+80002b18: 6e430313 addi t1,t1,1764 # 800061f8 <user_mapping>
+80002b1c: 00800793 li a5,8
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00003797 auipc a5,0x3
+80002b6c: 6807a623 sw zero,1676(a5) # 800061f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 0ff6d7b7 lui a5,0xff6d
+80002b9c: 00080637 lui a2,0x80
+80002ba0: d5778793 addi a5,a5,-681 # ff6cd57 <_start-0x700932a9>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: 00000093 li ra,0
+80002be4: 0000af13 slti t5,ra,0
+80002be8: 00000e93 li t4,0
+80002bec: 00200193 li gp,2
+80002bf0: 27df1263 bne t5,t4,80002e54 <fail>
+
+80002bf4 <test_3>:
+80002bf4: 00100093 li ra,1
+80002bf8: 0010af13 slti t5,ra,1
+80002bfc: 00000e93 li t4,0
+80002c00: 00300193 li gp,3
+80002c04: 25df1863 bne t5,t4,80002e54 <fail>
+
+80002c08 <test_4>:
+80002c08: 00300093 li ra,3
+80002c0c: 0070af13 slti t5,ra,7
+80002c10: 00100e93 li t4,1
+80002c14: 00400193 li gp,4
+80002c18: 23df1e63 bne t5,t4,80002e54 <fail>
+
+80002c1c <test_5>:
+80002c1c: 00700093 li ra,7
+80002c20: 0030af13 slti t5,ra,3
+80002c24: 00000e93 li t4,0
+80002c28: 00500193 li gp,5
+80002c2c: 23df1463 bne t5,t4,80002e54 <fail>
+
+80002c30 <test_6>:
+80002c30: 00000093 li ra,0
+80002c34: 8000af13 slti t5,ra,-2048
+80002c38: 00000e93 li t4,0
+80002c3c: 00600193 li gp,6
+80002c40: 21df1a63 bne t5,t4,80002e54 <fail>
+
+80002c44 <test_7>:
+80002c44: 800000b7 lui ra,0x80000
+80002c48: 0000af13 slti t5,ra,0
+80002c4c: 00100e93 li t4,1
+80002c50: 00700193 li gp,7
+80002c54: 21df1063 bne t5,t4,80002e54 <fail>
+
+80002c58 <test_8>:
+80002c58: 800000b7 lui ra,0x80000
+80002c5c: 8000af13 slti t5,ra,-2048
+80002c60: 00100e93 li t4,1
+80002c64: 00800193 li gp,8
+80002c68: 1fdf1663 bne t5,t4,80002e54 <fail>
+
+80002c6c <test_9>:
+80002c6c: 00000093 li ra,0
+80002c70: 7ff0af13 slti t5,ra,2047
+80002c74: 00100e93 li t4,1
+80002c78: 00900193 li gp,9
+80002c7c: 1ddf1c63 bne t5,t4,80002e54 <fail>
+
+80002c80 <test_10>:
+80002c80: 800000b7 lui ra,0x80000
+80002c84: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffff9c07>
+80002c88: 0000af13 slti t5,ra,0
+80002c8c: 00000e93 li t4,0
+80002c90: 00a00193 li gp,10
+80002c94: 1ddf1063 bne t5,t4,80002e54 <fail>
+
+80002c98 <test_11>:
+80002c98: 800000b7 lui ra,0x80000
+80002c9c: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffff9c07>
+80002ca0: 7ff0af13 slti t5,ra,2047
+80002ca4: 00000e93 li t4,0
+80002ca8: 00b00193 li gp,11
+80002cac: 1bdf1463 bne t5,t4,80002e54 <fail>
+
+80002cb0 <test_12>:
+80002cb0: 800000b7 lui ra,0x80000
+80002cb4: 7ff0af13 slti t5,ra,2047
+80002cb8: 00100e93 li t4,1
+80002cbc: 00c00193 li gp,12
+80002cc0: 19df1a63 bne t5,t4,80002e54 <fail>
+
+80002cc4 <test_13>:
+80002cc4: 800000b7 lui ra,0x80000
+80002cc8: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffff9c07>
+80002ccc: 8000af13 slti t5,ra,-2048
+80002cd0: 00000e93 li t4,0
+80002cd4: 00d00193 li gp,13
+80002cd8: 17df1e63 bne t5,t4,80002e54 <fail>
+
+80002cdc <test_14>:
+80002cdc: 00000093 li ra,0
+80002ce0: fff0af13 slti t5,ra,-1
+80002ce4: 00000e93 li t4,0
+80002ce8: 00e00193 li gp,14
+80002cec: 17df1463 bne t5,t4,80002e54 <fail>
+
+80002cf0 <test_15>:
+80002cf0: fff00093 li ra,-1
+80002cf4: 0010af13 slti t5,ra,1
+80002cf8: 00100e93 li t4,1
+80002cfc: 00f00193 li gp,15
+80002d00: 15df1a63 bne t5,t4,80002e54 <fail>
+
+80002d04 <test_16>:
+80002d04: fff00093 li ra,-1
+80002d08: fff0af13 slti t5,ra,-1
+80002d0c: 00000e93 li t4,0
+80002d10: 01000193 li gp,16
+80002d14: 15df1063 bne t5,t4,80002e54 <fail>
+
+80002d18 <test_17>:
+80002d18: 00b00093 li ra,11
+80002d1c: 00d0a093 slti ra,ra,13
+80002d20: 00100e93 li t4,1
+80002d24: 01100193 li gp,17
+80002d28: 13d09663 bne ra,t4,80002e54 <fail>
+
+80002d2c <test_18>:
+80002d2c: 00000213 li tp,0
+80002d30: 00f00093 li ra,15
+80002d34: 00a0af13 slti t5,ra,10
+80002d38: 000f0313 mv t1,t5
+80002d3c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d40: 00200293 li t0,2
+80002d44: fe5216e3 bne tp,t0,80002d30 <test_18+0x4>
+80002d48: 00000e93 li t4,0
+80002d4c: 01200193 li gp,18
+80002d50: 11d31263 bne t1,t4,80002e54 <fail>
+
+80002d54 <test_19>:
+80002d54: 00000213 li tp,0
+80002d58: 00a00093 li ra,10
+80002d5c: 0100af13 slti t5,ra,16
+80002d60: 00000013 nop
+80002d64: 000f0313 mv t1,t5
+80002d68: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d6c: 00200293 li t0,2
+80002d70: fe5214e3 bne tp,t0,80002d58 <test_19+0x4>
+80002d74: 00100e93 li t4,1
+80002d78: 01300193 li gp,19
+80002d7c: 0dd31c63 bne t1,t4,80002e54 <fail>
+
+80002d80 <test_20>:
+80002d80: 00000213 li tp,0
+80002d84: 01000093 li ra,16
+80002d88: 0090af13 slti t5,ra,9
+80002d8c: 00000013 nop
+80002d90: 00000013 nop
+80002d94: 000f0313 mv t1,t5
+80002d98: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d9c: 00200293 li t0,2
+80002da0: fe5212e3 bne tp,t0,80002d84 <test_20+0x4>
+80002da4: 00000e93 li t4,0
+80002da8: 01400193 li gp,20
+80002dac: 0bd31463 bne t1,t4,80002e54 <fail>
+
+80002db0 <test_21>:
+80002db0: 00000213 li tp,0
+80002db4: 00b00093 li ra,11
+80002db8: 00f0af13 slti t5,ra,15
+80002dbc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002dc0: 00200293 li t0,2
+80002dc4: fe5218e3 bne tp,t0,80002db4 <test_21+0x4>
+80002dc8: 00100e93 li t4,1
+80002dcc: 01500193 li gp,21
+80002dd0: 09df1263 bne t5,t4,80002e54 <fail>
+
+80002dd4 <test_22>:
+80002dd4: 00000213 li tp,0
+80002dd8: 01100093 li ra,17
+80002ddc: 00000013 nop
+80002de0: 0080af13 slti t5,ra,8
+80002de4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002de8: 00200293 li t0,2
+80002dec: fe5216e3 bne tp,t0,80002dd8 <test_22+0x4>
+80002df0: 00000e93 li t4,0
+80002df4: 01600193 li gp,22
+80002df8: 05df1e63 bne t5,t4,80002e54 <fail>
+
+80002dfc <test_23>:
+80002dfc: 00000213 li tp,0
+80002e00: 00c00093 li ra,12
+80002e04: 00000013 nop
+80002e08: 00000013 nop
+80002e0c: 00e0af13 slti t5,ra,14
+80002e10: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e14: 00200293 li t0,2
+80002e18: fe5214e3 bne tp,t0,80002e00 <test_23+0x4>
+80002e1c: 00100e93 li t4,1
+80002e20: 01700193 li gp,23
+80002e24: 03df1863 bne t5,t4,80002e54 <fail>
+
+80002e28 <test_24>:
+80002e28: fff02093 slti ra,zero,-1
+80002e2c: 00000e93 li t4,0
+80002e30: 01800193 li gp,24
+80002e34: 03d09063 bne ra,t4,80002e54 <fail>
+
+80002e38 <test_25>:
+80002e38: 00ff00b7 lui ra,0xff0
+80002e3c: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+80002e40: fff0a013 slti zero,ra,-1
+80002e44: 00000e93 li t4,0
+80002e48: 01900193 li gp,25
+80002e4c: 01d01463 bne zero,t4,80002e54 <fail>
+80002e50: 00301a63 bne zero,gp,80002e64 <pass>
+
+80002e54 <fail>:
+80002e54: 00119513 slli a0,gp,0x1
+80002e58: 00050063 beqz a0,80002e58 <fail+0x4>
+80002e5c: 00156513 ori a0,a0,1
+80002e60: 00000073 ecall
+
+80002e64 <pass>:
+80002e64: 00100513 li a0,1
+80002e68: 00000073 ecall
+80002e6c: c0001073 unimp
diff --git a/test/riscv-tests/rv32ui-v-slti.elf b/test/riscv-tests/rv32ui-v-slti.elf
new file mode 100644
index 0000000..c03c470
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-slti.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-v-sltiu.dump b/test/riscv-tests/rv32ui-v-sltiu.dump
new file mode 100644
index 0000000..64b39a6
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-sltiu.dump
@@ -0,0 +1,1113 @@
+
+rv32ui-v-sltiu: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00007117 auipc sp,0x7
+8000001c: 35010113 addi sp,sp,848 # 80007368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00002317 auipc t1,0x2
+80002370: c9430313 addi t1,t1,-876 # 80004000 <begin_signature>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00004797 auipc a5,0x4
+8000238c: 06c78793 addi a5,a5,108 # 800063f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00004717 auipc a4,0x4
+800023a0: 05470713 addi a4,a4,84 # 800063f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00004697 auipc a3,0x4
+800023ac: 04f6a623 sw a5,76(a3) # 800063f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00004717 auipc a4,0x4
+800023dc: e2070713 addi a4,a4,-480 # 800061f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf9c08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00004797 auipc a5,0x4
+800024bc: f207ac23 sw zero,-200(a5) # 800063f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00001597 auipc a1,0x1
+800024cc: 9a858593 addi a1,a1,-1624 # 80002e70 <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00001597 auipc a1,0x1
+8000253c: 9c458593 addi a1,a1,-1596 # 80002efc <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00001597 auipc a1,0x1
+800025a8: 97058593 addi a1,a1,-1680 # 80002f14 <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00001597 auipc a1,0x1
+80002614: 8a458593 addi a1,a1,-1884 # 80002eb4 <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00001597 auipc a1,0x1
+8000274c: 89458593 addi a1,a1,-1900 # 80002fdc <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00000597 auipc a1,0x0
+800027c0: 7fc58593 addi a1,a1,2044 # 80002fb8 <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00004b17 auipc s6,0x4
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800061f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00001d17 auipc s10,0x1
+80002840: 7c4d0d13 addi s10,s10,1988 # 80004000 <begin_signature>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00004717 auipc a4,0x4
+8000285c: b8f72c23 sw a5,-1128(a4) # 800063f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00004717 auipc a4,0x4
+800028e8: b0c70713 addi a4,a4,-1268 # 800063f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00004717 auipc a4,0x4
+800028fc: aef72c23 sw a5,-1288(a4) # 800063f0 <freelist_tail>
+80002900: 00004717 auipc a4,0x4
+80002904: aef72a23 sw a5,-1292(a4) # 800063f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00000617 auipc a2,0x0
+80002914: 6f860613 addi a2,a2,1784 # 80003008 <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00000617 auipc a2,0x0
+80002980: 60860613 addi a2,a2,1544 # 80002f84 <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 58860613 addi a2,a2,1416 # 80002f50 <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00002797 auipc a5,0x2
+80002a4c: 5b878793 addi a5,a5,1464 # 80005000 <begin_signature+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00001697 auipc a3,0x1
+80002a60: 5af6a223 sw a5,1444(a3) # 80004000 <begin_signature>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00001717 auipc a4,0x1
+80002a6c: 59870713 addi a4,a4,1432 # 80004000 <begin_signature>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00002697 auipc a3,0x2
+80002a7c: 58f6a223 sw a5,1412(a3) # 80004ffc <begin_signature+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf9ccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc03797 auipc a5,0x7fc03
+80002aec: 51878793 addi a5,a5,1304 # ffc06000 <_end+0x7fbffc08>
+80002af0: 00004717 auipc a4,0x4
+80002af4: 90f72223 sw a5,-1788(a4) # 800063f4 <freelist_head>
+80002af8: 7fc03797 auipc a5,0x7fc03
+80002afc: 6f878793 addi a5,a5,1784 # ffc061f0 <_end+0x7fbffdf8>
+80002b00: 00004717 auipc a4,0x4
+80002b04: 8ef72823 sw a5,-1808(a4) # 800063f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00003717 auipc a4,0x3
+80002b10: 4f470713 addi a4,a4,1268 # 80006000 <freelist_nodes>
+80002b14: 00003317 auipc t1,0x3
+80002b18: 6e430313 addi t1,t1,1764 # 800061f8 <user_mapping>
+80002b1c: 01300793 li a5,19
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00003797 auipc a5,0x3
+80002b6c: 6807a623 sw zero,1676(a5) # 800061f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 0603e7b7 lui a5,0x603e
+80002b9c: 00080637 lui a2,0x80
+80002ba0: 73078793 addi a5,a5,1840 # 603e730 <_start-0x79fc18d0>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: 00000093 li ra,0
+80002be4: 0000bf13 sltiu t5,ra,0
+80002be8: 00000e93 li t4,0
+80002bec: 00200193 li gp,2
+80002bf0: 27df1263 bne t5,t4,80002e54 <fail>
+
+80002bf4 <test_3>:
+80002bf4: 00100093 li ra,1
+80002bf8: 0010bf13 seqz t5,ra
+80002bfc: 00000e93 li t4,0
+80002c00: 00300193 li gp,3
+80002c04: 25df1863 bne t5,t4,80002e54 <fail>
+
+80002c08 <test_4>:
+80002c08: 00300093 li ra,3
+80002c0c: 0070bf13 sltiu t5,ra,7
+80002c10: 00100e93 li t4,1
+80002c14: 00400193 li gp,4
+80002c18: 23df1e63 bne t5,t4,80002e54 <fail>
+
+80002c1c <test_5>:
+80002c1c: 00700093 li ra,7
+80002c20: 0030bf13 sltiu t5,ra,3
+80002c24: 00000e93 li t4,0
+80002c28: 00500193 li gp,5
+80002c2c: 23df1463 bne t5,t4,80002e54 <fail>
+
+80002c30 <test_6>:
+80002c30: 00000093 li ra,0
+80002c34: 8000bf13 sltiu t5,ra,-2048
+80002c38: 00100e93 li t4,1
+80002c3c: 00600193 li gp,6
+80002c40: 21df1a63 bne t5,t4,80002e54 <fail>
+
+80002c44 <test_7>:
+80002c44: 800000b7 lui ra,0x80000
+80002c48: 0000bf13 sltiu t5,ra,0
+80002c4c: 00000e93 li t4,0
+80002c50: 00700193 li gp,7
+80002c54: 21df1063 bne t5,t4,80002e54 <fail>
+
+80002c58 <test_8>:
+80002c58: 800000b7 lui ra,0x80000
+80002c5c: 8000bf13 sltiu t5,ra,-2048
+80002c60: 00100e93 li t4,1
+80002c64: 00800193 li gp,8
+80002c68: 1fdf1663 bne t5,t4,80002e54 <fail>
+
+80002c6c <test_9>:
+80002c6c: 00000093 li ra,0
+80002c70: 7ff0bf13 sltiu t5,ra,2047
+80002c74: 00100e93 li t4,1
+80002c78: 00900193 li gp,9
+80002c7c: 1ddf1c63 bne t5,t4,80002e54 <fail>
+
+80002c80 <test_10>:
+80002c80: 800000b7 lui ra,0x80000
+80002c84: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffff9c07>
+80002c88: 0000bf13 sltiu t5,ra,0
+80002c8c: 00000e93 li t4,0
+80002c90: 00a00193 li gp,10
+80002c94: 1ddf1063 bne t5,t4,80002e54 <fail>
+
+80002c98 <test_11>:
+80002c98: 800000b7 lui ra,0x80000
+80002c9c: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffff9c07>
+80002ca0: 7ff0bf13 sltiu t5,ra,2047
+80002ca4: 00000e93 li t4,0
+80002ca8: 00b00193 li gp,11
+80002cac: 1bdf1463 bne t5,t4,80002e54 <fail>
+
+80002cb0 <test_12>:
+80002cb0: 800000b7 lui ra,0x80000
+80002cb4: 7ff0bf13 sltiu t5,ra,2047
+80002cb8: 00000e93 li t4,0
+80002cbc: 00c00193 li gp,12
+80002cc0: 19df1a63 bne t5,t4,80002e54 <fail>
+
+80002cc4 <test_13>:
+80002cc4: 800000b7 lui ra,0x80000
+80002cc8: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffff9c07>
+80002ccc: 8000bf13 sltiu t5,ra,-2048
+80002cd0: 00100e93 li t4,1
+80002cd4: 00d00193 li gp,13
+80002cd8: 17df1e63 bne t5,t4,80002e54 <fail>
+
+80002cdc <test_14>:
+80002cdc: 00000093 li ra,0
+80002ce0: fff0bf13 sltiu t5,ra,-1
+80002ce4: 00100e93 li t4,1
+80002ce8: 00e00193 li gp,14
+80002cec: 17df1463 bne t5,t4,80002e54 <fail>
+
+80002cf0 <test_15>:
+80002cf0: fff00093 li ra,-1
+80002cf4: 0010bf13 seqz t5,ra
+80002cf8: 00000e93 li t4,0
+80002cfc: 00f00193 li gp,15
+80002d00: 15df1a63 bne t5,t4,80002e54 <fail>
+
+80002d04 <test_16>:
+80002d04: fff00093 li ra,-1
+80002d08: fff0bf13 sltiu t5,ra,-1
+80002d0c: 00000e93 li t4,0
+80002d10: 01000193 li gp,16
+80002d14: 15df1063 bne t5,t4,80002e54 <fail>
+
+80002d18 <test_17>:
+80002d18: 00b00093 li ra,11
+80002d1c: 00d0b093 sltiu ra,ra,13
+80002d20: 00100e93 li t4,1
+80002d24: 01100193 li gp,17
+80002d28: 13d09663 bne ra,t4,80002e54 <fail>
+
+80002d2c <test_18>:
+80002d2c: 00000213 li tp,0
+80002d30: 00f00093 li ra,15
+80002d34: 00a0bf13 sltiu t5,ra,10
+80002d38: 000f0313 mv t1,t5
+80002d3c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d40: 00200293 li t0,2
+80002d44: fe5216e3 bne tp,t0,80002d30 <test_18+0x4>
+80002d48: 00000e93 li t4,0
+80002d4c: 01200193 li gp,18
+80002d50: 11d31263 bne t1,t4,80002e54 <fail>
+
+80002d54 <test_19>:
+80002d54: 00000213 li tp,0
+80002d58: 00a00093 li ra,10
+80002d5c: 0100bf13 sltiu t5,ra,16
+80002d60: 00000013 nop
+80002d64: 000f0313 mv t1,t5
+80002d68: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d6c: 00200293 li t0,2
+80002d70: fe5214e3 bne tp,t0,80002d58 <test_19+0x4>
+80002d74: 00100e93 li t4,1
+80002d78: 01300193 li gp,19
+80002d7c: 0dd31c63 bne t1,t4,80002e54 <fail>
+
+80002d80 <test_20>:
+80002d80: 00000213 li tp,0
+80002d84: 01000093 li ra,16
+80002d88: 0090bf13 sltiu t5,ra,9
+80002d8c: 00000013 nop
+80002d90: 00000013 nop
+80002d94: 000f0313 mv t1,t5
+80002d98: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d9c: 00200293 li t0,2
+80002da0: fe5212e3 bne tp,t0,80002d84 <test_20+0x4>
+80002da4: 00000e93 li t4,0
+80002da8: 01400193 li gp,20
+80002dac: 0bd31463 bne t1,t4,80002e54 <fail>
+
+80002db0 <test_21>:
+80002db0: 00000213 li tp,0
+80002db4: 00b00093 li ra,11
+80002db8: 00f0bf13 sltiu t5,ra,15
+80002dbc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002dc0: 00200293 li t0,2
+80002dc4: fe5218e3 bne tp,t0,80002db4 <test_21+0x4>
+80002dc8: 00100e93 li t4,1
+80002dcc: 01500193 li gp,21
+80002dd0: 09df1263 bne t5,t4,80002e54 <fail>
+
+80002dd4 <test_22>:
+80002dd4: 00000213 li tp,0
+80002dd8: 01100093 li ra,17
+80002ddc: 00000013 nop
+80002de0: 0080bf13 sltiu t5,ra,8
+80002de4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002de8: 00200293 li t0,2
+80002dec: fe5216e3 bne tp,t0,80002dd8 <test_22+0x4>
+80002df0: 00000e93 li t4,0
+80002df4: 01600193 li gp,22
+80002df8: 05df1e63 bne t5,t4,80002e54 <fail>
+
+80002dfc <test_23>:
+80002dfc: 00000213 li tp,0
+80002e00: 00c00093 li ra,12
+80002e04: 00000013 nop
+80002e08: 00000013 nop
+80002e0c: 00e0bf13 sltiu t5,ra,14
+80002e10: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e14: 00200293 li t0,2
+80002e18: fe5214e3 bne tp,t0,80002e00 <test_23+0x4>
+80002e1c: 00100e93 li t4,1
+80002e20: 01700193 li gp,23
+80002e24: 03df1863 bne t5,t4,80002e54 <fail>
+
+80002e28 <test_24>:
+80002e28: fff03093 sltiu ra,zero,-1
+80002e2c: 00100e93 li t4,1
+80002e30: 01800193 li gp,24
+80002e34: 03d09063 bne ra,t4,80002e54 <fail>
+
+80002e38 <test_25>:
+80002e38: 00ff00b7 lui ra,0xff0
+80002e3c: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+80002e40: fff0b013 sltiu zero,ra,-1
+80002e44: 00000e93 li t4,0
+80002e48: 01900193 li gp,25
+80002e4c: 01d01463 bne zero,t4,80002e54 <fail>
+80002e50: 00301a63 bne zero,gp,80002e64 <pass>
+
+80002e54 <fail>:
+80002e54: 00119513 slli a0,gp,0x1
+80002e58: 00050063 beqz a0,80002e58 <fail+0x4>
+80002e5c: 00156513 ori a0,a0,1
+80002e60: 00000073 ecall
+
+80002e64 <pass>:
+80002e64: 00100513 li a0,1
+80002e68: 00000073 ecall
+80002e6c: c0001073 unimp
diff --git a/test/riscv-tests/rv32ui-v-sltiu.elf b/test/riscv-tests/rv32ui-v-sltiu.elf
new file mode 100644
index 0000000..e3d004d
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-sltiu.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-v-sltu.dump b/test/riscv-tests/rv32ui-v-sltu.dump
new file mode 100644
index 0000000..6b6fd80
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-sltu.dump
@@ -0,0 +1,1288 @@
+
+rv32ui-v-sltu: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00007117 auipc sp,0x7
+8000001c: 35010113 addi sp,sp,848 # 80007368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00002317 auipc t1,0x2
+80002370: c9430313 addi t1,t1,-876 # 80004000 <begin_signature>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00004797 auipc a5,0x4
+8000238c: 06c78793 addi a5,a5,108 # 800063f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00004717 auipc a4,0x4
+800023a0: 05470713 addi a4,a4,84 # 800063f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00004697 auipc a3,0x4
+800023ac: 04f6a623 sw a5,76(a3) # 800063f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00004717 auipc a4,0x4
+800023dc: e2070713 addi a4,a4,-480 # 800061f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf9c08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00004797 auipc a5,0x4
+800024bc: f207ac23 sw zero,-200(a5) # 800063f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00001597 auipc a1,0x1
+800024cc: bfc58593 addi a1,a1,-1028 # 800030c4 <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00001597 auipc a1,0x1
+8000253c: c1858593 addi a1,a1,-1000 # 80003150 <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00001597 auipc a1,0x1
+800025a8: bc458593 addi a1,a1,-1084 # 80003168 <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00001597 auipc a1,0x1
+80002614: af858593 addi a1,a1,-1288 # 80003108 <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00001597 auipc a1,0x1
+8000274c: ae858593 addi a1,a1,-1304 # 80003230 <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00001597 auipc a1,0x1
+800027c0: a5058593 addi a1,a1,-1456 # 8000320c <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00004b17 auipc s6,0x4
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800061f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00001d17 auipc s10,0x1
+80002840: 7c4d0d13 addi s10,s10,1988 # 80004000 <begin_signature>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00004717 auipc a4,0x4
+8000285c: b8f72c23 sw a5,-1128(a4) # 800063f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00004717 auipc a4,0x4
+800028e8: b0c70713 addi a4,a4,-1268 # 800063f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00004717 auipc a4,0x4
+800028fc: aef72c23 sw a5,-1288(a4) # 800063f0 <freelist_tail>
+80002900: 00004717 auipc a4,0x4
+80002904: aef72a23 sw a5,-1292(a4) # 800063f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00001617 auipc a2,0x1
+80002914: 94c60613 addi a2,a2,-1716 # 8000325c <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00001617 auipc a2,0x1
+80002980: 85c60613 addi a2,a2,-1956 # 800031d8 <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 7dc60613 addi a2,a2,2012 # 800031a4 <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00002797 auipc a5,0x2
+80002a4c: 5b878793 addi a5,a5,1464 # 80005000 <begin_signature+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00001697 auipc a3,0x1
+80002a60: 5af6a223 sw a5,1444(a3) # 80004000 <begin_signature>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00001717 auipc a4,0x1
+80002a6c: 59870713 addi a4,a4,1432 # 80004000 <begin_signature>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00002697 auipc a3,0x2
+80002a7c: 58f6a223 sw a5,1412(a3) # 80004ffc <begin_signature+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf9ccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc03797 auipc a5,0x7fc03
+80002aec: 51878793 addi a5,a5,1304 # ffc06000 <_end+0x7fbffc08>
+80002af0: 00004717 auipc a4,0x4
+80002af4: 90f72223 sw a5,-1788(a4) # 800063f4 <freelist_head>
+80002af8: 7fc03797 auipc a5,0x7fc03
+80002afc: 6f878793 addi a5,a5,1784 # ffc061f0 <_end+0x7fbffdf8>
+80002b00: 00004717 auipc a4,0x4
+80002b04: 8ef72823 sw a5,-1808(a4) # 800063f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00003717 auipc a4,0x3
+80002b10: 4f470713 addi a4,a4,1268 # 80006000 <freelist_nodes>
+80002b14: 00003317 auipc t1,0x3
+80002b18: 6e430313 addi t1,t1,1764 # 800061f8 <user_mapping>
+80002b1c: 00d00793 li a5,13
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00003797 auipc a5,0x3
+80002b6c: 6807a623 sw zero,1676(a5) # 800061f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 016d57b7 lui a5,0x16d5
+80002b9c: 00080637 lui a2,0x80
+80002ba0: 09878793 addi a5,a5,152 # 16d5098 <_start-0x7e92af68>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: 00000093 li ra,0
+80002be4: 00000113 li sp,0
+80002be8: 0020bf33 sltu t5,ra,sp
+80002bec: 00000e93 li t4,0
+80002bf0: 00200193 li gp,2
+80002bf4: 4bdf1a63 bne t5,t4,800030a8 <fail>
+
+80002bf8 <test_3>:
+80002bf8: 00100093 li ra,1
+80002bfc: 00100113 li sp,1
+80002c00: 0020bf33 sltu t5,ra,sp
+80002c04: 00000e93 li t4,0
+80002c08: 00300193 li gp,3
+80002c0c: 49df1e63 bne t5,t4,800030a8 <fail>
+
+80002c10 <test_4>:
+80002c10: 00300093 li ra,3
+80002c14: 00700113 li sp,7
+80002c18: 0020bf33 sltu t5,ra,sp
+80002c1c: 00100e93 li t4,1
+80002c20: 00400193 li gp,4
+80002c24: 49df1263 bne t5,t4,800030a8 <fail>
+
+80002c28 <test_5>:
+80002c28: 00700093 li ra,7
+80002c2c: 00300113 li sp,3
+80002c30: 0020bf33 sltu t5,ra,sp
+80002c34: 00000e93 li t4,0
+80002c38: 00500193 li gp,5
+80002c3c: 47df1663 bne t5,t4,800030a8 <fail>
+
+80002c40 <test_6>:
+80002c40: 00000093 li ra,0
+80002c44: ffff8137 lui sp,0xffff8
+80002c48: 0020bf33 sltu t5,ra,sp
+80002c4c: 00100e93 li t4,1
+80002c50: 00600193 li gp,6
+80002c54: 45df1a63 bne t5,t4,800030a8 <fail>
+
+80002c58 <test_7>:
+80002c58: 800000b7 lui ra,0x80000
+80002c5c: 00000113 li sp,0
+80002c60: 0020bf33 sltu t5,ra,sp
+80002c64: 00000e93 li t4,0
+80002c68: 00700193 li gp,7
+80002c6c: 43df1e63 bne t5,t4,800030a8 <fail>
+
+80002c70 <test_8>:
+80002c70: 800000b7 lui ra,0x80000
+80002c74: ffff8137 lui sp,0xffff8
+80002c78: 0020bf33 sltu t5,ra,sp
+80002c7c: 00100e93 li t4,1
+80002c80: 00800193 li gp,8
+80002c84: 43df1263 bne t5,t4,800030a8 <fail>
+
+80002c88 <test_9>:
+80002c88: 00000093 li ra,0
+80002c8c: 00008137 lui sp,0x8
+80002c90: fff10113 addi sp,sp,-1 # 7fff <_start-0x7fff8001>
+80002c94: 0020bf33 sltu t5,ra,sp
+80002c98: 00100e93 li t4,1
+80002c9c: 00900193 li gp,9
+80002ca0: 41df1463 bne t5,t4,800030a8 <fail>
+
+80002ca4 <test_10>:
+80002ca4: 800000b7 lui ra,0x80000
+80002ca8: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffff9c07>
+80002cac: 00000113 li sp,0
+80002cb0: 0020bf33 sltu t5,ra,sp
+80002cb4: 00000e93 li t4,0
+80002cb8: 00a00193 li gp,10
+80002cbc: 3fdf1663 bne t5,t4,800030a8 <fail>
+
+80002cc0 <test_11>:
+80002cc0: 800000b7 lui ra,0x80000
+80002cc4: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffff9c07>
+80002cc8: 00008137 lui sp,0x8
+80002ccc: fff10113 addi sp,sp,-1 # 7fff <_start-0x7fff8001>
+80002cd0: 0020bf33 sltu t5,ra,sp
+80002cd4: 00000e93 li t4,0
+80002cd8: 00b00193 li gp,11
+80002cdc: 3ddf1663 bne t5,t4,800030a8 <fail>
+
+80002ce0 <test_12>:
+80002ce0: 800000b7 lui ra,0x80000
+80002ce4: 00008137 lui sp,0x8
+80002ce8: fff10113 addi sp,sp,-1 # 7fff <_start-0x7fff8001>
+80002cec: 0020bf33 sltu t5,ra,sp
+80002cf0: 00000e93 li t4,0
+80002cf4: 00c00193 li gp,12
+80002cf8: 3bdf1863 bne t5,t4,800030a8 <fail>
+
+80002cfc <test_13>:
+80002cfc: 800000b7 lui ra,0x80000
+80002d00: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffff9c07>
+80002d04: ffff8137 lui sp,0xffff8
+80002d08: 0020bf33 sltu t5,ra,sp
+80002d0c: 00100e93 li t4,1
+80002d10: 00d00193 li gp,13
+80002d14: 39df1a63 bne t5,t4,800030a8 <fail>
+
+80002d18 <test_14>:
+80002d18: 00000093 li ra,0
+80002d1c: fff00113 li sp,-1
+80002d20: 0020bf33 sltu t5,ra,sp
+80002d24: 00100e93 li t4,1
+80002d28: 00e00193 li gp,14
+80002d2c: 37df1e63 bne t5,t4,800030a8 <fail>
+
+80002d30 <test_15>:
+80002d30: fff00093 li ra,-1
+80002d34: 00100113 li sp,1
+80002d38: 0020bf33 sltu t5,ra,sp
+80002d3c: 00000e93 li t4,0
+80002d40: 00f00193 li gp,15
+80002d44: 37df1263 bne t5,t4,800030a8 <fail>
+
+80002d48 <test_16>:
+80002d48: fff00093 li ra,-1
+80002d4c: fff00113 li sp,-1
+80002d50: 0020bf33 sltu t5,ra,sp
+80002d54: 00000e93 li t4,0
+80002d58: 01000193 li gp,16
+80002d5c: 35df1663 bne t5,t4,800030a8 <fail>
+
+80002d60 <test_17>:
+80002d60: 00e00093 li ra,14
+80002d64: 00d00113 li sp,13
+80002d68: 0020b0b3 sltu ra,ra,sp
+80002d6c: 00000e93 li t4,0
+80002d70: 01100193 li gp,17
+80002d74: 33d09a63 bne ra,t4,800030a8 <fail>
+
+80002d78 <test_18>:
+80002d78: 00b00093 li ra,11
+80002d7c: 00d00113 li sp,13
+80002d80: 0020b133 sltu sp,ra,sp
+80002d84: 00100e93 li t4,1
+80002d88: 01200193 li gp,18
+80002d8c: 31d11e63 bne sp,t4,800030a8 <fail>
+
+80002d90 <test_19>:
+80002d90: 00d00093 li ra,13
+80002d94: 0010b0b3 sltu ra,ra,ra
+80002d98: 00000e93 li t4,0
+80002d9c: 01300193 li gp,19
+80002da0: 31d09463 bne ra,t4,800030a8 <fail>
+
+80002da4 <test_20>:
+80002da4: 00000213 li tp,0
+80002da8: 00b00093 li ra,11
+80002dac: 00d00113 li sp,13
+80002db0: 0020bf33 sltu t5,ra,sp
+80002db4: 000f0313 mv t1,t5
+80002db8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002dbc: 00200293 li t0,2
+80002dc0: fe5214e3 bne tp,t0,80002da8 <test_20+0x4>
+80002dc4: 00100e93 li t4,1
+80002dc8: 01400193 li gp,20
+80002dcc: 2dd31e63 bne t1,t4,800030a8 <fail>
+
+80002dd0 <test_21>:
+80002dd0: 00000213 li tp,0
+80002dd4: 00e00093 li ra,14
+80002dd8: 00d00113 li sp,13
+80002ddc: 0020bf33 sltu t5,ra,sp
+80002de0: 00000013 nop
+80002de4: 000f0313 mv t1,t5
+80002de8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002dec: 00200293 li t0,2
+80002df0: fe5212e3 bne tp,t0,80002dd4 <test_21+0x4>
+80002df4: 00000e93 li t4,0
+80002df8: 01500193 li gp,21
+80002dfc: 2bd31663 bne t1,t4,800030a8 <fail>
+
+80002e00 <test_22>:
+80002e00: 00000213 li tp,0
+80002e04: 00c00093 li ra,12
+80002e08: 00d00113 li sp,13
+80002e0c: 0020bf33 sltu t5,ra,sp
+80002e10: 00000013 nop
+80002e14: 00000013 nop
+80002e18: 000f0313 mv t1,t5
+80002e1c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e20: 00200293 li t0,2
+80002e24: fe5210e3 bne tp,t0,80002e04 <test_22+0x4>
+80002e28: 00100e93 li t4,1
+80002e2c: 01600193 li gp,22
+80002e30: 27d31c63 bne t1,t4,800030a8 <fail>
+
+80002e34 <test_23>:
+80002e34: 00000213 li tp,0
+80002e38: 00e00093 li ra,14
+80002e3c: 00d00113 li sp,13
+80002e40: 0020bf33 sltu t5,ra,sp
+80002e44: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e48: 00200293 li t0,2
+80002e4c: fe5216e3 bne tp,t0,80002e38 <test_23+0x4>
+80002e50: 00000e93 li t4,0
+80002e54: 01700193 li gp,23
+80002e58: 25df1863 bne t5,t4,800030a8 <fail>
+
+80002e5c <test_24>:
+80002e5c: 00000213 li tp,0
+80002e60: 00b00093 li ra,11
+80002e64: 00d00113 li sp,13
+80002e68: 00000013 nop
+80002e6c: 0020bf33 sltu t5,ra,sp
+80002e70: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e74: 00200293 li t0,2
+80002e78: fe5214e3 bne tp,t0,80002e60 <test_24+0x4>
+80002e7c: 00100e93 li t4,1
+80002e80: 01800193 li gp,24
+80002e84: 23df1263 bne t5,t4,800030a8 <fail>
+
+80002e88 <test_25>:
+80002e88: 00000213 li tp,0
+80002e8c: 00f00093 li ra,15
+80002e90: 00d00113 li sp,13
+80002e94: 00000013 nop
+80002e98: 00000013 nop
+80002e9c: 0020bf33 sltu t5,ra,sp
+80002ea0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002ea4: 00200293 li t0,2
+80002ea8: fe5212e3 bne tp,t0,80002e8c <test_25+0x4>
+80002eac: 00000e93 li t4,0
+80002eb0: 01900193 li gp,25
+80002eb4: 1fdf1a63 bne t5,t4,800030a8 <fail>
+
+80002eb8 <test_26>:
+80002eb8: 00000213 li tp,0
+80002ebc: 00a00093 li ra,10
+80002ec0: 00000013 nop
+80002ec4: 00d00113 li sp,13
+80002ec8: 0020bf33 sltu t5,ra,sp
+80002ecc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002ed0: 00200293 li t0,2
+80002ed4: fe5214e3 bne tp,t0,80002ebc <test_26+0x4>
+80002ed8: 00100e93 li t4,1
+80002edc: 01a00193 li gp,26
+80002ee0: 1ddf1463 bne t5,t4,800030a8 <fail>
+
+80002ee4 <test_27>:
+80002ee4: 00000213 li tp,0
+80002ee8: 01000093 li ra,16
+80002eec: 00000013 nop
+80002ef0: 00d00113 li sp,13
+80002ef4: 00000013 nop
+80002ef8: 0020bf33 sltu t5,ra,sp
+80002efc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002f00: 00200293 li t0,2
+80002f04: fe5212e3 bne tp,t0,80002ee8 <test_27+0x4>
+80002f08: 00000e93 li t4,0
+80002f0c: 01b00193 li gp,27
+80002f10: 19df1c63 bne t5,t4,800030a8 <fail>
+
+80002f14 <test_28>:
+80002f14: 00000213 li tp,0
+80002f18: 00900093 li ra,9
+80002f1c: 00000013 nop
+80002f20: 00000013 nop
+80002f24: 00d00113 li sp,13
+80002f28: 0020bf33 sltu t5,ra,sp
+80002f2c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002f30: 00200293 li t0,2
+80002f34: fe5212e3 bne tp,t0,80002f18 <test_28+0x4>
+80002f38: 00100e93 li t4,1
+80002f3c: 01c00193 li gp,28
+80002f40: 17df1463 bne t5,t4,800030a8 <fail>
+
+80002f44 <test_29>:
+80002f44: 00000213 li tp,0
+80002f48: 00d00113 li sp,13
+80002f4c: 01100093 li ra,17
+80002f50: 0020bf33 sltu t5,ra,sp
+80002f54: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002f58: 00200293 li t0,2
+80002f5c: fe5216e3 bne tp,t0,80002f48 <test_29+0x4>
+80002f60: 00000e93 li t4,0
+80002f64: 01d00193 li gp,29
+80002f68: 15df1063 bne t5,t4,800030a8 <fail>
+
+80002f6c <test_30>:
+80002f6c: 00000213 li tp,0
+80002f70: 00d00113 li sp,13
+80002f74: 00800093 li ra,8
+80002f78: 00000013 nop
+80002f7c: 0020bf33 sltu t5,ra,sp
+80002f80: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002f84: 00200293 li t0,2
+80002f88: fe5214e3 bne tp,t0,80002f70 <test_30+0x4>
+80002f8c: 00100e93 li t4,1
+80002f90: 01e00193 li gp,30
+80002f94: 11df1a63 bne t5,t4,800030a8 <fail>
+
+80002f98 <test_31>:
+80002f98: 00000213 li tp,0
+80002f9c: 00d00113 li sp,13
+80002fa0: 01200093 li ra,18
+80002fa4: 00000013 nop
+80002fa8: 00000013 nop
+80002fac: 0020bf33 sltu t5,ra,sp
+80002fb0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002fb4: 00200293 li t0,2
+80002fb8: fe5212e3 bne tp,t0,80002f9c <test_31+0x4>
+80002fbc: 00000e93 li t4,0
+80002fc0: 01f00193 li gp,31
+80002fc4: 0fdf1263 bne t5,t4,800030a8 <fail>
+
+80002fc8 <test_32>:
+80002fc8: 00000213 li tp,0
+80002fcc: 00d00113 li sp,13
+80002fd0: 00000013 nop
+80002fd4: 00700093 li ra,7
+80002fd8: 0020bf33 sltu t5,ra,sp
+80002fdc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002fe0: 00200293 li t0,2
+80002fe4: fe5214e3 bne tp,t0,80002fcc <test_32+0x4>
+80002fe8: 00100e93 li t4,1
+80002fec: 02000193 li gp,32
+80002ff0: 0bdf1c63 bne t5,t4,800030a8 <fail>
+
+80002ff4 <test_33>:
+80002ff4: 00000213 li tp,0
+80002ff8: 00d00113 li sp,13
+80002ffc: 00000013 nop
+80003000: 01300093 li ra,19
+80003004: 00000013 nop
+80003008: 0020bf33 sltu t5,ra,sp
+8000300c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80003010: 00200293 li t0,2
+80003014: fe5212e3 bne tp,t0,80002ff8 <test_33+0x4>
+80003018: 00000e93 li t4,0
+8000301c: 02100193 li gp,33
+80003020: 09df1463 bne t5,t4,800030a8 <fail>
+
+80003024 <test_34>:
+80003024: 00000213 li tp,0
+80003028: 00d00113 li sp,13
+8000302c: 00000013 nop
+80003030: 00000013 nop
+80003034: 00600093 li ra,6
+80003038: 0020bf33 sltu t5,ra,sp
+8000303c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80003040: 00200293 li t0,2
+80003044: fe5212e3 bne tp,t0,80003028 <test_34+0x4>
+80003048: 00100e93 li t4,1
+8000304c: 02200193 li gp,34
+80003050: 05df1c63 bne t5,t4,800030a8 <fail>
+
+80003054 <test_35>:
+80003054: fff00093 li ra,-1
+80003058: 00103133 snez sp,ra
+8000305c: 00100e93 li t4,1
+80003060: 02300193 li gp,35
+80003064: 05d11263 bne sp,t4,800030a8 <fail>
+
+80003068 <test_36>:
+80003068: fff00093 li ra,-1
+8000306c: 0000b133 sltu sp,ra,zero
+80003070: 00000e93 li t4,0
+80003074: 02400193 li gp,36
+80003078: 03d11863 bne sp,t4,800030a8 <fail>
+
+8000307c <test_37>:
+8000307c: 000030b3 snez ra,zero
+80003080: 00000e93 li t4,0
+80003084: 02500193 li gp,37
+80003088: 03d09063 bne ra,t4,800030a8 <fail>
+
+8000308c <test_38>:
+8000308c: 01000093 li ra,16
+80003090: 01e00113 li sp,30
+80003094: 0020b033 sltu zero,ra,sp
+80003098: 00000e93 li t4,0
+8000309c: 02600193 li gp,38
+800030a0: 01d01463 bne zero,t4,800030a8 <fail>
+800030a4: 00301a63 bne zero,gp,800030b8 <pass>
+
+800030a8 <fail>:
+800030a8: 00119513 slli a0,gp,0x1
+800030ac: 00050063 beqz a0,800030ac <fail+0x4>
+800030b0: 00156513 ori a0,a0,1
+800030b4: 00000073 ecall
+
+800030b8 <pass>:
+800030b8: 00100513 li a0,1
+800030bc: 00000073 ecall
+800030c0: c0001073 unimp
diff --git a/test/riscv-tests/rv32ui-v-sltu.elf b/test/riscv-tests/rv32ui-v-sltu.elf
new file mode 100644
index 0000000..77c8e7d
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-sltu.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-v-sra.dump b/test/riscv-tests/rv32ui-v-sra.dump
new file mode 100644
index 0000000..62f72de
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-sra.dump
@@ -0,0 +1,1351 @@
+
+rv32ui-v-sra: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00007117 auipc sp,0x7
+8000001c: 35010113 addi sp,sp,848 # 80007368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00002317 auipc t1,0x2
+80002370: c9430313 addi t1,t1,-876 # 80004000 <begin_signature>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00004797 auipc a5,0x4
+8000238c: 06c78793 addi a5,a5,108 # 800063f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00004717 auipc a4,0x4
+800023a0: 05470713 addi a4,a4,84 # 800063f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00004697 auipc a3,0x4
+800023ac: 04f6a623 sw a5,76(a3) # 800063f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00004717 auipc a4,0x4
+800023dc: e2070713 addi a4,a4,-480 # 800061f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf9c08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00004797 auipc a5,0x4
+800024bc: f207ac23 sw zero,-200(a5) # 800063f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00001597 auipc a1,0x1
+800024cc: cd058593 addi a1,a1,-816 # 80003198 <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00001597 auipc a1,0x1
+8000253c: cec58593 addi a1,a1,-788 # 80003224 <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00001597 auipc a1,0x1
+800025a8: c9858593 addi a1,a1,-872 # 8000323c <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00001597 auipc a1,0x1
+80002614: bcc58593 addi a1,a1,-1076 # 800031dc <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00001597 auipc a1,0x1
+8000274c: bbc58593 addi a1,a1,-1092 # 80003304 <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00001597 auipc a1,0x1
+800027c0: b2458593 addi a1,a1,-1244 # 800032e0 <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00004b17 auipc s6,0x4
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800061f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00001d17 auipc s10,0x1
+80002840: 7c4d0d13 addi s10,s10,1988 # 80004000 <begin_signature>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00004717 auipc a4,0x4
+8000285c: b8f72c23 sw a5,-1128(a4) # 800063f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00004717 auipc a4,0x4
+800028e8: b0c70713 addi a4,a4,-1268 # 800063f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00004717 auipc a4,0x4
+800028fc: aef72c23 sw a5,-1288(a4) # 800063f0 <freelist_tail>
+80002900: 00004717 auipc a4,0x4
+80002904: aef72a23 sw a5,-1292(a4) # 800063f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00001617 auipc a2,0x1
+80002914: a2060613 addi a2,a2,-1504 # 80003330 <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00001617 auipc a2,0x1
+80002980: 93060613 addi a2,a2,-1744 # 800032ac <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00001617 auipc a2,0x1
+800029cc: 8b060613 addi a2,a2,-1872 # 80003278 <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00002797 auipc a5,0x2
+80002a4c: 5b878793 addi a5,a5,1464 # 80005000 <begin_signature+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00001697 auipc a3,0x1
+80002a60: 5af6a223 sw a5,1444(a3) # 80004000 <begin_signature>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00001717 auipc a4,0x1
+80002a6c: 59870713 addi a4,a4,1432 # 80004000 <begin_signature>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00002697 auipc a3,0x2
+80002a7c: 58f6a223 sw a5,1412(a3) # 80004ffc <begin_signature+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf9ccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc03797 auipc a5,0x7fc03
+80002aec: 51878793 addi a5,a5,1304 # ffc06000 <_end+0x7fbffc08>
+80002af0: 00004717 auipc a4,0x4
+80002af4: 90f72223 sw a5,-1788(a4) # 800063f4 <freelist_head>
+80002af8: 7fc03797 auipc a5,0x7fc03
+80002afc: 6f878793 addi a5,a5,1784 # ffc061f0 <_end+0x7fbffdf8>
+80002b00: 00004717 auipc a4,0x4
+80002b04: 8ef72823 sw a5,-1808(a4) # 800063f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00003717 auipc a4,0x3
+80002b10: 4f470713 addi a4,a4,1268 # 80006000 <freelist_nodes>
+80002b14: 00003317 auipc t1,0x3
+80002b18: 6e430313 addi t1,t1,1764 # 800061f8 <user_mapping>
+80002b1c: 02700793 li a5,39
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00003797 auipc a5,0x3
+80002b6c: 6807a623 sw zero,1676(a5) # 800061f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 001567b7 lui a5,0x156
+80002b9c: 00080637 lui a2,0x80
+80002ba0: 5b478793 addi a5,a5,1460 # 1565b4 <_start-0x7fea9a4c>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: 800000b7 lui ra,0x80000
+80002be4: 00000113 li sp,0
+80002be8: 4020df33 sra t5,ra,sp
+80002bec: 80000eb7 lui t4,0x80000
+80002bf0: 00200193 li gp,2
+80002bf4: 59df1463 bne t5,t4,8000317c <fail>
+
+80002bf8 <test_3>:
+80002bf8: 800000b7 lui ra,0x80000
+80002bfc: 00100113 li sp,1
+80002c00: 4020df33 sra t5,ra,sp
+80002c04: c0000eb7 lui t4,0xc0000
+80002c08: 00300193 li gp,3
+80002c0c: 57df1863 bne t5,t4,8000317c <fail>
+
+80002c10 <test_4>:
+80002c10: 800000b7 lui ra,0x80000
+80002c14: 00700113 li sp,7
+80002c18: 4020df33 sra t5,ra,sp
+80002c1c: ff000eb7 lui t4,0xff000
+80002c20: 00400193 li gp,4
+80002c24: 55df1c63 bne t5,t4,8000317c <fail>
+
+80002c28 <test_5>:
+80002c28: 800000b7 lui ra,0x80000
+80002c2c: 00e00113 li sp,14
+80002c30: 4020df33 sra t5,ra,sp
+80002c34: fffe0eb7 lui t4,0xfffe0
+80002c38: 00500193 li gp,5
+80002c3c: 55df1063 bne t5,t4,8000317c <fail>
+
+80002c40 <test_6>:
+80002c40: 800000b7 lui ra,0x80000
+80002c44: 00108093 addi ra,ra,1 # 80000001 <_end+0xffff9c09>
+80002c48: 01f00113 li sp,31
+80002c4c: 4020df33 sra t5,ra,sp
+80002c50: fff00e93 li t4,-1
+80002c54: 00600193 li gp,6
+80002c58: 53df1263 bne t5,t4,8000317c <fail>
+
+80002c5c <test_7>:
+80002c5c: 800000b7 lui ra,0x80000
+80002c60: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffff9c07>
+80002c64: 00000113 li sp,0
+80002c68: 4020df33 sra t5,ra,sp
+80002c6c: 80000eb7 lui t4,0x80000
+80002c70: fffe8e93 addi t4,t4,-1 # 7fffffff <_end+0xffff9c07>
+80002c74: 00700193 li gp,7
+80002c78: 51df1263 bne t5,t4,8000317c <fail>
+
+80002c7c <test_8>:
+80002c7c: 800000b7 lui ra,0x80000
+80002c80: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffff9c07>
+80002c84: 00100113 li sp,1
+80002c88: 4020df33 sra t5,ra,sp
+80002c8c: 40000eb7 lui t4,0x40000
+80002c90: fffe8e93 addi t4,t4,-1 # 3fffffff <_start-0x40000001>
+80002c94: 00800193 li gp,8
+80002c98: 4fdf1263 bne t5,t4,8000317c <fail>
+
+80002c9c <test_9>:
+80002c9c: 800000b7 lui ra,0x80000
+80002ca0: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffff9c07>
+80002ca4: 00700113 li sp,7
+80002ca8: 4020df33 sra t5,ra,sp
+80002cac: 01000eb7 lui t4,0x1000
+80002cb0: fffe8e93 addi t4,t4,-1 # ffffff <_start-0x7f000001>
+80002cb4: 00900193 li gp,9
+80002cb8: 4ddf1263 bne t5,t4,8000317c <fail>
+
+80002cbc <test_10>:
+80002cbc: 800000b7 lui ra,0x80000
+80002cc0: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffff9c07>
+80002cc4: 00e00113 li sp,14
+80002cc8: 4020df33 sra t5,ra,sp
+80002ccc: 00020eb7 lui t4,0x20
+80002cd0: fffe8e93 addi t4,t4,-1 # 1ffff <_start-0x7ffe0001>
+80002cd4: 00a00193 li gp,10
+80002cd8: 4bdf1263 bne t5,t4,8000317c <fail>
+
+80002cdc <test_11>:
+80002cdc: 800000b7 lui ra,0x80000
+80002ce0: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffff9c07>
+80002ce4: 01f00113 li sp,31
+80002ce8: 4020df33 sra t5,ra,sp
+80002cec: 00000e93 li t4,0
+80002cf0: 00b00193 li gp,11
+80002cf4: 49df1463 bne t5,t4,8000317c <fail>
+
+80002cf8 <test_12>:
+80002cf8: 818180b7 lui ra,0x81818
+80002cfc: 18108093 addi ra,ra,385 # 81818181 <_end+0x1811d89>
+80002d00: 00000113 li sp,0
+80002d04: 4020df33 sra t5,ra,sp
+80002d08: 81818eb7 lui t4,0x81818
+80002d0c: 181e8e93 addi t4,t4,385 # 81818181 <_end+0x1811d89>
+80002d10: 00c00193 li gp,12
+80002d14: 47df1463 bne t5,t4,8000317c <fail>
+
+80002d18 <test_13>:
+80002d18: 818180b7 lui ra,0x81818
+80002d1c: 18108093 addi ra,ra,385 # 81818181 <_end+0x1811d89>
+80002d20: 00100113 li sp,1
+80002d24: 4020df33 sra t5,ra,sp
+80002d28: c0c0ceb7 lui t4,0xc0c0c
+80002d2c: 0c0e8e93 addi t4,t4,192 # c0c0c0c0 <_end+0x40c05cc8>
+80002d30: 00d00193 li gp,13
+80002d34: 45df1463 bne t5,t4,8000317c <fail>
+
+80002d38 <test_14>:
+80002d38: 818180b7 lui ra,0x81818
+80002d3c: 18108093 addi ra,ra,385 # 81818181 <_end+0x1811d89>
+80002d40: 00700113 li sp,7
+80002d44: 4020df33 sra t5,ra,sp
+80002d48: ff030eb7 lui t4,0xff030
+80002d4c: 303e8e93 addi t4,t4,771 # ff030303 <_end+0x7f029f0b>
+80002d50: 00e00193 li gp,14
+80002d54: 43df1463 bne t5,t4,8000317c <fail>
+
+80002d58 <test_15>:
+80002d58: 818180b7 lui ra,0x81818
+80002d5c: 18108093 addi ra,ra,385 # 81818181 <_end+0x1811d89>
+80002d60: 00e00113 li sp,14
+80002d64: 4020df33 sra t5,ra,sp
+80002d68: fffe0eb7 lui t4,0xfffe0
+80002d6c: 606e8e93 addi t4,t4,1542 # fffe0606 <_end+0x7ffda20e>
+80002d70: 00f00193 li gp,15
+80002d74: 41df1463 bne t5,t4,8000317c <fail>
+
+80002d78 <test_16>:
+80002d78: 818180b7 lui ra,0x81818
+80002d7c: 18108093 addi ra,ra,385 # 81818181 <_end+0x1811d89>
+80002d80: 01f00113 li sp,31
+80002d84: 4020df33 sra t5,ra,sp
+80002d88: fff00e93 li t4,-1
+80002d8c: 01000193 li gp,16
+80002d90: 3fdf1663 bne t5,t4,8000317c <fail>
+
+80002d94 <test_17>:
+80002d94: 818180b7 lui ra,0x81818
+80002d98: 18108093 addi ra,ra,385 # 81818181 <_end+0x1811d89>
+80002d9c: fc000113 li sp,-64
+80002da0: 4020df33 sra t5,ra,sp
+80002da4: 81818eb7 lui t4,0x81818
+80002da8: 181e8e93 addi t4,t4,385 # 81818181 <_end+0x1811d89>
+80002dac: 01100193 li gp,17
+80002db0: 3ddf1663 bne t5,t4,8000317c <fail>
+
+80002db4 <test_18>:
+80002db4: 818180b7 lui ra,0x81818
+80002db8: 18108093 addi ra,ra,385 # 81818181 <_end+0x1811d89>
+80002dbc: fc100113 li sp,-63
+80002dc0: 4020df33 sra t5,ra,sp
+80002dc4: c0c0ceb7 lui t4,0xc0c0c
+80002dc8: 0c0e8e93 addi t4,t4,192 # c0c0c0c0 <_end+0x40c05cc8>
+80002dcc: 01200193 li gp,18
+80002dd0: 3bdf1663 bne t5,t4,8000317c <fail>
+
+80002dd4 <test_19>:
+80002dd4: 818180b7 lui ra,0x81818
+80002dd8: 18108093 addi ra,ra,385 # 81818181 <_end+0x1811d89>
+80002ddc: fc700113 li sp,-57
+80002de0: 4020df33 sra t5,ra,sp
+80002de4: ff030eb7 lui t4,0xff030
+80002de8: 303e8e93 addi t4,t4,771 # ff030303 <_end+0x7f029f0b>
+80002dec: 01300193 li gp,19
+80002df0: 39df1663 bne t5,t4,8000317c <fail>
+
+80002df4 <test_20>:
+80002df4: 818180b7 lui ra,0x81818
+80002df8: 18108093 addi ra,ra,385 # 81818181 <_end+0x1811d89>
+80002dfc: fce00113 li sp,-50
+80002e00: 4020df33 sra t5,ra,sp
+80002e04: fffe0eb7 lui t4,0xfffe0
+80002e08: 606e8e93 addi t4,t4,1542 # fffe0606 <_end+0x7ffda20e>
+80002e0c: 01400193 li gp,20
+80002e10: 37df1663 bne t5,t4,8000317c <fail>
+
+80002e14 <test_21>:
+80002e14: 818180b7 lui ra,0x81818
+80002e18: 18108093 addi ra,ra,385 # 81818181 <_end+0x1811d89>
+80002e1c: fff00113 li sp,-1
+80002e20: 4020df33 sra t5,ra,sp
+80002e24: fff00e93 li t4,-1
+80002e28: 01500193 li gp,21
+80002e2c: 35df1863 bne t5,t4,8000317c <fail>
+
+80002e30 <test_22>:
+80002e30: 800000b7 lui ra,0x80000
+80002e34: 00700113 li sp,7
+80002e38: 4020d0b3 sra ra,ra,sp
+80002e3c: ff000eb7 lui t4,0xff000
+80002e40: 01600193 li gp,22
+80002e44: 33d09c63 bne ra,t4,8000317c <fail>
+
+80002e48 <test_23>:
+80002e48: 800000b7 lui ra,0x80000
+80002e4c: 00e00113 li sp,14
+80002e50: 4020d133 sra sp,ra,sp
+80002e54: fffe0eb7 lui t4,0xfffe0
+80002e58: 01700193 li gp,23
+80002e5c: 33d11063 bne sp,t4,8000317c <fail>
+
+80002e60 <test_24>:
+80002e60: 00700093 li ra,7
+80002e64: 4010d0b3 sra ra,ra,ra
+80002e68: 00000e93 li t4,0
+80002e6c: 01800193 li gp,24
+80002e70: 31d09663 bne ra,t4,8000317c <fail>
+
+80002e74 <test_25>:
+80002e74: 00000213 li tp,0
+80002e78: 800000b7 lui ra,0x80000
+80002e7c: 00700113 li sp,7
+80002e80: 4020df33 sra t5,ra,sp
+80002e84: 000f0313 mv t1,t5
+80002e88: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e8c: 00200293 li t0,2
+80002e90: fe5214e3 bne tp,t0,80002e78 <test_25+0x4>
+80002e94: ff000eb7 lui t4,0xff000
+80002e98: 01900193 li gp,25
+80002e9c: 2fd31063 bne t1,t4,8000317c <fail>
+
+80002ea0 <test_26>:
+80002ea0: 00000213 li tp,0
+80002ea4: 800000b7 lui ra,0x80000
+80002ea8: 00e00113 li sp,14
+80002eac: 4020df33 sra t5,ra,sp
+80002eb0: 00000013 nop
+80002eb4: 000f0313 mv t1,t5
+80002eb8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002ebc: 00200293 li t0,2
+80002ec0: fe5212e3 bne tp,t0,80002ea4 <test_26+0x4>
+80002ec4: fffe0eb7 lui t4,0xfffe0
+80002ec8: 01a00193 li gp,26
+80002ecc: 2bd31863 bne t1,t4,8000317c <fail>
+
+80002ed0 <test_27>:
+80002ed0: 00000213 li tp,0
+80002ed4: 800000b7 lui ra,0x80000
+80002ed8: 01f00113 li sp,31
+80002edc: 4020df33 sra t5,ra,sp
+80002ee0: 00000013 nop
+80002ee4: 00000013 nop
+80002ee8: 000f0313 mv t1,t5
+80002eec: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002ef0: 00200293 li t0,2
+80002ef4: fe5210e3 bne tp,t0,80002ed4 <test_27+0x4>
+80002ef8: fff00e93 li t4,-1
+80002efc: 01b00193 li gp,27
+80002f00: 27d31e63 bne t1,t4,8000317c <fail>
+
+80002f04 <test_28>:
+80002f04: 00000213 li tp,0
+80002f08: 800000b7 lui ra,0x80000
+80002f0c: 00700113 li sp,7
+80002f10: 4020df33 sra t5,ra,sp
+80002f14: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002f18: 00200293 li t0,2
+80002f1c: fe5216e3 bne tp,t0,80002f08 <test_28+0x4>
+80002f20: ff000eb7 lui t4,0xff000
+80002f24: 01c00193 li gp,28
+80002f28: 25df1a63 bne t5,t4,8000317c <fail>
+
+80002f2c <test_29>:
+80002f2c: 00000213 li tp,0
+80002f30: 800000b7 lui ra,0x80000
+80002f34: 00e00113 li sp,14
+80002f38: 00000013 nop
+80002f3c: 4020df33 sra t5,ra,sp
+80002f40: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002f44: 00200293 li t0,2
+80002f48: fe5214e3 bne tp,t0,80002f30 <test_29+0x4>
+80002f4c: fffe0eb7 lui t4,0xfffe0
+80002f50: 01d00193 li gp,29
+80002f54: 23df1463 bne t5,t4,8000317c <fail>
+
+80002f58 <test_30>:
+80002f58: 00000213 li tp,0
+80002f5c: 800000b7 lui ra,0x80000
+80002f60: 01f00113 li sp,31
+80002f64: 00000013 nop
+80002f68: 00000013 nop
+80002f6c: 4020df33 sra t5,ra,sp
+80002f70: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002f74: 00200293 li t0,2
+80002f78: fe5212e3 bne tp,t0,80002f5c <test_30+0x4>
+80002f7c: fff00e93 li t4,-1
+80002f80: 01e00193 li gp,30
+80002f84: 1fdf1c63 bne t5,t4,8000317c <fail>
+
+80002f88 <test_31>:
+80002f88: 00000213 li tp,0
+80002f8c: 800000b7 lui ra,0x80000
+80002f90: 00000013 nop
+80002f94: 00700113 li sp,7
+80002f98: 4020df33 sra t5,ra,sp
+80002f9c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002fa0: 00200293 li t0,2
+80002fa4: fe5214e3 bne tp,t0,80002f8c <test_31+0x4>
+80002fa8: ff000eb7 lui t4,0xff000
+80002fac: 01f00193 li gp,31
+80002fb0: 1ddf1663 bne t5,t4,8000317c <fail>
+
+80002fb4 <test_32>:
+80002fb4: 00000213 li tp,0
+80002fb8: 800000b7 lui ra,0x80000
+80002fbc: 00000013 nop
+80002fc0: 00e00113 li sp,14
+80002fc4: 00000013 nop
+80002fc8: 4020df33 sra t5,ra,sp
+80002fcc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002fd0: 00200293 li t0,2
+80002fd4: fe5212e3 bne tp,t0,80002fb8 <test_32+0x4>
+80002fd8: fffe0eb7 lui t4,0xfffe0
+80002fdc: 02000193 li gp,32
+80002fe0: 19df1e63 bne t5,t4,8000317c <fail>
+
+80002fe4 <test_33>:
+80002fe4: 00000213 li tp,0
+80002fe8: 800000b7 lui ra,0x80000
+80002fec: 00000013 nop
+80002ff0: 00000013 nop
+80002ff4: 01f00113 li sp,31
+80002ff8: 4020df33 sra t5,ra,sp
+80002ffc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80003000: 00200293 li t0,2
+80003004: fe5212e3 bne tp,t0,80002fe8 <test_33+0x4>
+80003008: fff00e93 li t4,-1
+8000300c: 02100193 li gp,33
+80003010: 17df1663 bne t5,t4,8000317c <fail>
+
+80003014 <test_34>:
+80003014: 00000213 li tp,0
+80003018: 00700113 li sp,7
+8000301c: 800000b7 lui ra,0x80000
+80003020: 4020df33 sra t5,ra,sp
+80003024: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80003028: 00200293 li t0,2
+8000302c: fe5216e3 bne tp,t0,80003018 <test_34+0x4>
+80003030: ff000eb7 lui t4,0xff000
+80003034: 02200193 li gp,34
+80003038: 15df1263 bne t5,t4,8000317c <fail>
+
+8000303c <test_35>:
+8000303c: 00000213 li tp,0
+80003040: 00e00113 li sp,14
+80003044: 800000b7 lui ra,0x80000
+80003048: 00000013 nop
+8000304c: 4020df33 sra t5,ra,sp
+80003050: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80003054: 00200293 li t0,2
+80003058: fe5214e3 bne tp,t0,80003040 <test_35+0x4>
+8000305c: fffe0eb7 lui t4,0xfffe0
+80003060: 02300193 li gp,35
+80003064: 11df1c63 bne t5,t4,8000317c <fail>
+
+80003068 <test_36>:
+80003068: 00000213 li tp,0
+8000306c: 01f00113 li sp,31
+80003070: 800000b7 lui ra,0x80000
+80003074: 00000013 nop
+80003078: 00000013 nop
+8000307c: 4020df33 sra t5,ra,sp
+80003080: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80003084: 00200293 li t0,2
+80003088: fe5212e3 bne tp,t0,8000306c <test_36+0x4>
+8000308c: fff00e93 li t4,-1
+80003090: 02400193 li gp,36
+80003094: 0fdf1463 bne t5,t4,8000317c <fail>
+
+80003098 <test_37>:
+80003098: 00000213 li tp,0
+8000309c: 00700113 li sp,7
+800030a0: 00000013 nop
+800030a4: 800000b7 lui ra,0x80000
+800030a8: 4020df33 sra t5,ra,sp
+800030ac: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800030b0: 00200293 li t0,2
+800030b4: fe5214e3 bne tp,t0,8000309c <test_37+0x4>
+800030b8: ff000eb7 lui t4,0xff000
+800030bc: 02500193 li gp,37
+800030c0: 0bdf1e63 bne t5,t4,8000317c <fail>
+
+800030c4 <test_38>:
+800030c4: 00000213 li tp,0
+800030c8: 00e00113 li sp,14
+800030cc: 00000013 nop
+800030d0: 800000b7 lui ra,0x80000
+800030d4: 00000013 nop
+800030d8: 4020df33 sra t5,ra,sp
+800030dc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800030e0: 00200293 li t0,2
+800030e4: fe5212e3 bne tp,t0,800030c8 <test_38+0x4>
+800030e8: fffe0eb7 lui t4,0xfffe0
+800030ec: 02600193 li gp,38
+800030f0: 09df1663 bne t5,t4,8000317c <fail>
+
+800030f4 <test_39>:
+800030f4: 00000213 li tp,0
+800030f8: 01f00113 li sp,31
+800030fc: 00000013 nop
+80003100: 00000013 nop
+80003104: 800000b7 lui ra,0x80000
+80003108: 4020df33 sra t5,ra,sp
+8000310c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80003110: 00200293 li t0,2
+80003114: fe5212e3 bne tp,t0,800030f8 <test_39+0x4>
+80003118: fff00e93 li t4,-1
+8000311c: 02700193 li gp,39
+80003120: 05df1e63 bne t5,t4,8000317c <fail>
+
+80003124 <test_40>:
+80003124: 00f00093 li ra,15
+80003128: 40105133 sra sp,zero,ra
+8000312c: 00000e93 li t4,0
+80003130: 02800193 li gp,40
+80003134: 05d11463 bne sp,t4,8000317c <fail>
+
+80003138 <test_41>:
+80003138: 02000093 li ra,32
+8000313c: 4000d133 sra sp,ra,zero
+80003140: 02000e93 li t4,32
+80003144: 02900193 li gp,41
+80003148: 03d11a63 bne sp,t4,8000317c <fail>
+
+8000314c <test_42>:
+8000314c: 400050b3 sra ra,zero,zero
+80003150: 00000e93 li t4,0
+80003154: 02a00193 li gp,42
+80003158: 03d09263 bne ra,t4,8000317c <fail>
+
+8000315c <test_43>:
+8000315c: 40000093 li ra,1024
+80003160: 00001137 lui sp,0x1
+80003164: 80010113 addi sp,sp,-2048 # 800 <_start-0x7ffff800>
+80003168: 4020d033 sra zero,ra,sp
+8000316c: 00000e93 li t4,0
+80003170: 02b00193 li gp,43
+80003174: 01d01463 bne zero,t4,8000317c <fail>
+80003178: 00301a63 bne zero,gp,8000318c <pass>
+
+8000317c <fail>:
+8000317c: 00119513 slli a0,gp,0x1
+80003180: 00050063 beqz a0,80003180 <fail+0x4>
+80003184: 00156513 ori a0,a0,1
+80003188: 00000073 ecall
+
+8000318c <pass>:
+8000318c: 00100513 li a0,1
+80003190: 00000073 ecall
+80003194: c0001073 unimp
diff --git a/test/riscv-tests/rv32ui-v-sra.elf b/test/riscv-tests/rv32ui-v-sra.elf
new file mode 100644
index 0000000..85cc239
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-sra.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-v-srai.dump b/test/riscv-tests/rv32ui-v-srai.dump
new file mode 100644
index 0000000..3c7c960
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-srai.dump
@@ -0,0 +1,1130 @@
+
+rv32ui-v-srai: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00007117 auipc sp,0x7
+8000001c: 35010113 addi sp,sp,848 # 80007368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00002317 auipc t1,0x2
+80002370: c9430313 addi t1,t1,-876 # 80004000 <begin_signature>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00004797 auipc a5,0x4
+8000238c: 06c78793 addi a5,a5,108 # 800063f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00004717 auipc a4,0x4
+800023a0: 05470713 addi a4,a4,84 # 800063f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00004697 auipc a3,0x4
+800023ac: 04f6a623 sw a5,76(a3) # 800063f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00004717 auipc a4,0x4
+800023dc: e2070713 addi a4,a4,-480 # 800061f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf9c08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00004797 auipc a5,0x4
+800024bc: f207ac23 sw zero,-200(a5) # 800063f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00001597 auipc a1,0x1
+800024cc: 9ec58593 addi a1,a1,-1556 # 80002eb4 <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00001597 auipc a1,0x1
+8000253c: a0858593 addi a1,a1,-1528 # 80002f40 <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00001597 auipc a1,0x1
+800025a8: 9b458593 addi a1,a1,-1612 # 80002f58 <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00001597 auipc a1,0x1
+80002614: 8e858593 addi a1,a1,-1816 # 80002ef8 <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00001597 auipc a1,0x1
+8000274c: 8d858593 addi a1,a1,-1832 # 80003020 <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00001597 auipc a1,0x1
+800027c0: 84058593 addi a1,a1,-1984 # 80002ffc <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00004b17 auipc s6,0x4
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800061f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00001d17 auipc s10,0x1
+80002840: 7c4d0d13 addi s10,s10,1988 # 80004000 <begin_signature>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00004717 auipc a4,0x4
+8000285c: b8f72c23 sw a5,-1128(a4) # 800063f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00004717 auipc a4,0x4
+800028e8: b0c70713 addi a4,a4,-1268 # 800063f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00004717 auipc a4,0x4
+800028fc: aef72c23 sw a5,-1288(a4) # 800063f0 <freelist_tail>
+80002900: 00004717 auipc a4,0x4
+80002904: aef72a23 sw a5,-1292(a4) # 800063f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00000617 auipc a2,0x0
+80002914: 73c60613 addi a2,a2,1852 # 8000304c <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00000617 auipc a2,0x0
+80002980: 64c60613 addi a2,a2,1612 # 80002fc8 <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 5cc60613 addi a2,a2,1484 # 80002f94 <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00002797 auipc a5,0x2
+80002a4c: 5b878793 addi a5,a5,1464 # 80005000 <begin_signature+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00001697 auipc a3,0x1
+80002a60: 5af6a223 sw a5,1444(a3) # 80004000 <begin_signature>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00001717 auipc a4,0x1
+80002a6c: 59870713 addi a4,a4,1432 # 80004000 <begin_signature>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00002697 auipc a3,0x2
+80002a7c: 58f6a223 sw a5,1412(a3) # 80004ffc <begin_signature+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf9ccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc03797 auipc a5,0x7fc03
+80002aec: 51878793 addi a5,a5,1304 # ffc06000 <_end+0x7fbffc08>
+80002af0: 00004717 auipc a4,0x4
+80002af4: 90f72223 sw a5,-1788(a4) # 800063f4 <freelist_head>
+80002af8: 7fc03797 auipc a5,0x7fc03
+80002afc: 6f878793 addi a5,a5,1784 # ffc061f0 <_end+0x7fbffdf8>
+80002b00: 00004717 auipc a4,0x4
+80002b04: 8ef72823 sw a5,-1808(a4) # 800063f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00003717 auipc a4,0x3
+80002b10: 4f470713 addi a4,a4,1268 # 80006000 <freelist_nodes>
+80002b14: 00003317 auipc t1,0x3
+80002b18: 6e430313 addi t1,t1,1764 # 800061f8 <user_mapping>
+80002b1c: 01e00793 li a5,30
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00003797 auipc a5,0x3
+80002b6c: 6807a623 sw zero,1676(a5) # 800061f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 0390c7b7 lui a5,0x390c
+80002b9c: 00080637 lui a2,0x80
+80002ba0: e3178793 addi a5,a5,-463 # 390be31 <_start-0x7c6f41cf>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: 00000093 li ra,0
+80002be4: 4000df13 srai t5,ra,0x0
+80002be8: 00000e93 li t4,0
+80002bec: 00200193 li gp,2
+80002bf0: 2bdf1463 bne t5,t4,80002e98 <fail>
+
+80002bf4 <test_3>:
+80002bf4: 800000b7 lui ra,0x80000
+80002bf8: 4010df13 srai t5,ra,0x1
+80002bfc: c0000eb7 lui t4,0xc0000
+80002c00: 00300193 li gp,3
+80002c04: 29df1a63 bne t5,t4,80002e98 <fail>
+
+80002c08 <test_4>:
+80002c08: 800000b7 lui ra,0x80000
+80002c0c: 4070df13 srai t5,ra,0x7
+80002c10: ff000eb7 lui t4,0xff000
+80002c14: 00400193 li gp,4
+80002c18: 29df1063 bne t5,t4,80002e98 <fail>
+
+80002c1c <test_5>:
+80002c1c: 800000b7 lui ra,0x80000
+80002c20: 40e0df13 srai t5,ra,0xe
+80002c24: fffe0eb7 lui t4,0xfffe0
+80002c28: 00500193 li gp,5
+80002c2c: 27df1663 bne t5,t4,80002e98 <fail>
+
+80002c30 <test_6>:
+80002c30: 800000b7 lui ra,0x80000
+80002c34: 00108093 addi ra,ra,1 # 80000001 <_end+0xffff9c09>
+80002c38: 41f0df13 srai t5,ra,0x1f
+80002c3c: fff00e93 li t4,-1
+80002c40: 00600193 li gp,6
+80002c44: 25df1a63 bne t5,t4,80002e98 <fail>
+
+80002c48 <test_7>:
+80002c48: 800000b7 lui ra,0x80000
+80002c4c: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffff9c07>
+80002c50: 4000df13 srai t5,ra,0x0
+80002c54: 80000eb7 lui t4,0x80000
+80002c58: fffe8e93 addi t4,t4,-1 # 7fffffff <_end+0xffff9c07>
+80002c5c: 00700193 li gp,7
+80002c60: 23df1c63 bne t5,t4,80002e98 <fail>
+
+80002c64 <test_8>:
+80002c64: 800000b7 lui ra,0x80000
+80002c68: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffff9c07>
+80002c6c: 4010df13 srai t5,ra,0x1
+80002c70: 40000eb7 lui t4,0x40000
+80002c74: fffe8e93 addi t4,t4,-1 # 3fffffff <_start-0x40000001>
+80002c78: 00800193 li gp,8
+80002c7c: 21df1e63 bne t5,t4,80002e98 <fail>
+
+80002c80 <test_9>:
+80002c80: 800000b7 lui ra,0x80000
+80002c84: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffff9c07>
+80002c88: 4070df13 srai t5,ra,0x7
+80002c8c: 01000eb7 lui t4,0x1000
+80002c90: fffe8e93 addi t4,t4,-1 # ffffff <_start-0x7f000001>
+80002c94: 00900193 li gp,9
+80002c98: 21df1063 bne t5,t4,80002e98 <fail>
+
+80002c9c <test_10>:
+80002c9c: 800000b7 lui ra,0x80000
+80002ca0: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffff9c07>
+80002ca4: 40e0df13 srai t5,ra,0xe
+80002ca8: 00020eb7 lui t4,0x20
+80002cac: fffe8e93 addi t4,t4,-1 # 1ffff <_start-0x7ffe0001>
+80002cb0: 00a00193 li gp,10
+80002cb4: 1fdf1263 bne t5,t4,80002e98 <fail>
+
+80002cb8 <test_11>:
+80002cb8: 800000b7 lui ra,0x80000
+80002cbc: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffff9c07>
+80002cc0: 41f0df13 srai t5,ra,0x1f
+80002cc4: 00000e93 li t4,0
+80002cc8: 00b00193 li gp,11
+80002ccc: 1ddf1663 bne t5,t4,80002e98 <fail>
+
+80002cd0 <test_12>:
+80002cd0: 818180b7 lui ra,0x81818
+80002cd4: 18108093 addi ra,ra,385 # 81818181 <_end+0x1811d89>
+80002cd8: 4000df13 srai t5,ra,0x0
+80002cdc: 81818eb7 lui t4,0x81818
+80002ce0: 181e8e93 addi t4,t4,385 # 81818181 <_end+0x1811d89>
+80002ce4: 00c00193 li gp,12
+80002ce8: 1bdf1863 bne t5,t4,80002e98 <fail>
+
+80002cec <test_13>:
+80002cec: 818180b7 lui ra,0x81818
+80002cf0: 18108093 addi ra,ra,385 # 81818181 <_end+0x1811d89>
+80002cf4: 4010df13 srai t5,ra,0x1
+80002cf8: c0c0ceb7 lui t4,0xc0c0c
+80002cfc: 0c0e8e93 addi t4,t4,192 # c0c0c0c0 <_end+0x40c05cc8>
+80002d00: 00d00193 li gp,13
+80002d04: 19df1a63 bne t5,t4,80002e98 <fail>
+
+80002d08 <test_14>:
+80002d08: 818180b7 lui ra,0x81818
+80002d0c: 18108093 addi ra,ra,385 # 81818181 <_end+0x1811d89>
+80002d10: 4070df13 srai t5,ra,0x7
+80002d14: ff030eb7 lui t4,0xff030
+80002d18: 303e8e93 addi t4,t4,771 # ff030303 <_end+0x7f029f0b>
+80002d1c: 00e00193 li gp,14
+80002d20: 17df1c63 bne t5,t4,80002e98 <fail>
+
+80002d24 <test_15>:
+80002d24: 818180b7 lui ra,0x81818
+80002d28: 18108093 addi ra,ra,385 # 81818181 <_end+0x1811d89>
+80002d2c: 40e0df13 srai t5,ra,0xe
+80002d30: fffe0eb7 lui t4,0xfffe0
+80002d34: 606e8e93 addi t4,t4,1542 # fffe0606 <_end+0x7ffda20e>
+80002d38: 00f00193 li gp,15
+80002d3c: 15df1e63 bne t5,t4,80002e98 <fail>
+
+80002d40 <test_16>:
+80002d40: 818180b7 lui ra,0x81818
+80002d44: 18108093 addi ra,ra,385 # 81818181 <_end+0x1811d89>
+80002d48: 41f0df13 srai t5,ra,0x1f
+80002d4c: fff00e93 li t4,-1
+80002d50: 01000193 li gp,16
+80002d54: 15df1263 bne t5,t4,80002e98 <fail>
+
+80002d58 <test_17>:
+80002d58: 800000b7 lui ra,0x80000
+80002d5c: 4070d093 srai ra,ra,0x7
+80002d60: ff000eb7 lui t4,0xff000
+80002d64: 01100193 li gp,17
+80002d68: 13d09863 bne ra,t4,80002e98 <fail>
+
+80002d6c <test_18>:
+80002d6c: 00000213 li tp,0
+80002d70: 800000b7 lui ra,0x80000
+80002d74: 4070df13 srai t5,ra,0x7
+80002d78: 000f0313 mv t1,t5
+80002d7c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d80: 00200293 li t0,2
+80002d84: fe5216e3 bne tp,t0,80002d70 <test_18+0x4>
+80002d88: ff000eb7 lui t4,0xff000
+80002d8c: 01200193 li gp,18
+80002d90: 11d31463 bne t1,t4,80002e98 <fail>
+
+80002d94 <test_19>:
+80002d94: 00000213 li tp,0
+80002d98: 800000b7 lui ra,0x80000
+80002d9c: 40e0df13 srai t5,ra,0xe
+80002da0: 00000013 nop
+80002da4: 000f0313 mv t1,t5
+80002da8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002dac: 00200293 li t0,2
+80002db0: fe5214e3 bne tp,t0,80002d98 <test_19+0x4>
+80002db4: fffe0eb7 lui t4,0xfffe0
+80002db8: 01300193 li gp,19
+80002dbc: 0dd31e63 bne t1,t4,80002e98 <fail>
+
+80002dc0 <test_20>:
+80002dc0: 00000213 li tp,0
+80002dc4: 800000b7 lui ra,0x80000
+80002dc8: 00108093 addi ra,ra,1 # 80000001 <_end+0xffff9c09>
+80002dcc: 41f0df13 srai t5,ra,0x1f
+80002dd0: 00000013 nop
+80002dd4: 00000013 nop
+80002dd8: 000f0313 mv t1,t5
+80002ddc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002de0: 00200293 li t0,2
+80002de4: fe5210e3 bne tp,t0,80002dc4 <test_20+0x4>
+80002de8: fff00e93 li t4,-1
+80002dec: 01400193 li gp,20
+80002df0: 0bd31463 bne t1,t4,80002e98 <fail>
+
+80002df4 <test_21>:
+80002df4: 00000213 li tp,0
+80002df8: 800000b7 lui ra,0x80000
+80002dfc: 4070df13 srai t5,ra,0x7
+80002e00: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e04: 00200293 li t0,2
+80002e08: fe5218e3 bne tp,t0,80002df8 <test_21+0x4>
+80002e0c: ff000eb7 lui t4,0xff000
+80002e10: 01500193 li gp,21
+80002e14: 09df1263 bne t5,t4,80002e98 <fail>
+
+80002e18 <test_22>:
+80002e18: 00000213 li tp,0
+80002e1c: 800000b7 lui ra,0x80000
+80002e20: 00000013 nop
+80002e24: 40e0df13 srai t5,ra,0xe
+80002e28: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e2c: 00200293 li t0,2
+80002e30: fe5216e3 bne tp,t0,80002e1c <test_22+0x4>
+80002e34: fffe0eb7 lui t4,0xfffe0
+80002e38: 01600193 li gp,22
+80002e3c: 05df1e63 bne t5,t4,80002e98 <fail>
+
+80002e40 <test_23>:
+80002e40: 00000213 li tp,0
+80002e44: 800000b7 lui ra,0x80000
+80002e48: 00108093 addi ra,ra,1 # 80000001 <_end+0xffff9c09>
+80002e4c: 00000013 nop
+80002e50: 00000013 nop
+80002e54: 41f0df13 srai t5,ra,0x1f
+80002e58: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e5c: 00200293 li t0,2
+80002e60: fe5212e3 bne tp,t0,80002e44 <test_23+0x4>
+80002e64: fff00e93 li t4,-1
+80002e68: 01700193 li gp,23
+80002e6c: 03df1663 bne t5,t4,80002e98 <fail>
+
+80002e70 <test_24>:
+80002e70: 40405093 srai ra,zero,0x4
+80002e74: 00000e93 li t4,0
+80002e78: 01800193 li gp,24
+80002e7c: 01d09e63 bne ra,t4,80002e98 <fail>
+
+80002e80 <test_25>:
+80002e80: 02100093 li ra,33
+80002e84: 40a0d013 srai zero,ra,0xa
+80002e88: 00000e93 li t4,0
+80002e8c: 01900193 li gp,25
+80002e90: 01d01463 bne zero,t4,80002e98 <fail>
+80002e94: 00301a63 bne zero,gp,80002ea8 <pass>
+
+80002e98 <fail>:
+80002e98: 00119513 slli a0,gp,0x1
+80002e9c: 00050063 beqz a0,80002e9c <fail+0x4>
+80002ea0: 00156513 ori a0,a0,1
+80002ea4: 00000073 ecall
+
+80002ea8 <pass>:
+80002ea8: 00100513 li a0,1
+80002eac: 00000073 ecall
+80002eb0: c0001073 unimp
diff --git a/test/riscv-tests/rv32ui-v-srai.elf b/test/riscv-tests/rv32ui-v-srai.elf
new file mode 100644
index 0000000..7bcb4a3
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-srai.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-v-srl.dump b/test/riscv-tests/rv32ui-v-srl.dump
new file mode 100644
index 0000000..2ae8970
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-srl.dump
@@ -0,0 +1,1345 @@
+
+rv32ui-v-srl: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00007117 auipc sp,0x7
+8000001c: 35010113 addi sp,sp,848 # 80007368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00002317 auipc t1,0x2
+80002370: c9430313 addi t1,t1,-876 # 80004000 <begin_signature>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00004797 auipc a5,0x4
+8000238c: 06c78793 addi a5,a5,108 # 800063f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00004717 auipc a4,0x4
+800023a0: 05470713 addi a4,a4,84 # 800063f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00004697 auipc a3,0x4
+800023ac: 04f6a623 sw a5,76(a3) # 800063f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00004717 auipc a4,0x4
+800023dc: e2070713 addi a4,a4,-480 # 800061f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf9c08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00004797 auipc a5,0x4
+800024bc: f207ac23 sw zero,-200(a5) # 800063f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00001597 auipc a1,0x1
+800024cc: cb858593 addi a1,a1,-840 # 80003180 <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00001597 auipc a1,0x1
+8000253c: cd458593 addi a1,a1,-812 # 8000320c <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00001597 auipc a1,0x1
+800025a8: c8058593 addi a1,a1,-896 # 80003224 <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00001597 auipc a1,0x1
+80002614: bb458593 addi a1,a1,-1100 # 800031c4 <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00001597 auipc a1,0x1
+8000274c: ba458593 addi a1,a1,-1116 # 800032ec <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00001597 auipc a1,0x1
+800027c0: b0c58593 addi a1,a1,-1268 # 800032c8 <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00004b17 auipc s6,0x4
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800061f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00001d17 auipc s10,0x1
+80002840: 7c4d0d13 addi s10,s10,1988 # 80004000 <begin_signature>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00004717 auipc a4,0x4
+8000285c: b8f72c23 sw a5,-1128(a4) # 800063f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00004717 auipc a4,0x4
+800028e8: b0c70713 addi a4,a4,-1268 # 800063f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00004717 auipc a4,0x4
+800028fc: aef72c23 sw a5,-1288(a4) # 800063f0 <freelist_tail>
+80002900: 00004717 auipc a4,0x4
+80002904: aef72a23 sw a5,-1292(a4) # 800063f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00001617 auipc a2,0x1
+80002914: a0860613 addi a2,a2,-1528 # 80003318 <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00001617 auipc a2,0x1
+80002980: 91860613 addi a2,a2,-1768 # 80003294 <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00001617 auipc a2,0x1
+800029cc: 89860613 addi a2,a2,-1896 # 80003260 <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00002797 auipc a5,0x2
+80002a4c: 5b878793 addi a5,a5,1464 # 80005000 <begin_signature+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00001697 auipc a3,0x1
+80002a60: 5af6a223 sw a5,1444(a3) # 80004000 <begin_signature>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00001717 auipc a4,0x1
+80002a6c: 59870713 addi a4,a4,1432 # 80004000 <begin_signature>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00002697 auipc a3,0x2
+80002a7c: 58f6a223 sw a5,1412(a3) # 80004ffc <begin_signature+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf9ccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc03797 auipc a5,0x7fc03
+80002aec: 51878793 addi a5,a5,1304 # ffc06000 <_end+0x7fbffc08>
+80002af0: 00004717 auipc a4,0x4
+80002af4: 90f72223 sw a5,-1788(a4) # 800063f4 <freelist_head>
+80002af8: 7fc03797 auipc a5,0x7fc03
+80002afc: 6f878793 addi a5,a5,1784 # ffc061f0 <_end+0x7fbffdf8>
+80002b00: 00004717 auipc a4,0x4
+80002b04: 8ef72823 sw a5,-1808(a4) # 800063f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00003717 auipc a4,0x3
+80002b10: 4f470713 addi a4,a4,1268 # 80006000 <freelist_nodes>
+80002b14: 00003317 auipc t1,0x3
+80002b18: 6e430313 addi t1,t1,1764 # 800061f8 <user_mapping>
+80002b1c: 01600793 li a5,22
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00003797 auipc a5,0x3
+80002b6c: 6807a623 sw zero,1676(a5) # 800061f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 0fc217b7 lui a5,0xfc21
+80002b9c: 00080637 lui a2,0x80
+80002ba0: 89278793 addi a5,a5,-1902 # fc20892 <_start-0x703df76e>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: 800000b7 lui ra,0x80000
+80002be4: 00000113 li sp,0
+80002be8: 0020df33 srl t5,ra,sp
+80002bec: 80000eb7 lui t4,0x80000
+80002bf0: 00200193 li gp,2
+80002bf4: 57df1863 bne t5,t4,80003164 <fail>
+
+80002bf8 <test_3>:
+80002bf8: 800000b7 lui ra,0x80000
+80002bfc: 00100113 li sp,1
+80002c00: 0020df33 srl t5,ra,sp
+80002c04: 40000eb7 lui t4,0x40000
+80002c08: 00300193 li gp,3
+80002c0c: 55df1c63 bne t5,t4,80003164 <fail>
+
+80002c10 <test_4>:
+80002c10: 800000b7 lui ra,0x80000
+80002c14: 00700113 li sp,7
+80002c18: 0020df33 srl t5,ra,sp
+80002c1c: 01000eb7 lui t4,0x1000
+80002c20: 00400193 li gp,4
+80002c24: 55df1063 bne t5,t4,80003164 <fail>
+
+80002c28 <test_5>:
+80002c28: 800000b7 lui ra,0x80000
+80002c2c: 00e00113 li sp,14
+80002c30: 0020df33 srl t5,ra,sp
+80002c34: 00020eb7 lui t4,0x20
+80002c38: 00500193 li gp,5
+80002c3c: 53df1463 bne t5,t4,80003164 <fail>
+
+80002c40 <test_6>:
+80002c40: 800000b7 lui ra,0x80000
+80002c44: 00108093 addi ra,ra,1 # 80000001 <_end+0xffff9c09>
+80002c48: 01f00113 li sp,31
+80002c4c: 0020df33 srl t5,ra,sp
+80002c50: 00100e93 li t4,1
+80002c54: 00600193 li gp,6
+80002c58: 51df1663 bne t5,t4,80003164 <fail>
+
+80002c5c <test_7>:
+80002c5c: fff00093 li ra,-1
+80002c60: 00000113 li sp,0
+80002c64: 0020df33 srl t5,ra,sp
+80002c68: fff00e93 li t4,-1
+80002c6c: 00700193 li gp,7
+80002c70: 4fdf1a63 bne t5,t4,80003164 <fail>
+
+80002c74 <test_8>:
+80002c74: fff00093 li ra,-1
+80002c78: 00100113 li sp,1
+80002c7c: 0020df33 srl t5,ra,sp
+80002c80: 80000eb7 lui t4,0x80000
+80002c84: fffe8e93 addi t4,t4,-1 # 7fffffff <_end+0xffff9c07>
+80002c88: 00800193 li gp,8
+80002c8c: 4ddf1c63 bne t5,t4,80003164 <fail>
+
+80002c90 <test_9>:
+80002c90: fff00093 li ra,-1
+80002c94: 00700113 li sp,7
+80002c98: 0020df33 srl t5,ra,sp
+80002c9c: 02000eb7 lui t4,0x2000
+80002ca0: fffe8e93 addi t4,t4,-1 # 1ffffff <_start-0x7e000001>
+80002ca4: 00900193 li gp,9
+80002ca8: 4bdf1e63 bne t5,t4,80003164 <fail>
+
+80002cac <test_10>:
+80002cac: fff00093 li ra,-1
+80002cb0: 00e00113 li sp,14
+80002cb4: 0020df33 srl t5,ra,sp
+80002cb8: 00040eb7 lui t4,0x40
+80002cbc: fffe8e93 addi t4,t4,-1 # 3ffff <_start-0x7ffc0001>
+80002cc0: 00a00193 li gp,10
+80002cc4: 4bdf1063 bne t5,t4,80003164 <fail>
+
+80002cc8 <test_11>:
+80002cc8: fff00093 li ra,-1
+80002ccc: 01f00113 li sp,31
+80002cd0: 0020df33 srl t5,ra,sp
+80002cd4: 00100e93 li t4,1
+80002cd8: 00b00193 li gp,11
+80002cdc: 49df1463 bne t5,t4,80003164 <fail>
+
+80002ce0 <test_12>:
+80002ce0: 212120b7 lui ra,0x21212
+80002ce4: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
+80002ce8: 00000113 li sp,0
+80002cec: 0020df33 srl t5,ra,sp
+80002cf0: 21212eb7 lui t4,0x21212
+80002cf4: 121e8e93 addi t4,t4,289 # 21212121 <_start-0x5edededf>
+80002cf8: 00c00193 li gp,12
+80002cfc: 47df1463 bne t5,t4,80003164 <fail>
+
+80002d00 <test_13>:
+80002d00: 212120b7 lui ra,0x21212
+80002d04: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
+80002d08: 00100113 li sp,1
+80002d0c: 0020df33 srl t5,ra,sp
+80002d10: 10909eb7 lui t4,0x10909
+80002d14: 090e8e93 addi t4,t4,144 # 10909090 <_start-0x6f6f6f70>
+80002d18: 00d00193 li gp,13
+80002d1c: 45df1463 bne t5,t4,80003164 <fail>
+
+80002d20 <test_14>:
+80002d20: 212120b7 lui ra,0x21212
+80002d24: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
+80002d28: 00700113 li sp,7
+80002d2c: 0020df33 srl t5,ra,sp
+80002d30: 00424eb7 lui t4,0x424
+80002d34: 242e8e93 addi t4,t4,578 # 424242 <_start-0x7fbdbdbe>
+80002d38: 00e00193 li gp,14
+80002d3c: 43df1463 bne t5,t4,80003164 <fail>
+
+80002d40 <test_15>:
+80002d40: 212120b7 lui ra,0x21212
+80002d44: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
+80002d48: 00e00113 li sp,14
+80002d4c: 0020df33 srl t5,ra,sp
+80002d50: 00008eb7 lui t4,0x8
+80002d54: 484e8e93 addi t4,t4,1156 # 8484 <_start-0x7fff7b7c>
+80002d58: 00f00193 li gp,15
+80002d5c: 41df1463 bne t5,t4,80003164 <fail>
+
+80002d60 <test_16>:
+80002d60: 212120b7 lui ra,0x21212
+80002d64: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
+80002d68: 01f00113 li sp,31
+80002d6c: 0020df33 srl t5,ra,sp
+80002d70: 00000e93 li t4,0
+80002d74: 01000193 li gp,16
+80002d78: 3fdf1663 bne t5,t4,80003164 <fail>
+
+80002d7c <test_17>:
+80002d7c: 212120b7 lui ra,0x21212
+80002d80: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
+80002d84: fc000113 li sp,-64
+80002d88: 0020df33 srl t5,ra,sp
+80002d8c: 21212eb7 lui t4,0x21212
+80002d90: 121e8e93 addi t4,t4,289 # 21212121 <_start-0x5edededf>
+80002d94: 01100193 li gp,17
+80002d98: 3ddf1663 bne t5,t4,80003164 <fail>
+
+80002d9c <test_18>:
+80002d9c: 212120b7 lui ra,0x21212
+80002da0: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
+80002da4: fc100113 li sp,-63
+80002da8: 0020df33 srl t5,ra,sp
+80002dac: 10909eb7 lui t4,0x10909
+80002db0: 090e8e93 addi t4,t4,144 # 10909090 <_start-0x6f6f6f70>
+80002db4: 01200193 li gp,18
+80002db8: 3bdf1663 bne t5,t4,80003164 <fail>
+
+80002dbc <test_19>:
+80002dbc: 212120b7 lui ra,0x21212
+80002dc0: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
+80002dc4: fc700113 li sp,-57
+80002dc8: 0020df33 srl t5,ra,sp
+80002dcc: 00424eb7 lui t4,0x424
+80002dd0: 242e8e93 addi t4,t4,578 # 424242 <_start-0x7fbdbdbe>
+80002dd4: 01300193 li gp,19
+80002dd8: 39df1663 bne t5,t4,80003164 <fail>
+
+80002ddc <test_20>:
+80002ddc: 212120b7 lui ra,0x21212
+80002de0: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
+80002de4: fce00113 li sp,-50
+80002de8: 0020df33 srl t5,ra,sp
+80002dec: 00008eb7 lui t4,0x8
+80002df0: 484e8e93 addi t4,t4,1156 # 8484 <_start-0x7fff7b7c>
+80002df4: 01400193 li gp,20
+80002df8: 37df1663 bne t5,t4,80003164 <fail>
+
+80002dfc <test_21>:
+80002dfc: 212120b7 lui ra,0x21212
+80002e00: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
+80002e04: fff00113 li sp,-1
+80002e08: 0020df33 srl t5,ra,sp
+80002e0c: 00000e93 li t4,0
+80002e10: 01500193 li gp,21
+80002e14: 35df1863 bne t5,t4,80003164 <fail>
+
+80002e18 <test_22>:
+80002e18: 800000b7 lui ra,0x80000
+80002e1c: 00700113 li sp,7
+80002e20: 0020d0b3 srl ra,ra,sp
+80002e24: 01000eb7 lui t4,0x1000
+80002e28: 01600193 li gp,22
+80002e2c: 33d09c63 bne ra,t4,80003164 <fail>
+
+80002e30 <test_23>:
+80002e30: 800000b7 lui ra,0x80000
+80002e34: 00e00113 li sp,14
+80002e38: 0020d133 srl sp,ra,sp
+80002e3c: 00020eb7 lui t4,0x20
+80002e40: 01700193 li gp,23
+80002e44: 33d11063 bne sp,t4,80003164 <fail>
+
+80002e48 <test_24>:
+80002e48: 00700093 li ra,7
+80002e4c: 0010d0b3 srl ra,ra,ra
+80002e50: 00000e93 li t4,0
+80002e54: 01800193 li gp,24
+80002e58: 31d09663 bne ra,t4,80003164 <fail>
+
+80002e5c <test_25>:
+80002e5c: 00000213 li tp,0
+80002e60: 800000b7 lui ra,0x80000
+80002e64: 00700113 li sp,7
+80002e68: 0020df33 srl t5,ra,sp
+80002e6c: 000f0313 mv t1,t5
+80002e70: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e74: 00200293 li t0,2
+80002e78: fe5214e3 bne tp,t0,80002e60 <test_25+0x4>
+80002e7c: 01000eb7 lui t4,0x1000
+80002e80: 01900193 li gp,25
+80002e84: 2fd31063 bne t1,t4,80003164 <fail>
+
+80002e88 <test_26>:
+80002e88: 00000213 li tp,0
+80002e8c: 800000b7 lui ra,0x80000
+80002e90: 00e00113 li sp,14
+80002e94: 0020df33 srl t5,ra,sp
+80002e98: 00000013 nop
+80002e9c: 000f0313 mv t1,t5
+80002ea0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002ea4: 00200293 li t0,2
+80002ea8: fe5212e3 bne tp,t0,80002e8c <test_26+0x4>
+80002eac: 00020eb7 lui t4,0x20
+80002eb0: 01a00193 li gp,26
+80002eb4: 2bd31863 bne t1,t4,80003164 <fail>
+
+80002eb8 <test_27>:
+80002eb8: 00000213 li tp,0
+80002ebc: 800000b7 lui ra,0x80000
+80002ec0: 01f00113 li sp,31
+80002ec4: 0020df33 srl t5,ra,sp
+80002ec8: 00000013 nop
+80002ecc: 00000013 nop
+80002ed0: 000f0313 mv t1,t5
+80002ed4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002ed8: 00200293 li t0,2
+80002edc: fe5210e3 bne tp,t0,80002ebc <test_27+0x4>
+80002ee0: 00100e93 li t4,1
+80002ee4: 01b00193 li gp,27
+80002ee8: 27d31e63 bne t1,t4,80003164 <fail>
+
+80002eec <test_28>:
+80002eec: 00000213 li tp,0
+80002ef0: 800000b7 lui ra,0x80000
+80002ef4: 00700113 li sp,7
+80002ef8: 0020df33 srl t5,ra,sp
+80002efc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002f00: 00200293 li t0,2
+80002f04: fe5216e3 bne tp,t0,80002ef0 <test_28+0x4>
+80002f08: 01000eb7 lui t4,0x1000
+80002f0c: 01c00193 li gp,28
+80002f10: 25df1a63 bne t5,t4,80003164 <fail>
+
+80002f14 <test_29>:
+80002f14: 00000213 li tp,0
+80002f18: 800000b7 lui ra,0x80000
+80002f1c: 00e00113 li sp,14
+80002f20: 00000013 nop
+80002f24: 0020df33 srl t5,ra,sp
+80002f28: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002f2c: 00200293 li t0,2
+80002f30: fe5214e3 bne tp,t0,80002f18 <test_29+0x4>
+80002f34: 00020eb7 lui t4,0x20
+80002f38: 01d00193 li gp,29
+80002f3c: 23df1463 bne t5,t4,80003164 <fail>
+
+80002f40 <test_30>:
+80002f40: 00000213 li tp,0
+80002f44: 800000b7 lui ra,0x80000
+80002f48: 01f00113 li sp,31
+80002f4c: 00000013 nop
+80002f50: 00000013 nop
+80002f54: 0020df33 srl t5,ra,sp
+80002f58: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002f5c: 00200293 li t0,2
+80002f60: fe5212e3 bne tp,t0,80002f44 <test_30+0x4>
+80002f64: 00100e93 li t4,1
+80002f68: 01e00193 li gp,30
+80002f6c: 1fdf1c63 bne t5,t4,80003164 <fail>
+
+80002f70 <test_31>:
+80002f70: 00000213 li tp,0
+80002f74: 800000b7 lui ra,0x80000
+80002f78: 00000013 nop
+80002f7c: 00700113 li sp,7
+80002f80: 0020df33 srl t5,ra,sp
+80002f84: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002f88: 00200293 li t0,2
+80002f8c: fe5214e3 bne tp,t0,80002f74 <test_31+0x4>
+80002f90: 01000eb7 lui t4,0x1000
+80002f94: 01f00193 li gp,31
+80002f98: 1ddf1663 bne t5,t4,80003164 <fail>
+
+80002f9c <test_32>:
+80002f9c: 00000213 li tp,0
+80002fa0: 800000b7 lui ra,0x80000
+80002fa4: 00000013 nop
+80002fa8: 00e00113 li sp,14
+80002fac: 00000013 nop
+80002fb0: 0020df33 srl t5,ra,sp
+80002fb4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002fb8: 00200293 li t0,2
+80002fbc: fe5212e3 bne tp,t0,80002fa0 <test_32+0x4>
+80002fc0: 00020eb7 lui t4,0x20
+80002fc4: 02000193 li gp,32
+80002fc8: 19df1e63 bne t5,t4,80003164 <fail>
+
+80002fcc <test_33>:
+80002fcc: 00000213 li tp,0
+80002fd0: 800000b7 lui ra,0x80000
+80002fd4: 00000013 nop
+80002fd8: 00000013 nop
+80002fdc: 01f00113 li sp,31
+80002fe0: 0020df33 srl t5,ra,sp
+80002fe4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002fe8: 00200293 li t0,2
+80002fec: fe5212e3 bne tp,t0,80002fd0 <test_33+0x4>
+80002ff0: 00100e93 li t4,1
+80002ff4: 02100193 li gp,33
+80002ff8: 17df1663 bne t5,t4,80003164 <fail>
+
+80002ffc <test_34>:
+80002ffc: 00000213 li tp,0
+80003000: 00700113 li sp,7
+80003004: 800000b7 lui ra,0x80000
+80003008: 0020df33 srl t5,ra,sp
+8000300c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80003010: 00200293 li t0,2
+80003014: fe5216e3 bne tp,t0,80003000 <test_34+0x4>
+80003018: 01000eb7 lui t4,0x1000
+8000301c: 02200193 li gp,34
+80003020: 15df1263 bne t5,t4,80003164 <fail>
+
+80003024 <test_35>:
+80003024: 00000213 li tp,0
+80003028: 00e00113 li sp,14
+8000302c: 800000b7 lui ra,0x80000
+80003030: 00000013 nop
+80003034: 0020df33 srl t5,ra,sp
+80003038: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000303c: 00200293 li t0,2
+80003040: fe5214e3 bne tp,t0,80003028 <test_35+0x4>
+80003044: 00020eb7 lui t4,0x20
+80003048: 02300193 li gp,35
+8000304c: 11df1c63 bne t5,t4,80003164 <fail>
+
+80003050 <test_36>:
+80003050: 00000213 li tp,0
+80003054: 01f00113 li sp,31
+80003058: 800000b7 lui ra,0x80000
+8000305c: 00000013 nop
+80003060: 00000013 nop
+80003064: 0020df33 srl t5,ra,sp
+80003068: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000306c: 00200293 li t0,2
+80003070: fe5212e3 bne tp,t0,80003054 <test_36+0x4>
+80003074: 00100e93 li t4,1
+80003078: 02400193 li gp,36
+8000307c: 0fdf1463 bne t5,t4,80003164 <fail>
+
+80003080 <test_37>:
+80003080: 00000213 li tp,0
+80003084: 00700113 li sp,7
+80003088: 00000013 nop
+8000308c: 800000b7 lui ra,0x80000
+80003090: 0020df33 srl t5,ra,sp
+80003094: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80003098: 00200293 li t0,2
+8000309c: fe5214e3 bne tp,t0,80003084 <test_37+0x4>
+800030a0: 01000eb7 lui t4,0x1000
+800030a4: 02500193 li gp,37
+800030a8: 0bdf1e63 bne t5,t4,80003164 <fail>
+
+800030ac <test_38>:
+800030ac: 00000213 li tp,0
+800030b0: 00e00113 li sp,14
+800030b4: 00000013 nop
+800030b8: 800000b7 lui ra,0x80000
+800030bc: 00000013 nop
+800030c0: 0020df33 srl t5,ra,sp
+800030c4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800030c8: 00200293 li t0,2
+800030cc: fe5212e3 bne tp,t0,800030b0 <test_38+0x4>
+800030d0: 00020eb7 lui t4,0x20
+800030d4: 02600193 li gp,38
+800030d8: 09df1663 bne t5,t4,80003164 <fail>
+
+800030dc <test_39>:
+800030dc: 00000213 li tp,0
+800030e0: 01f00113 li sp,31
+800030e4: 00000013 nop
+800030e8: 00000013 nop
+800030ec: 800000b7 lui ra,0x80000
+800030f0: 0020df33 srl t5,ra,sp
+800030f4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800030f8: 00200293 li t0,2
+800030fc: fe5212e3 bne tp,t0,800030e0 <test_39+0x4>
+80003100: 00100e93 li t4,1
+80003104: 02700193 li gp,39
+80003108: 05df1e63 bne t5,t4,80003164 <fail>
+
+8000310c <test_40>:
+8000310c: 00f00093 li ra,15
+80003110: 00105133 srl sp,zero,ra
+80003114: 00000e93 li t4,0
+80003118: 02800193 li gp,40
+8000311c: 05d11463 bne sp,t4,80003164 <fail>
+
+80003120 <test_41>:
+80003120: 02000093 li ra,32
+80003124: 0000d133 srl sp,ra,zero
+80003128: 02000e93 li t4,32
+8000312c: 02900193 li gp,41
+80003130: 03d11a63 bne sp,t4,80003164 <fail>
+
+80003134 <test_42>:
+80003134: 000050b3 srl ra,zero,zero
+80003138: 00000e93 li t4,0
+8000313c: 02a00193 li gp,42
+80003140: 03d09263 bne ra,t4,80003164 <fail>
+
+80003144 <test_43>:
+80003144: 40000093 li ra,1024
+80003148: 00001137 lui sp,0x1
+8000314c: 80010113 addi sp,sp,-2048 # 800 <_start-0x7ffff800>
+80003150: 0020d033 srl zero,ra,sp
+80003154: 00000e93 li t4,0
+80003158: 02b00193 li gp,43
+8000315c: 01d01463 bne zero,t4,80003164 <fail>
+80003160: 00301a63 bne zero,gp,80003174 <pass>
+
+80003164 <fail>:
+80003164: 00119513 slli a0,gp,0x1
+80003168: 00050063 beqz a0,80003168 <fail+0x4>
+8000316c: 00156513 ori a0,a0,1
+80003170: 00000073 ecall
+
+80003174 <pass>:
+80003174: 00100513 li a0,1
+80003178: 00000073 ecall
+8000317c: c0001073 unimp
diff --git a/test/riscv-tests/rv32ui-v-srl.elf b/test/riscv-tests/rv32ui-v-srl.elf
new file mode 100644
index 0000000..c3c52f9
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-srl.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-v-srli.dump b/test/riscv-tests/rv32ui-v-srli.dump
new file mode 100644
index 0000000..2b26a3a
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-srli.dump
@@ -0,0 +1,1124 @@
+
+rv32ui-v-srli: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00007117 auipc sp,0x7
+8000001c: 35010113 addi sp,sp,848 # 80007368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00002317 auipc t1,0x2
+80002370: c9430313 addi t1,t1,-876 # 80004000 <begin_signature>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00004797 auipc a5,0x4
+8000238c: 06c78793 addi a5,a5,108 # 800063f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00004717 auipc a4,0x4
+800023a0: 05470713 addi a4,a4,84 # 800063f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00004697 auipc a3,0x4
+800023ac: 04f6a623 sw a5,76(a3) # 800063f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00004717 auipc a4,0x4
+800023dc: e2070713 addi a4,a4,-480 # 800061f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf9c08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00004797 auipc a5,0x4
+800024bc: f207ac23 sw zero,-200(a5) # 800063f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00001597 auipc a1,0x1
+800024cc: 9d458593 addi a1,a1,-1580 # 80002e9c <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00001597 auipc a1,0x1
+8000253c: 9f058593 addi a1,a1,-1552 # 80002f28 <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00001597 auipc a1,0x1
+800025a8: 99c58593 addi a1,a1,-1636 # 80002f40 <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00001597 auipc a1,0x1
+80002614: 8d058593 addi a1,a1,-1840 # 80002ee0 <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00001597 auipc a1,0x1
+8000274c: 8c058593 addi a1,a1,-1856 # 80003008 <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00001597 auipc a1,0x1
+800027c0: 82858593 addi a1,a1,-2008 # 80002fe4 <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00004b17 auipc s6,0x4
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800061f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00001d17 auipc s10,0x1
+80002840: 7c4d0d13 addi s10,s10,1988 # 80004000 <begin_signature>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00004717 auipc a4,0x4
+8000285c: b8f72c23 sw a5,-1128(a4) # 800063f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00004717 auipc a4,0x4
+800028e8: b0c70713 addi a4,a4,-1268 # 800063f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00004717 auipc a4,0x4
+800028fc: aef72c23 sw a5,-1288(a4) # 800063f0 <freelist_tail>
+80002900: 00004717 auipc a4,0x4
+80002904: aef72a23 sw a5,-1292(a4) # 800063f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00000617 auipc a2,0x0
+80002914: 72460613 addi a2,a2,1828 # 80003034 <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00000617 auipc a2,0x0
+80002980: 63460613 addi a2,a2,1588 # 80002fb0 <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 5b460613 addi a2,a2,1460 # 80002f7c <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00002797 auipc a5,0x2
+80002a4c: 5b878793 addi a5,a5,1464 # 80005000 <begin_signature+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00001697 auipc a3,0x1
+80002a60: 5af6a223 sw a5,1444(a3) # 80004000 <begin_signature>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00001717 auipc a4,0x1
+80002a6c: 59870713 addi a4,a4,1432 # 80004000 <begin_signature>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00002697 auipc a3,0x2
+80002a7c: 58f6a223 sw a5,1412(a3) # 80004ffc <begin_signature+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf9ccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc03797 auipc a5,0x7fc03
+80002aec: 51878793 addi a5,a5,1304 # ffc06000 <_end+0x7fbffc08>
+80002af0: 00004717 auipc a4,0x4
+80002af4: 90f72223 sw a5,-1788(a4) # 800063f4 <freelist_head>
+80002af8: 7fc03797 auipc a5,0x7fc03
+80002afc: 6f878793 addi a5,a5,1784 # ffc061f0 <_end+0x7fbffdf8>
+80002b00: 00004717 auipc a4,0x4
+80002b04: 8ef72823 sw a5,-1808(a4) # 800063f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00003717 auipc a4,0x3
+80002b10: 4f470713 addi a4,a4,1268 # 80006000 <freelist_nodes>
+80002b14: 00003317 auipc t1,0x3
+80002b18: 6e430313 addi t1,t1,1764 # 800061f8 <user_mapping>
+80002b1c: 01000793 li a5,16
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00003797 auipc a5,0x3
+80002b6c: 6807a623 sw zero,1676(a5) # 800061f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 08bac7b7 lui a5,0x8bac
+80002b9c: 00080637 lui a2,0x80
+80002ba0: e3378793 addi a5,a5,-461 # 8babe33 <_start-0x774541cd>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: 800000b7 lui ra,0x80000
+80002be4: 0000df13 srli t5,ra,0x0
+80002be8: 80000eb7 lui t4,0x80000
+80002bec: 00200193 li gp,2
+80002bf0: 29df1863 bne t5,t4,80002e80 <fail>
+
+80002bf4 <test_3>:
+80002bf4: 800000b7 lui ra,0x80000
+80002bf8: 0010df13 srli t5,ra,0x1
+80002bfc: 40000eb7 lui t4,0x40000
+80002c00: 00300193 li gp,3
+80002c04: 27df1e63 bne t5,t4,80002e80 <fail>
+
+80002c08 <test_4>:
+80002c08: 800000b7 lui ra,0x80000
+80002c0c: 0070df13 srli t5,ra,0x7
+80002c10: 01000eb7 lui t4,0x1000
+80002c14: 00400193 li gp,4
+80002c18: 27df1463 bne t5,t4,80002e80 <fail>
+
+80002c1c <test_5>:
+80002c1c: 800000b7 lui ra,0x80000
+80002c20: 00e0df13 srli t5,ra,0xe
+80002c24: 00020eb7 lui t4,0x20
+80002c28: 00500193 li gp,5
+80002c2c: 25df1a63 bne t5,t4,80002e80 <fail>
+
+80002c30 <test_6>:
+80002c30: 800000b7 lui ra,0x80000
+80002c34: 00108093 addi ra,ra,1 # 80000001 <_end+0xffff9c09>
+80002c38: 01f0df13 srli t5,ra,0x1f
+80002c3c: 00100e93 li t4,1
+80002c40: 00600193 li gp,6
+80002c44: 23df1e63 bne t5,t4,80002e80 <fail>
+
+80002c48 <test_7>:
+80002c48: fff00093 li ra,-1
+80002c4c: 0000df13 srli t5,ra,0x0
+80002c50: fff00e93 li t4,-1
+80002c54: 00700193 li gp,7
+80002c58: 23df1463 bne t5,t4,80002e80 <fail>
+
+80002c5c <test_8>:
+80002c5c: fff00093 li ra,-1
+80002c60: 0010df13 srli t5,ra,0x1
+80002c64: 80000eb7 lui t4,0x80000
+80002c68: fffe8e93 addi t4,t4,-1 # 7fffffff <_end+0xffff9c07>
+80002c6c: 00800193 li gp,8
+80002c70: 21df1863 bne t5,t4,80002e80 <fail>
+
+80002c74 <test_9>:
+80002c74: fff00093 li ra,-1
+80002c78: 0070df13 srli t5,ra,0x7
+80002c7c: 02000eb7 lui t4,0x2000
+80002c80: fffe8e93 addi t4,t4,-1 # 1ffffff <_start-0x7e000001>
+80002c84: 00900193 li gp,9
+80002c88: 1fdf1c63 bne t5,t4,80002e80 <fail>
+
+80002c8c <test_10>:
+80002c8c: fff00093 li ra,-1
+80002c90: 00e0df13 srli t5,ra,0xe
+80002c94: 00040eb7 lui t4,0x40
+80002c98: fffe8e93 addi t4,t4,-1 # 3ffff <_start-0x7ffc0001>
+80002c9c: 00a00193 li gp,10
+80002ca0: 1fdf1063 bne t5,t4,80002e80 <fail>
+
+80002ca4 <test_11>:
+80002ca4: fff00093 li ra,-1
+80002ca8: 01f0df13 srli t5,ra,0x1f
+80002cac: 00100e93 li t4,1
+80002cb0: 00b00193 li gp,11
+80002cb4: 1ddf1663 bne t5,t4,80002e80 <fail>
+
+80002cb8 <test_12>:
+80002cb8: 212120b7 lui ra,0x21212
+80002cbc: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
+80002cc0: 0000df13 srli t5,ra,0x0
+80002cc4: 21212eb7 lui t4,0x21212
+80002cc8: 121e8e93 addi t4,t4,289 # 21212121 <_start-0x5edededf>
+80002ccc: 00c00193 li gp,12
+80002cd0: 1bdf1863 bne t5,t4,80002e80 <fail>
+
+80002cd4 <test_13>:
+80002cd4: 212120b7 lui ra,0x21212
+80002cd8: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
+80002cdc: 0010df13 srli t5,ra,0x1
+80002ce0: 10909eb7 lui t4,0x10909
+80002ce4: 090e8e93 addi t4,t4,144 # 10909090 <_start-0x6f6f6f70>
+80002ce8: 00d00193 li gp,13
+80002cec: 19df1a63 bne t5,t4,80002e80 <fail>
+
+80002cf0 <test_14>:
+80002cf0: 212120b7 lui ra,0x21212
+80002cf4: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
+80002cf8: 0070df13 srli t5,ra,0x7
+80002cfc: 00424eb7 lui t4,0x424
+80002d00: 242e8e93 addi t4,t4,578 # 424242 <_start-0x7fbdbdbe>
+80002d04: 00e00193 li gp,14
+80002d08: 17df1c63 bne t5,t4,80002e80 <fail>
+
+80002d0c <test_15>:
+80002d0c: 212120b7 lui ra,0x21212
+80002d10: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
+80002d14: 00e0df13 srli t5,ra,0xe
+80002d18: 00008eb7 lui t4,0x8
+80002d1c: 484e8e93 addi t4,t4,1156 # 8484 <_start-0x7fff7b7c>
+80002d20: 00f00193 li gp,15
+80002d24: 15df1e63 bne t5,t4,80002e80 <fail>
+
+80002d28 <test_16>:
+80002d28: 212120b7 lui ra,0x21212
+80002d2c: 12108093 addi ra,ra,289 # 21212121 <_start-0x5edededf>
+80002d30: 01f0df13 srli t5,ra,0x1f
+80002d34: 00000e93 li t4,0
+80002d38: 01000193 li gp,16
+80002d3c: 15df1263 bne t5,t4,80002e80 <fail>
+
+80002d40 <test_17>:
+80002d40: 800000b7 lui ra,0x80000
+80002d44: 0070d093 srli ra,ra,0x7
+80002d48: 01000eb7 lui t4,0x1000
+80002d4c: 01100193 li gp,17
+80002d50: 13d09863 bne ra,t4,80002e80 <fail>
+
+80002d54 <test_18>:
+80002d54: 00000213 li tp,0
+80002d58: 800000b7 lui ra,0x80000
+80002d5c: 0070df13 srli t5,ra,0x7
+80002d60: 000f0313 mv t1,t5
+80002d64: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d68: 00200293 li t0,2
+80002d6c: fe5216e3 bne tp,t0,80002d58 <test_18+0x4>
+80002d70: 01000eb7 lui t4,0x1000
+80002d74: 01200193 li gp,18
+80002d78: 11d31463 bne t1,t4,80002e80 <fail>
+
+80002d7c <test_19>:
+80002d7c: 00000213 li tp,0
+80002d80: 800000b7 lui ra,0x80000
+80002d84: 00e0df13 srli t5,ra,0xe
+80002d88: 00000013 nop
+80002d8c: 000f0313 mv t1,t5
+80002d90: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d94: 00200293 li t0,2
+80002d98: fe5214e3 bne tp,t0,80002d80 <test_19+0x4>
+80002d9c: 00020eb7 lui t4,0x20
+80002da0: 01300193 li gp,19
+80002da4: 0dd31e63 bne t1,t4,80002e80 <fail>
+
+80002da8 <test_20>:
+80002da8: 00000213 li tp,0
+80002dac: 800000b7 lui ra,0x80000
+80002db0: 00108093 addi ra,ra,1 # 80000001 <_end+0xffff9c09>
+80002db4: 01f0df13 srli t5,ra,0x1f
+80002db8: 00000013 nop
+80002dbc: 00000013 nop
+80002dc0: 000f0313 mv t1,t5
+80002dc4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002dc8: 00200293 li t0,2
+80002dcc: fe5210e3 bne tp,t0,80002dac <test_20+0x4>
+80002dd0: 00100e93 li t4,1
+80002dd4: 01400193 li gp,20
+80002dd8: 0bd31463 bne t1,t4,80002e80 <fail>
+
+80002ddc <test_21>:
+80002ddc: 00000213 li tp,0
+80002de0: 800000b7 lui ra,0x80000
+80002de4: 0070df13 srli t5,ra,0x7
+80002de8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002dec: 00200293 li t0,2
+80002df0: fe5218e3 bne tp,t0,80002de0 <test_21+0x4>
+80002df4: 01000eb7 lui t4,0x1000
+80002df8: 01500193 li gp,21
+80002dfc: 09df1263 bne t5,t4,80002e80 <fail>
+
+80002e00 <test_22>:
+80002e00: 00000213 li tp,0
+80002e04: 800000b7 lui ra,0x80000
+80002e08: 00000013 nop
+80002e0c: 00e0df13 srli t5,ra,0xe
+80002e10: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e14: 00200293 li t0,2
+80002e18: fe5216e3 bne tp,t0,80002e04 <test_22+0x4>
+80002e1c: 00020eb7 lui t4,0x20
+80002e20: 01600193 li gp,22
+80002e24: 05df1e63 bne t5,t4,80002e80 <fail>
+
+80002e28 <test_23>:
+80002e28: 00000213 li tp,0
+80002e2c: 800000b7 lui ra,0x80000
+80002e30: 00108093 addi ra,ra,1 # 80000001 <_end+0xffff9c09>
+80002e34: 00000013 nop
+80002e38: 00000013 nop
+80002e3c: 01f0df13 srli t5,ra,0x1f
+80002e40: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e44: 00200293 li t0,2
+80002e48: fe5212e3 bne tp,t0,80002e2c <test_23+0x4>
+80002e4c: 00100e93 li t4,1
+80002e50: 01700193 li gp,23
+80002e54: 03df1663 bne t5,t4,80002e80 <fail>
+
+80002e58 <test_24>:
+80002e58: 00405093 srli ra,zero,0x4
+80002e5c: 00000e93 li t4,0
+80002e60: 01800193 li gp,24
+80002e64: 01d09e63 bne ra,t4,80002e80 <fail>
+
+80002e68 <test_25>:
+80002e68: 02100093 li ra,33
+80002e6c: 00a0d013 srli zero,ra,0xa
+80002e70: 00000e93 li t4,0
+80002e74: 01900193 li gp,25
+80002e78: 01d01463 bne zero,t4,80002e80 <fail>
+80002e7c: 00301a63 bne zero,gp,80002e90 <pass>
+
+80002e80 <fail>:
+80002e80: 00119513 slli a0,gp,0x1
+80002e84: 00050063 beqz a0,80002e84 <fail+0x4>
+80002e88: 00156513 ori a0,a0,1
+80002e8c: 00000073 ecall
+
+80002e90 <pass>:
+80002e90: 00100513 li a0,1
+80002e94: 00000073 ecall
+80002e98: c0001073 unimp
diff --git a/test/riscv-tests/rv32ui-v-srli.elf b/test/riscv-tests/rv32ui-v-srli.elf
new file mode 100644
index 0000000..f30158d
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-srli.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-v-sub.dump b/test/riscv-tests/rv32ui-v-sub.dump
new file mode 100644
index 0000000..8ab87f3
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-sub.dump
@@ -0,0 +1,1284 @@
+
+rv32ui-v-sub: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00007117 auipc sp,0x7
+8000001c: 35010113 addi sp,sp,848 # 80007368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00002317 auipc t1,0x2
+80002370: c9430313 addi t1,t1,-876 # 80004000 <begin_signature>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00004797 auipc a5,0x4
+8000238c: 06c78793 addi a5,a5,108 # 800063f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00004717 auipc a4,0x4
+800023a0: 05470713 addi a4,a4,84 # 800063f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00004697 auipc a3,0x4
+800023ac: 04f6a623 sw a5,76(a3) # 800063f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00004717 auipc a4,0x4
+800023dc: e2070713 addi a4,a4,-480 # 800061f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf9c08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00004797 auipc a5,0x4
+800024bc: f207ac23 sw zero,-200(a5) # 800063f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00001597 auipc a1,0x1
+800024cc: bf458593 addi a1,a1,-1036 # 800030bc <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00001597 auipc a1,0x1
+8000253c: c1058593 addi a1,a1,-1008 # 80003148 <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00001597 auipc a1,0x1
+800025a8: bbc58593 addi a1,a1,-1092 # 80003160 <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00001597 auipc a1,0x1
+80002614: af058593 addi a1,a1,-1296 # 80003100 <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00001597 auipc a1,0x1
+8000274c: ae058593 addi a1,a1,-1312 # 80003228 <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00001597 auipc a1,0x1
+800027c0: a4858593 addi a1,a1,-1464 # 80003204 <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00004b17 auipc s6,0x4
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800061f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00001d17 auipc s10,0x1
+80002840: 7c4d0d13 addi s10,s10,1988 # 80004000 <begin_signature>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00004717 auipc a4,0x4
+8000285c: b8f72c23 sw a5,-1128(a4) # 800063f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00004717 auipc a4,0x4
+800028e8: b0c70713 addi a4,a4,-1268 # 800063f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00004717 auipc a4,0x4
+800028fc: aef72c23 sw a5,-1288(a4) # 800063f0 <freelist_tail>
+80002900: 00004717 auipc a4,0x4
+80002904: aef72a23 sw a5,-1292(a4) # 800063f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00001617 auipc a2,0x1
+80002914: 94460613 addi a2,a2,-1724 # 80003254 <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00001617 auipc a2,0x1
+80002980: 85460613 addi a2,a2,-1964 # 800031d0 <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 7d460613 addi a2,a2,2004 # 8000319c <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00002797 auipc a5,0x2
+80002a4c: 5b878793 addi a5,a5,1464 # 80005000 <begin_signature+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00001697 auipc a3,0x1
+80002a60: 5af6a223 sw a5,1444(a3) # 80004000 <begin_signature>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00001717 auipc a4,0x1
+80002a6c: 59870713 addi a4,a4,1432 # 80004000 <begin_signature>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00002697 auipc a3,0x2
+80002a7c: 58f6a223 sw a5,1412(a3) # 80004ffc <begin_signature+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf9ccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc03797 auipc a5,0x7fc03
+80002aec: 51878793 addi a5,a5,1304 # ffc06000 <_end+0x7fbffc08>
+80002af0: 00004717 auipc a4,0x4
+80002af4: 90f72223 sw a5,-1788(a4) # 800063f4 <freelist_head>
+80002af8: 7fc03797 auipc a5,0x7fc03
+80002afc: 6f878793 addi a5,a5,1784 # ffc061f0 <_end+0x7fbffdf8>
+80002b00: 00004717 auipc a4,0x4
+80002b04: 8ef72823 sw a5,-1808(a4) # 800063f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00003717 auipc a4,0x3
+80002b10: 4f470713 addi a4,a4,1268 # 80006000 <freelist_nodes>
+80002b14: 00003317 auipc t1,0x3
+80002b18: 6e430313 addi t1,t1,1764 # 800061f8 <user_mapping>
+80002b1c: 03300793 li a5,51
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00003797 auipc a5,0x3
+80002b6c: 6807a623 sw zero,1676(a5) # 800061f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 059d47b7 lui a5,0x59d4
+80002b9c: 00080637 lui a2,0x80
+80002ba0: 07078793 addi a5,a5,112 # 59d4070 <_start-0x7a62bf90>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: 00000093 li ra,0
+80002be4: 00000113 li sp,0
+80002be8: 40208f33 sub t5,ra,sp
+80002bec: 00000e93 li t4,0
+80002bf0: 00200193 li gp,2
+80002bf4: 4bdf1663 bne t5,t4,800030a0 <fail>
+
+80002bf8 <test_3>:
+80002bf8: 00100093 li ra,1
+80002bfc: 00100113 li sp,1
+80002c00: 40208f33 sub t5,ra,sp
+80002c04: 00000e93 li t4,0
+80002c08: 00300193 li gp,3
+80002c0c: 49df1a63 bne t5,t4,800030a0 <fail>
+
+80002c10 <test_4>:
+80002c10: 00300093 li ra,3
+80002c14: 00700113 li sp,7
+80002c18: 40208f33 sub t5,ra,sp
+80002c1c: ffc00e93 li t4,-4
+80002c20: 00400193 li gp,4
+80002c24: 47df1e63 bne t5,t4,800030a0 <fail>
+
+80002c28 <test_5>:
+80002c28: 00000093 li ra,0
+80002c2c: ffff8137 lui sp,0xffff8
+80002c30: 40208f33 sub t5,ra,sp
+80002c34: 00008eb7 lui t4,0x8
+80002c38: 00500193 li gp,5
+80002c3c: 47df1263 bne t5,t4,800030a0 <fail>
+
+80002c40 <test_6>:
+80002c40: 800000b7 lui ra,0x80000
+80002c44: 00000113 li sp,0
+80002c48: 40208f33 sub t5,ra,sp
+80002c4c: 80000eb7 lui t4,0x80000
+80002c50: 00600193 li gp,6
+80002c54: 45df1663 bne t5,t4,800030a0 <fail>
+
+80002c58 <test_7>:
+80002c58: 800000b7 lui ra,0x80000
+80002c5c: ffff8137 lui sp,0xffff8
+80002c60: 40208f33 sub t5,ra,sp
+80002c64: 80008eb7 lui t4,0x80008
+80002c68: 00700193 li gp,7
+80002c6c: 43df1a63 bne t5,t4,800030a0 <fail>
+
+80002c70 <test_8>:
+80002c70: 00000093 li ra,0
+80002c74: 00008137 lui sp,0x8
+80002c78: fff10113 addi sp,sp,-1 # 7fff <_start-0x7fff8001>
+80002c7c: 40208f33 sub t5,ra,sp
+80002c80: ffff8eb7 lui t4,0xffff8
+80002c84: 001e8e93 addi t4,t4,1 # ffff8001 <_end+0x7fff1c09>
+80002c88: 00800193 li gp,8
+80002c8c: 41df1a63 bne t5,t4,800030a0 <fail>
+
+80002c90 <test_9>:
+80002c90: 800000b7 lui ra,0x80000
+80002c94: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffff9c07>
+80002c98: 00000113 li sp,0
+80002c9c: 40208f33 sub t5,ra,sp
+80002ca0: 80000eb7 lui t4,0x80000
+80002ca4: fffe8e93 addi t4,t4,-1 # 7fffffff <_end+0xffff9c07>
+80002ca8: 00900193 li gp,9
+80002cac: 3fdf1a63 bne t5,t4,800030a0 <fail>
+
+80002cb0 <test_10>:
+80002cb0: 800000b7 lui ra,0x80000
+80002cb4: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffff9c07>
+80002cb8: 00008137 lui sp,0x8
+80002cbc: fff10113 addi sp,sp,-1 # 7fff <_start-0x7fff8001>
+80002cc0: 40208f33 sub t5,ra,sp
+80002cc4: 7fff8eb7 lui t4,0x7fff8
+80002cc8: 00a00193 li gp,10
+80002ccc: 3ddf1a63 bne t5,t4,800030a0 <fail>
+
+80002cd0 <test_11>:
+80002cd0: 800000b7 lui ra,0x80000
+80002cd4: 00008137 lui sp,0x8
+80002cd8: fff10113 addi sp,sp,-1 # 7fff <_start-0x7fff8001>
+80002cdc: 40208f33 sub t5,ra,sp
+80002ce0: 7fff8eb7 lui t4,0x7fff8
+80002ce4: 001e8e93 addi t4,t4,1 # 7fff8001 <_start-0x7fff>
+80002ce8: 00b00193 li gp,11
+80002cec: 3bdf1a63 bne t5,t4,800030a0 <fail>
+
+80002cf0 <test_12>:
+80002cf0: 800000b7 lui ra,0x80000
+80002cf4: fff08093 addi ra,ra,-1 # 7fffffff <_end+0xffff9c07>
+80002cf8: ffff8137 lui sp,0xffff8
+80002cfc: 40208f33 sub t5,ra,sp
+80002d00: 80008eb7 lui t4,0x80008
+80002d04: fffe8e93 addi t4,t4,-1 # 80007fff <_end+0x1c07>
+80002d08: 00c00193 li gp,12
+80002d0c: 39df1a63 bne t5,t4,800030a0 <fail>
+
+80002d10 <test_13>:
+80002d10: 00000093 li ra,0
+80002d14: fff00113 li sp,-1
+80002d18: 40208f33 sub t5,ra,sp
+80002d1c: 00100e93 li t4,1
+80002d20: 00d00193 li gp,13
+80002d24: 37df1e63 bne t5,t4,800030a0 <fail>
+
+80002d28 <test_14>:
+80002d28: fff00093 li ra,-1
+80002d2c: 00100113 li sp,1
+80002d30: 40208f33 sub t5,ra,sp
+80002d34: ffe00e93 li t4,-2
+80002d38: 00e00193 li gp,14
+80002d3c: 37df1263 bne t5,t4,800030a0 <fail>
+
+80002d40 <test_15>:
+80002d40: fff00093 li ra,-1
+80002d44: fff00113 li sp,-1
+80002d48: 40208f33 sub t5,ra,sp
+80002d4c: 00000e93 li t4,0
+80002d50: 00f00193 li gp,15
+80002d54: 35df1663 bne t5,t4,800030a0 <fail>
+
+80002d58 <test_16>:
+80002d58: 00d00093 li ra,13
+80002d5c: 00b00113 li sp,11
+80002d60: 402080b3 sub ra,ra,sp
+80002d64: 00200e93 li t4,2
+80002d68: 01000193 li gp,16
+80002d6c: 33d09a63 bne ra,t4,800030a0 <fail>
+
+80002d70 <test_17>:
+80002d70: 00e00093 li ra,14
+80002d74: 00b00113 li sp,11
+80002d78: 40208133 sub sp,ra,sp
+80002d7c: 00300e93 li t4,3
+80002d80: 01100193 li gp,17
+80002d84: 31d11e63 bne sp,t4,800030a0 <fail>
+
+80002d88 <test_18>:
+80002d88: 00d00093 li ra,13
+80002d8c: 401080b3 sub ra,ra,ra
+80002d90: 00000e93 li t4,0
+80002d94: 01200193 li gp,18
+80002d98: 31d09463 bne ra,t4,800030a0 <fail>
+
+80002d9c <test_19>:
+80002d9c: 00000213 li tp,0
+80002da0: 00d00093 li ra,13
+80002da4: 00b00113 li sp,11
+80002da8: 40208f33 sub t5,ra,sp
+80002dac: 000f0313 mv t1,t5
+80002db0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002db4: 00200293 li t0,2
+80002db8: fe5214e3 bne tp,t0,80002da0 <test_19+0x4>
+80002dbc: 00200e93 li t4,2
+80002dc0: 01300193 li gp,19
+80002dc4: 2dd31e63 bne t1,t4,800030a0 <fail>
+
+80002dc8 <test_20>:
+80002dc8: 00000213 li tp,0
+80002dcc: 00e00093 li ra,14
+80002dd0: 00b00113 li sp,11
+80002dd4: 40208f33 sub t5,ra,sp
+80002dd8: 00000013 nop
+80002ddc: 000f0313 mv t1,t5
+80002de0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002de4: 00200293 li t0,2
+80002de8: fe5212e3 bne tp,t0,80002dcc <test_20+0x4>
+80002dec: 00300e93 li t4,3
+80002df0: 01400193 li gp,20
+80002df4: 2bd31663 bne t1,t4,800030a0 <fail>
+
+80002df8 <test_21>:
+80002df8: 00000213 li tp,0
+80002dfc: 00f00093 li ra,15
+80002e00: 00b00113 li sp,11
+80002e04: 40208f33 sub t5,ra,sp
+80002e08: 00000013 nop
+80002e0c: 00000013 nop
+80002e10: 000f0313 mv t1,t5
+80002e14: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e18: 00200293 li t0,2
+80002e1c: fe5210e3 bne tp,t0,80002dfc <test_21+0x4>
+80002e20: 00400e93 li t4,4
+80002e24: 01500193 li gp,21
+80002e28: 27d31c63 bne t1,t4,800030a0 <fail>
+
+80002e2c <test_22>:
+80002e2c: 00000213 li tp,0
+80002e30: 00d00093 li ra,13
+80002e34: 00b00113 li sp,11
+80002e38: 40208f33 sub t5,ra,sp
+80002e3c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e40: 00200293 li t0,2
+80002e44: fe5216e3 bne tp,t0,80002e30 <test_22+0x4>
+80002e48: 00200e93 li t4,2
+80002e4c: 01600193 li gp,22
+80002e50: 25df1863 bne t5,t4,800030a0 <fail>
+
+80002e54 <test_23>:
+80002e54: 00000213 li tp,0
+80002e58: 00e00093 li ra,14
+80002e5c: 00b00113 li sp,11
+80002e60: 00000013 nop
+80002e64: 40208f33 sub t5,ra,sp
+80002e68: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e6c: 00200293 li t0,2
+80002e70: fe5214e3 bne tp,t0,80002e58 <test_23+0x4>
+80002e74: 00300e93 li t4,3
+80002e78: 01700193 li gp,23
+80002e7c: 23df1263 bne t5,t4,800030a0 <fail>
+
+80002e80 <test_24>:
+80002e80: 00000213 li tp,0
+80002e84: 00f00093 li ra,15
+80002e88: 00b00113 li sp,11
+80002e8c: 00000013 nop
+80002e90: 00000013 nop
+80002e94: 40208f33 sub t5,ra,sp
+80002e98: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e9c: 00200293 li t0,2
+80002ea0: fe5212e3 bne tp,t0,80002e84 <test_24+0x4>
+80002ea4: 00400e93 li t4,4
+80002ea8: 01800193 li gp,24
+80002eac: 1fdf1a63 bne t5,t4,800030a0 <fail>
+
+80002eb0 <test_25>:
+80002eb0: 00000213 li tp,0
+80002eb4: 00d00093 li ra,13
+80002eb8: 00000013 nop
+80002ebc: 00b00113 li sp,11
+80002ec0: 40208f33 sub t5,ra,sp
+80002ec4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002ec8: 00200293 li t0,2
+80002ecc: fe5214e3 bne tp,t0,80002eb4 <test_25+0x4>
+80002ed0: 00200e93 li t4,2
+80002ed4: 01900193 li gp,25
+80002ed8: 1ddf1463 bne t5,t4,800030a0 <fail>
+
+80002edc <test_26>:
+80002edc: 00000213 li tp,0
+80002ee0: 00e00093 li ra,14
+80002ee4: 00000013 nop
+80002ee8: 00b00113 li sp,11
+80002eec: 00000013 nop
+80002ef0: 40208f33 sub t5,ra,sp
+80002ef4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002ef8: 00200293 li t0,2
+80002efc: fe5212e3 bne tp,t0,80002ee0 <test_26+0x4>
+80002f00: 00300e93 li t4,3
+80002f04: 01a00193 li gp,26
+80002f08: 19df1c63 bne t5,t4,800030a0 <fail>
+
+80002f0c <test_27>:
+80002f0c: 00000213 li tp,0
+80002f10: 00f00093 li ra,15
+80002f14: 00000013 nop
+80002f18: 00000013 nop
+80002f1c: 00b00113 li sp,11
+80002f20: 40208f33 sub t5,ra,sp
+80002f24: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002f28: 00200293 li t0,2
+80002f2c: fe5212e3 bne tp,t0,80002f10 <test_27+0x4>
+80002f30: 00400e93 li t4,4
+80002f34: 01b00193 li gp,27
+80002f38: 17df1463 bne t5,t4,800030a0 <fail>
+
+80002f3c <test_28>:
+80002f3c: 00000213 li tp,0
+80002f40: 00b00113 li sp,11
+80002f44: 00d00093 li ra,13
+80002f48: 40208f33 sub t5,ra,sp
+80002f4c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002f50: 00200293 li t0,2
+80002f54: fe5216e3 bne tp,t0,80002f40 <test_28+0x4>
+80002f58: 00200e93 li t4,2
+80002f5c: 01c00193 li gp,28
+80002f60: 15df1063 bne t5,t4,800030a0 <fail>
+
+80002f64 <test_29>:
+80002f64: 00000213 li tp,0
+80002f68: 00b00113 li sp,11
+80002f6c: 00e00093 li ra,14
+80002f70: 00000013 nop
+80002f74: 40208f33 sub t5,ra,sp
+80002f78: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002f7c: 00200293 li t0,2
+80002f80: fe5214e3 bne tp,t0,80002f68 <test_29+0x4>
+80002f84: 00300e93 li t4,3
+80002f88: 01d00193 li gp,29
+80002f8c: 11df1a63 bne t5,t4,800030a0 <fail>
+
+80002f90 <test_30>:
+80002f90: 00000213 li tp,0
+80002f94: 00b00113 li sp,11
+80002f98: 00f00093 li ra,15
+80002f9c: 00000013 nop
+80002fa0: 00000013 nop
+80002fa4: 40208f33 sub t5,ra,sp
+80002fa8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002fac: 00200293 li t0,2
+80002fb0: fe5212e3 bne tp,t0,80002f94 <test_30+0x4>
+80002fb4: 00400e93 li t4,4
+80002fb8: 01e00193 li gp,30
+80002fbc: 0fdf1263 bne t5,t4,800030a0 <fail>
+
+80002fc0 <test_31>:
+80002fc0: 00000213 li tp,0
+80002fc4: 00b00113 li sp,11
+80002fc8: 00000013 nop
+80002fcc: 00d00093 li ra,13
+80002fd0: 40208f33 sub t5,ra,sp
+80002fd4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002fd8: 00200293 li t0,2
+80002fdc: fe5214e3 bne tp,t0,80002fc4 <test_31+0x4>
+80002fe0: 00200e93 li t4,2
+80002fe4: 01f00193 li gp,31
+80002fe8: 0bdf1c63 bne t5,t4,800030a0 <fail>
+
+80002fec <test_32>:
+80002fec: 00000213 li tp,0
+80002ff0: 00b00113 li sp,11
+80002ff4: 00000013 nop
+80002ff8: 00e00093 li ra,14
+80002ffc: 00000013 nop
+80003000: 40208f33 sub t5,ra,sp
+80003004: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80003008: 00200293 li t0,2
+8000300c: fe5212e3 bne tp,t0,80002ff0 <test_32+0x4>
+80003010: 00300e93 li t4,3
+80003014: 02000193 li gp,32
+80003018: 09df1463 bne t5,t4,800030a0 <fail>
+
+8000301c <test_33>:
+8000301c: 00000213 li tp,0
+80003020: 00b00113 li sp,11
+80003024: 00000013 nop
+80003028: 00000013 nop
+8000302c: 00f00093 li ra,15
+80003030: 40208f33 sub t5,ra,sp
+80003034: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80003038: 00200293 li t0,2
+8000303c: fe5212e3 bne tp,t0,80003020 <test_33+0x4>
+80003040: 00400e93 li t4,4
+80003044: 02100193 li gp,33
+80003048: 05df1c63 bne t5,t4,800030a0 <fail>
+
+8000304c <test_34>:
+8000304c: ff100093 li ra,-15
+80003050: 40100133 neg sp,ra
+80003054: 00f00e93 li t4,15
+80003058: 02200193 li gp,34
+8000305c: 05d11263 bne sp,t4,800030a0 <fail>
+
+80003060 <test_35>:
+80003060: 02000093 li ra,32
+80003064: 40008133 sub sp,ra,zero
+80003068: 02000e93 li t4,32
+8000306c: 02300193 li gp,35
+80003070: 03d11863 bne sp,t4,800030a0 <fail>
+
+80003074 <test_36>:
+80003074: 400000b3 neg ra,zero
+80003078: 00000e93 li t4,0
+8000307c: 02400193 li gp,36
+80003080: 03d09063 bne ra,t4,800030a0 <fail>
+
+80003084 <test_37>:
+80003084: 01000093 li ra,16
+80003088: 01e00113 li sp,30
+8000308c: 40208033 sub zero,ra,sp
+80003090: 00000e93 li t4,0
+80003094: 02500193 li gp,37
+80003098: 01d01463 bne zero,t4,800030a0 <fail>
+8000309c: 00301a63 bne zero,gp,800030b0 <pass>
+
+800030a0 <fail>:
+800030a0: 00119513 slli a0,gp,0x1
+800030a4: 00050063 beqz a0,800030a4 <fail+0x4>
+800030a8: 00156513 ori a0,a0,1
+800030ac: 00000073 ecall
+
+800030b0 <pass>:
+800030b0: 00100513 li a0,1
+800030b4: 00000073 ecall
+800030b8: c0001073 unimp
diff --git a/test/riscv-tests/rv32ui-v-sub.elf b/test/riscv-tests/rv32ui-v-sub.elf
new file mode 100644
index 0000000..7a06edd
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-sub.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-v-sw.dump b/test/riscv-tests/rv32ui-v-sw.dump
new file mode 100644
index 0000000..7e98073
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-sw.dump
@@ -0,0 +1,1273 @@
+
+rv32ui-v-sw: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00008117 auipc sp,0x8
+8000001c: 35010113 addi sp,sp,848 # 80008368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00003317 auipc t1,0x3
+80002370: c9430313 addi t1,t1,-876 # 80005000 <pt>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00005797 auipc a5,0x5
+8000238c: 06c78793 addi a5,a5,108 # 800073f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00005717 auipc a4,0x5
+800023a0: 05470713 addi a4,a4,84 # 800073f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00005697 auipc a3,0x5
+800023ac: 04f6a623 sw a5,76(a3) # 800073f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00005717 auipc a4,0x5
+800023dc: e2070713 addi a4,a4,-480 # 800071f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf8c08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00005797 auipc a5,0x5
+800024bc: f207ac23 sw zero,-200(a5) # 800073f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00001597 auipc a1,0x1
+800024cc: bb858593 addi a1,a1,-1096 # 80003080 <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00001597 auipc a1,0x1
+8000253c: bd458593 addi a1,a1,-1068 # 8000310c <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00001597 auipc a1,0x1
+800025a8: b8058593 addi a1,a1,-1152 # 80003124 <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00001597 auipc a1,0x1
+80002614: ab458593 addi a1,a1,-1356 # 800030c4 <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00001597 auipc a1,0x1
+8000274c: aa458593 addi a1,a1,-1372 # 800031ec <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00001597 auipc a1,0x1
+800027c0: a0c58593 addi a1,a1,-1524 # 800031c8 <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00005b17 auipc s6,0x5
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800071f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00002d17 auipc s10,0x2
+80002840: 7c4d0d13 addi s10,s10,1988 # 80005000 <pt>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00005717 auipc a4,0x5
+8000285c: b8f72c23 sw a5,-1128(a4) # 800073f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00005717 auipc a4,0x5
+800028e8: b0c70713 addi a4,a4,-1268 # 800073f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00005717 auipc a4,0x5
+800028fc: aef72c23 sw a5,-1288(a4) # 800073f0 <freelist_tail>
+80002900: 00005717 auipc a4,0x5
+80002904: aef72a23 sw a5,-1292(a4) # 800073f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00001617 auipc a2,0x1
+80002914: 90860613 addi a2,a2,-1784 # 80003218 <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00001617 auipc a2,0x1
+80002980: 81860613 addi a2,a2,-2024 # 80003194 <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 79860613 addi a2,a2,1944 # 80003160 <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00003797 auipc a5,0x3
+80002a4c: 5b878793 addi a5,a5,1464 # 80006000 <pt+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00002697 auipc a3,0x2
+80002a60: 5af6a223 sw a5,1444(a3) # 80005000 <pt>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00002717 auipc a4,0x2
+80002a6c: 59870713 addi a4,a4,1432 # 80005000 <pt>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00003697 auipc a3,0x3
+80002a7c: 58f6a223 sw a5,1412(a3) # 80005ffc <pt+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf8ccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc04797 auipc a5,0x7fc04
+80002aec: 51878793 addi a5,a5,1304 # ffc07000 <_end+0x7fbffc08>
+80002af0: 00005717 auipc a4,0x5
+80002af4: 90f72223 sw a5,-1788(a4) # 800073f4 <freelist_head>
+80002af8: 7fc04797 auipc a5,0x7fc04
+80002afc: 6f878793 addi a5,a5,1784 # ffc071f0 <_end+0x7fbffdf8>
+80002b00: 00005717 auipc a4,0x5
+80002b04: 8ef72823 sw a5,-1808(a4) # 800073f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00004717 auipc a4,0x4
+80002b10: 4f470713 addi a4,a4,1268 # 80007000 <freelist_nodes>
+80002b14: 00004317 auipc t1,0x4
+80002b18: 6e430313 addi t1,t1,1764 # 800071f8 <user_mapping>
+80002b1c: 03600793 li a5,54
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00004797 auipc a5,0x4
+80002b6c: 6807a623 sw zero,1676(a5) # 800071f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 01adb7b7 lui a5,0x1adb
+80002b9c: 00080637 lui a2,0x80
+80002ba0: faf78793 addi a5,a5,-81 # 1adafaf <_start-0x7e525051>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: 00001097 auipc ra,0x1
+80002be4: 42008093 addi ra,ra,1056 # 80004000 <begin_signature>
+80002be8: 00aa0137 lui sp,0xaa0
+80002bec: 0aa10113 addi sp,sp,170 # aa00aa <_start-0x7f55ff56>
+80002bf0: 0020a023 sw sp,0(ra)
+80002bf4: 0000af03 lw t5,0(ra)
+80002bf8: 00aa0eb7 lui t4,0xaa0
+80002bfc: 0aae8e93 addi t4,t4,170 # aa00aa <_start-0x7f55ff56>
+80002c00: 00200193 li gp,2
+80002c04: 47df1063 bne t5,t4,80003064 <fail>
+
+80002c08 <test_3>:
+80002c08: 00001097 auipc ra,0x1
+80002c0c: 3f808093 addi ra,ra,1016 # 80004000 <begin_signature>
+80002c10: aa00b137 lui sp,0xaa00b
+80002c14: a0010113 addi sp,sp,-1536 # aa00aa00 <_end+0x2a003608>
+80002c18: 0020a223 sw sp,4(ra)
+80002c1c: 0040af03 lw t5,4(ra)
+80002c20: aa00beb7 lui t4,0xaa00b
+80002c24: a00e8e93 addi t4,t4,-1536 # aa00aa00 <_end+0x2a003608>
+80002c28: 00300193 li gp,3
+80002c2c: 43df1c63 bne t5,t4,80003064 <fail>
+
+80002c30 <test_4>:
+80002c30: 00001097 auipc ra,0x1
+80002c34: 3d008093 addi ra,ra,976 # 80004000 <begin_signature>
+80002c38: 0aa01137 lui sp,0xaa01
+80002c3c: aa010113 addi sp,sp,-1376 # aa00aa0 <_start-0x755ff560>
+80002c40: 0020a423 sw sp,8(ra)
+80002c44: 0080af03 lw t5,8(ra)
+80002c48: 0aa01eb7 lui t4,0xaa01
+80002c4c: aa0e8e93 addi t4,t4,-1376 # aa00aa0 <_start-0x755ff560>
+80002c50: 00400193 li gp,4
+80002c54: 41df1863 bne t5,t4,80003064 <fail>
+
+80002c58 <test_5>:
+80002c58: 00001097 auipc ra,0x1
+80002c5c: 3a808093 addi ra,ra,936 # 80004000 <begin_signature>
+80002c60: a00aa137 lui sp,0xa00aa
+80002c64: 00a10113 addi sp,sp,10 # a00aa00a <_end+0x200a2c12>
+80002c68: 0020a623 sw sp,12(ra)
+80002c6c: 00c0af03 lw t5,12(ra)
+80002c70: a00aaeb7 lui t4,0xa00aa
+80002c74: 00ae8e93 addi t4,t4,10 # a00aa00a <_end+0x200a2c12>
+80002c78: 00500193 li gp,5
+80002c7c: 3fdf1463 bne t5,t4,80003064 <fail>
+
+80002c80 <test_6>:
+80002c80: 00001097 auipc ra,0x1
+80002c84: 39c08093 addi ra,ra,924 # 8000401c <tdat8>
+80002c88: 00aa0137 lui sp,0xaa0
+80002c8c: 0aa10113 addi sp,sp,170 # aa00aa <_start-0x7f55ff56>
+80002c90: fe20aa23 sw sp,-12(ra)
+80002c94: ff40af03 lw t5,-12(ra)
+80002c98: 00aa0eb7 lui t4,0xaa0
+80002c9c: 0aae8e93 addi t4,t4,170 # aa00aa <_start-0x7f55ff56>
+80002ca0: 00600193 li gp,6
+80002ca4: 3ddf1063 bne t5,t4,80003064 <fail>
+
+80002ca8 <test_7>:
+80002ca8: 00001097 auipc ra,0x1
+80002cac: 37408093 addi ra,ra,884 # 8000401c <tdat8>
+80002cb0: aa00b137 lui sp,0xaa00b
+80002cb4: a0010113 addi sp,sp,-1536 # aa00aa00 <_end+0x2a003608>
+80002cb8: fe20ac23 sw sp,-8(ra)
+80002cbc: ff80af03 lw t5,-8(ra)
+80002cc0: aa00beb7 lui t4,0xaa00b
+80002cc4: a00e8e93 addi t4,t4,-1536 # aa00aa00 <_end+0x2a003608>
+80002cc8: 00700193 li gp,7
+80002ccc: 39df1c63 bne t5,t4,80003064 <fail>
+
+80002cd0 <test_8>:
+80002cd0: 00001097 auipc ra,0x1
+80002cd4: 34c08093 addi ra,ra,844 # 8000401c <tdat8>
+80002cd8: 0aa01137 lui sp,0xaa01
+80002cdc: aa010113 addi sp,sp,-1376 # aa00aa0 <_start-0x755ff560>
+80002ce0: fe20ae23 sw sp,-4(ra)
+80002ce4: ffc0af03 lw t5,-4(ra)
+80002ce8: 0aa01eb7 lui t4,0xaa01
+80002cec: aa0e8e93 addi t4,t4,-1376 # aa00aa0 <_start-0x755ff560>
+80002cf0: 00800193 li gp,8
+80002cf4: 37df1863 bne t5,t4,80003064 <fail>
+
+80002cf8 <test_9>:
+80002cf8: 00001097 auipc ra,0x1
+80002cfc: 32408093 addi ra,ra,804 # 8000401c <tdat8>
+80002d00: a00aa137 lui sp,0xa00aa
+80002d04: 00a10113 addi sp,sp,10 # a00aa00a <_end+0x200a2c12>
+80002d08: 0020a023 sw sp,0(ra)
+80002d0c: 0000af03 lw t5,0(ra)
+80002d10: a00aaeb7 lui t4,0xa00aa
+80002d14: 00ae8e93 addi t4,t4,10 # a00aa00a <_end+0x200a2c12>
+80002d18: 00900193 li gp,9
+80002d1c: 35df1463 bne t5,t4,80003064 <fail>
+
+80002d20 <test_10>:
+80002d20: 00001097 auipc ra,0x1
+80002d24: 30008093 addi ra,ra,768 # 80004020 <tdat9>
+80002d28: 12345137 lui sp,0x12345
+80002d2c: 67810113 addi sp,sp,1656 # 12345678 <_start-0x6dcba988>
+80002d30: fe008213 addi tp,ra,-32
+80002d34: 02222023 sw sp,32(tp) # 20 <_start-0x7fffffe0>
+80002d38: 0000a283 lw t0,0(ra)
+80002d3c: 12345eb7 lui t4,0x12345
+80002d40: 678e8e93 addi t4,t4,1656 # 12345678 <_start-0x6dcba988>
+80002d44: 00a00193 li gp,10
+80002d48: 31d29e63 bne t0,t4,80003064 <fail>
+
+80002d4c <test_11>:
+80002d4c: 00001097 auipc ra,0x1
+80002d50: 2d408093 addi ra,ra,724 # 80004020 <tdat9>
+80002d54: 58213137 lui sp,0x58213
+80002d58: 09810113 addi sp,sp,152 # 58213098 <_start-0x27decf68>
+80002d5c: ffd08093 addi ra,ra,-3
+80002d60: 0020a3a3 sw sp,7(ra)
+80002d64: 00001217 auipc tp,0x1
+80002d68: 2c020213 addi tp,tp,704 # 80004024 <tdat10>
+80002d6c: 00022283 lw t0,0(tp) # 0 <_start-0x80000000>
+80002d70: 58213eb7 lui t4,0x58213
+80002d74: 098e8e93 addi t4,t4,152 # 58213098 <_start-0x27decf68>
+80002d78: 00b00193 li gp,11
+80002d7c: 2fd29463 bne t0,t4,80003064 <fail>
+
+80002d80 <test_12>:
+80002d80: 00c00193 li gp,12
+80002d84: 00000213 li tp,0
+80002d88: aabbd0b7 lui ra,0xaabbd
+80002d8c: cdd08093 addi ra,ra,-803 # aabbccdd <_end+0x2abb58e5>
+80002d90: 00001117 auipc sp,0x1
+80002d94: 27010113 addi sp,sp,624 # 80004000 <begin_signature>
+80002d98: 00112023 sw ra,0(sp)
+80002d9c: 00012f03 lw t5,0(sp)
+80002da0: aabbdeb7 lui t4,0xaabbd
+80002da4: cdde8e93 addi t4,t4,-803 # aabbccdd <_end+0x2abb58e5>
+80002da8: 2bdf1e63 bne t5,t4,80003064 <fail>
+80002dac: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002db0: 00200293 li t0,2
+80002db4: fc521ae3 bne tp,t0,80002d88 <test_12+0x8>
+
+80002db8 <test_13>:
+80002db8: 00d00193 li gp,13
+80002dbc: 00000213 li tp,0
+80002dc0: daabc0b7 lui ra,0xdaabc
+80002dc4: ccd08093 addi ra,ra,-819 # daabbccd <_end+0x5aab48d5>
+80002dc8: 00001117 auipc sp,0x1
+80002dcc: 23810113 addi sp,sp,568 # 80004000 <begin_signature>
+80002dd0: 00000013 nop
+80002dd4: 00112223 sw ra,4(sp)
+80002dd8: 00412f03 lw t5,4(sp)
+80002ddc: daabceb7 lui t4,0xdaabc
+80002de0: ccde8e93 addi t4,t4,-819 # daabbccd <_end+0x5aab48d5>
+80002de4: 29df1063 bne t5,t4,80003064 <fail>
+80002de8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002dec: 00200293 li t0,2
+80002df0: fc5218e3 bne tp,t0,80002dc0 <test_13+0x8>
+
+80002df4 <test_14>:
+80002df4: 00e00193 li gp,14
+80002df8: 00000213 li tp,0
+80002dfc: ddaac0b7 lui ra,0xddaac
+80002e00: bcc08093 addi ra,ra,-1076 # ddaabbcc <_end+0x5daa47d4>
+80002e04: 00001117 auipc sp,0x1
+80002e08: 1fc10113 addi sp,sp,508 # 80004000 <begin_signature>
+80002e0c: 00000013 nop
+80002e10: 00000013 nop
+80002e14: 00112423 sw ra,8(sp)
+80002e18: 00812f03 lw t5,8(sp)
+80002e1c: ddaaceb7 lui t4,0xddaac
+80002e20: bcce8e93 addi t4,t4,-1076 # ddaabbcc <_end+0x5daa47d4>
+80002e24: 25df1063 bne t5,t4,80003064 <fail>
+80002e28: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e2c: 00200293 li t0,2
+80002e30: fc5216e3 bne tp,t0,80002dfc <test_14+0x8>
+
+80002e34 <test_15>:
+80002e34: 00f00193 li gp,15
+80002e38: 00000213 li tp,0
+80002e3c: cddab0b7 lui ra,0xcddab
+80002e40: bbc08093 addi ra,ra,-1092 # cddaabbc <_end+0x4dda37c4>
+80002e44: 00000013 nop
+80002e48: 00001117 auipc sp,0x1
+80002e4c: 1b810113 addi sp,sp,440 # 80004000 <begin_signature>
+80002e50: 00112623 sw ra,12(sp)
+80002e54: 00c12f03 lw t5,12(sp)
+80002e58: cddabeb7 lui t4,0xcddab
+80002e5c: bbce8e93 addi t4,t4,-1092 # cddaabbc <_end+0x4dda37c4>
+80002e60: 21df1263 bne t5,t4,80003064 <fail>
+80002e64: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e68: 00200293 li t0,2
+80002e6c: fc5218e3 bne tp,t0,80002e3c <test_15+0x8>
+
+80002e70 <test_16>:
+80002e70: 01000193 li gp,16
+80002e74: 00000213 li tp,0
+80002e78: ccddb0b7 lui ra,0xccddb
+80002e7c: abb08093 addi ra,ra,-1349 # ccddaabb <_end+0x4cdd36c3>
+80002e80: 00000013 nop
+80002e84: 00001117 auipc sp,0x1
+80002e88: 17c10113 addi sp,sp,380 # 80004000 <begin_signature>
+80002e8c: 00000013 nop
+80002e90: 00112823 sw ra,16(sp)
+80002e94: 01012f03 lw t5,16(sp)
+80002e98: ccddbeb7 lui t4,0xccddb
+80002e9c: abbe8e93 addi t4,t4,-1349 # ccddaabb <_end+0x4cdd36c3>
+80002ea0: 1ddf1263 bne t5,t4,80003064 <fail>
+80002ea4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002ea8: 00200293 li t0,2
+80002eac: fc5216e3 bne tp,t0,80002e78 <test_16+0x8>
+
+80002eb0 <test_17>:
+80002eb0: 01100193 li gp,17
+80002eb4: 00000213 li tp,0
+80002eb8: bccde0b7 lui ra,0xbccde
+80002ebc: aab08093 addi ra,ra,-1365 # bccddaab <_end+0x3ccd66b3>
+80002ec0: 00000013 nop
+80002ec4: 00000013 nop
+80002ec8: 00001117 auipc sp,0x1
+80002ecc: 13810113 addi sp,sp,312 # 80004000 <begin_signature>
+80002ed0: 00112a23 sw ra,20(sp)
+80002ed4: 01412f03 lw t5,20(sp)
+80002ed8: bccdeeb7 lui t4,0xbccde
+80002edc: aabe8e93 addi t4,t4,-1365 # bccddaab <_end+0x3ccd66b3>
+80002ee0: 19df1263 bne t5,t4,80003064 <fail>
+80002ee4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002ee8: 00200293 li t0,2
+80002eec: fc5216e3 bne tp,t0,80002eb8 <test_17+0x8>
+
+80002ef0 <test_18>:
+80002ef0: 01200193 li gp,18
+80002ef4: 00000213 li tp,0
+80002ef8: 00001117 auipc sp,0x1
+80002efc: 10810113 addi sp,sp,264 # 80004000 <begin_signature>
+80002f00: 001120b7 lui ra,0x112
+80002f04: 23308093 addi ra,ra,563 # 112233 <_start-0x7feeddcd>
+80002f08: 00112023 sw ra,0(sp)
+80002f0c: 00012f03 lw t5,0(sp)
+80002f10: 00112eb7 lui t4,0x112
+80002f14: 233e8e93 addi t4,t4,563 # 112233 <_start-0x7feeddcd>
+80002f18: 15df1663 bne t5,t4,80003064 <fail>
+80002f1c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002f20: 00200293 li t0,2
+80002f24: fc521ae3 bne tp,t0,80002ef8 <test_18+0x8>
+
+80002f28 <test_19>:
+80002f28: 01300193 li gp,19
+80002f2c: 00000213 li tp,0
+80002f30: 00001117 auipc sp,0x1
+80002f34: 0d010113 addi sp,sp,208 # 80004000 <begin_signature>
+80002f38: 300110b7 lui ra,0x30011
+80002f3c: 22308093 addi ra,ra,547 # 30011223 <_start-0x4ffeeddd>
+80002f40: 00000013 nop
+80002f44: 00112223 sw ra,4(sp)
+80002f48: 00412f03 lw t5,4(sp)
+80002f4c: 30011eb7 lui t4,0x30011
+80002f50: 223e8e93 addi t4,t4,547 # 30011223 <_start-0x4ffeeddd>
+80002f54: 11df1863 bne t5,t4,80003064 <fail>
+80002f58: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002f5c: 00200293 li t0,2
+80002f60: fc5218e3 bne tp,t0,80002f30 <test_19+0x8>
+
+80002f64 <test_20>:
+80002f64: 01400193 li gp,20
+80002f68: 00000213 li tp,0
+80002f6c: 00001117 auipc sp,0x1
+80002f70: 09410113 addi sp,sp,148 # 80004000 <begin_signature>
+80002f74: 330010b7 lui ra,0x33001
+80002f78: 12208093 addi ra,ra,290 # 33001122 <_start-0x4cffeede>
+80002f7c: 00000013 nop
+80002f80: 00000013 nop
+80002f84: 00112423 sw ra,8(sp)
+80002f88: 00812f03 lw t5,8(sp)
+80002f8c: 33001eb7 lui t4,0x33001
+80002f90: 122e8e93 addi t4,t4,290 # 33001122 <_start-0x4cffeede>
+80002f94: 0ddf1863 bne t5,t4,80003064 <fail>
+80002f98: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002f9c: 00200293 li t0,2
+80002fa0: fc5216e3 bne tp,t0,80002f6c <test_20+0x8>
+
+80002fa4 <test_21>:
+80002fa4: 01500193 li gp,21
+80002fa8: 00000213 li tp,0
+80002fac: 00001117 auipc sp,0x1
+80002fb0: 05410113 addi sp,sp,84 # 80004000 <begin_signature>
+80002fb4: 00000013 nop
+80002fb8: 233000b7 lui ra,0x23300
+80002fbc: 11208093 addi ra,ra,274 # 23300112 <_start-0x5ccffeee>
+80002fc0: 00112623 sw ra,12(sp)
+80002fc4: 00c12f03 lw t5,12(sp)
+80002fc8: 23300eb7 lui t4,0x23300
+80002fcc: 112e8e93 addi t4,t4,274 # 23300112 <_start-0x5ccffeee>
+80002fd0: 09df1a63 bne t5,t4,80003064 <fail>
+80002fd4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002fd8: 00200293 li t0,2
+80002fdc: fc5218e3 bne tp,t0,80002fac <test_21+0x8>
+
+80002fe0 <test_22>:
+80002fe0: 01600193 li gp,22
+80002fe4: 00000213 li tp,0
+80002fe8: 00001117 auipc sp,0x1
+80002fec: 01810113 addi sp,sp,24 # 80004000 <begin_signature>
+80002ff0: 00000013 nop
+80002ff4: 223300b7 lui ra,0x22330
+80002ff8: 01108093 addi ra,ra,17 # 22330011 <_start-0x5dccffef>
+80002ffc: 00000013 nop
+80003000: 00112823 sw ra,16(sp)
+80003004: 01012f03 lw t5,16(sp)
+80003008: 22330eb7 lui t4,0x22330
+8000300c: 011e8e93 addi t4,t4,17 # 22330011 <_start-0x5dccffef>
+80003010: 05df1a63 bne t5,t4,80003064 <fail>
+80003014: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80003018: 00200293 li t0,2
+8000301c: fc5216e3 bne tp,t0,80002fe8 <test_22+0x8>
+
+80003020 <test_23>:
+80003020: 01700193 li gp,23
+80003024: 00000213 li tp,0
+80003028: 00001117 auipc sp,0x1
+8000302c: fd810113 addi sp,sp,-40 # 80004000 <begin_signature>
+80003030: 00000013 nop
+80003034: 00000013 nop
+80003038: 122330b7 lui ra,0x12233
+8000303c: 00108093 addi ra,ra,1 # 12233001 <_start-0x6ddccfff>
+80003040: 00112a23 sw ra,20(sp)
+80003044: 01412f03 lw t5,20(sp)
+80003048: 12233eb7 lui t4,0x12233
+8000304c: 001e8e93 addi t4,t4,1 # 12233001 <_start-0x6ddccfff>
+80003050: 01df1a63 bne t5,t4,80003064 <fail>
+80003054: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80003058: 00200293 li t0,2
+8000305c: fc5216e3 bne tp,t0,80003028 <test_23+0x8>
+80003060: 00301a63 bne zero,gp,80003074 <pass>
+
+80003064 <fail>:
+80003064: 00119513 slli a0,gp,0x1
+80003068: 00050063 beqz a0,80003068 <fail+0x4>
+8000306c: 00156513 ori a0,a0,1
+80003070: 00000073 ecall
+
+80003074 <pass>:
+80003074: 00100513 li a0,1
+80003078: 00000073 ecall
+8000307c: c0001073 unimp
+
+Disassembly of section .data:
+
+80004000 <begin_signature>:
+80004000: deadbeef jal t4,7ffdf5ea <_start-0x20a16>
+
+80004004 <tdat2>:
+80004004: deadbeef jal t4,7ffdf5ee <_start-0x20a12>
+
+80004008 <tdat3>:
+80004008: deadbeef jal t4,7ffdf5f2 <_start-0x20a0e>
+
+8000400c <tdat4>:
+8000400c: deadbeef jal t4,7ffdf5f6 <_start-0x20a0a>
+
+80004010 <tdat5>:
+80004010: deadbeef jal t4,7ffdf5fa <_start-0x20a06>
+
+80004014 <tdat6>:
+80004014: deadbeef jal t4,7ffdf5fe <_start-0x20a02>
+
+80004018 <tdat7>:
+80004018: deadbeef jal t4,7ffdf602 <_start-0x209fe>
+
+8000401c <tdat8>:
+8000401c: deadbeef jal t4,7ffdf606 <_start-0x209fa>
+
+80004020 <tdat9>:
+80004020: deadbeef jal t4,7ffdf60a <_start-0x209f6>
+
+80004024 <tdat10>:
+80004024: deadbeef jal t4,7ffdf60e <_start-0x209f2>
diff --git a/test/riscv-tests/rv32ui-v-sw.elf b/test/riscv-tests/rv32ui-v-sw.elf
new file mode 100644
index 0000000..90bad75
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-sw.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-v-xor.dump b/test/riscv-tests/rv32ui-v-xor.dump
new file mode 100644
index 0000000..de690b7
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-xor.dump
@@ -0,0 +1,1264 @@
+
+rv32ui-v-xor: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00007117 auipc sp,0x7
+8000001c: 35010113 addi sp,sp,848 # 80007368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00002317 auipc t1,0x2
+80002370: c9430313 addi t1,t1,-876 # 80004000 <begin_signature>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00004797 auipc a5,0x4
+8000238c: 06c78793 addi a5,a5,108 # 800063f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00004717 auipc a4,0x4
+800023a0: 05470713 addi a4,a4,84 # 800063f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00004697 auipc a3,0x4
+800023ac: 04f6a623 sw a5,76(a3) # 800063f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00004717 auipc a4,0x4
+800023dc: e2070713 addi a4,a4,-480 # 800061f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf9c08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00004797 auipc a5,0x4
+800024bc: f207ac23 sw zero,-200(a5) # 800063f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00001597 auipc a1,0x1
+800024cc: bf458593 addi a1,a1,-1036 # 800030bc <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00001597 auipc a1,0x1
+8000253c: c1058593 addi a1,a1,-1008 # 80003148 <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00001597 auipc a1,0x1
+800025a8: bbc58593 addi a1,a1,-1092 # 80003160 <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00001597 auipc a1,0x1
+80002614: af058593 addi a1,a1,-1296 # 80003100 <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00001597 auipc a1,0x1
+8000274c: ae058593 addi a1,a1,-1312 # 80003228 <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00001597 auipc a1,0x1
+800027c0: a4858593 addi a1,a1,-1464 # 80003204 <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00004b17 auipc s6,0x4
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800061f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00001d17 auipc s10,0x1
+80002840: 7c4d0d13 addi s10,s10,1988 # 80004000 <begin_signature>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00004717 auipc a4,0x4
+8000285c: b8f72c23 sw a5,-1128(a4) # 800063f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00004717 auipc a4,0x4
+800028e8: b0c70713 addi a4,a4,-1268 # 800063f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00004717 auipc a4,0x4
+800028fc: aef72c23 sw a5,-1288(a4) # 800063f0 <freelist_tail>
+80002900: 00004717 auipc a4,0x4
+80002904: aef72a23 sw a5,-1292(a4) # 800063f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00001617 auipc a2,0x1
+80002914: 94460613 addi a2,a2,-1724 # 80003254 <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00001617 auipc a2,0x1
+80002980: 85460613 addi a2,a2,-1964 # 800031d0 <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 7d460613 addi a2,a2,2004 # 8000319c <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00002797 auipc a5,0x2
+80002a4c: 5b878793 addi a5,a5,1464 # 80005000 <begin_signature+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00001697 auipc a3,0x1
+80002a60: 5af6a223 sw a5,1444(a3) # 80004000 <begin_signature>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00001717 auipc a4,0x1
+80002a6c: 59870713 addi a4,a4,1432 # 80004000 <begin_signature>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00002697 auipc a3,0x2
+80002a7c: 58f6a223 sw a5,1412(a3) # 80004ffc <begin_signature+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf9ccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc03797 auipc a5,0x7fc03
+80002aec: 51878793 addi a5,a5,1304 # ffc06000 <_end+0x7fbffc08>
+80002af0: 00004717 auipc a4,0x4
+80002af4: 90f72223 sw a5,-1788(a4) # 800063f4 <freelist_head>
+80002af8: 7fc03797 auipc a5,0x7fc03
+80002afc: 6f878793 addi a5,a5,1784 # ffc061f0 <_end+0x7fbffdf8>
+80002b00: 00004717 auipc a4,0x4
+80002b04: 8ef72823 sw a5,-1808(a4) # 800063f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00003717 auipc a4,0x3
+80002b10: 4f470713 addi a4,a4,1268 # 80006000 <freelist_nodes>
+80002b14: 00003317 auipc t1,0x3
+80002b18: 6e430313 addi t1,t1,1764 # 800061f8 <user_mapping>
+80002b1c: 01300793 li a5,19
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00003797 auipc a5,0x3
+80002b6c: 6807a623 sw zero,1676(a5) # 800061f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 009f77b7 lui a5,0x9f7
+80002b9c: 00080637 lui a2,0x80
+80002ba0: 2e778793 addi a5,a5,743 # 9f72e7 <_start-0x7f608d19>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: ff0100b7 lui ra,0xff010
+80002be4: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f009b08>
+80002be8: 0f0f1137 lui sp,0xf0f1
+80002bec: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80002bf0: 0020cf33 xor t5,ra,sp
+80002bf4: f00ffeb7 lui t4,0xf00ff
+80002bf8: 00fe8e93 addi t4,t4,15 # f00ff00f <_end+0x700f8c17>
+80002bfc: 00200193 li gp,2
+80002c00: 4bdf1063 bne t5,t4,800030a0 <fail>
+
+80002c04 <test_3>:
+80002c04: 0ff010b7 lui ra,0xff01
+80002c08: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+80002c0c: f0f0f137 lui sp,0xf0f0f
+80002c10: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f08cf8>
+80002c14: 0020cf33 xor t5,ra,sp
+80002c18: ff010eb7 lui t4,0xff010
+80002c1c: f00e8e93 addi t4,t4,-256 # ff00ff00 <_end+0x7f009b08>
+80002c20: 00300193 li gp,3
+80002c24: 47df1e63 bne t5,t4,800030a0 <fail>
+
+80002c28 <test_4>:
+80002c28: 00ff00b7 lui ra,0xff0
+80002c2c: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+80002c30: 0f0f1137 lui sp,0xf0f1
+80002c34: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80002c38: 0020cf33 xor t5,ra,sp
+80002c3c: 0ff01eb7 lui t4,0xff01
+80002c40: ff0e8e93 addi t4,t4,-16 # ff00ff0 <_start-0x700ff010>
+80002c44: 00400193 li gp,4
+80002c48: 45df1c63 bne t5,t4,800030a0 <fail>
+
+80002c4c <test_5>:
+80002c4c: f00ff0b7 lui ra,0xf00ff
+80002c50: 00f08093 addi ra,ra,15 # f00ff00f <_end+0x700f8c17>
+80002c54: f0f0f137 lui sp,0xf0f0f
+80002c58: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f08cf8>
+80002c5c: 0020cf33 xor t5,ra,sp
+80002c60: 00ff0eb7 lui t4,0xff0
+80002c64: 0ffe8e93 addi t4,t4,255 # ff00ff <_start-0x7f00ff01>
+80002c68: 00500193 li gp,5
+80002c6c: 43df1a63 bne t5,t4,800030a0 <fail>
+
+80002c70 <test_6>:
+80002c70: ff0100b7 lui ra,0xff010
+80002c74: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f009b08>
+80002c78: 0f0f1137 lui sp,0xf0f1
+80002c7c: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80002c80: 0020c0b3 xor ra,ra,sp
+80002c84: f00ffeb7 lui t4,0xf00ff
+80002c88: 00fe8e93 addi t4,t4,15 # f00ff00f <_end+0x700f8c17>
+80002c8c: 00600193 li gp,6
+80002c90: 41d09863 bne ra,t4,800030a0 <fail>
+
+80002c94 <test_7>:
+80002c94: ff0100b7 lui ra,0xff010
+80002c98: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f009b08>
+80002c9c: 0f0f1137 lui sp,0xf0f1
+80002ca0: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80002ca4: 0020c133 xor sp,ra,sp
+80002ca8: f00ffeb7 lui t4,0xf00ff
+80002cac: 00fe8e93 addi t4,t4,15 # f00ff00f <_end+0x700f8c17>
+80002cb0: 00700193 li gp,7
+80002cb4: 3fd11663 bne sp,t4,800030a0 <fail>
+
+80002cb8 <test_8>:
+80002cb8: ff0100b7 lui ra,0xff010
+80002cbc: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f009b08>
+80002cc0: 0010c0b3 xor ra,ra,ra
+80002cc4: 00000e93 li t4,0
+80002cc8: 00800193 li gp,8
+80002ccc: 3dd09a63 bne ra,t4,800030a0 <fail>
+
+80002cd0 <test_9>:
+80002cd0: 00000213 li tp,0
+80002cd4: ff0100b7 lui ra,0xff010
+80002cd8: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f009b08>
+80002cdc: 0f0f1137 lui sp,0xf0f1
+80002ce0: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80002ce4: 0020cf33 xor t5,ra,sp
+80002ce8: 000f0313 mv t1,t5
+80002cec: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002cf0: 00200293 li t0,2
+80002cf4: fe5210e3 bne tp,t0,80002cd4 <test_9+0x4>
+80002cf8: f00ffeb7 lui t4,0xf00ff
+80002cfc: 00fe8e93 addi t4,t4,15 # f00ff00f <_end+0x700f8c17>
+80002d00: 00900193 li gp,9
+80002d04: 39d31e63 bne t1,t4,800030a0 <fail>
+
+80002d08 <test_10>:
+80002d08: 00000213 li tp,0
+80002d0c: 0ff010b7 lui ra,0xff01
+80002d10: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+80002d14: f0f0f137 lui sp,0xf0f0f
+80002d18: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f08cf8>
+80002d1c: 0020cf33 xor t5,ra,sp
+80002d20: 00000013 nop
+80002d24: 000f0313 mv t1,t5
+80002d28: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d2c: 00200293 li t0,2
+80002d30: fc521ee3 bne tp,t0,80002d0c <test_10+0x4>
+80002d34: ff010eb7 lui t4,0xff010
+80002d38: f00e8e93 addi t4,t4,-256 # ff00ff00 <_end+0x7f009b08>
+80002d3c: 00a00193 li gp,10
+80002d40: 37d31063 bne t1,t4,800030a0 <fail>
+
+80002d44 <test_11>:
+80002d44: 00000213 li tp,0
+80002d48: 00ff00b7 lui ra,0xff0
+80002d4c: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+80002d50: 0f0f1137 lui sp,0xf0f1
+80002d54: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80002d58: 0020cf33 xor t5,ra,sp
+80002d5c: 00000013 nop
+80002d60: 00000013 nop
+80002d64: 000f0313 mv t1,t5
+80002d68: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d6c: 00200293 li t0,2
+80002d70: fc521ce3 bne tp,t0,80002d48 <test_11+0x4>
+80002d74: 0ff01eb7 lui t4,0xff01
+80002d78: ff0e8e93 addi t4,t4,-16 # ff00ff0 <_start-0x700ff010>
+80002d7c: 00b00193 li gp,11
+80002d80: 33d31063 bne t1,t4,800030a0 <fail>
+
+80002d84 <test_12>:
+80002d84: 00000213 li tp,0
+80002d88: ff0100b7 lui ra,0xff010
+80002d8c: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f009b08>
+80002d90: 0f0f1137 lui sp,0xf0f1
+80002d94: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80002d98: 0020cf33 xor t5,ra,sp
+80002d9c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002da0: 00200293 li t0,2
+80002da4: fe5212e3 bne tp,t0,80002d88 <test_12+0x4>
+80002da8: f00ffeb7 lui t4,0xf00ff
+80002dac: 00fe8e93 addi t4,t4,15 # f00ff00f <_end+0x700f8c17>
+80002db0: 00c00193 li gp,12
+80002db4: 2fdf1663 bne t5,t4,800030a0 <fail>
+
+80002db8 <test_13>:
+80002db8: 00000213 li tp,0
+80002dbc: 0ff010b7 lui ra,0xff01
+80002dc0: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+80002dc4: f0f0f137 lui sp,0xf0f0f
+80002dc8: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f08cf8>
+80002dcc: 00000013 nop
+80002dd0: 0020cf33 xor t5,ra,sp
+80002dd4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002dd8: 00200293 li t0,2
+80002ddc: fe5210e3 bne tp,t0,80002dbc <test_13+0x4>
+80002de0: ff010eb7 lui t4,0xff010
+80002de4: f00e8e93 addi t4,t4,-256 # ff00ff00 <_end+0x7f009b08>
+80002de8: 00d00193 li gp,13
+80002dec: 2bdf1a63 bne t5,t4,800030a0 <fail>
+
+80002df0 <test_14>:
+80002df0: 00000213 li tp,0
+80002df4: 00ff00b7 lui ra,0xff0
+80002df8: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+80002dfc: 0f0f1137 lui sp,0xf0f1
+80002e00: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80002e04: 00000013 nop
+80002e08: 00000013 nop
+80002e0c: 0020cf33 xor t5,ra,sp
+80002e10: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e14: 00200293 li t0,2
+80002e18: fc521ee3 bne tp,t0,80002df4 <test_14+0x4>
+80002e1c: 0ff01eb7 lui t4,0xff01
+80002e20: ff0e8e93 addi t4,t4,-16 # ff00ff0 <_start-0x700ff010>
+80002e24: 00e00193 li gp,14
+80002e28: 27df1c63 bne t5,t4,800030a0 <fail>
+
+80002e2c <test_15>:
+80002e2c: 00000213 li tp,0
+80002e30: ff0100b7 lui ra,0xff010
+80002e34: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f009b08>
+80002e38: 00000013 nop
+80002e3c: 0f0f1137 lui sp,0xf0f1
+80002e40: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80002e44: 0020cf33 xor t5,ra,sp
+80002e48: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e4c: 00200293 li t0,2
+80002e50: fe5210e3 bne tp,t0,80002e30 <test_15+0x4>
+80002e54: f00ffeb7 lui t4,0xf00ff
+80002e58: 00fe8e93 addi t4,t4,15 # f00ff00f <_end+0x700f8c17>
+80002e5c: 00f00193 li gp,15
+80002e60: 25df1063 bne t5,t4,800030a0 <fail>
+
+80002e64 <test_16>:
+80002e64: 00000213 li tp,0
+80002e68: 0ff010b7 lui ra,0xff01
+80002e6c: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+80002e70: 00000013 nop
+80002e74: f0f0f137 lui sp,0xf0f0f
+80002e78: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f08cf8>
+80002e7c: 00000013 nop
+80002e80: 0020cf33 xor t5,ra,sp
+80002e84: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e88: 00200293 li t0,2
+80002e8c: fc521ee3 bne tp,t0,80002e68 <test_16+0x4>
+80002e90: ff010eb7 lui t4,0xff010
+80002e94: f00e8e93 addi t4,t4,-256 # ff00ff00 <_end+0x7f009b08>
+80002e98: 01000193 li gp,16
+80002e9c: 21df1263 bne t5,t4,800030a0 <fail>
+
+80002ea0 <test_17>:
+80002ea0: 00000213 li tp,0
+80002ea4: 00ff00b7 lui ra,0xff0
+80002ea8: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+80002eac: 00000013 nop
+80002eb0: 00000013 nop
+80002eb4: 0f0f1137 lui sp,0xf0f1
+80002eb8: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80002ebc: 0020cf33 xor t5,ra,sp
+80002ec0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002ec4: 00200293 li t0,2
+80002ec8: fc521ee3 bne tp,t0,80002ea4 <test_17+0x4>
+80002ecc: 0ff01eb7 lui t4,0xff01
+80002ed0: ff0e8e93 addi t4,t4,-16 # ff00ff0 <_start-0x700ff010>
+80002ed4: 01100193 li gp,17
+80002ed8: 1ddf1463 bne t5,t4,800030a0 <fail>
+
+80002edc <test_18>:
+80002edc: 00000213 li tp,0
+80002ee0: 0f0f1137 lui sp,0xf0f1
+80002ee4: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80002ee8: ff0100b7 lui ra,0xff010
+80002eec: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f009b08>
+80002ef0: 0020cf33 xor t5,ra,sp
+80002ef4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002ef8: 00200293 li t0,2
+80002efc: fe5212e3 bne tp,t0,80002ee0 <test_18+0x4>
+80002f00: f00ffeb7 lui t4,0xf00ff
+80002f04: 00fe8e93 addi t4,t4,15 # f00ff00f <_end+0x700f8c17>
+80002f08: 01200193 li gp,18
+80002f0c: 19df1a63 bne t5,t4,800030a0 <fail>
+
+80002f10 <test_19>:
+80002f10: 00000213 li tp,0
+80002f14: f0f0f137 lui sp,0xf0f0f
+80002f18: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f08cf8>
+80002f1c: 0ff010b7 lui ra,0xff01
+80002f20: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+80002f24: 00000013 nop
+80002f28: 0020cf33 xor t5,ra,sp
+80002f2c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002f30: 00200293 li t0,2
+80002f34: fe5210e3 bne tp,t0,80002f14 <test_19+0x4>
+80002f38: ff010eb7 lui t4,0xff010
+80002f3c: f00e8e93 addi t4,t4,-256 # ff00ff00 <_end+0x7f009b08>
+80002f40: 01300193 li gp,19
+80002f44: 15df1e63 bne t5,t4,800030a0 <fail>
+
+80002f48 <test_20>:
+80002f48: 00000213 li tp,0
+80002f4c: 0f0f1137 lui sp,0xf0f1
+80002f50: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80002f54: 00ff00b7 lui ra,0xff0
+80002f58: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+80002f5c: 00000013 nop
+80002f60: 00000013 nop
+80002f64: 0020cf33 xor t5,ra,sp
+80002f68: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002f6c: 00200293 li t0,2
+80002f70: fc521ee3 bne tp,t0,80002f4c <test_20+0x4>
+80002f74: 0ff01eb7 lui t4,0xff01
+80002f78: ff0e8e93 addi t4,t4,-16 # ff00ff0 <_start-0x700ff010>
+80002f7c: 01400193 li gp,20
+80002f80: 13df1063 bne t5,t4,800030a0 <fail>
+
+80002f84 <test_21>:
+80002f84: 00000213 li tp,0
+80002f88: 0f0f1137 lui sp,0xf0f1
+80002f8c: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80002f90: 00000013 nop
+80002f94: ff0100b7 lui ra,0xff010
+80002f98: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f009b08>
+80002f9c: 0020cf33 xor t5,ra,sp
+80002fa0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002fa4: 00200293 li t0,2
+80002fa8: fe5210e3 bne tp,t0,80002f88 <test_21+0x4>
+80002fac: f00ffeb7 lui t4,0xf00ff
+80002fb0: 00fe8e93 addi t4,t4,15 # f00ff00f <_end+0x700f8c17>
+80002fb4: 01500193 li gp,21
+80002fb8: 0fdf1463 bne t5,t4,800030a0 <fail>
+
+80002fbc <test_22>:
+80002fbc: 00000213 li tp,0
+80002fc0: f0f0f137 lui sp,0xf0f0f
+80002fc4: 0f010113 addi sp,sp,240 # f0f0f0f0 <_end+0x70f08cf8>
+80002fc8: 00000013 nop
+80002fcc: 0ff010b7 lui ra,0xff01
+80002fd0: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+80002fd4: 00000013 nop
+80002fd8: 0020cf33 xor t5,ra,sp
+80002fdc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002fe0: 00200293 li t0,2
+80002fe4: fc521ee3 bne tp,t0,80002fc0 <test_22+0x4>
+80002fe8: ff010eb7 lui t4,0xff010
+80002fec: f00e8e93 addi t4,t4,-256 # ff00ff00 <_end+0x7f009b08>
+80002ff0: 01600193 li gp,22
+80002ff4: 0bdf1663 bne t5,t4,800030a0 <fail>
+
+80002ff8 <test_23>:
+80002ff8: 00000213 li tp,0
+80002ffc: 0f0f1137 lui sp,0xf0f1
+80003000: f0f10113 addi sp,sp,-241 # f0f0f0f <_start-0x70f0f0f1>
+80003004: 00000013 nop
+80003008: 00000013 nop
+8000300c: 00ff00b7 lui ra,0xff0
+80003010: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+80003014: 0020cf33 xor t5,ra,sp
+80003018: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000301c: 00200293 li t0,2
+80003020: fc521ee3 bne tp,t0,80002ffc <test_23+0x4>
+80003024: 0ff01eb7 lui t4,0xff01
+80003028: ff0e8e93 addi t4,t4,-16 # ff00ff0 <_start-0x700ff010>
+8000302c: 01700193 li gp,23
+80003030: 07df1863 bne t5,t4,800030a0 <fail>
+
+80003034 <test_24>:
+80003034: ff0100b7 lui ra,0xff010
+80003038: f0008093 addi ra,ra,-256 # ff00ff00 <_end+0x7f009b08>
+8000303c: 00104133 xor sp,zero,ra
+80003040: ff010eb7 lui t4,0xff010
+80003044: f00e8e93 addi t4,t4,-256 # ff00ff00 <_end+0x7f009b08>
+80003048: 01800193 li gp,24
+8000304c: 05d11a63 bne sp,t4,800030a0 <fail>
+
+80003050 <test_25>:
+80003050: 00ff00b7 lui ra,0xff0
+80003054: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+80003058: 0000c133 xor sp,ra,zero
+8000305c: 00ff0eb7 lui t4,0xff0
+80003060: 0ffe8e93 addi t4,t4,255 # ff00ff <_start-0x7f00ff01>
+80003064: 01900193 li gp,25
+80003068: 03d11c63 bne sp,t4,800030a0 <fail>
+
+8000306c <test_26>:
+8000306c: 000040b3 xor ra,zero,zero
+80003070: 00000e93 li t4,0
+80003074: 01a00193 li gp,26
+80003078: 03d09463 bne ra,t4,800030a0 <fail>
+
+8000307c <test_27>:
+8000307c: 111110b7 lui ra,0x11111
+80003080: 11108093 addi ra,ra,273 # 11111111 <_start-0x6eeeeeef>
+80003084: 22222137 lui sp,0x22222
+80003088: 22210113 addi sp,sp,546 # 22222222 <_start-0x5dddddde>
+8000308c: 0020c033 xor zero,ra,sp
+80003090: 00000e93 li t4,0
+80003094: 01b00193 li gp,27
+80003098: 01d01463 bne zero,t4,800030a0 <fail>
+8000309c: 00301a63 bne zero,gp,800030b0 <pass>
+
+800030a0 <fail>:
+800030a0: 00119513 slli a0,gp,0x1
+800030a4: 00050063 beqz a0,800030a4 <fail+0x4>
+800030a8: 00156513 ori a0,a0,1
+800030ac: 00000073 ecall
+
+800030b0 <pass>:
+800030b0: 00100513 li a0,1
+800030b4: 00000073 ecall
+800030b8: c0001073 unimp
diff --git a/test/riscv-tests/rv32ui-v-xor.elf b/test/riscv-tests/rv32ui-v-xor.elf
new file mode 100644
index 0000000..691e96d
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-xor.elf
Binary files differ
diff --git a/test/riscv-tests/rv32ui-v-xori.dump b/test/riscv-tests/rv32ui-v-xori.dump
new file mode 100644
index 0000000..b2fde9b
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-xori.dump
@@ -0,0 +1,1055 @@
+
+rv32ui-v-xori: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00006117 auipc sp,0x6
+8000001c: 35010113 addi sp,sp,848 # 80006368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00001317 auipc t1,0x1
+80002370: c9430313 addi t1,t1,-876 # 80003000 <begin_signature>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00003797 auipc a5,0x3
+8000238c: 06c78793 addi a5,a5,108 # 800053f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00003717 auipc a4,0x3
+800023a0: 05470713 addi a4,a4,84 # 800053f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00003697 auipc a3,0x3
+800023ac: 04f6a623 sw a5,76(a3) # 800053f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00003717 auipc a4,0x3
+800023dc: e2070713 addi a4,a4,-480 # 800051f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbfac08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00003797 auipc a5,0x3
+800024bc: f207ac23 sw zero,-200(a5) # 800053f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00001597 auipc a1,0x1
+800024cc: 91858593 addi a1,a1,-1768 # 80002de0 <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00001597 auipc a1,0x1
+8000253c: 93458593 addi a1,a1,-1740 # 80002e6c <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00001597 auipc a1,0x1
+800025a8: 8e058593 addi a1,a1,-1824 # 80002e84 <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00001597 auipc a1,0x1
+80002614: 81458593 addi a1,a1,-2028 # 80002e24 <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00001597 auipc a1,0x1
+8000274c: 80458593 addi a1,a1,-2044 # 80002f4c <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00000597 auipc a1,0x0
+800027c0: 76c58593 addi a1,a1,1900 # 80002f28 <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00003b17 auipc s6,0x3
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800051f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00000d17 auipc s10,0x0
+80002840: 7c4d0d13 addi s10,s10,1988 # 80003000 <begin_signature>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00003717 auipc a4,0x3
+8000285c: b8f72c23 sw a5,-1128(a4) # 800053f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00003717 auipc a4,0x3
+800028e8: b0c70713 addi a4,a4,-1268 # 800053f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00003717 auipc a4,0x3
+800028fc: aef72c23 sw a5,-1288(a4) # 800053f0 <freelist_tail>
+80002900: 00003717 auipc a4,0x3
+80002904: aef72a23 sw a5,-1292(a4) # 800053f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00000617 auipc a2,0x0
+80002914: 66860613 addi a2,a2,1640 # 80002f78 <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00000617 auipc a2,0x0
+80002980: 57860613 addi a2,a2,1400 # 80002ef4 <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 4f860613 addi a2,a2,1272 # 80002ec0 <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00001797 auipc a5,0x1
+80002a4c: 5b878793 addi a5,a5,1464 # 80004000 <begin_signature+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00000697 auipc a3,0x0
+80002a60: 5af6a223 sw a5,1444(a3) # 80003000 <begin_signature>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00000717 auipc a4,0x0
+80002a6c: 59870713 addi a4,a4,1432 # 80003000 <begin_signature>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00001697 auipc a3,0x1
+80002a7c: 58f6a223 sw a5,1412(a3) # 80003ffc <begin_signature+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbfaccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc02797 auipc a5,0x7fc02
+80002aec: 51878793 addi a5,a5,1304 # ffc05000 <_end+0x7fbffc08>
+80002af0: 00003717 auipc a4,0x3
+80002af4: 90f72223 sw a5,-1788(a4) # 800053f4 <freelist_head>
+80002af8: 7fc02797 auipc a5,0x7fc02
+80002afc: 6f878793 addi a5,a5,1784 # ffc051f0 <_end+0x7fbffdf8>
+80002b00: 00003717 auipc a4,0x3
+80002b04: 8ef72823 sw a5,-1808(a4) # 800053f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00002717 auipc a4,0x2
+80002b10: 4f470713 addi a4,a4,1268 # 80005000 <freelist_nodes>
+80002b14: 00002317 auipc t1,0x2
+80002b18: 6e430313 addi t1,t1,1764 # 800051f8 <user_mapping>
+80002b1c: 01200793 li a5,18
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00002797 auipc a5,0x2
+80002b6c: 6807a623 sw zero,1676(a5) # 800051f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 0d5857b7 lui a5,0xd585
+80002b9c: 00080637 lui a2,0x80
+80002ba0: 22078793 addi a5,a5,544 # d585220 <_start-0x72a7ade0>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: 00ff10b7 lui ra,0xff1
+80002be4: f0008093 addi ra,ra,-256 # ff0f00 <_start-0x7f00f100>
+80002be8: f0f0cf13 xori t5,ra,-241
+80002bec: ff00feb7 lui t4,0xff00f
+80002bf0: 00fe8e93 addi t4,t4,15 # ff00f00f <_end+0x7f009c17>
+80002bf4: 00200193 li gp,2
+80002bf8: 1ddf1663 bne t5,t4,80002dc4 <fail>
+
+80002bfc <test_3>:
+80002bfc: 0ff010b7 lui ra,0xff01
+80002c00: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+80002c04: 0f00cf13 xori t5,ra,240
+80002c08: 0ff01eb7 lui t4,0xff01
+80002c0c: f00e8e93 addi t4,t4,-256 # ff00f00 <_start-0x700ff100>
+80002c10: 00300193 li gp,3
+80002c14: 1bdf1863 bne t5,t4,80002dc4 <fail>
+
+80002c18 <test_4>:
+80002c18: 00ff10b7 lui ra,0xff1
+80002c1c: 8ff08093 addi ra,ra,-1793 # ff08ff <_start-0x7f00f701>
+80002c20: 70f0cf13 xori t5,ra,1807
+80002c24: 00ff1eb7 lui t4,0xff1
+80002c28: ff0e8e93 addi t4,t4,-16 # ff0ff0 <_start-0x7f00f010>
+80002c2c: 00400193 li gp,4
+80002c30: 19df1a63 bne t5,t4,80002dc4 <fail>
+
+80002c34 <test_5>:
+80002c34: f00ff0b7 lui ra,0xf00ff
+80002c38: 00f08093 addi ra,ra,15 # f00ff00f <_end+0x700f9c17>
+80002c3c: 0f00cf13 xori t5,ra,240
+80002c40: f00ffeb7 lui t4,0xf00ff
+80002c44: 0ffe8e93 addi t4,t4,255 # f00ff0ff <_end+0x700f9d07>
+80002c48: 00500193 li gp,5
+80002c4c: 17df1c63 bne t5,t4,80002dc4 <fail>
+
+80002c50 <test_6>:
+80002c50: ff00f0b7 lui ra,0xff00f
+80002c54: 70008093 addi ra,ra,1792 # ff00f700 <_end+0x7f00a308>
+80002c58: 70f0c093 xori ra,ra,1807
+80002c5c: ff00feb7 lui t4,0xff00f
+80002c60: 00fe8e93 addi t4,t4,15 # ff00f00f <_end+0x7f009c17>
+80002c64: 00600193 li gp,6
+80002c68: 15d09e63 bne ra,t4,80002dc4 <fail>
+
+80002c6c <test_7>:
+80002c6c: 00000213 li tp,0
+80002c70: 0ff010b7 lui ra,0xff01
+80002c74: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+80002c78: 0f00cf13 xori t5,ra,240
+80002c7c: 000f0313 mv t1,t5
+80002c80: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002c84: 00200293 li t0,2
+80002c88: fe5214e3 bne tp,t0,80002c70 <test_7+0x4>
+80002c8c: 0ff01eb7 lui t4,0xff01
+80002c90: f00e8e93 addi t4,t4,-256 # ff00f00 <_start-0x700ff100>
+80002c94: 00700193 li gp,7
+80002c98: 13d31663 bne t1,t4,80002dc4 <fail>
+
+80002c9c <test_8>:
+80002c9c: 00000213 li tp,0
+80002ca0: 00ff10b7 lui ra,0xff1
+80002ca4: 8ff08093 addi ra,ra,-1793 # ff08ff <_start-0x7f00f701>
+80002ca8: 70f0cf13 xori t5,ra,1807
+80002cac: 00000013 nop
+80002cb0: 000f0313 mv t1,t5
+80002cb4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002cb8: 00200293 li t0,2
+80002cbc: fe5212e3 bne tp,t0,80002ca0 <test_8+0x4>
+80002cc0: 00ff1eb7 lui t4,0xff1
+80002cc4: ff0e8e93 addi t4,t4,-16 # ff0ff0 <_start-0x7f00f010>
+80002cc8: 00800193 li gp,8
+80002ccc: 0fd31c63 bne t1,t4,80002dc4 <fail>
+
+80002cd0 <test_9>:
+80002cd0: 00000213 li tp,0
+80002cd4: f00ff0b7 lui ra,0xf00ff
+80002cd8: 00f08093 addi ra,ra,15 # f00ff00f <_end+0x700f9c17>
+80002cdc: 0f00cf13 xori t5,ra,240
+80002ce0: 00000013 nop
+80002ce4: 00000013 nop
+80002ce8: 000f0313 mv t1,t5
+80002cec: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002cf0: 00200293 li t0,2
+80002cf4: fe5210e3 bne tp,t0,80002cd4 <test_9+0x4>
+80002cf8: f00ffeb7 lui t4,0xf00ff
+80002cfc: 0ffe8e93 addi t4,t4,255 # f00ff0ff <_end+0x700f9d07>
+80002d00: 00900193 li gp,9
+80002d04: 0dd31063 bne t1,t4,80002dc4 <fail>
+
+80002d08 <test_10>:
+80002d08: 00000213 li tp,0
+80002d0c: 0ff010b7 lui ra,0xff01
+80002d10: ff008093 addi ra,ra,-16 # ff00ff0 <_start-0x700ff010>
+80002d14: 0f00cf13 xori t5,ra,240
+80002d18: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d1c: 00200293 li t0,2
+80002d20: fe5216e3 bne tp,t0,80002d0c <test_10+0x4>
+80002d24: 0ff01eb7 lui t4,0xff01
+80002d28: f00e8e93 addi t4,t4,-256 # ff00f00 <_start-0x700ff100>
+80002d2c: 00a00193 li gp,10
+80002d30: 09df1a63 bne t5,t4,80002dc4 <fail>
+
+80002d34 <test_11>:
+80002d34: 00000213 li tp,0
+80002d38: 00ff10b7 lui ra,0xff1
+80002d3c: fff08093 addi ra,ra,-1 # ff0fff <_start-0x7f00f001>
+80002d40: 00000013 nop
+80002d44: 00f0cf13 xori t5,ra,15
+80002d48: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d4c: 00200293 li t0,2
+80002d50: fe5214e3 bne tp,t0,80002d38 <test_11+0x4>
+80002d54: 00ff1eb7 lui t4,0xff1
+80002d58: ff0e8e93 addi t4,t4,-16 # ff0ff0 <_start-0x7f00f010>
+80002d5c: 00b00193 li gp,11
+80002d60: 07df1263 bne t5,t4,80002dc4 <fail>
+
+80002d64 <test_12>:
+80002d64: 00000213 li tp,0
+80002d68: f00ff0b7 lui ra,0xf00ff
+80002d6c: 00f08093 addi ra,ra,15 # f00ff00f <_end+0x700f9c17>
+80002d70: 00000013 nop
+80002d74: 00000013 nop
+80002d78: 0f00cf13 xori t5,ra,240
+80002d7c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d80: 00200293 li t0,2
+80002d84: fe5212e3 bne tp,t0,80002d68 <test_12+0x4>
+80002d88: f00ffeb7 lui t4,0xf00ff
+80002d8c: 0ffe8e93 addi t4,t4,255 # f00ff0ff <_end+0x700f9d07>
+80002d90: 00c00193 li gp,12
+80002d94: 03df1863 bne t5,t4,80002dc4 <fail>
+
+80002d98 <test_13>:
+80002d98: 0f004093 xori ra,zero,240
+80002d9c: 0f000e93 li t4,240
+80002da0: 00d00193 li gp,13
+80002da4: 03d09063 bne ra,t4,80002dc4 <fail>
+
+80002da8 <test_14>:
+80002da8: 00ff00b7 lui ra,0xff0
+80002dac: 0ff08093 addi ra,ra,255 # ff00ff <_start-0x7f00ff01>
+80002db0: 70f0c013 xori zero,ra,1807
+80002db4: 00000e93 li t4,0
+80002db8: 00e00193 li gp,14
+80002dbc: 01d01463 bne zero,t4,80002dc4 <fail>
+80002dc0: 00301a63 bne zero,gp,80002dd4 <pass>
+
+80002dc4 <fail>:
+80002dc4: 00119513 slli a0,gp,0x1
+80002dc8: 00050063 beqz a0,80002dc8 <fail+0x4>
+80002dcc: 00156513 ori a0,a0,1
+80002dd0: 00000073 ecall
+
+80002dd4 <pass>:
+80002dd4: 00100513 li a0,1
+80002dd8: 00000073 ecall
+80002ddc: c0001073 unimp
diff --git a/test/riscv-tests/rv32ui-v-xori.elf b/test/riscv-tests/rv32ui-v-xori.elf
new file mode 100644
index 0000000..5b92fde
--- /dev/null
+++ b/test/riscv-tests/rv32ui-v-xori.elf
Binary files differ
diff --git a/test/riscv-tests/rv32um-p-div.dump b/test/riscv-tests/rv32um-p-div.dump
new file mode 100644
index 0000000..74276c6
--- /dev/null
+++ b/test/riscv-tests/rv32um-p-div.dump
@@ -0,0 +1,168 @@
+
+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: 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: 01400093 li ra,20
+80000100: 00600113 li sp,6
+80000104: 0220cf33 div t5,ra,sp
+80000108: 00300e93 li t4,3
+8000010c: 00200193 li gp,2
+80000110: 0ddf1463 bne t5,t4,800001d8 <fail>
+
+80000114 <test_3>:
+80000114: fec00093 li ra,-20
+80000118: 00600113 li sp,6
+8000011c: 0220cf33 div t5,ra,sp
+80000120: ffd00e93 li t4,-3
+80000124: 00300193 li gp,3
+80000128: 0bdf1863 bne t5,t4,800001d8 <fail>
+
+8000012c <test_4>:
+8000012c: 01400093 li ra,20
+80000130: ffa00113 li sp,-6
+80000134: 0220cf33 div t5,ra,sp
+80000138: ffd00e93 li t4,-3
+8000013c: 00400193 li gp,4
+80000140: 09df1c63 bne t5,t4,800001d8 <fail>
+
+80000144 <test_5>:
+80000144: fec00093 li ra,-20
+80000148: ffa00113 li sp,-6
+8000014c: 0220cf33 div t5,ra,sp
+80000150: 00300e93 li t4,3
+80000154: 00500193 li gp,5
+80000158: 09df1063 bne t5,t4,800001d8 <fail>
+
+8000015c <test_6>:
+8000015c: 800000b7 lui ra,0x80000
+80000160: 00100113 li sp,1
+80000164: 0220cf33 div t5,ra,sp
+80000168: 80000eb7 lui t4,0x80000
+8000016c: 00600193 li gp,6
+80000170: 07df1463 bne t5,t4,800001d8 <fail>
+
+80000174 <test_7>:
+80000174: 800000b7 lui ra,0x80000
+80000178: fff00113 li sp,-1
+8000017c: 0220cf33 div t5,ra,sp
+80000180: 80000eb7 lui t4,0x80000
+80000184: 00700193 li gp,7
+80000188: 05df1863 bne t5,t4,800001d8 <fail>
+
+8000018c <test_8>:
+8000018c: 800000b7 lui ra,0x80000
+80000190: 00000113 li sp,0
+80000194: 0220cf33 div t5,ra,sp
+80000198: fff00e93 li t4,-1
+8000019c: 00800193 li gp,8
+800001a0: 03df1c63 bne t5,t4,800001d8 <fail>
+
+800001a4 <test_9>:
+800001a4: 00100093 li ra,1
+800001a8: 00000113 li sp,0
+800001ac: 0220cf33 div t5,ra,sp
+800001b0: fff00e93 li t4,-1
+800001b4: 00900193 li gp,9
+800001b8: 03df1063 bne t5,t4,800001d8 <fail>
+
+800001bc <test_10>:
+800001bc: 00000093 li ra,0
+800001c0: 00000113 li sp,0
+800001c4: 0220cf33 div t5,ra,sp
+800001c8: fff00e93 li t4,-1
+800001cc: 00a00193 li gp,10
+800001d0: 01df1463 bne t5,t4,800001d8 <fail>
+800001d4: 00301c63 bne zero,gp,800001ec <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: 00000073 ecall
+
+800001ec <pass>:
+800001ec: 0ff0000f fence
+800001f0: 00100193 li gp,1
+800001f4: 00000073 ecall
+800001f8: c0001073 unimp
+800001fc: 0000 unimp
+800001fe: 0000 unimp
+80000200: 0000 unimp
+80000202: 0000 unimp
diff --git a/test/riscv-tests/rv32um-p-div.elf b/test/riscv-tests/rv32um-p-div.elf
new file mode 100644
index 0000000..b5bf233
--- /dev/null
+++ b/test/riscv-tests/rv32um-p-div.elf
Binary files differ
diff --git a/test/riscv-tests/rv32um-p-divu.dump b/test/riscv-tests/rv32um-p-divu.dump
new file mode 100644
index 0000000..c76a827
--- /dev/null
+++ b/test/riscv-tests/rv32um-p-divu.dump
@@ -0,0 +1,167 @@
+
+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: 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: 01400093 li ra,20
+80000100: 00600113 li sp,6
+80000104: 0220df33 divu t5,ra,sp
+80000108: 00300e93 li t4,3
+8000010c: 00200193 li gp,2
+80000110: 0ddf1663 bne t5,t4,800001dc <fail>
+
+80000114 <test_3>:
+80000114: fec00093 li ra,-20
+80000118: 00600113 li sp,6
+8000011c: 0220df33 divu t5,ra,sp
+80000120: 2aaabeb7 lui t4,0x2aaab
+80000124: aa7e8e93 addi t4,t4,-1369 # 2aaaaaa7 <_start-0x55555559>
+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: 0220df33 divu t5,ra,sp
+8000013c: 00000e93 li t4,0
+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: 0220df33 divu t5,ra,sp
+80000154: 00000e93 li t4,0
+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: 0220df33 divu 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: 0220df33 divu 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: 0220df33 divu 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: 0220df33 divu 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: 0220df33 divu 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
diff --git a/test/riscv-tests/rv32um-p-divu.elf b/test/riscv-tests/rv32um-p-divu.elf
new file mode 100644
index 0000000..083a628
--- /dev/null
+++ b/test/riscv-tests/rv32um-p-divu.elf
Binary files differ
diff --git a/test/riscv-tests/rv32um-p-mul.dump b/test/riscv-tests/rv32um-p-mul.dump
new file mode 100644
index 0000000..e2ff04d
--- /dev/null
+++ b/test/riscv-tests/rv32um-p-mul.dump
@@ -0,0 +1,483 @@
+
+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: 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_32>
+800000f0: 34129073 csrw mepc,t0
+800000f4: f1402573 csrr a0,mhartid
+800000f8: 30200073 mret
+
+800000fc <test_32>:
+800000fc: 000080b7 lui ra,0x8
+80000100: e0008093 addi ra,ra,-512 # 7e00 <_start-0x7fff8200>
+80000104: b6db7137 lui sp,0xb6db7
+80000108: db710113 addi sp,sp,-585 # b6db6db7 <_end+0x36db4db7>
+8000010c: 02208f33 mul t5,ra,sp
+80000110: 00001eb7 lui t4,0x1
+80000114: 200e8e93 addi t4,t4,512 # 1200 <_start-0x7fffee00>
+80000118: 02000193 li gp,32
+8000011c: 4bdf1463 bne t5,t4,800005c4 <fail>
+
+80000120 <test_33>:
+80000120: 000080b7 lui ra,0x8
+80000124: fc008093 addi ra,ra,-64 # 7fc0 <_start-0x7fff8040>
+80000128: b6db7137 lui sp,0xb6db7
+8000012c: db710113 addi sp,sp,-585 # b6db6db7 <_end+0x36db4db7>
+80000130: 02208f33 mul t5,ra,sp
+80000134: 00001eb7 lui t4,0x1
+80000138: 240e8e93 addi t4,t4,576 # 1240 <_start-0x7fffedc0>
+8000013c: 02100193 li gp,33
+80000140: 49df1263 bne t5,t4,800005c4 <fail>
+
+80000144 <test_2>:
+80000144: 00000093 li ra,0
+80000148: 00000113 li sp,0
+8000014c: 02208f33 mul t5,ra,sp
+80000150: 00000e93 li t4,0
+80000154: 00200193 li gp,2
+80000158: 47df1663 bne t5,t4,800005c4 <fail>
+
+8000015c <test_3>:
+8000015c: 00100093 li ra,1
+80000160: 00100113 li sp,1
+80000164: 02208f33 mul t5,ra,sp
+80000168: 00100e93 li t4,1
+8000016c: 00300193 li gp,3
+80000170: 45df1a63 bne t5,t4,800005c4 <fail>
+
+80000174 <test_4>:
+80000174: 00300093 li ra,3
+80000178: 00700113 li sp,7
+8000017c: 02208f33 mul t5,ra,sp
+80000180: 01500e93 li t4,21
+80000184: 00400193 li gp,4
+80000188: 43df1e63 bne t5,t4,800005c4 <fail>
+
+8000018c <test_5>:
+8000018c: 00000093 li ra,0
+80000190: ffff8137 lui sp,0xffff8
+80000194: 02208f33 mul t5,ra,sp
+80000198: 00000e93 li t4,0
+8000019c: 00500193 li gp,5
+800001a0: 43df1263 bne t5,t4,800005c4 <fail>
+
+800001a4 <test_6>:
+800001a4: 800000b7 lui ra,0x80000
+800001a8: 00000113 li sp,0
+800001ac: 02208f33 mul t5,ra,sp
+800001b0: 00000e93 li t4,0
+800001b4: 00600193 li gp,6
+800001b8: 41df1663 bne t5,t4,800005c4 <fail>
+
+800001bc <test_7>:
+800001bc: 800000b7 lui ra,0x80000
+800001c0: ffff8137 lui sp,0xffff8
+800001c4: 02208f33 mul t5,ra,sp
+800001c8: 00000e93 li t4,0
+800001cc: 00700193 li gp,7
+800001d0: 3fdf1a63 bne t5,t4,800005c4 <fail>
+
+800001d4 <test_30>:
+800001d4: aaaab0b7 lui ra,0xaaaab
+800001d8: aab08093 addi ra,ra,-1365 # aaaaaaab <_end+0x2aaa8aab>
+800001dc: 00030137 lui sp,0x30
+800001e0: e7d10113 addi sp,sp,-387 # 2fe7d <_start-0x7ffd0183>
+800001e4: 02208f33 mul t5,ra,sp
+800001e8: 00010eb7 lui t4,0x10
+800001ec: f7fe8e93 addi t4,t4,-129 # ff7f <_start-0x7fff0081>
+800001f0: 01e00193 li gp,30
+800001f4: 3ddf1863 bne t5,t4,800005c4 <fail>
+
+800001f8 <test_31>:
+800001f8: 000300b7 lui ra,0x30
+800001fc: e7d08093 addi ra,ra,-387 # 2fe7d <_start-0x7ffd0183>
+80000200: aaaab137 lui sp,0xaaaab
+80000204: aab10113 addi sp,sp,-1365 # aaaaaaab <_end+0x2aaa8aab>
+80000208: 02208f33 mul t5,ra,sp
+8000020c: 00010eb7 lui t4,0x10
+80000210: f7fe8e93 addi t4,t4,-129 # ff7f <_start-0x7fff0081>
+80000214: 01f00193 li gp,31
+80000218: 3bdf1663 bne t5,t4,800005c4 <fail>
+
+8000021c <test_34>:
+8000021c: ff0000b7 lui ra,0xff000
+80000220: ff000137 lui sp,0xff000
+80000224: 02208f33 mul t5,ra,sp
+80000228: 00000e93 li t4,0
+8000022c: 02200193 li gp,34
+80000230: 39df1a63 bne t5,t4,800005c4 <fail>
+
+80000234 <test_35>:
+80000234: fff00093 li ra,-1
+80000238: fff00113 li sp,-1
+8000023c: 02208f33 mul t5,ra,sp
+80000240: 00100e93 li t4,1
+80000244: 02300193 li gp,35
+80000248: 37df1e63 bne t5,t4,800005c4 <fail>
+
+8000024c <test_36>:
+8000024c: fff00093 li ra,-1
+80000250: 00100113 li sp,1
+80000254: 02208f33 mul t5,ra,sp
+80000258: fff00e93 li t4,-1
+8000025c: 02400193 li gp,36
+80000260: 37df1263 bne t5,t4,800005c4 <fail>
+
+80000264 <test_37>:
+80000264: 00100093 li ra,1
+80000268: fff00113 li sp,-1
+8000026c: 02208f33 mul t5,ra,sp
+80000270: fff00e93 li t4,-1
+80000274: 02500193 li gp,37
+80000278: 35df1663 bne t5,t4,800005c4 <fail>
+
+8000027c <test_8>:
+8000027c: 00d00093 li ra,13
+80000280: 00b00113 li sp,11
+80000284: 022080b3 mul ra,ra,sp
+80000288: 08f00e93 li t4,143
+8000028c: 00800193 li gp,8
+80000290: 33d09a63 bne ra,t4,800005c4 <fail>
+
+80000294 <test_9>:
+80000294: 00e00093 li ra,14
+80000298: 00b00113 li sp,11
+8000029c: 02208133 mul sp,ra,sp
+800002a0: 09a00e93 li t4,154
+800002a4: 00900193 li gp,9
+800002a8: 31d11e63 bne sp,t4,800005c4 <fail>
+
+800002ac <test_10>:
+800002ac: 00d00093 li ra,13
+800002b0: 021080b3 mul ra,ra,ra
+800002b4: 0a900e93 li t4,169
+800002b8: 00a00193 li gp,10
+800002bc: 31d09463 bne ra,t4,800005c4 <fail>
+
+800002c0 <test_11>:
+800002c0: 00000213 li tp,0
+800002c4: 00d00093 li ra,13
+800002c8: 00b00113 li sp,11
+800002cc: 02208f33 mul 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_11+0x4>
+800002e0: 08f00e93 li t4,143
+800002e4: 00b00193 li gp,11
+800002e8: 2dd31e63 bne t1,t4,800005c4 <fail>
+
+800002ec <test_12>:
+800002ec: 00000213 li tp,0
+800002f0: 00e00093 li ra,14
+800002f4: 00b00113 li sp,11
+800002f8: 02208f33 mul 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_12+0x4>
+80000310: 09a00e93 li t4,154
+80000314: 00c00193 li gp,12
+80000318: 2bd31663 bne t1,t4,800005c4 <fail>
+
+8000031c <test_13>:
+8000031c: 00000213 li tp,0
+80000320: 00f00093 li ra,15
+80000324: 00b00113 li sp,11
+80000328: 02208f33 mul 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_13+0x4>
+80000344: 0a500e93 li t4,165
+80000348: 00d00193 li gp,13
+8000034c: 27d31c63 bne t1,t4,800005c4 <fail>
+
+80000350 <test_14>:
+80000350: 00000213 li tp,0
+80000354: 00d00093 li ra,13
+80000358: 00b00113 li sp,11
+8000035c: 02208f33 mul t5,ra,sp
+80000360: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000364: 00200293 li t0,2
+80000368: fe5216e3 bne tp,t0,80000354 <test_14+0x4>
+8000036c: 08f00e93 li t4,143
+80000370: 00e00193 li gp,14
+80000374: 25df1863 bne t5,t4,800005c4 <fail>
+
+80000378 <test_15>:
+80000378: 00000213 li tp,0
+8000037c: 00e00093 li ra,14
+80000380: 00b00113 li sp,11
+80000384: 00000013 nop
+80000388: 02208f33 mul t5,ra,sp
+8000038c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000390: 00200293 li t0,2
+80000394: fe5214e3 bne tp,t0,8000037c <test_15+0x4>
+80000398: 09a00e93 li t4,154
+8000039c: 00f00193 li gp,15
+800003a0: 23df1263 bne t5,t4,800005c4 <fail>
+
+800003a4 <test_16>:
+800003a4: 00000213 li tp,0
+800003a8: 00f00093 li ra,15
+800003ac: 00b00113 li sp,11
+800003b0: 00000013 nop
+800003b4: 00000013 nop
+800003b8: 02208f33 mul t5,ra,sp
+800003bc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800003c0: 00200293 li t0,2
+800003c4: fe5212e3 bne tp,t0,800003a8 <test_16+0x4>
+800003c8: 0a500e93 li t4,165
+800003cc: 01000193 li gp,16
+800003d0: 1fdf1a63 bne t5,t4,800005c4 <fail>
+
+800003d4 <test_17>:
+800003d4: 00000213 li tp,0
+800003d8: 00d00093 li ra,13
+800003dc: 00000013 nop
+800003e0: 00b00113 li sp,11
+800003e4: 02208f33 mul t5,ra,sp
+800003e8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800003ec: 00200293 li t0,2
+800003f0: fe5214e3 bne tp,t0,800003d8 <test_17+0x4>
+800003f4: 08f00e93 li t4,143
+800003f8: 01100193 li gp,17
+800003fc: 1ddf1463 bne t5,t4,800005c4 <fail>
+
+80000400 <test_18>:
+80000400: 00000213 li tp,0
+80000404: 00e00093 li ra,14
+80000408: 00000013 nop
+8000040c: 00b00113 li sp,11
+80000410: 00000013 nop
+80000414: 02208f33 mul t5,ra,sp
+80000418: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000041c: 00200293 li t0,2
+80000420: fe5212e3 bne tp,t0,80000404 <test_18+0x4>
+80000424: 09a00e93 li t4,154
+80000428: 01200193 li gp,18
+8000042c: 19df1c63 bne t5,t4,800005c4 <fail>
+
+80000430 <test_19>:
+80000430: 00000213 li tp,0
+80000434: 00f00093 li ra,15
+80000438: 00000013 nop
+8000043c: 00000013 nop
+80000440: 00b00113 li sp,11
+80000444: 02208f33 mul t5,ra,sp
+80000448: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000044c: 00200293 li t0,2
+80000450: fe5212e3 bne tp,t0,80000434 <test_19+0x4>
+80000454: 0a500e93 li t4,165
+80000458: 01300193 li gp,19
+8000045c: 17df1463 bne t5,t4,800005c4 <fail>
+
+80000460 <test_20>:
+80000460: 00000213 li tp,0
+80000464: 00b00113 li sp,11
+80000468: 00d00093 li ra,13
+8000046c: 02208f33 mul t5,ra,sp
+80000470: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000474: 00200293 li t0,2
+80000478: fe5216e3 bne tp,t0,80000464 <test_20+0x4>
+8000047c: 08f00e93 li t4,143
+80000480: 01400193 li gp,20
+80000484: 15df1063 bne t5,t4,800005c4 <fail>
+
+80000488 <test_21>:
+80000488: 00000213 li tp,0
+8000048c: 00b00113 li sp,11
+80000490: 00e00093 li ra,14
+80000494: 00000013 nop
+80000498: 02208f33 mul t5,ra,sp
+8000049c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800004a0: 00200293 li t0,2
+800004a4: fe5214e3 bne tp,t0,8000048c <test_21+0x4>
+800004a8: 09a00e93 li t4,154
+800004ac: 01500193 li gp,21
+800004b0: 11df1a63 bne t5,t4,800005c4 <fail>
+
+800004b4 <test_22>:
+800004b4: 00000213 li tp,0
+800004b8: 00b00113 li sp,11
+800004bc: 00f00093 li ra,15
+800004c0: 00000013 nop
+800004c4: 00000013 nop
+800004c8: 02208f33 mul t5,ra,sp
+800004cc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800004d0: 00200293 li t0,2
+800004d4: fe5212e3 bne tp,t0,800004b8 <test_22+0x4>
+800004d8: 0a500e93 li t4,165
+800004dc: 01600193 li gp,22
+800004e0: 0fdf1263 bne t5,t4,800005c4 <fail>
+
+800004e4 <test_23>:
+800004e4: 00000213 li tp,0
+800004e8: 00b00113 li sp,11
+800004ec: 00000013 nop
+800004f0: 00d00093 li ra,13
+800004f4: 02208f33 mul t5,ra,sp
+800004f8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800004fc: 00200293 li t0,2
+80000500: fe5214e3 bne tp,t0,800004e8 <test_23+0x4>
+80000504: 08f00e93 li t4,143
+80000508: 01700193 li gp,23
+8000050c: 0bdf1c63 bne t5,t4,800005c4 <fail>
+
+80000510 <test_24>:
+80000510: 00000213 li tp,0
+80000514: 00b00113 li sp,11
+80000518: 00000013 nop
+8000051c: 00e00093 li ra,14
+80000520: 00000013 nop
+80000524: 02208f33 mul t5,ra,sp
+80000528: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000052c: 00200293 li t0,2
+80000530: fe5212e3 bne tp,t0,80000514 <test_24+0x4>
+80000534: 09a00e93 li t4,154
+80000538: 01800193 li gp,24
+8000053c: 09df1463 bne t5,t4,800005c4 <fail>
+
+80000540 <test_25>:
+80000540: 00000213 li tp,0
+80000544: 00b00113 li sp,11
+80000548: 00000013 nop
+8000054c: 00000013 nop
+80000550: 00f00093 li ra,15
+80000554: 02208f33 mul 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: 0a500e93 li t4,165
+80000568: 01900193 li gp,25
+8000056c: 05df1c63 bne t5,t4,800005c4 <fail>
+
+80000570 <test_26>:
+80000570: 01f00093 li ra,31
+80000574: 02100133 mul sp,zero,ra
+80000578: 00000e93 li t4,0
+8000057c: 01a00193 li gp,26
+80000580: 05d11263 bne sp,t4,800005c4 <fail>
+
+80000584 <test_27>:
+80000584: 02000093 li ra,32
+80000588: 02008133 mul sp,ra,zero
+8000058c: 00000e93 li t4,0
+80000590: 01b00193 li gp,27
+80000594: 03d11863 bne sp,t4,800005c4 <fail>
+
+80000598 <test_28>:
+80000598: 020000b3 mul ra,zero,zero
+8000059c: 00000e93 li t4,0
+800005a0: 01c00193 li gp,28
+800005a4: 03d09063 bne ra,t4,800005c4 <fail>
+
+800005a8 <test_29>:
+800005a8: 02100093 li ra,33
+800005ac: 02200113 li sp,34
+800005b0: 02208033 mul zero,ra,sp
+800005b4: 00000e93 li t4,0
+800005b8: 01d00193 li gp,29
+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
diff --git a/test/riscv-tests/rv32um-p-mul.elf b/test/riscv-tests/rv32um-p-mul.elf
new file mode 100644
index 0000000..ccfb794
--- /dev/null
+++ b/test/riscv-tests/rv32um-p-mul.elf
Binary files differ
diff --git a/test/riscv-tests/rv32um-p-mulh.dump b/test/riscv-tests/rv32um-p-mulh.dump
new file mode 100644
index 0000000..7e26092
--- /dev/null
+++ b/test/riscv-tests/rv32um-p-mulh.dump
@@ -0,0 +1,479 @@
+
+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: 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: 02209f33 mulh 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: 02209f33 mulh 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: 02209f33 mulh t5,ra,sp
+80000138: 00000e93 li t4,0
+8000013c: 00400193 li gp,4
+80000140: 49df1263 bne t5,t4,800005c4 <fail>
+
+80000144 <test_5>:
+80000144: 00000093 li ra,0
+80000148: ffff8137 lui sp,0xffff8
+8000014c: 02209f33 mulh t5,ra,sp
+80000150: 00000e93 li t4,0
+80000154: 00500193 li gp,5
+80000158: 47df1663 bne t5,t4,800005c4 <fail>
+
+8000015c <test_6>:
+8000015c: 800000b7 lui ra,0x80000
+80000160: 00000113 li sp,0
+80000164: 02209f33 mulh t5,ra,sp
+80000168: 00000e93 li t4,0
+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: 02209f33 mulh t5,ra,sp
+80000180: 00000e93 li t4,0
+80000184: 00700193 li gp,7
+80000188: 43df1e63 bne t5,t4,800005c4 <fail>
+
+8000018c <test_30>:
+8000018c: aaaab0b7 lui ra,0xaaaab
+80000190: aab08093 addi ra,ra,-1365 # aaaaaaab <_end+0x2aaa8aab>
+80000194: 00030137 lui sp,0x30
+80000198: e7d10113 addi sp,sp,-387 # 2fe7d <_start-0x7ffd0183>
+8000019c: 02209f33 mulh t5,ra,sp
+800001a0: ffff0eb7 lui t4,0xffff0
+800001a4: 081e8e93 addi t4,t4,129 # ffff0081 <_end+0x7ffee081>
+800001a8: 01e00193 li gp,30
+800001ac: 41df1c63 bne t5,t4,800005c4 <fail>
+
+800001b0 <test_31>:
+800001b0: 000300b7 lui ra,0x30
+800001b4: e7d08093 addi ra,ra,-387 # 2fe7d <_start-0x7ffd0183>
+800001b8: aaaab137 lui sp,0xaaaab
+800001bc: aab10113 addi sp,sp,-1365 # aaaaaaab <_end+0x2aaa8aab>
+800001c0: 02209f33 mulh t5,ra,sp
+800001c4: ffff0eb7 lui t4,0xffff0
+800001c8: 081e8e93 addi t4,t4,129 # ffff0081 <_end+0x7ffee081>
+800001cc: 01f00193 li gp,31
+800001d0: 3fdf1a63 bne t5,t4,800005c4 <fail>
+
+800001d4 <test_32>:
+800001d4: ff0000b7 lui ra,0xff000
+800001d8: ff000137 lui sp,0xff000
+800001dc: 02209f33 mulh t5,ra,sp
+800001e0: 00010eb7 lui t4,0x10
+800001e4: 02000193 li gp,32
+800001e8: 3ddf1e63 bne t5,t4,800005c4 <fail>
+
+800001ec <test_33>:
+800001ec: fff00093 li ra,-1
+800001f0: fff00113 li sp,-1
+800001f4: 02209f33 mulh t5,ra,sp
+800001f8: 00000e93 li t4,0
+800001fc: 02100193 li gp,33
+80000200: 3ddf1263 bne t5,t4,800005c4 <fail>
+
+80000204 <test_34>:
+80000204: fff00093 li ra,-1
+80000208: 00100113 li sp,1
+8000020c: 02209f33 mulh t5,ra,sp
+80000210: fff00e93 li t4,-1
+80000214: 02200193 li gp,34
+80000218: 3bdf1663 bne t5,t4,800005c4 <fail>
+
+8000021c <test_35>:
+8000021c: 00100093 li ra,1
+80000220: fff00113 li sp,-1
+80000224: 02209f33 mulh t5,ra,sp
+80000228: fff00e93 li t4,-1
+8000022c: 02300193 li gp,35
+80000230: 39df1a63 bne t5,t4,800005c4 <fail>
+
+80000234 <test_8>:
+80000234: 00d000b7 lui ra,0xd00
+80000238: 00b00137 lui sp,0xb00
+8000023c: 022090b3 mulh ra,ra,sp
+80000240: 00009eb7 lui t4,0x9
+80000244: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
+80000248: 00800193 li gp,8
+8000024c: 37d09c63 bne ra,t4,800005c4 <fail>
+
+80000250 <test_9>:
+80000250: 00e000b7 lui ra,0xe00
+80000254: 00b00137 lui sp,0xb00
+80000258: 02209133 mulh sp,ra,sp
+8000025c: 0000aeb7 lui t4,0xa
+80000260: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
+80000264: 00900193 li gp,9
+80000268: 35d11e63 bne sp,t4,800005c4 <fail>
+
+8000026c <test_10>:
+8000026c: 00d000b7 lui ra,0xd00
+80000270: 021090b3 mulh ra,ra,ra
+80000274: 0000beb7 lui t4,0xb
+80000278: 900e8e93 addi t4,t4,-1792 # a900 <_start-0x7fff5700>
+8000027c: 00a00193 li gp,10
+80000280: 35d09263 bne ra,t4,800005c4 <fail>
+
+80000284 <test_11>:
+80000284: 00000213 li tp,0
+80000288: 00d000b7 lui ra,0xd00
+8000028c: 00b00137 lui sp,0xb00
+80000290: 02209f33 mulh t5,ra,sp
+80000294: 000f0313 mv t1,t5
+80000298: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000029c: 00200293 li t0,2
+800002a0: fe5214e3 bne tp,t0,80000288 <test_11+0x4>
+800002a4: 00009eb7 lui t4,0x9
+800002a8: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
+800002ac: 00b00193 li gp,11
+800002b0: 31d31a63 bne t1,t4,800005c4 <fail>
+
+800002b4 <test_12>:
+800002b4: 00000213 li tp,0
+800002b8: 00e000b7 lui ra,0xe00
+800002bc: 00b00137 lui sp,0xb00
+800002c0: 02209f33 mulh t5,ra,sp
+800002c4: 00000013 nop
+800002c8: 000f0313 mv t1,t5
+800002cc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800002d0: 00200293 li t0,2
+800002d4: fe5212e3 bne tp,t0,800002b8 <test_12+0x4>
+800002d8: 0000aeb7 lui t4,0xa
+800002dc: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
+800002e0: 00c00193 li gp,12
+800002e4: 2fd31063 bne t1,t4,800005c4 <fail>
+
+800002e8 <test_13>:
+800002e8: 00000213 li tp,0
+800002ec: 00f000b7 lui ra,0xf00
+800002f0: 00b00137 lui sp,0xb00
+800002f4: 02209f33 mulh t5,ra,sp
+800002f8: 00000013 nop
+800002fc: 00000013 nop
+80000300: 000f0313 mv t1,t5
+80000304: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000308: 00200293 li t0,2
+8000030c: fe5210e3 bne tp,t0,800002ec <test_13+0x4>
+80000310: 0000aeb7 lui t4,0xa
+80000314: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
+80000318: 00d00193 li gp,13
+8000031c: 2bd31463 bne t1,t4,800005c4 <fail>
+
+80000320 <test_14>:
+80000320: 00000213 li tp,0
+80000324: 00d000b7 lui ra,0xd00
+80000328: 00b00137 lui sp,0xb00
+8000032c: 02209f33 mulh t5,ra,sp
+80000330: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000334: 00200293 li t0,2
+80000338: fe5216e3 bne tp,t0,80000324 <test_14+0x4>
+8000033c: 00009eb7 lui t4,0x9
+80000340: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
+80000344: 00e00193 li gp,14
+80000348: 27df1e63 bne t5,t4,800005c4 <fail>
+
+8000034c <test_15>:
+8000034c: 00000213 li tp,0
+80000350: 00e000b7 lui ra,0xe00
+80000354: 00b00137 lui sp,0xb00
+80000358: 00000013 nop
+8000035c: 02209f33 mulh t5,ra,sp
+80000360: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000364: 00200293 li t0,2
+80000368: fe5214e3 bne tp,t0,80000350 <test_15+0x4>
+8000036c: 0000aeb7 lui t4,0xa
+80000370: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
+80000374: 00f00193 li gp,15
+80000378: 25df1663 bne t5,t4,800005c4 <fail>
+
+8000037c <test_16>:
+8000037c: 00000213 li tp,0
+80000380: 00f000b7 lui ra,0xf00
+80000384: 00b00137 lui sp,0xb00
+80000388: 00000013 nop
+8000038c: 00000013 nop
+80000390: 02209f33 mulh t5,ra,sp
+80000394: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000398: 00200293 li t0,2
+8000039c: fe5212e3 bne tp,t0,80000380 <test_16+0x4>
+800003a0: 0000aeb7 lui t4,0xa
+800003a4: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
+800003a8: 01000193 li gp,16
+800003ac: 21df1c63 bne t5,t4,800005c4 <fail>
+
+800003b0 <test_17>:
+800003b0: 00000213 li tp,0
+800003b4: 00d000b7 lui ra,0xd00
+800003b8: 00000013 nop
+800003bc: 00b00137 lui sp,0xb00
+800003c0: 02209f33 mulh t5,ra,sp
+800003c4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800003c8: 00200293 li t0,2
+800003cc: fe5214e3 bne tp,t0,800003b4 <test_17+0x4>
+800003d0: 00009eb7 lui t4,0x9
+800003d4: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
+800003d8: 01100193 li gp,17
+800003dc: 1fdf1463 bne t5,t4,800005c4 <fail>
+
+800003e0 <test_18>:
+800003e0: 00000213 li tp,0
+800003e4: 00e000b7 lui ra,0xe00
+800003e8: 00000013 nop
+800003ec: 00b00137 lui sp,0xb00
+800003f0: 00000013 nop
+800003f4: 02209f33 mulh t5,ra,sp
+800003f8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800003fc: 00200293 li t0,2
+80000400: fe5212e3 bne tp,t0,800003e4 <test_18+0x4>
+80000404: 0000aeb7 lui t4,0xa
+80000408: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
+8000040c: 01200193 li gp,18
+80000410: 1bdf1a63 bne t5,t4,800005c4 <fail>
+
+80000414 <test_19>:
+80000414: 00000213 li tp,0
+80000418: 00f000b7 lui ra,0xf00
+8000041c: 00000013 nop
+80000420: 00000013 nop
+80000424: 00b00137 lui sp,0xb00
+80000428: 02209f33 mulh t5,ra,sp
+8000042c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000430: 00200293 li t0,2
+80000434: fe5212e3 bne tp,t0,80000418 <test_19+0x4>
+80000438: 0000aeb7 lui t4,0xa
+8000043c: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
+80000440: 01300193 li gp,19
+80000444: 19df1063 bne t5,t4,800005c4 <fail>
+
+80000448 <test_20>:
+80000448: 00000213 li tp,0
+8000044c: 00b00137 lui sp,0xb00
+80000450: 00d000b7 lui ra,0xd00
+80000454: 02209f33 mulh t5,ra,sp
+80000458: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000045c: 00200293 li t0,2
+80000460: fe5216e3 bne tp,t0,8000044c <test_20+0x4>
+80000464: 00009eb7 lui t4,0x9
+80000468: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
+8000046c: 01400193 li gp,20
+80000470: 15df1a63 bne t5,t4,800005c4 <fail>
+
+80000474 <test_21>:
+80000474: 00000213 li tp,0
+80000478: 00b00137 lui sp,0xb00
+8000047c: 00e000b7 lui ra,0xe00
+80000480: 00000013 nop
+80000484: 02209f33 mulh t5,ra,sp
+80000488: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000048c: 00200293 li t0,2
+80000490: fe5214e3 bne tp,t0,80000478 <test_21+0x4>
+80000494: 0000aeb7 lui t4,0xa
+80000498: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
+8000049c: 01500193 li gp,21
+800004a0: 13df1263 bne t5,t4,800005c4 <fail>
+
+800004a4 <test_22>:
+800004a4: 00000213 li tp,0
+800004a8: 00b00137 lui sp,0xb00
+800004ac: 00f000b7 lui ra,0xf00
+800004b0: 00000013 nop
+800004b4: 00000013 nop
+800004b8: 02209f33 mulh t5,ra,sp
+800004bc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800004c0: 00200293 li t0,2
+800004c4: fe5212e3 bne tp,t0,800004a8 <test_22+0x4>
+800004c8: 0000aeb7 lui t4,0xa
+800004cc: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
+800004d0: 01600193 li gp,22
+800004d4: 0fdf1863 bne t5,t4,800005c4 <fail>
+
+800004d8 <test_23>:
+800004d8: 00000213 li tp,0
+800004dc: 00b00137 lui sp,0xb00
+800004e0: 00000013 nop
+800004e4: 00d000b7 lui ra,0xd00
+800004e8: 02209f33 mulh t5,ra,sp
+800004ec: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800004f0: 00200293 li t0,2
+800004f4: fe5214e3 bne tp,t0,800004dc <test_23+0x4>
+800004f8: 00009eb7 lui t4,0x9
+800004fc: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
+80000500: 01700193 li gp,23
+80000504: 0ddf1063 bne t5,t4,800005c4 <fail>
+
+80000508 <test_24>:
+80000508: 00000213 li tp,0
+8000050c: 00b00137 lui sp,0xb00
+80000510: 00000013 nop
+80000514: 00e000b7 lui ra,0xe00
+80000518: 00000013 nop
+8000051c: 02209f33 mulh t5,ra,sp
+80000520: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000524: 00200293 li t0,2
+80000528: fe5212e3 bne tp,t0,8000050c <test_24+0x4>
+8000052c: 0000aeb7 lui t4,0xa
+80000530: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
+80000534: 01800193 li gp,24
+80000538: 09df1663 bne t5,t4,800005c4 <fail>
+
+8000053c <test_25>:
+8000053c: 00000213 li tp,0
+80000540: 00b00137 lui sp,0xb00
+80000544: 00000013 nop
+80000548: 00000013 nop
+8000054c: 00f000b7 lui ra,0xf00
+80000550: 02209f33 mulh t5,ra,sp
+80000554: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000558: 00200293 li t0,2
+8000055c: fe5212e3 bne tp,t0,80000540 <test_25+0x4>
+80000560: 0000aeb7 lui t4,0xa
+80000564: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
+80000568: 01900193 li gp,25
+8000056c: 05df1c63 bne t5,t4,800005c4 <fail>
+
+80000570 <test_26>:
+80000570: 7c0000b7 lui ra,0x7c000
+80000574: 02101133 mulh sp,zero,ra
+80000578: 00000e93 li t4,0
+8000057c: 01a00193 li gp,26
+80000580: 05d11263 bne sp,t4,800005c4 <fail>
+
+80000584 <test_27>:
+80000584: 800000b7 lui ra,0x80000
+80000588: 02009133 mulh sp,ra,zero
+8000058c: 00000e93 li t4,0
+80000590: 01b00193 li gp,27
+80000594: 03d11863 bne sp,t4,800005c4 <fail>
+
+80000598 <test_28>:
+80000598: 020010b3 mulh ra,zero,zero
+8000059c: 00000e93 li t4,0
+800005a0: 01c00193 li gp,28
+800005a4: 03d09063 bne ra,t4,800005c4 <fail>
+
+800005a8 <test_29>:
+800005a8: 021000b7 lui ra,0x2100
+800005ac: 02200137 lui sp,0x2200
+800005b0: 02209033 mulh zero,ra,sp
+800005b4: 00000e93 li t4,0
+800005b8: 01d00193 li gp,29
+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
diff --git a/test/riscv-tests/rv32um-p-mulh.elf b/test/riscv-tests/rv32um-p-mulh.elf
new file mode 100644
index 0000000..5dac92f
--- /dev/null
+++ b/test/riscv-tests/rv32um-p-mulh.elf
Binary files differ
diff --git a/test/riscv-tests/rv32um-p-mulhsu.dump b/test/riscv-tests/rv32um-p-mulhsu.dump
new file mode 100644
index 0000000..d0a5b7e
--- /dev/null
+++ b/test/riscv-tests/rv32um-p-mulhsu.dump
@@ -0,0 +1,479 @@
+
+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: 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: 0220af33 mulhsu 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: 0220af33 mulhsu 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: 0220af33 mulhsu t5,ra,sp
+80000138: 00000e93 li t4,0
+8000013c: 00400193 li gp,4
+80000140: 49df1263 bne t5,t4,800005c4 <fail>
+
+80000144 <test_5>:
+80000144: 00000093 li ra,0
+80000148: ffff8137 lui sp,0xffff8
+8000014c: 0220af33 mulhsu t5,ra,sp
+80000150: 00000e93 li t4,0
+80000154: 00500193 li gp,5
+80000158: 47df1663 bne t5,t4,800005c4 <fail>
+
+8000015c <test_6>:
+8000015c: 800000b7 lui ra,0x80000
+80000160: 00000113 li sp,0
+80000164: 0220af33 mulhsu t5,ra,sp
+80000168: 00000e93 li t4,0
+8000016c: 00600193 li gp,6
+80000170: 45df1a63 bne t5,t4,800005c4 <fail>
+
+80000174 <test_7>:
+80000174: 800000b7 lui ra,0x80000
+80000178: ffff8137 lui sp,0xffff8
+8000017c: 0220af33 mulhsu t5,ra,sp
+80000180: 80004eb7 lui t4,0x80004
+80000184: 00700193 li gp,7
+80000188: 43df1e63 bne t5,t4,800005c4 <fail>
+
+8000018c <test_30>:
+8000018c: aaaab0b7 lui ra,0xaaaab
+80000190: aab08093 addi ra,ra,-1365 # aaaaaaab <_end+0x2aaa8aab>
+80000194: 00030137 lui sp,0x30
+80000198: e7d10113 addi sp,sp,-387 # 2fe7d <_start-0x7ffd0183>
+8000019c: 0220af33 mulhsu t5,ra,sp
+800001a0: ffff0eb7 lui t4,0xffff0
+800001a4: 081e8e93 addi t4,t4,129 # ffff0081 <_end+0x7ffee081>
+800001a8: 01e00193 li gp,30
+800001ac: 41df1c63 bne t5,t4,800005c4 <fail>
+
+800001b0 <test_31>:
+800001b0: 000300b7 lui ra,0x30
+800001b4: e7d08093 addi ra,ra,-387 # 2fe7d <_start-0x7ffd0183>
+800001b8: aaaab137 lui sp,0xaaaab
+800001bc: aab10113 addi sp,sp,-1365 # aaaaaaab <_end+0x2aaa8aab>
+800001c0: 0220af33 mulhsu t5,ra,sp
+800001c4: 00020eb7 lui t4,0x20
+800001c8: efee8e93 addi t4,t4,-258 # 1fefe <_start-0x7ffe0102>
+800001cc: 01f00193 li gp,31
+800001d0: 3fdf1a63 bne t5,t4,800005c4 <fail>
+
+800001d4 <test_32>:
+800001d4: ff0000b7 lui ra,0xff000
+800001d8: ff000137 lui sp,0xff000
+800001dc: 0220af33 mulhsu t5,ra,sp
+800001e0: ff010eb7 lui t4,0xff010
+800001e4: 02000193 li gp,32
+800001e8: 3ddf1e63 bne t5,t4,800005c4 <fail>
+
+800001ec <test_33>:
+800001ec: fff00093 li ra,-1
+800001f0: fff00113 li sp,-1
+800001f4: 0220af33 mulhsu t5,ra,sp
+800001f8: fff00e93 li t4,-1
+800001fc: 02100193 li gp,33
+80000200: 3ddf1263 bne t5,t4,800005c4 <fail>
+
+80000204 <test_34>:
+80000204: fff00093 li ra,-1
+80000208: 00100113 li sp,1
+8000020c: 0220af33 mulhsu t5,ra,sp
+80000210: fff00e93 li t4,-1
+80000214: 02200193 li gp,34
+80000218: 3bdf1663 bne t5,t4,800005c4 <fail>
+
+8000021c <test_35>:
+8000021c: 00100093 li ra,1
+80000220: fff00113 li sp,-1
+80000224: 0220af33 mulhsu t5,ra,sp
+80000228: 00000e93 li t4,0
+8000022c: 02300193 li gp,35
+80000230: 39df1a63 bne t5,t4,800005c4 <fail>
+
+80000234 <test_8>:
+80000234: 00d000b7 lui ra,0xd00
+80000238: 00b00137 lui sp,0xb00
+8000023c: 0220a0b3 mulhsu ra,ra,sp
+80000240: 00009eb7 lui t4,0x9
+80000244: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
+80000248: 00800193 li gp,8
+8000024c: 37d09c63 bne ra,t4,800005c4 <fail>
+
+80000250 <test_9>:
+80000250: 00e000b7 lui ra,0xe00
+80000254: 00b00137 lui sp,0xb00
+80000258: 0220a133 mulhsu sp,ra,sp
+8000025c: 0000aeb7 lui t4,0xa
+80000260: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
+80000264: 00900193 li gp,9
+80000268: 35d11e63 bne sp,t4,800005c4 <fail>
+
+8000026c <test_10>:
+8000026c: 00d000b7 lui ra,0xd00
+80000270: 0210a0b3 mulhsu ra,ra,ra
+80000274: 0000beb7 lui t4,0xb
+80000278: 900e8e93 addi t4,t4,-1792 # a900 <_start-0x7fff5700>
+8000027c: 00a00193 li gp,10
+80000280: 35d09263 bne ra,t4,800005c4 <fail>
+
+80000284 <test_11>:
+80000284: 00000213 li tp,0
+80000288: 00d000b7 lui ra,0xd00
+8000028c: 00b00137 lui sp,0xb00
+80000290: 0220af33 mulhsu t5,ra,sp
+80000294: 000f0313 mv t1,t5
+80000298: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000029c: 00200293 li t0,2
+800002a0: fe5214e3 bne tp,t0,80000288 <test_11+0x4>
+800002a4: 00009eb7 lui t4,0x9
+800002a8: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
+800002ac: 00b00193 li gp,11
+800002b0: 31d31a63 bne t1,t4,800005c4 <fail>
+
+800002b4 <test_12>:
+800002b4: 00000213 li tp,0
+800002b8: 00e000b7 lui ra,0xe00
+800002bc: 00b00137 lui sp,0xb00
+800002c0: 0220af33 mulhsu t5,ra,sp
+800002c4: 00000013 nop
+800002c8: 000f0313 mv t1,t5
+800002cc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800002d0: 00200293 li t0,2
+800002d4: fe5212e3 bne tp,t0,800002b8 <test_12+0x4>
+800002d8: 0000aeb7 lui t4,0xa
+800002dc: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
+800002e0: 00c00193 li gp,12
+800002e4: 2fd31063 bne t1,t4,800005c4 <fail>
+
+800002e8 <test_13>:
+800002e8: 00000213 li tp,0
+800002ec: 00f000b7 lui ra,0xf00
+800002f0: 00b00137 lui sp,0xb00
+800002f4: 0220af33 mulhsu t5,ra,sp
+800002f8: 00000013 nop
+800002fc: 00000013 nop
+80000300: 000f0313 mv t1,t5
+80000304: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000308: 00200293 li t0,2
+8000030c: fe5210e3 bne tp,t0,800002ec <test_13+0x4>
+80000310: 0000aeb7 lui t4,0xa
+80000314: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
+80000318: 00d00193 li gp,13
+8000031c: 2bd31463 bne t1,t4,800005c4 <fail>
+
+80000320 <test_14>:
+80000320: 00000213 li tp,0
+80000324: 00d000b7 lui ra,0xd00
+80000328: 00b00137 lui sp,0xb00
+8000032c: 0220af33 mulhsu t5,ra,sp
+80000330: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000334: 00200293 li t0,2
+80000338: fe5216e3 bne tp,t0,80000324 <test_14+0x4>
+8000033c: 00009eb7 lui t4,0x9
+80000340: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
+80000344: 00e00193 li gp,14
+80000348: 27df1e63 bne t5,t4,800005c4 <fail>
+
+8000034c <test_15>:
+8000034c: 00000213 li tp,0
+80000350: 00e000b7 lui ra,0xe00
+80000354: 00b00137 lui sp,0xb00
+80000358: 00000013 nop
+8000035c: 0220af33 mulhsu t5,ra,sp
+80000360: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000364: 00200293 li t0,2
+80000368: fe5214e3 bne tp,t0,80000350 <test_15+0x4>
+8000036c: 0000aeb7 lui t4,0xa
+80000370: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
+80000374: 00f00193 li gp,15
+80000378: 25df1663 bne t5,t4,800005c4 <fail>
+
+8000037c <test_16>:
+8000037c: 00000213 li tp,0
+80000380: 00f000b7 lui ra,0xf00
+80000384: 00b00137 lui sp,0xb00
+80000388: 00000013 nop
+8000038c: 00000013 nop
+80000390: 0220af33 mulhsu t5,ra,sp
+80000394: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000398: 00200293 li t0,2
+8000039c: fe5212e3 bne tp,t0,80000380 <test_16+0x4>
+800003a0: 0000aeb7 lui t4,0xa
+800003a4: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
+800003a8: 01000193 li gp,16
+800003ac: 21df1c63 bne t5,t4,800005c4 <fail>
+
+800003b0 <test_17>:
+800003b0: 00000213 li tp,0
+800003b4: 00d000b7 lui ra,0xd00
+800003b8: 00000013 nop
+800003bc: 00b00137 lui sp,0xb00
+800003c0: 0220af33 mulhsu t5,ra,sp
+800003c4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800003c8: 00200293 li t0,2
+800003cc: fe5214e3 bne tp,t0,800003b4 <test_17+0x4>
+800003d0: 00009eb7 lui t4,0x9
+800003d4: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
+800003d8: 01100193 li gp,17
+800003dc: 1fdf1463 bne t5,t4,800005c4 <fail>
+
+800003e0 <test_18>:
+800003e0: 00000213 li tp,0
+800003e4: 00e000b7 lui ra,0xe00
+800003e8: 00000013 nop
+800003ec: 00b00137 lui sp,0xb00
+800003f0: 00000013 nop
+800003f4: 0220af33 mulhsu t5,ra,sp
+800003f8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800003fc: 00200293 li t0,2
+80000400: fe5212e3 bne tp,t0,800003e4 <test_18+0x4>
+80000404: 0000aeb7 lui t4,0xa
+80000408: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
+8000040c: 01200193 li gp,18
+80000410: 1bdf1a63 bne t5,t4,800005c4 <fail>
+
+80000414 <test_19>:
+80000414: 00000213 li tp,0
+80000418: 00f000b7 lui ra,0xf00
+8000041c: 00000013 nop
+80000420: 00000013 nop
+80000424: 00b00137 lui sp,0xb00
+80000428: 0220af33 mulhsu t5,ra,sp
+8000042c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000430: 00200293 li t0,2
+80000434: fe5212e3 bne tp,t0,80000418 <test_19+0x4>
+80000438: 0000aeb7 lui t4,0xa
+8000043c: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
+80000440: 01300193 li gp,19
+80000444: 19df1063 bne t5,t4,800005c4 <fail>
+
+80000448 <test_20>:
+80000448: 00000213 li tp,0
+8000044c: 00b00137 lui sp,0xb00
+80000450: 00d000b7 lui ra,0xd00
+80000454: 0220af33 mulhsu t5,ra,sp
+80000458: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000045c: 00200293 li t0,2
+80000460: fe5216e3 bne tp,t0,8000044c <test_20+0x4>
+80000464: 00009eb7 lui t4,0x9
+80000468: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
+8000046c: 01400193 li gp,20
+80000470: 15df1a63 bne t5,t4,800005c4 <fail>
+
+80000474 <test_21>:
+80000474: 00000213 li tp,0
+80000478: 00b00137 lui sp,0xb00
+8000047c: 00e000b7 lui ra,0xe00
+80000480: 00000013 nop
+80000484: 0220af33 mulhsu t5,ra,sp
+80000488: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000048c: 00200293 li t0,2
+80000490: fe5214e3 bne tp,t0,80000478 <test_21+0x4>
+80000494: 0000aeb7 lui t4,0xa
+80000498: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
+8000049c: 01500193 li gp,21
+800004a0: 13df1263 bne t5,t4,800005c4 <fail>
+
+800004a4 <test_22>:
+800004a4: 00000213 li tp,0
+800004a8: 00b00137 lui sp,0xb00
+800004ac: 00f000b7 lui ra,0xf00
+800004b0: 00000013 nop
+800004b4: 00000013 nop
+800004b8: 0220af33 mulhsu t5,ra,sp
+800004bc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800004c0: 00200293 li t0,2
+800004c4: fe5212e3 bne tp,t0,800004a8 <test_22+0x4>
+800004c8: 0000aeb7 lui t4,0xa
+800004cc: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
+800004d0: 01600193 li gp,22
+800004d4: 0fdf1863 bne t5,t4,800005c4 <fail>
+
+800004d8 <test_23>:
+800004d8: 00000213 li tp,0
+800004dc: 00b00137 lui sp,0xb00
+800004e0: 00000013 nop
+800004e4: 00d000b7 lui ra,0xd00
+800004e8: 0220af33 mulhsu t5,ra,sp
+800004ec: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800004f0: 00200293 li t0,2
+800004f4: fe5214e3 bne tp,t0,800004dc <test_23+0x4>
+800004f8: 00009eb7 lui t4,0x9
+800004fc: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
+80000500: 01700193 li gp,23
+80000504: 0ddf1063 bne t5,t4,800005c4 <fail>
+
+80000508 <test_24>:
+80000508: 00000213 li tp,0
+8000050c: 00b00137 lui sp,0xb00
+80000510: 00000013 nop
+80000514: 00e000b7 lui ra,0xe00
+80000518: 00000013 nop
+8000051c: 0220af33 mulhsu t5,ra,sp
+80000520: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000524: 00200293 li t0,2
+80000528: fe5212e3 bne tp,t0,8000050c <test_24+0x4>
+8000052c: 0000aeb7 lui t4,0xa
+80000530: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
+80000534: 01800193 li gp,24
+80000538: 09df1663 bne t5,t4,800005c4 <fail>
+
+8000053c <test_25>:
+8000053c: 00000213 li tp,0
+80000540: 00b00137 lui sp,0xb00
+80000544: 00000013 nop
+80000548: 00000013 nop
+8000054c: 00f000b7 lui ra,0xf00
+80000550: 0220af33 mulhsu t5,ra,sp
+80000554: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000558: 00200293 li t0,2
+8000055c: fe5212e3 bne tp,t0,80000540 <test_25+0x4>
+80000560: 0000aeb7 lui t4,0xa
+80000564: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
+80000568: 01900193 li gp,25
+8000056c: 05df1c63 bne t5,t4,800005c4 <fail>
+
+80000570 <test_26>:
+80000570: 7c0000b7 lui ra,0x7c000
+80000574: 02102133 mulhsu sp,zero,ra
+80000578: 00000e93 li t4,0
+8000057c: 01a00193 li gp,26
+80000580: 05d11263 bne sp,t4,800005c4 <fail>
+
+80000584 <test_27>:
+80000584: 800000b7 lui ra,0x80000
+80000588: 0200a133 mulhsu sp,ra,zero
+8000058c: 00000e93 li t4,0
+80000590: 01b00193 li gp,27
+80000594: 03d11863 bne sp,t4,800005c4 <fail>
+
+80000598 <test_28>:
+80000598: 020020b3 mulhsu ra,zero,zero
+8000059c: 00000e93 li t4,0
+800005a0: 01c00193 li gp,28
+800005a4: 03d09063 bne ra,t4,800005c4 <fail>
+
+800005a8 <test_29>:
+800005a8: 021000b7 lui ra,0x2100
+800005ac: 02200137 lui sp,0x2200
+800005b0: 0220a033 mulhsu zero,ra,sp
+800005b4: 00000e93 li t4,0
+800005b8: 01d00193 li gp,29
+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
diff --git a/test/riscv-tests/rv32um-p-mulhsu.elf b/test/riscv-tests/rv32um-p-mulhsu.elf
new file mode 100644
index 0000000..4bbec21
--- /dev/null
+++ b/test/riscv-tests/rv32um-p-mulhsu.elf
Binary files differ
diff --git a/test/riscv-tests/rv32um-p-mulhu.dump b/test/riscv-tests/rv32um-p-mulhu.dump
new file mode 100644
index 0000000..642c24b
--- /dev/null
+++ b/test/riscv-tests/rv32um-p-mulhu.dump
@@ -0,0 +1,479 @@
+
+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: 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: 0220bf33 mulhu 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: 0220bf33 mulhu 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: 0220bf33 mulhu t5,ra,sp
+80000138: 00000e93 li t4,0
+8000013c: 00400193 li gp,4
+80000140: 49df1263 bne t5,t4,800005c4 <fail>
+
+80000144 <test_5>:
+80000144: 00000093 li ra,0
+80000148: ffff8137 lui sp,0xffff8
+8000014c: 0220bf33 mulhu t5,ra,sp
+80000150: 00000e93 li t4,0
+80000154: 00500193 li gp,5
+80000158: 47df1663 bne t5,t4,800005c4 <fail>
+
+8000015c <test_6>:
+8000015c: 800000b7 lui ra,0x80000
+80000160: 00000113 li sp,0
+80000164: 0220bf33 mulhu t5,ra,sp
+80000168: 00000e93 li t4,0
+8000016c: 00600193 li gp,6
+80000170: 45df1a63 bne t5,t4,800005c4 <fail>
+
+80000174 <test_7>:
+80000174: 800000b7 lui ra,0x80000
+80000178: ffff8137 lui sp,0xffff8
+8000017c: 0220bf33 mulhu t5,ra,sp
+80000180: 7fffceb7 lui t4,0x7fffc
+80000184: 00700193 li gp,7
+80000188: 43df1e63 bne t5,t4,800005c4 <fail>
+
+8000018c <test_30>:
+8000018c: aaaab0b7 lui ra,0xaaaab
+80000190: aab08093 addi ra,ra,-1365 # aaaaaaab <_end+0x2aaa8aab>
+80000194: 00030137 lui sp,0x30
+80000198: e7d10113 addi sp,sp,-387 # 2fe7d <_start-0x7ffd0183>
+8000019c: 0220bf33 mulhu t5,ra,sp
+800001a0: 00020eb7 lui t4,0x20
+800001a4: efee8e93 addi t4,t4,-258 # 1fefe <_start-0x7ffe0102>
+800001a8: 01e00193 li gp,30
+800001ac: 41df1c63 bne t5,t4,800005c4 <fail>
+
+800001b0 <test_31>:
+800001b0: 000300b7 lui ra,0x30
+800001b4: e7d08093 addi ra,ra,-387 # 2fe7d <_start-0x7ffd0183>
+800001b8: aaaab137 lui sp,0xaaaab
+800001bc: aab10113 addi sp,sp,-1365 # aaaaaaab <_end+0x2aaa8aab>
+800001c0: 0220bf33 mulhu t5,ra,sp
+800001c4: 00020eb7 lui t4,0x20
+800001c8: efee8e93 addi t4,t4,-258 # 1fefe <_start-0x7ffe0102>
+800001cc: 01f00193 li gp,31
+800001d0: 3fdf1a63 bne t5,t4,800005c4 <fail>
+
+800001d4 <test_32>:
+800001d4: ff0000b7 lui ra,0xff000
+800001d8: ff000137 lui sp,0xff000
+800001dc: 0220bf33 mulhu t5,ra,sp
+800001e0: fe010eb7 lui t4,0xfe010
+800001e4: 02000193 li gp,32
+800001e8: 3ddf1e63 bne t5,t4,800005c4 <fail>
+
+800001ec <test_33>:
+800001ec: fff00093 li ra,-1
+800001f0: fff00113 li sp,-1
+800001f4: 0220bf33 mulhu t5,ra,sp
+800001f8: ffe00e93 li t4,-2
+800001fc: 02100193 li gp,33
+80000200: 3ddf1263 bne t5,t4,800005c4 <fail>
+
+80000204 <test_34>:
+80000204: fff00093 li ra,-1
+80000208: 00100113 li sp,1
+8000020c: 0220bf33 mulhu t5,ra,sp
+80000210: 00000e93 li t4,0
+80000214: 02200193 li gp,34
+80000218: 3bdf1663 bne t5,t4,800005c4 <fail>
+
+8000021c <test_35>:
+8000021c: 00100093 li ra,1
+80000220: fff00113 li sp,-1
+80000224: 0220bf33 mulhu t5,ra,sp
+80000228: 00000e93 li t4,0
+8000022c: 02300193 li gp,35
+80000230: 39df1a63 bne t5,t4,800005c4 <fail>
+
+80000234 <test_8>:
+80000234: 00d000b7 lui ra,0xd00
+80000238: 00b00137 lui sp,0xb00
+8000023c: 0220b0b3 mulhu ra,ra,sp
+80000240: 00009eb7 lui t4,0x9
+80000244: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
+80000248: 00800193 li gp,8
+8000024c: 37d09c63 bne ra,t4,800005c4 <fail>
+
+80000250 <test_9>:
+80000250: 00e000b7 lui ra,0xe00
+80000254: 00b00137 lui sp,0xb00
+80000258: 0220b133 mulhu sp,ra,sp
+8000025c: 0000aeb7 lui t4,0xa
+80000260: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
+80000264: 00900193 li gp,9
+80000268: 35d11e63 bne sp,t4,800005c4 <fail>
+
+8000026c <test_10>:
+8000026c: 00d000b7 lui ra,0xd00
+80000270: 0210b0b3 mulhu ra,ra,ra
+80000274: 0000beb7 lui t4,0xb
+80000278: 900e8e93 addi t4,t4,-1792 # a900 <_start-0x7fff5700>
+8000027c: 00a00193 li gp,10
+80000280: 35d09263 bne ra,t4,800005c4 <fail>
+
+80000284 <test_11>:
+80000284: 00000213 li tp,0
+80000288: 00d000b7 lui ra,0xd00
+8000028c: 00b00137 lui sp,0xb00
+80000290: 0220bf33 mulhu t5,ra,sp
+80000294: 000f0313 mv t1,t5
+80000298: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000029c: 00200293 li t0,2
+800002a0: fe5214e3 bne tp,t0,80000288 <test_11+0x4>
+800002a4: 00009eb7 lui t4,0x9
+800002a8: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
+800002ac: 00b00193 li gp,11
+800002b0: 31d31a63 bne t1,t4,800005c4 <fail>
+
+800002b4 <test_12>:
+800002b4: 00000213 li tp,0
+800002b8: 00e000b7 lui ra,0xe00
+800002bc: 00b00137 lui sp,0xb00
+800002c0: 0220bf33 mulhu t5,ra,sp
+800002c4: 00000013 nop
+800002c8: 000f0313 mv t1,t5
+800002cc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800002d0: 00200293 li t0,2
+800002d4: fe5212e3 bne tp,t0,800002b8 <test_12+0x4>
+800002d8: 0000aeb7 lui t4,0xa
+800002dc: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
+800002e0: 00c00193 li gp,12
+800002e4: 2fd31063 bne t1,t4,800005c4 <fail>
+
+800002e8 <test_13>:
+800002e8: 00000213 li tp,0
+800002ec: 00f000b7 lui ra,0xf00
+800002f0: 00b00137 lui sp,0xb00
+800002f4: 0220bf33 mulhu t5,ra,sp
+800002f8: 00000013 nop
+800002fc: 00000013 nop
+80000300: 000f0313 mv t1,t5
+80000304: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000308: 00200293 li t0,2
+8000030c: fe5210e3 bne tp,t0,800002ec <test_13+0x4>
+80000310: 0000aeb7 lui t4,0xa
+80000314: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
+80000318: 00d00193 li gp,13
+8000031c: 2bd31463 bne t1,t4,800005c4 <fail>
+
+80000320 <test_14>:
+80000320: 00000213 li tp,0
+80000324: 00d000b7 lui ra,0xd00
+80000328: 00b00137 lui sp,0xb00
+8000032c: 0220bf33 mulhu t5,ra,sp
+80000330: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000334: 00200293 li t0,2
+80000338: fe5216e3 bne tp,t0,80000324 <test_14+0x4>
+8000033c: 00009eb7 lui t4,0x9
+80000340: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
+80000344: 00e00193 li gp,14
+80000348: 27df1e63 bne t5,t4,800005c4 <fail>
+
+8000034c <test_15>:
+8000034c: 00000213 li tp,0
+80000350: 00e000b7 lui ra,0xe00
+80000354: 00b00137 lui sp,0xb00
+80000358: 00000013 nop
+8000035c: 0220bf33 mulhu t5,ra,sp
+80000360: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000364: 00200293 li t0,2
+80000368: fe5214e3 bne tp,t0,80000350 <test_15+0x4>
+8000036c: 0000aeb7 lui t4,0xa
+80000370: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
+80000374: 00f00193 li gp,15
+80000378: 25df1663 bne t5,t4,800005c4 <fail>
+
+8000037c <test_16>:
+8000037c: 00000213 li tp,0
+80000380: 00f000b7 lui ra,0xf00
+80000384: 00b00137 lui sp,0xb00
+80000388: 00000013 nop
+8000038c: 00000013 nop
+80000390: 0220bf33 mulhu t5,ra,sp
+80000394: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000398: 00200293 li t0,2
+8000039c: fe5212e3 bne tp,t0,80000380 <test_16+0x4>
+800003a0: 0000aeb7 lui t4,0xa
+800003a4: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
+800003a8: 01000193 li gp,16
+800003ac: 21df1c63 bne t5,t4,800005c4 <fail>
+
+800003b0 <test_17>:
+800003b0: 00000213 li tp,0
+800003b4: 00d000b7 lui ra,0xd00
+800003b8: 00000013 nop
+800003bc: 00b00137 lui sp,0xb00
+800003c0: 0220bf33 mulhu t5,ra,sp
+800003c4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800003c8: 00200293 li t0,2
+800003cc: fe5214e3 bne tp,t0,800003b4 <test_17+0x4>
+800003d0: 00009eb7 lui t4,0x9
+800003d4: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
+800003d8: 01100193 li gp,17
+800003dc: 1fdf1463 bne t5,t4,800005c4 <fail>
+
+800003e0 <test_18>:
+800003e0: 00000213 li tp,0
+800003e4: 00e000b7 lui ra,0xe00
+800003e8: 00000013 nop
+800003ec: 00b00137 lui sp,0xb00
+800003f0: 00000013 nop
+800003f4: 0220bf33 mulhu t5,ra,sp
+800003f8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800003fc: 00200293 li t0,2
+80000400: fe5212e3 bne tp,t0,800003e4 <test_18+0x4>
+80000404: 0000aeb7 lui t4,0xa
+80000408: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
+8000040c: 01200193 li gp,18
+80000410: 1bdf1a63 bne t5,t4,800005c4 <fail>
+
+80000414 <test_19>:
+80000414: 00000213 li tp,0
+80000418: 00f000b7 lui ra,0xf00
+8000041c: 00000013 nop
+80000420: 00000013 nop
+80000424: 00b00137 lui sp,0xb00
+80000428: 0220bf33 mulhu t5,ra,sp
+8000042c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000430: 00200293 li t0,2
+80000434: fe5212e3 bne tp,t0,80000418 <test_19+0x4>
+80000438: 0000aeb7 lui t4,0xa
+8000043c: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
+80000440: 01300193 li gp,19
+80000444: 19df1063 bne t5,t4,800005c4 <fail>
+
+80000448 <test_20>:
+80000448: 00000213 li tp,0
+8000044c: 00b00137 lui sp,0xb00
+80000450: 00d000b7 lui ra,0xd00
+80000454: 0220bf33 mulhu t5,ra,sp
+80000458: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000045c: 00200293 li t0,2
+80000460: fe5216e3 bne tp,t0,8000044c <test_20+0x4>
+80000464: 00009eb7 lui t4,0x9
+80000468: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
+8000046c: 01400193 li gp,20
+80000470: 15df1a63 bne t5,t4,800005c4 <fail>
+
+80000474 <test_21>:
+80000474: 00000213 li tp,0
+80000478: 00b00137 lui sp,0xb00
+8000047c: 00e000b7 lui ra,0xe00
+80000480: 00000013 nop
+80000484: 0220bf33 mulhu t5,ra,sp
+80000488: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000048c: 00200293 li t0,2
+80000490: fe5214e3 bne tp,t0,80000478 <test_21+0x4>
+80000494: 0000aeb7 lui t4,0xa
+80000498: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
+8000049c: 01500193 li gp,21
+800004a0: 13df1263 bne t5,t4,800005c4 <fail>
+
+800004a4 <test_22>:
+800004a4: 00000213 li tp,0
+800004a8: 00b00137 lui sp,0xb00
+800004ac: 00f000b7 lui ra,0xf00
+800004b0: 00000013 nop
+800004b4: 00000013 nop
+800004b8: 0220bf33 mulhu t5,ra,sp
+800004bc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800004c0: 00200293 li t0,2
+800004c4: fe5212e3 bne tp,t0,800004a8 <test_22+0x4>
+800004c8: 0000aeb7 lui t4,0xa
+800004cc: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
+800004d0: 01600193 li gp,22
+800004d4: 0fdf1863 bne t5,t4,800005c4 <fail>
+
+800004d8 <test_23>:
+800004d8: 00000213 li tp,0
+800004dc: 00b00137 lui sp,0xb00
+800004e0: 00000013 nop
+800004e4: 00d000b7 lui ra,0xd00
+800004e8: 0220bf33 mulhu t5,ra,sp
+800004ec: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+800004f0: 00200293 li t0,2
+800004f4: fe5214e3 bne tp,t0,800004dc <test_23+0x4>
+800004f8: 00009eb7 lui t4,0x9
+800004fc: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
+80000500: 01700193 li gp,23
+80000504: 0ddf1063 bne t5,t4,800005c4 <fail>
+
+80000508 <test_24>:
+80000508: 00000213 li tp,0
+8000050c: 00b00137 lui sp,0xb00
+80000510: 00000013 nop
+80000514: 00e000b7 lui ra,0xe00
+80000518: 00000013 nop
+8000051c: 0220bf33 mulhu t5,ra,sp
+80000520: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000524: 00200293 li t0,2
+80000528: fe5212e3 bne tp,t0,8000050c <test_24+0x4>
+8000052c: 0000aeb7 lui t4,0xa
+80000530: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
+80000534: 01800193 li gp,24
+80000538: 09df1663 bne t5,t4,800005c4 <fail>
+
+8000053c <test_25>:
+8000053c: 00000213 li tp,0
+80000540: 00b00137 lui sp,0xb00
+80000544: 00000013 nop
+80000548: 00000013 nop
+8000054c: 00f000b7 lui ra,0xf00
+80000550: 0220bf33 mulhu t5,ra,sp
+80000554: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80000558: 00200293 li t0,2
+8000055c: fe5212e3 bne tp,t0,80000540 <test_25+0x4>
+80000560: 0000aeb7 lui t4,0xa
+80000564: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
+80000568: 01900193 li gp,25
+8000056c: 05df1c63 bne t5,t4,800005c4 <fail>
+
+80000570 <test_26>:
+80000570: 7c0000b7 lui ra,0x7c000
+80000574: 02103133 mulhu sp,zero,ra
+80000578: 00000e93 li t4,0
+8000057c: 01a00193 li gp,26
+80000580: 05d11263 bne sp,t4,800005c4 <fail>
+
+80000584 <test_27>:
+80000584: 800000b7 lui ra,0x80000
+80000588: 0200b133 mulhu sp,ra,zero
+8000058c: 00000e93 li t4,0
+80000590: 01b00193 li gp,27
+80000594: 03d11863 bne sp,t4,800005c4 <fail>
+
+80000598 <test_28>:
+80000598: 020030b3 mulhu ra,zero,zero
+8000059c: 00000e93 li t4,0
+800005a0: 01c00193 li gp,28
+800005a4: 03d09063 bne ra,t4,800005c4 <fail>
+
+800005a8 <test_29>:
+800005a8: 021000b7 lui ra,0x2100
+800005ac: 02200137 lui sp,0x2200
+800005b0: 0220b033 mulhu zero,ra,sp
+800005b4: 00000e93 li t4,0
+800005b8: 01d00193 li gp,29
+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
diff --git a/test/riscv-tests/rv32um-p-mulhu.elf b/test/riscv-tests/rv32um-p-mulhu.elf
new file mode 100644
index 0000000..dc72bf4
--- /dev/null
+++ b/test/riscv-tests/rv32um-p-mulhu.elf
Binary files differ
diff --git a/test/riscv-tests/rv32um-p-rem.dump b/test/riscv-tests/rv32um-p-rem.dump
new file mode 100644
index 0000000..de655c2
--- /dev/null
+++ b/test/riscv-tests/rv32um-p-rem.dump
@@ -0,0 +1,168 @@
+
+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: 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: 01400093 li ra,20
+80000100: 00600113 li sp,6
+80000104: 0220ef33 rem t5,ra,sp
+80000108: 00200e93 li t4,2
+8000010c: 00200193 li gp,2
+80000110: 0ddf1463 bne t5,t4,800001d8 <fail>
+
+80000114 <test_3>:
+80000114: fec00093 li ra,-20
+80000118: 00600113 li sp,6
+8000011c: 0220ef33 rem t5,ra,sp
+80000120: ffe00e93 li t4,-2
+80000124: 00300193 li gp,3
+80000128: 0bdf1863 bne t5,t4,800001d8 <fail>
+
+8000012c <test_4>:
+8000012c: 01400093 li ra,20
+80000130: ffa00113 li sp,-6
+80000134: 0220ef33 rem t5,ra,sp
+80000138: 00200e93 li t4,2
+8000013c: 00400193 li gp,4
+80000140: 09df1c63 bne t5,t4,800001d8 <fail>
+
+80000144 <test_5>:
+80000144: fec00093 li ra,-20
+80000148: ffa00113 li sp,-6
+8000014c: 0220ef33 rem t5,ra,sp
+80000150: ffe00e93 li t4,-2
+80000154: 00500193 li gp,5
+80000158: 09df1063 bne t5,t4,800001d8 <fail>
+
+8000015c <test_6>:
+8000015c: 800000b7 lui ra,0x80000
+80000160: 00100113 li sp,1
+80000164: 0220ef33 rem t5,ra,sp
+80000168: 00000e93 li t4,0
+8000016c: 00600193 li gp,6
+80000170: 07df1463 bne t5,t4,800001d8 <fail>
+
+80000174 <test_7>:
+80000174: 800000b7 lui ra,0x80000
+80000178: fff00113 li sp,-1
+8000017c: 0220ef33 rem t5,ra,sp
+80000180: 00000e93 li t4,0
+80000184: 00700193 li gp,7
+80000188: 05df1863 bne t5,t4,800001d8 <fail>
+
+8000018c <test_8>:
+8000018c: 800000b7 lui ra,0x80000
+80000190: 00000113 li sp,0
+80000194: 0220ef33 rem t5,ra,sp
+80000198: 80000eb7 lui t4,0x80000
+8000019c: 00800193 li gp,8
+800001a0: 03df1c63 bne t5,t4,800001d8 <fail>
+
+800001a4 <test_9>:
+800001a4: 00100093 li ra,1
+800001a8: 00000113 li sp,0
+800001ac: 0220ef33 rem t5,ra,sp
+800001b0: 00100e93 li t4,1
+800001b4: 00900193 li gp,9
+800001b8: 03df1063 bne t5,t4,800001d8 <fail>
+
+800001bc <test_10>:
+800001bc: 00000093 li ra,0
+800001c0: 00000113 li sp,0
+800001c4: 0220ef33 rem t5,ra,sp
+800001c8: 00000e93 li t4,0
+800001cc: 00a00193 li gp,10
+800001d0: 01df1463 bne t5,t4,800001d8 <fail>
+800001d4: 00301c63 bne zero,gp,800001ec <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: 00000073 ecall
+
+800001ec <pass>:
+800001ec: 0ff0000f fence
+800001f0: 00100193 li gp,1
+800001f4: 00000073 ecall
+800001f8: c0001073 unimp
+800001fc: 0000 unimp
+800001fe: 0000 unimp
+80000200: 0000 unimp
+80000202: 0000 unimp
diff --git a/test/riscv-tests/rv32um-p-rem.elf b/test/riscv-tests/rv32um-p-rem.elf
new file mode 100644
index 0000000..3df04cf
--- /dev/null
+++ b/test/riscv-tests/rv32um-p-rem.elf
Binary files differ
diff --git a/test/riscv-tests/rv32um-p-remu.dump b/test/riscv-tests/rv32um-p-remu.dump
new file mode 100644
index 0000000..ad3ae64
--- /dev/null
+++ b/test/riscv-tests/rv32um-p-remu.dump
@@ -0,0 +1,168 @@
+
+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: 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: 01400093 li ra,20
+80000100: 00600113 li sp,6
+80000104: 0220ff33 remu t5,ra,sp
+80000108: 00200e93 li t4,2
+8000010c: 00200193 li gp,2
+80000110: 0ddf1463 bne t5,t4,800001d8 <fail>
+
+80000114 <test_3>:
+80000114: fec00093 li ra,-20
+80000118: 00600113 li sp,6
+8000011c: 0220ff33 remu t5,ra,sp
+80000120: 00200e93 li t4,2
+80000124: 00300193 li gp,3
+80000128: 0bdf1863 bne t5,t4,800001d8 <fail>
+
+8000012c <test_4>:
+8000012c: 01400093 li ra,20
+80000130: ffa00113 li sp,-6
+80000134: 0220ff33 remu t5,ra,sp
+80000138: 01400e93 li t4,20
+8000013c: 00400193 li gp,4
+80000140: 09df1c63 bne t5,t4,800001d8 <fail>
+
+80000144 <test_5>:
+80000144: fec00093 li ra,-20
+80000148: ffa00113 li sp,-6
+8000014c: 0220ff33 remu t5,ra,sp
+80000150: fec00e93 li t4,-20
+80000154: 00500193 li gp,5
+80000158: 09df1063 bne t5,t4,800001d8 <fail>
+
+8000015c <test_6>:
+8000015c: 800000b7 lui ra,0x80000
+80000160: 00100113 li sp,1
+80000164: 0220ff33 remu t5,ra,sp
+80000168: 00000e93 li t4,0
+8000016c: 00600193 li gp,6
+80000170: 07df1463 bne t5,t4,800001d8 <fail>
+
+80000174 <test_7>:
+80000174: 800000b7 lui ra,0x80000
+80000178: fff00113 li sp,-1
+8000017c: 0220ff33 remu t5,ra,sp
+80000180: 80000eb7 lui t4,0x80000
+80000184: 00700193 li gp,7
+80000188: 05df1863 bne t5,t4,800001d8 <fail>
+
+8000018c <test_8>:
+8000018c: 800000b7 lui ra,0x80000
+80000190: 00000113 li sp,0
+80000194: 0220ff33 remu t5,ra,sp
+80000198: 80000eb7 lui t4,0x80000
+8000019c: 00800193 li gp,8
+800001a0: 03df1c63 bne t5,t4,800001d8 <fail>
+
+800001a4 <test_9>:
+800001a4: 00100093 li ra,1
+800001a8: 00000113 li sp,0
+800001ac: 0220ff33 remu t5,ra,sp
+800001b0: 00100e93 li t4,1
+800001b4: 00900193 li gp,9
+800001b8: 03df1063 bne t5,t4,800001d8 <fail>
+
+800001bc <test_10>:
+800001bc: 00000093 li ra,0
+800001c0: 00000113 li sp,0
+800001c4: 0220ff33 remu t5,ra,sp
+800001c8: 00000e93 li t4,0
+800001cc: 00a00193 li gp,10
+800001d0: 01df1463 bne t5,t4,800001d8 <fail>
+800001d4: 00301c63 bne zero,gp,800001ec <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: 00000073 ecall
+
+800001ec <pass>:
+800001ec: 0ff0000f fence
+800001f0: 00100193 li gp,1
+800001f4: 00000073 ecall
+800001f8: c0001073 unimp
+800001fc: 0000 unimp
+800001fe: 0000 unimp
+80000200: 0000 unimp
+80000202: 0000 unimp
diff --git a/test/riscv-tests/rv32um-p-remu.elf b/test/riscv-tests/rv32um-p-remu.elf
new file mode 100644
index 0000000..fcfbb7f
--- /dev/null
+++ b/test/riscv-tests/rv32um-p-remu.elf
Binary files differ
diff --git a/test/riscv-tests/rv32um-v-div.dump b/test/riscv-tests/rv32um-v-div.dump
new file mode 100644
index 0000000..00ce24b
--- /dev/null
+++ b/test/riscv-tests/rv32um-v-div.dump
@@ -0,0 +1,981 @@
+
+rv32um-v-div: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00006117 auipc sp,0x6
+8000001c: 35010113 addi sp,sp,848 # 80006368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00001317 auipc t1,0x1
+80002370: c9430313 addi t1,t1,-876 # 80003000 <begin_signature>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00003797 auipc a5,0x3
+8000238c: 06c78793 addi a5,a5,108 # 800053f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00003717 auipc a4,0x3
+800023a0: 05470713 addi a4,a4,84 # 800053f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00003697 auipc a3,0x3
+800023ac: 04f6a623 sw a5,76(a3) # 800053f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00003717 auipc a4,0x3
+800023dc: e2070713 addi a4,a4,-480 # 800051f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbfac08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00003797 auipc a5,0x3
+800024bc: f207ac23 sw zero,-200(a5) # 800053f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00001597 auipc a1,0x1
+800024cc: 81058593 addi a1,a1,-2032 # 80002cd8 <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00001597 auipc a1,0x1
+8000253c: 82c58593 addi a1,a1,-2004 # 80002d64 <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00000597 auipc a1,0x0
+800025a8: 7d858593 addi a1,a1,2008 # 80002d7c <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00000597 auipc a1,0x0
+80002614: 70c58593 addi a1,a1,1804 # 80002d1c <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00000597 auipc a1,0x0
+8000274c: 6fc58593 addi a1,a1,1788 # 80002e44 <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00000597 auipc a1,0x0
+800027c0: 66458593 addi a1,a1,1636 # 80002e20 <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00003b17 auipc s6,0x3
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800051f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00000d17 auipc s10,0x0
+80002840: 7c4d0d13 addi s10,s10,1988 # 80003000 <begin_signature>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00003717 auipc a4,0x3
+8000285c: b8f72c23 sw a5,-1128(a4) # 800053f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00003717 auipc a4,0x3
+800028e8: b0c70713 addi a4,a4,-1268 # 800053f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00003717 auipc a4,0x3
+800028fc: aef72c23 sw a5,-1288(a4) # 800053f0 <freelist_tail>
+80002900: 00003717 auipc a4,0x3
+80002904: aef72a23 sw a5,-1292(a4) # 800053f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00000617 auipc a2,0x0
+80002914: 56060613 addi a2,a2,1376 # 80002e70 <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00000617 auipc a2,0x0
+80002980: 47060613 addi a2,a2,1136 # 80002dec <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 3f060613 addi a2,a2,1008 # 80002db8 <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00001797 auipc a5,0x1
+80002a4c: 5b878793 addi a5,a5,1464 # 80004000 <begin_signature+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00000697 auipc a3,0x0
+80002a60: 5af6a223 sw a5,1444(a3) # 80003000 <begin_signature>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00000717 auipc a4,0x0
+80002a6c: 59870713 addi a4,a4,1432 # 80003000 <begin_signature>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00001697 auipc a3,0x1
+80002a7c: 58f6a223 sw a5,1412(a3) # 80003ffc <begin_signature+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbfaccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc02797 auipc a5,0x7fc02
+80002aec: 51878793 addi a5,a5,1304 # ffc05000 <_end+0x7fbffc08>
+80002af0: 00003717 auipc a4,0x3
+80002af4: 90f72223 sw a5,-1788(a4) # 800053f4 <freelist_head>
+80002af8: 7fc02797 auipc a5,0x7fc02
+80002afc: 6f878793 addi a5,a5,1784 # ffc051f0 <_end+0x7fbffdf8>
+80002b00: 00003717 auipc a4,0x3
+80002b04: 8ef72823 sw a5,-1808(a4) # 800053f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00002717 auipc a4,0x2
+80002b10: 4f470713 addi a4,a4,1268 # 80005000 <freelist_nodes>
+80002b14: 00002317 auipc t1,0x2
+80002b18: 6e430313 addi t1,t1,1764 # 800051f8 <user_mapping>
+80002b1c: 00100793 li a5,1
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00002797 auipc a5,0x2
+80002b6c: 6807a623 sw zero,1676(a5) # 800051f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 077a97b7 lui a5,0x77a9
+80002b9c: 00080637 lui a2,0x80
+80002ba0: 32478793 addi a5,a5,804 # 77a9324 <_start-0x78856cdc>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: 01400093 li ra,20
+80002be4: 00600113 li sp,6
+80002be8: 0220cf33 div t5,ra,sp
+80002bec: 00300e93 li t4,3
+80002bf0: 00200193 li gp,2
+80002bf4: 0ddf1463 bne t5,t4,80002cbc <fail>
+
+80002bf8 <test_3>:
+80002bf8: fec00093 li ra,-20
+80002bfc: 00600113 li sp,6
+80002c00: 0220cf33 div t5,ra,sp
+80002c04: ffd00e93 li t4,-3
+80002c08: 00300193 li gp,3
+80002c0c: 0bdf1863 bne t5,t4,80002cbc <fail>
+
+80002c10 <test_4>:
+80002c10: 01400093 li ra,20
+80002c14: ffa00113 li sp,-6
+80002c18: 0220cf33 div t5,ra,sp
+80002c1c: ffd00e93 li t4,-3
+80002c20: 00400193 li gp,4
+80002c24: 09df1c63 bne t5,t4,80002cbc <fail>
+
+80002c28 <test_5>:
+80002c28: fec00093 li ra,-20
+80002c2c: ffa00113 li sp,-6
+80002c30: 0220cf33 div t5,ra,sp
+80002c34: 00300e93 li t4,3
+80002c38: 00500193 li gp,5
+80002c3c: 09df1063 bne t5,t4,80002cbc <fail>
+
+80002c40 <test_6>:
+80002c40: 800000b7 lui ra,0x80000
+80002c44: 00100113 li sp,1
+80002c48: 0220cf33 div t5,ra,sp
+80002c4c: 80000eb7 lui t4,0x80000
+80002c50: 00600193 li gp,6
+80002c54: 07df1463 bne t5,t4,80002cbc <fail>
+
+80002c58 <test_7>:
+80002c58: 800000b7 lui ra,0x80000
+80002c5c: fff00113 li sp,-1
+80002c60: 0220cf33 div t5,ra,sp
+80002c64: 80000eb7 lui t4,0x80000
+80002c68: 00700193 li gp,7
+80002c6c: 05df1863 bne t5,t4,80002cbc <fail>
+
+80002c70 <test_8>:
+80002c70: 800000b7 lui ra,0x80000
+80002c74: 00000113 li sp,0
+80002c78: 0220cf33 div t5,ra,sp
+80002c7c: fff00e93 li t4,-1
+80002c80: 00800193 li gp,8
+80002c84: 03df1c63 bne t5,t4,80002cbc <fail>
+
+80002c88 <test_9>:
+80002c88: 00100093 li ra,1
+80002c8c: 00000113 li sp,0
+80002c90: 0220cf33 div t5,ra,sp
+80002c94: fff00e93 li t4,-1
+80002c98: 00900193 li gp,9
+80002c9c: 03df1063 bne t5,t4,80002cbc <fail>
+
+80002ca0 <test_10>:
+80002ca0: 00000093 li ra,0
+80002ca4: 00000113 li sp,0
+80002ca8: 0220cf33 div t5,ra,sp
+80002cac: fff00e93 li t4,-1
+80002cb0: 00a00193 li gp,10
+80002cb4: 01df1463 bne t5,t4,80002cbc <fail>
+80002cb8: 00301a63 bne zero,gp,80002ccc <pass>
+
+80002cbc <fail>:
+80002cbc: 00119513 slli a0,gp,0x1
+80002cc0: 00050063 beqz a0,80002cc0 <fail+0x4>
+80002cc4: 00156513 ori a0,a0,1
+80002cc8: 00000073 ecall
+
+80002ccc <pass>:
+80002ccc: 00100513 li a0,1
+80002cd0: 00000073 ecall
+80002cd4: c0001073 unimp
diff --git a/test/riscv-tests/rv32um-v-div.elf b/test/riscv-tests/rv32um-v-div.elf
new file mode 100644
index 0000000..b76bf2e
--- /dev/null
+++ b/test/riscv-tests/rv32um-v-div.elf
Binary files differ
diff --git a/test/riscv-tests/rv32um-v-divu.dump b/test/riscv-tests/rv32um-v-divu.dump
new file mode 100644
index 0000000..de53373
--- /dev/null
+++ b/test/riscv-tests/rv32um-v-divu.dump
@@ -0,0 +1,982 @@
+
+rv32um-v-divu: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00006117 auipc sp,0x6
+8000001c: 35010113 addi sp,sp,848 # 80006368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00001317 auipc t1,0x1
+80002370: c9430313 addi t1,t1,-876 # 80003000 <begin_signature>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00003797 auipc a5,0x3
+8000238c: 06c78793 addi a5,a5,108 # 800053f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00003717 auipc a4,0x3
+800023a0: 05470713 addi a4,a4,84 # 800053f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00003697 auipc a3,0x3
+800023ac: 04f6a623 sw a5,76(a3) # 800053f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00003717 auipc a4,0x3
+800023dc: e2070713 addi a4,a4,-480 # 800051f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbfac08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00003797 auipc a5,0x3
+800024bc: f207ac23 sw zero,-200(a5) # 800053f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00001597 auipc a1,0x1
+800024cc: 81458593 addi a1,a1,-2028 # 80002cdc <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00001597 auipc a1,0x1
+8000253c: 83058593 addi a1,a1,-2000 # 80002d68 <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00000597 auipc a1,0x0
+800025a8: 7dc58593 addi a1,a1,2012 # 80002d80 <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00000597 auipc a1,0x0
+80002614: 71058593 addi a1,a1,1808 # 80002d20 <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00000597 auipc a1,0x0
+8000274c: 70058593 addi a1,a1,1792 # 80002e48 <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00000597 auipc a1,0x0
+800027c0: 66858593 addi a1,a1,1640 # 80002e24 <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00003b17 auipc s6,0x3
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800051f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00000d17 auipc s10,0x0
+80002840: 7c4d0d13 addi s10,s10,1988 # 80003000 <begin_signature>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00003717 auipc a4,0x3
+8000285c: b8f72c23 sw a5,-1128(a4) # 800053f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00003717 auipc a4,0x3
+800028e8: b0c70713 addi a4,a4,-1268 # 800053f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00003717 auipc a4,0x3
+800028fc: aef72c23 sw a5,-1288(a4) # 800053f0 <freelist_tail>
+80002900: 00003717 auipc a4,0x3
+80002904: aef72a23 sw a5,-1292(a4) # 800053f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00000617 auipc a2,0x0
+80002914: 56460613 addi a2,a2,1380 # 80002e74 <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00000617 auipc a2,0x0
+80002980: 47460613 addi a2,a2,1140 # 80002df0 <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 3f460613 addi a2,a2,1012 # 80002dbc <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00001797 auipc a5,0x1
+80002a4c: 5b878793 addi a5,a5,1464 # 80004000 <begin_signature+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00000697 auipc a3,0x0
+80002a60: 5af6a223 sw a5,1444(a3) # 80003000 <begin_signature>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00000717 auipc a4,0x0
+80002a6c: 59870713 addi a4,a4,1432 # 80003000 <begin_signature>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00001697 auipc a3,0x1
+80002a7c: 58f6a223 sw a5,1412(a3) # 80003ffc <begin_signature+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbfaccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc02797 auipc a5,0x7fc02
+80002aec: 51878793 addi a5,a5,1304 # ffc05000 <_end+0x7fbffc08>
+80002af0: 00003717 auipc a4,0x3
+80002af4: 90f72223 sw a5,-1788(a4) # 800053f4 <freelist_head>
+80002af8: 7fc02797 auipc a5,0x7fc02
+80002afc: 6f878793 addi a5,a5,1784 # ffc051f0 <_end+0x7fbffdf8>
+80002b00: 00003717 auipc a4,0x3
+80002b04: 8ef72823 sw a5,-1808(a4) # 800053f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00002717 auipc a4,0x2
+80002b10: 4f470713 addi a4,a4,1268 # 80005000 <freelist_nodes>
+80002b14: 00002317 auipc t1,0x2
+80002b18: 6e430313 addi t1,t1,1764 # 800051f8 <user_mapping>
+80002b1c: 02e00793 li a5,46
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00002797 auipc a5,0x2
+80002b6c: 6807a623 sw zero,1676(a5) # 800051f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 0f7eb7b7 lui a5,0xf7eb
+80002b9c: 00080637 lui a2,0x80
+80002ba0: 96e78793 addi a5,a5,-1682 # f7ea96e <_start-0x70815692>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: 01400093 li ra,20
+80002be4: 00600113 li sp,6
+80002be8: 0220df33 divu t5,ra,sp
+80002bec: 00300e93 li t4,3
+80002bf0: 00200193 li gp,2
+80002bf4: 0ddf1663 bne t5,t4,80002cc0 <fail>
+
+80002bf8 <test_3>:
+80002bf8: fec00093 li ra,-20
+80002bfc: 00600113 li sp,6
+80002c00: 0220df33 divu t5,ra,sp
+80002c04: 2aaabeb7 lui t4,0x2aaab
+80002c08: aa7e8e93 addi t4,t4,-1369 # 2aaaaaa7 <_start-0x55555559>
+80002c0c: 00300193 li gp,3
+80002c10: 0bdf1863 bne t5,t4,80002cc0 <fail>
+
+80002c14 <test_4>:
+80002c14: 01400093 li ra,20
+80002c18: ffa00113 li sp,-6
+80002c1c: 0220df33 divu t5,ra,sp
+80002c20: 00000e93 li t4,0
+80002c24: 00400193 li gp,4
+80002c28: 09df1c63 bne t5,t4,80002cc0 <fail>
+
+80002c2c <test_5>:
+80002c2c: fec00093 li ra,-20
+80002c30: ffa00113 li sp,-6
+80002c34: 0220df33 divu t5,ra,sp
+80002c38: 00000e93 li t4,0
+80002c3c: 00500193 li gp,5
+80002c40: 09df1063 bne t5,t4,80002cc0 <fail>
+
+80002c44 <test_6>:
+80002c44: 800000b7 lui ra,0x80000
+80002c48: 00100113 li sp,1
+80002c4c: 0220df33 divu t5,ra,sp
+80002c50: 80000eb7 lui t4,0x80000
+80002c54: 00600193 li gp,6
+80002c58: 07df1463 bne t5,t4,80002cc0 <fail>
+
+80002c5c <test_7>:
+80002c5c: 800000b7 lui ra,0x80000
+80002c60: fff00113 li sp,-1
+80002c64: 0220df33 divu t5,ra,sp
+80002c68: 00000e93 li t4,0
+80002c6c: 00700193 li gp,7
+80002c70: 05df1863 bne t5,t4,80002cc0 <fail>
+
+80002c74 <test_8>:
+80002c74: 800000b7 lui ra,0x80000
+80002c78: 00000113 li sp,0
+80002c7c: 0220df33 divu t5,ra,sp
+80002c80: fff00e93 li t4,-1
+80002c84: 00800193 li gp,8
+80002c88: 03df1c63 bne t5,t4,80002cc0 <fail>
+
+80002c8c <test_9>:
+80002c8c: 00100093 li ra,1
+80002c90: 00000113 li sp,0
+80002c94: 0220df33 divu t5,ra,sp
+80002c98: fff00e93 li t4,-1
+80002c9c: 00900193 li gp,9
+80002ca0: 03df1063 bne t5,t4,80002cc0 <fail>
+
+80002ca4 <test_10>:
+80002ca4: 00000093 li ra,0
+80002ca8: 00000113 li sp,0
+80002cac: 0220df33 divu t5,ra,sp
+80002cb0: fff00e93 li t4,-1
+80002cb4: 00a00193 li gp,10
+80002cb8: 01df1463 bne t5,t4,80002cc0 <fail>
+80002cbc: 00301a63 bne zero,gp,80002cd0 <pass>
+
+80002cc0 <fail>:
+80002cc0: 00119513 slli a0,gp,0x1
+80002cc4: 00050063 beqz a0,80002cc4 <fail+0x4>
+80002cc8: 00156513 ori a0,a0,1
+80002ccc: 00000073 ecall
+
+80002cd0 <pass>:
+80002cd0: 00100513 li a0,1
+80002cd4: 00000073 ecall
+80002cd8: c0001073 unimp
diff --git a/test/riscv-tests/rv32um-v-divu.elf b/test/riscv-tests/rv32um-v-divu.elf
new file mode 100644
index 0000000..2ca3f88
--- /dev/null
+++ b/test/riscv-tests/rv32um-v-divu.elf
Binary files differ
diff --git a/test/riscv-tests/rv32um-v-mul.dump b/test/riscv-tests/rv32um-v-mul.dump
new file mode 100644
index 0000000..d7c43a8
--- /dev/null
+++ b/test/riscv-tests/rv32um-v-mul.dump
@@ -0,0 +1,1286 @@
+
+rv32um-v-mul: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00007117 auipc sp,0x7
+8000001c: 35010113 addi sp,sp,848 # 80007368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00002317 auipc t1,0x2
+80002370: c9430313 addi t1,t1,-876 # 80004000 <begin_signature>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00004797 auipc a5,0x4
+8000238c: 06c78793 addi a5,a5,108 # 800063f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00004717 auipc a4,0x4
+800023a0: 05470713 addi a4,a4,84 # 800063f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00004697 auipc a3,0x4
+800023ac: 04f6a623 sw a5,76(a3) # 800063f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00004717 auipc a4,0x4
+800023dc: e2070713 addi a4,a4,-480 # 800061f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf9c08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00004797 auipc a5,0x4
+800024bc: f207ac23 sw zero,-200(a5) # 800063f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00001597 auipc a1,0x1
+800024cc: bfc58593 addi a1,a1,-1028 # 800030c4 <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00001597 auipc a1,0x1
+8000253c: c1858593 addi a1,a1,-1000 # 80003150 <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00001597 auipc a1,0x1
+800025a8: bc458593 addi a1,a1,-1084 # 80003168 <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00001597 auipc a1,0x1
+80002614: af858593 addi a1,a1,-1288 # 80003108 <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00001597 auipc a1,0x1
+8000274c: ae858593 addi a1,a1,-1304 # 80003230 <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00001597 auipc a1,0x1
+800027c0: a5058593 addi a1,a1,-1456 # 8000320c <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00004b17 auipc s6,0x4
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800061f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00001d17 auipc s10,0x1
+80002840: 7c4d0d13 addi s10,s10,1988 # 80004000 <begin_signature>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00004717 auipc a4,0x4
+8000285c: b8f72c23 sw a5,-1128(a4) # 800063f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00004717 auipc a4,0x4
+800028e8: b0c70713 addi a4,a4,-1268 # 800063f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00004717 auipc a4,0x4
+800028fc: aef72c23 sw a5,-1288(a4) # 800063f0 <freelist_tail>
+80002900: 00004717 auipc a4,0x4
+80002904: aef72a23 sw a5,-1292(a4) # 800063f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00001617 auipc a2,0x1
+80002914: 94c60613 addi a2,a2,-1716 # 8000325c <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00001617 auipc a2,0x1
+80002980: 85c60613 addi a2,a2,-1956 # 800031d8 <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 7dc60613 addi a2,a2,2012 # 800031a4 <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00002797 auipc a5,0x2
+80002a4c: 5b878793 addi a5,a5,1464 # 80005000 <begin_signature+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00001697 auipc a3,0x1
+80002a60: 5af6a223 sw a5,1444(a3) # 80004000 <begin_signature>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00001717 auipc a4,0x1
+80002a6c: 59870713 addi a4,a4,1432 # 80004000 <begin_signature>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00002697 auipc a3,0x2
+80002a7c: 58f6a223 sw a5,1412(a3) # 80004ffc <begin_signature+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf9ccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc03797 auipc a5,0x7fc03
+80002aec: 51878793 addi a5,a5,1304 # ffc06000 <_end+0x7fbffc08>
+80002af0: 00004717 auipc a4,0x4
+80002af4: 90f72223 sw a5,-1788(a4) # 800063f4 <freelist_head>
+80002af8: 7fc03797 auipc a5,0x7fc03
+80002afc: 6f878793 addi a5,a5,1784 # ffc061f0 <_end+0x7fbffdf8>
+80002b00: 00004717 auipc a4,0x4
+80002b04: 8ef72823 sw a5,-1808(a4) # 800063f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00003717 auipc a4,0x3
+80002b10: 4f470713 addi a4,a4,1268 # 80006000 <freelist_nodes>
+80002b14: 00003317 auipc t1,0x3
+80002b18: 6e430313 addi t1,t1,1764 # 800061f8 <user_mapping>
+80002b1c: 01300793 li a5,19
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00003797 auipc a5,0x3
+80002b6c: 6807a623 sw zero,1676(a5) # 800061f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 000eb7b7 lui a5,0xeb
+80002b9c: 00080637 lui a2,0x80
+80002ba0: 97e78793 addi a5,a5,-1666 # ea97e <_start-0x7ff15682>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: 000080b7 lui ra,0x8
+80002be4: e0008093 addi ra,ra,-512 # 7e00 <_start-0x7fff8200>
+80002be8: b6db7137 lui sp,0xb6db7
+80002bec: db710113 addi sp,sp,-585 # b6db6db7 <_end+0x36db09bf>
+80002bf0: 02208f33 mul t5,ra,sp
+80002bf4: 00001eb7 lui t4,0x1
+80002bf8: 200e8e93 addi t4,t4,512 # 1200 <_start-0x7fffee00>
+80002bfc: 02000193 li gp,32
+80002c00: 4bdf1463 bne t5,t4,800030a8 <fail>
+
+80002c04 <test_33>:
+80002c04: 000080b7 lui ra,0x8
+80002c08: fc008093 addi ra,ra,-64 # 7fc0 <_start-0x7fff8040>
+80002c0c: b6db7137 lui sp,0xb6db7
+80002c10: db710113 addi sp,sp,-585 # b6db6db7 <_end+0x36db09bf>
+80002c14: 02208f33 mul t5,ra,sp
+80002c18: 00001eb7 lui t4,0x1
+80002c1c: 240e8e93 addi t4,t4,576 # 1240 <_start-0x7fffedc0>
+80002c20: 02100193 li gp,33
+80002c24: 49df1263 bne t5,t4,800030a8 <fail>
+
+80002c28 <test_2>:
+80002c28: 00000093 li ra,0
+80002c2c: 00000113 li sp,0
+80002c30: 02208f33 mul t5,ra,sp
+80002c34: 00000e93 li t4,0
+80002c38: 00200193 li gp,2
+80002c3c: 47df1663 bne t5,t4,800030a8 <fail>
+
+80002c40 <test_3>:
+80002c40: 00100093 li ra,1
+80002c44: 00100113 li sp,1
+80002c48: 02208f33 mul t5,ra,sp
+80002c4c: 00100e93 li t4,1
+80002c50: 00300193 li gp,3
+80002c54: 45df1a63 bne t5,t4,800030a8 <fail>
+
+80002c58 <test_4>:
+80002c58: 00300093 li ra,3
+80002c5c: 00700113 li sp,7
+80002c60: 02208f33 mul t5,ra,sp
+80002c64: 01500e93 li t4,21
+80002c68: 00400193 li gp,4
+80002c6c: 43df1e63 bne t5,t4,800030a8 <fail>
+
+80002c70 <test_5>:
+80002c70: 00000093 li ra,0
+80002c74: ffff8137 lui sp,0xffff8
+80002c78: 02208f33 mul t5,ra,sp
+80002c7c: 00000e93 li t4,0
+80002c80: 00500193 li gp,5
+80002c84: 43df1263 bne t5,t4,800030a8 <fail>
+
+80002c88 <test_6>:
+80002c88: 800000b7 lui ra,0x80000
+80002c8c: 00000113 li sp,0
+80002c90: 02208f33 mul t5,ra,sp
+80002c94: 00000e93 li t4,0
+80002c98: 00600193 li gp,6
+80002c9c: 41df1663 bne t5,t4,800030a8 <fail>
+
+80002ca0 <test_7>:
+80002ca0: 800000b7 lui ra,0x80000
+80002ca4: ffff8137 lui sp,0xffff8
+80002ca8: 02208f33 mul t5,ra,sp
+80002cac: 00000e93 li t4,0
+80002cb0: 00700193 li gp,7
+80002cb4: 3fdf1a63 bne t5,t4,800030a8 <fail>
+
+80002cb8 <test_30>:
+80002cb8: aaaab0b7 lui ra,0xaaaab
+80002cbc: aab08093 addi ra,ra,-1365 # aaaaaaab <_end+0x2aaa46b3>
+80002cc0: 00030137 lui sp,0x30
+80002cc4: e7d10113 addi sp,sp,-387 # 2fe7d <_start-0x7ffd0183>
+80002cc8: 02208f33 mul t5,ra,sp
+80002ccc: 00010eb7 lui t4,0x10
+80002cd0: f7fe8e93 addi t4,t4,-129 # ff7f <_start-0x7fff0081>
+80002cd4: 01e00193 li gp,30
+80002cd8: 3ddf1863 bne t5,t4,800030a8 <fail>
+
+80002cdc <test_31>:
+80002cdc: 000300b7 lui ra,0x30
+80002ce0: e7d08093 addi ra,ra,-387 # 2fe7d <_start-0x7ffd0183>
+80002ce4: aaaab137 lui sp,0xaaaab
+80002ce8: aab10113 addi sp,sp,-1365 # aaaaaaab <_end+0x2aaa46b3>
+80002cec: 02208f33 mul t5,ra,sp
+80002cf0: 00010eb7 lui t4,0x10
+80002cf4: f7fe8e93 addi t4,t4,-129 # ff7f <_start-0x7fff0081>
+80002cf8: 01f00193 li gp,31
+80002cfc: 3bdf1663 bne t5,t4,800030a8 <fail>
+
+80002d00 <test_34>:
+80002d00: ff0000b7 lui ra,0xff000
+80002d04: ff000137 lui sp,0xff000
+80002d08: 02208f33 mul t5,ra,sp
+80002d0c: 00000e93 li t4,0
+80002d10: 02200193 li gp,34
+80002d14: 39df1a63 bne t5,t4,800030a8 <fail>
+
+80002d18 <test_35>:
+80002d18: fff00093 li ra,-1
+80002d1c: fff00113 li sp,-1
+80002d20: 02208f33 mul t5,ra,sp
+80002d24: 00100e93 li t4,1
+80002d28: 02300193 li gp,35
+80002d2c: 37df1e63 bne t5,t4,800030a8 <fail>
+
+80002d30 <test_36>:
+80002d30: fff00093 li ra,-1
+80002d34: 00100113 li sp,1
+80002d38: 02208f33 mul t5,ra,sp
+80002d3c: fff00e93 li t4,-1
+80002d40: 02400193 li gp,36
+80002d44: 37df1263 bne t5,t4,800030a8 <fail>
+
+80002d48 <test_37>:
+80002d48: 00100093 li ra,1
+80002d4c: fff00113 li sp,-1
+80002d50: 02208f33 mul t5,ra,sp
+80002d54: fff00e93 li t4,-1
+80002d58: 02500193 li gp,37
+80002d5c: 35df1663 bne t5,t4,800030a8 <fail>
+
+80002d60 <test_8>:
+80002d60: 00d00093 li ra,13
+80002d64: 00b00113 li sp,11
+80002d68: 022080b3 mul ra,ra,sp
+80002d6c: 08f00e93 li t4,143
+80002d70: 00800193 li gp,8
+80002d74: 33d09a63 bne ra,t4,800030a8 <fail>
+
+80002d78 <test_9>:
+80002d78: 00e00093 li ra,14
+80002d7c: 00b00113 li sp,11
+80002d80: 02208133 mul sp,ra,sp
+80002d84: 09a00e93 li t4,154
+80002d88: 00900193 li gp,9
+80002d8c: 31d11e63 bne sp,t4,800030a8 <fail>
+
+80002d90 <test_10>:
+80002d90: 00d00093 li ra,13
+80002d94: 021080b3 mul ra,ra,ra
+80002d98: 0a900e93 li t4,169
+80002d9c: 00a00193 li gp,10
+80002da0: 31d09463 bne ra,t4,800030a8 <fail>
+
+80002da4 <test_11>:
+80002da4: 00000213 li tp,0
+80002da8: 00d00093 li ra,13
+80002dac: 00b00113 li sp,11
+80002db0: 02208f33 mul t5,ra,sp
+80002db4: 000f0313 mv t1,t5
+80002db8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002dbc: 00200293 li t0,2
+80002dc0: fe5214e3 bne tp,t0,80002da8 <test_11+0x4>
+80002dc4: 08f00e93 li t4,143
+80002dc8: 00b00193 li gp,11
+80002dcc: 2dd31e63 bne t1,t4,800030a8 <fail>
+
+80002dd0 <test_12>:
+80002dd0: 00000213 li tp,0
+80002dd4: 00e00093 li ra,14
+80002dd8: 00b00113 li sp,11
+80002ddc: 02208f33 mul t5,ra,sp
+80002de0: 00000013 nop
+80002de4: 000f0313 mv t1,t5
+80002de8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002dec: 00200293 li t0,2
+80002df0: fe5212e3 bne tp,t0,80002dd4 <test_12+0x4>
+80002df4: 09a00e93 li t4,154
+80002df8: 00c00193 li gp,12
+80002dfc: 2bd31663 bne t1,t4,800030a8 <fail>
+
+80002e00 <test_13>:
+80002e00: 00000213 li tp,0
+80002e04: 00f00093 li ra,15
+80002e08: 00b00113 li sp,11
+80002e0c: 02208f33 mul t5,ra,sp
+80002e10: 00000013 nop
+80002e14: 00000013 nop
+80002e18: 000f0313 mv t1,t5
+80002e1c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e20: 00200293 li t0,2
+80002e24: fe5210e3 bne tp,t0,80002e04 <test_13+0x4>
+80002e28: 0a500e93 li t4,165
+80002e2c: 00d00193 li gp,13
+80002e30: 27d31c63 bne t1,t4,800030a8 <fail>
+
+80002e34 <test_14>:
+80002e34: 00000213 li tp,0
+80002e38: 00d00093 li ra,13
+80002e3c: 00b00113 li sp,11
+80002e40: 02208f33 mul t5,ra,sp
+80002e44: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e48: 00200293 li t0,2
+80002e4c: fe5216e3 bne tp,t0,80002e38 <test_14+0x4>
+80002e50: 08f00e93 li t4,143
+80002e54: 00e00193 li gp,14
+80002e58: 25df1863 bne t5,t4,800030a8 <fail>
+
+80002e5c <test_15>:
+80002e5c: 00000213 li tp,0
+80002e60: 00e00093 li ra,14
+80002e64: 00b00113 li sp,11
+80002e68: 00000013 nop
+80002e6c: 02208f33 mul t5,ra,sp
+80002e70: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e74: 00200293 li t0,2
+80002e78: fe5214e3 bne tp,t0,80002e60 <test_15+0x4>
+80002e7c: 09a00e93 li t4,154
+80002e80: 00f00193 li gp,15
+80002e84: 23df1263 bne t5,t4,800030a8 <fail>
+
+80002e88 <test_16>:
+80002e88: 00000213 li tp,0
+80002e8c: 00f00093 li ra,15
+80002e90: 00b00113 li sp,11
+80002e94: 00000013 nop
+80002e98: 00000013 nop
+80002e9c: 02208f33 mul t5,ra,sp
+80002ea0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002ea4: 00200293 li t0,2
+80002ea8: fe5212e3 bne tp,t0,80002e8c <test_16+0x4>
+80002eac: 0a500e93 li t4,165
+80002eb0: 01000193 li gp,16
+80002eb4: 1fdf1a63 bne t5,t4,800030a8 <fail>
+
+80002eb8 <test_17>:
+80002eb8: 00000213 li tp,0
+80002ebc: 00d00093 li ra,13
+80002ec0: 00000013 nop
+80002ec4: 00b00113 li sp,11
+80002ec8: 02208f33 mul t5,ra,sp
+80002ecc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002ed0: 00200293 li t0,2
+80002ed4: fe5214e3 bne tp,t0,80002ebc <test_17+0x4>
+80002ed8: 08f00e93 li t4,143
+80002edc: 01100193 li gp,17
+80002ee0: 1ddf1463 bne t5,t4,800030a8 <fail>
+
+80002ee4 <test_18>:
+80002ee4: 00000213 li tp,0
+80002ee8: 00e00093 li ra,14
+80002eec: 00000013 nop
+80002ef0: 00b00113 li sp,11
+80002ef4: 00000013 nop
+80002ef8: 02208f33 mul t5,ra,sp
+80002efc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002f00: 00200293 li t0,2
+80002f04: fe5212e3 bne tp,t0,80002ee8 <test_18+0x4>
+80002f08: 09a00e93 li t4,154
+80002f0c: 01200193 li gp,18
+80002f10: 19df1c63 bne t5,t4,800030a8 <fail>
+
+80002f14 <test_19>:
+80002f14: 00000213 li tp,0
+80002f18: 00f00093 li ra,15
+80002f1c: 00000013 nop
+80002f20: 00000013 nop
+80002f24: 00b00113 li sp,11
+80002f28: 02208f33 mul t5,ra,sp
+80002f2c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002f30: 00200293 li t0,2
+80002f34: fe5212e3 bne tp,t0,80002f18 <test_19+0x4>
+80002f38: 0a500e93 li t4,165
+80002f3c: 01300193 li gp,19
+80002f40: 17df1463 bne t5,t4,800030a8 <fail>
+
+80002f44 <test_20>:
+80002f44: 00000213 li tp,0
+80002f48: 00b00113 li sp,11
+80002f4c: 00d00093 li ra,13
+80002f50: 02208f33 mul t5,ra,sp
+80002f54: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002f58: 00200293 li t0,2
+80002f5c: fe5216e3 bne tp,t0,80002f48 <test_20+0x4>
+80002f60: 08f00e93 li t4,143
+80002f64: 01400193 li gp,20
+80002f68: 15df1063 bne t5,t4,800030a8 <fail>
+
+80002f6c <test_21>:
+80002f6c: 00000213 li tp,0
+80002f70: 00b00113 li sp,11
+80002f74: 00e00093 li ra,14
+80002f78: 00000013 nop
+80002f7c: 02208f33 mul t5,ra,sp
+80002f80: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002f84: 00200293 li t0,2
+80002f88: fe5214e3 bne tp,t0,80002f70 <test_21+0x4>
+80002f8c: 09a00e93 li t4,154
+80002f90: 01500193 li gp,21
+80002f94: 11df1a63 bne t5,t4,800030a8 <fail>
+
+80002f98 <test_22>:
+80002f98: 00000213 li tp,0
+80002f9c: 00b00113 li sp,11
+80002fa0: 00f00093 li ra,15
+80002fa4: 00000013 nop
+80002fa8: 00000013 nop
+80002fac: 02208f33 mul t5,ra,sp
+80002fb0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002fb4: 00200293 li t0,2
+80002fb8: fe5212e3 bne tp,t0,80002f9c <test_22+0x4>
+80002fbc: 0a500e93 li t4,165
+80002fc0: 01600193 li gp,22
+80002fc4: 0fdf1263 bne t5,t4,800030a8 <fail>
+
+80002fc8 <test_23>:
+80002fc8: 00000213 li tp,0
+80002fcc: 00b00113 li sp,11
+80002fd0: 00000013 nop
+80002fd4: 00d00093 li ra,13
+80002fd8: 02208f33 mul t5,ra,sp
+80002fdc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002fe0: 00200293 li t0,2
+80002fe4: fe5214e3 bne tp,t0,80002fcc <test_23+0x4>
+80002fe8: 08f00e93 li t4,143
+80002fec: 01700193 li gp,23
+80002ff0: 0bdf1c63 bne t5,t4,800030a8 <fail>
+
+80002ff4 <test_24>:
+80002ff4: 00000213 li tp,0
+80002ff8: 00b00113 li sp,11
+80002ffc: 00000013 nop
+80003000: 00e00093 li ra,14
+80003004: 00000013 nop
+80003008: 02208f33 mul t5,ra,sp
+8000300c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80003010: 00200293 li t0,2
+80003014: fe5212e3 bne tp,t0,80002ff8 <test_24+0x4>
+80003018: 09a00e93 li t4,154
+8000301c: 01800193 li gp,24
+80003020: 09df1463 bne t5,t4,800030a8 <fail>
+
+80003024 <test_25>:
+80003024: 00000213 li tp,0
+80003028: 00b00113 li sp,11
+8000302c: 00000013 nop
+80003030: 00000013 nop
+80003034: 00f00093 li ra,15
+80003038: 02208f33 mul t5,ra,sp
+8000303c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80003040: 00200293 li t0,2
+80003044: fe5212e3 bne tp,t0,80003028 <test_25+0x4>
+80003048: 0a500e93 li t4,165
+8000304c: 01900193 li gp,25
+80003050: 05df1c63 bne t5,t4,800030a8 <fail>
+
+80003054 <test_26>:
+80003054: 01f00093 li ra,31
+80003058: 02100133 mul sp,zero,ra
+8000305c: 00000e93 li t4,0
+80003060: 01a00193 li gp,26
+80003064: 05d11263 bne sp,t4,800030a8 <fail>
+
+80003068 <test_27>:
+80003068: 02000093 li ra,32
+8000306c: 02008133 mul sp,ra,zero
+80003070: 00000e93 li t4,0
+80003074: 01b00193 li gp,27
+80003078: 03d11863 bne sp,t4,800030a8 <fail>
+
+8000307c <test_28>:
+8000307c: 020000b3 mul ra,zero,zero
+80003080: 00000e93 li t4,0
+80003084: 01c00193 li gp,28
+80003088: 03d09063 bne ra,t4,800030a8 <fail>
+
+8000308c <test_29>:
+8000308c: 02100093 li ra,33
+80003090: 02200113 li sp,34
+80003094: 02208033 mul zero,ra,sp
+80003098: 00000e93 li t4,0
+8000309c: 01d00193 li gp,29
+800030a0: 01d01463 bne zero,t4,800030a8 <fail>
+800030a4: 00301a63 bne zero,gp,800030b8 <pass>
+
+800030a8 <fail>:
+800030a8: 00119513 slli a0,gp,0x1
+800030ac: 00050063 beqz a0,800030ac <fail+0x4>
+800030b0: 00156513 ori a0,a0,1
+800030b4: 00000073 ecall
+
+800030b8 <pass>:
+800030b8: 00100513 li a0,1
+800030bc: 00000073 ecall
+800030c0: c0001073 unimp
diff --git a/test/riscv-tests/rv32um-v-mul.elf b/test/riscv-tests/rv32um-v-mul.elf
new file mode 100644
index 0000000..cd20990
--- /dev/null
+++ b/test/riscv-tests/rv32um-v-mul.elf
Binary files differ
diff --git a/test/riscv-tests/rv32um-v-mulh.dump b/test/riscv-tests/rv32um-v-mulh.dump
new file mode 100644
index 0000000..3be2412
--- /dev/null
+++ b/test/riscv-tests/rv32um-v-mulh.dump
@@ -0,0 +1,1282 @@
+
+rv32um-v-mulh: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00007117 auipc sp,0x7
+8000001c: 35010113 addi sp,sp,848 # 80007368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00002317 auipc t1,0x2
+80002370: c9430313 addi t1,t1,-876 # 80004000 <begin_signature>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00004797 auipc a5,0x4
+8000238c: 06c78793 addi a5,a5,108 # 800063f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00004717 auipc a4,0x4
+800023a0: 05470713 addi a4,a4,84 # 800063f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00004697 auipc a3,0x4
+800023ac: 04f6a623 sw a5,76(a3) # 800063f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00004717 auipc a4,0x4
+800023dc: e2070713 addi a4,a4,-480 # 800061f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf9c08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00004797 auipc a5,0x4
+800024bc: f207ac23 sw zero,-200(a5) # 800063f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00001597 auipc a1,0x1
+800024cc: bfc58593 addi a1,a1,-1028 # 800030c4 <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00001597 auipc a1,0x1
+8000253c: c1858593 addi a1,a1,-1000 # 80003150 <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00001597 auipc a1,0x1
+800025a8: bc458593 addi a1,a1,-1084 # 80003168 <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00001597 auipc a1,0x1
+80002614: af858593 addi a1,a1,-1288 # 80003108 <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00001597 auipc a1,0x1
+8000274c: ae858593 addi a1,a1,-1304 # 80003230 <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00001597 auipc a1,0x1
+800027c0: a5058593 addi a1,a1,-1456 # 8000320c <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00004b17 auipc s6,0x4
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800061f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00001d17 auipc s10,0x1
+80002840: 7c4d0d13 addi s10,s10,1988 # 80004000 <begin_signature>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00004717 auipc a4,0x4
+8000285c: b8f72c23 sw a5,-1128(a4) # 800063f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00004717 auipc a4,0x4
+800028e8: b0c70713 addi a4,a4,-1268 # 800063f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00004717 auipc a4,0x4
+800028fc: aef72c23 sw a5,-1288(a4) # 800063f0 <freelist_tail>
+80002900: 00004717 auipc a4,0x4
+80002904: aef72a23 sw a5,-1292(a4) # 800063f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00001617 auipc a2,0x1
+80002914: 94c60613 addi a2,a2,-1716 # 8000325c <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00001617 auipc a2,0x1
+80002980: 85c60613 addi a2,a2,-1956 # 800031d8 <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 7dc60613 addi a2,a2,2012 # 800031a4 <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00002797 auipc a5,0x2
+80002a4c: 5b878793 addi a5,a5,1464 # 80005000 <begin_signature+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00001697 auipc a3,0x1
+80002a60: 5af6a223 sw a5,1444(a3) # 80004000 <begin_signature>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00001717 auipc a4,0x1
+80002a6c: 59870713 addi a4,a4,1432 # 80004000 <begin_signature>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00002697 auipc a3,0x2
+80002a7c: 58f6a223 sw a5,1412(a3) # 80004ffc <begin_signature+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf9ccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc03797 auipc a5,0x7fc03
+80002aec: 51878793 addi a5,a5,1304 # ffc06000 <_end+0x7fbffc08>
+80002af0: 00004717 auipc a4,0x4
+80002af4: 90f72223 sw a5,-1788(a4) # 800063f4 <freelist_head>
+80002af8: 7fc03797 auipc a5,0x7fc03
+80002afc: 6f878793 addi a5,a5,1784 # ffc061f0 <_end+0x7fbffdf8>
+80002b00: 00004717 auipc a4,0x4
+80002b04: 8ef72823 sw a5,-1808(a4) # 800063f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00003717 auipc a4,0x3
+80002b10: 4f470713 addi a4,a4,1268 # 80006000 <freelist_nodes>
+80002b14: 00003317 auipc t1,0x3
+80002b18: 6e430313 addi t1,t1,1764 # 800061f8 <user_mapping>
+80002b1c: 03b00793 li a5,59
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00003797 auipc a5,0x3
+80002b6c: 6807a623 sw zero,1676(a5) # 800061f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 0e9837b7 lui a5,0xe983
+80002b9c: 00080637 lui a2,0x80
+80002ba0: 99d78793 addi a5,a5,-1635 # e98299d <_start-0x7167d663>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: 00000093 li ra,0
+80002be4: 00000113 li sp,0
+80002be8: 02209f33 mulh t5,ra,sp
+80002bec: 00000e93 li t4,0
+80002bf0: 00200193 li gp,2
+80002bf4: 4bdf1a63 bne t5,t4,800030a8 <fail>
+
+80002bf8 <test_3>:
+80002bf8: 00100093 li ra,1
+80002bfc: 00100113 li sp,1
+80002c00: 02209f33 mulh t5,ra,sp
+80002c04: 00000e93 li t4,0
+80002c08: 00300193 li gp,3
+80002c0c: 49df1e63 bne t5,t4,800030a8 <fail>
+
+80002c10 <test_4>:
+80002c10: 00300093 li ra,3
+80002c14: 00700113 li sp,7
+80002c18: 02209f33 mulh t5,ra,sp
+80002c1c: 00000e93 li t4,0
+80002c20: 00400193 li gp,4
+80002c24: 49df1263 bne t5,t4,800030a8 <fail>
+
+80002c28 <test_5>:
+80002c28: 00000093 li ra,0
+80002c2c: ffff8137 lui sp,0xffff8
+80002c30: 02209f33 mulh t5,ra,sp
+80002c34: 00000e93 li t4,0
+80002c38: 00500193 li gp,5
+80002c3c: 47df1663 bne t5,t4,800030a8 <fail>
+
+80002c40 <test_6>:
+80002c40: 800000b7 lui ra,0x80000
+80002c44: 00000113 li sp,0
+80002c48: 02209f33 mulh t5,ra,sp
+80002c4c: 00000e93 li t4,0
+80002c50: 00600193 li gp,6
+80002c54: 45df1a63 bne t5,t4,800030a8 <fail>
+
+80002c58 <test_7>:
+80002c58: 800000b7 lui ra,0x80000
+80002c5c: 00000113 li sp,0
+80002c60: 02209f33 mulh t5,ra,sp
+80002c64: 00000e93 li t4,0
+80002c68: 00700193 li gp,7
+80002c6c: 43df1e63 bne t5,t4,800030a8 <fail>
+
+80002c70 <test_30>:
+80002c70: aaaab0b7 lui ra,0xaaaab
+80002c74: aab08093 addi ra,ra,-1365 # aaaaaaab <_end+0x2aaa46b3>
+80002c78: 00030137 lui sp,0x30
+80002c7c: e7d10113 addi sp,sp,-387 # 2fe7d <_start-0x7ffd0183>
+80002c80: 02209f33 mulh t5,ra,sp
+80002c84: ffff0eb7 lui t4,0xffff0
+80002c88: 081e8e93 addi t4,t4,129 # ffff0081 <_end+0x7ffe9c89>
+80002c8c: 01e00193 li gp,30
+80002c90: 41df1c63 bne t5,t4,800030a8 <fail>
+
+80002c94 <test_31>:
+80002c94: 000300b7 lui ra,0x30
+80002c98: e7d08093 addi ra,ra,-387 # 2fe7d <_start-0x7ffd0183>
+80002c9c: aaaab137 lui sp,0xaaaab
+80002ca0: aab10113 addi sp,sp,-1365 # aaaaaaab <_end+0x2aaa46b3>
+80002ca4: 02209f33 mulh t5,ra,sp
+80002ca8: ffff0eb7 lui t4,0xffff0
+80002cac: 081e8e93 addi t4,t4,129 # ffff0081 <_end+0x7ffe9c89>
+80002cb0: 01f00193 li gp,31
+80002cb4: 3fdf1a63 bne t5,t4,800030a8 <fail>
+
+80002cb8 <test_32>:
+80002cb8: ff0000b7 lui ra,0xff000
+80002cbc: ff000137 lui sp,0xff000
+80002cc0: 02209f33 mulh t5,ra,sp
+80002cc4: 00010eb7 lui t4,0x10
+80002cc8: 02000193 li gp,32
+80002ccc: 3ddf1e63 bne t5,t4,800030a8 <fail>
+
+80002cd0 <test_33>:
+80002cd0: fff00093 li ra,-1
+80002cd4: fff00113 li sp,-1
+80002cd8: 02209f33 mulh t5,ra,sp
+80002cdc: 00000e93 li t4,0
+80002ce0: 02100193 li gp,33
+80002ce4: 3ddf1263 bne t5,t4,800030a8 <fail>
+
+80002ce8 <test_34>:
+80002ce8: fff00093 li ra,-1
+80002cec: 00100113 li sp,1
+80002cf0: 02209f33 mulh t5,ra,sp
+80002cf4: fff00e93 li t4,-1
+80002cf8: 02200193 li gp,34
+80002cfc: 3bdf1663 bne t5,t4,800030a8 <fail>
+
+80002d00 <test_35>:
+80002d00: 00100093 li ra,1
+80002d04: fff00113 li sp,-1
+80002d08: 02209f33 mulh t5,ra,sp
+80002d0c: fff00e93 li t4,-1
+80002d10: 02300193 li gp,35
+80002d14: 39df1a63 bne t5,t4,800030a8 <fail>
+
+80002d18 <test_8>:
+80002d18: 00d000b7 lui ra,0xd00
+80002d1c: 00b00137 lui sp,0xb00
+80002d20: 022090b3 mulh ra,ra,sp
+80002d24: 00009eb7 lui t4,0x9
+80002d28: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
+80002d2c: 00800193 li gp,8
+80002d30: 37d09c63 bne ra,t4,800030a8 <fail>
+
+80002d34 <test_9>:
+80002d34: 00e000b7 lui ra,0xe00
+80002d38: 00b00137 lui sp,0xb00
+80002d3c: 02209133 mulh sp,ra,sp
+80002d40: 0000aeb7 lui t4,0xa
+80002d44: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
+80002d48: 00900193 li gp,9
+80002d4c: 35d11e63 bne sp,t4,800030a8 <fail>
+
+80002d50 <test_10>:
+80002d50: 00d000b7 lui ra,0xd00
+80002d54: 021090b3 mulh ra,ra,ra
+80002d58: 0000beb7 lui t4,0xb
+80002d5c: 900e8e93 addi t4,t4,-1792 # a900 <_start-0x7fff5700>
+80002d60: 00a00193 li gp,10
+80002d64: 35d09263 bne ra,t4,800030a8 <fail>
+
+80002d68 <test_11>:
+80002d68: 00000213 li tp,0
+80002d6c: 00d000b7 lui ra,0xd00
+80002d70: 00b00137 lui sp,0xb00
+80002d74: 02209f33 mulh t5,ra,sp
+80002d78: 000f0313 mv t1,t5
+80002d7c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d80: 00200293 li t0,2
+80002d84: fe5214e3 bne tp,t0,80002d6c <test_11+0x4>
+80002d88: 00009eb7 lui t4,0x9
+80002d8c: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
+80002d90: 00b00193 li gp,11
+80002d94: 31d31a63 bne t1,t4,800030a8 <fail>
+
+80002d98 <test_12>:
+80002d98: 00000213 li tp,0
+80002d9c: 00e000b7 lui ra,0xe00
+80002da0: 00b00137 lui sp,0xb00
+80002da4: 02209f33 mulh t5,ra,sp
+80002da8: 00000013 nop
+80002dac: 000f0313 mv t1,t5
+80002db0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002db4: 00200293 li t0,2
+80002db8: fe5212e3 bne tp,t0,80002d9c <test_12+0x4>
+80002dbc: 0000aeb7 lui t4,0xa
+80002dc0: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
+80002dc4: 00c00193 li gp,12
+80002dc8: 2fd31063 bne t1,t4,800030a8 <fail>
+
+80002dcc <test_13>:
+80002dcc: 00000213 li tp,0
+80002dd0: 00f000b7 lui ra,0xf00
+80002dd4: 00b00137 lui sp,0xb00
+80002dd8: 02209f33 mulh t5,ra,sp
+80002ddc: 00000013 nop
+80002de0: 00000013 nop
+80002de4: 000f0313 mv t1,t5
+80002de8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002dec: 00200293 li t0,2
+80002df0: fe5210e3 bne tp,t0,80002dd0 <test_13+0x4>
+80002df4: 0000aeb7 lui t4,0xa
+80002df8: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
+80002dfc: 00d00193 li gp,13
+80002e00: 2bd31463 bne t1,t4,800030a8 <fail>
+
+80002e04 <test_14>:
+80002e04: 00000213 li tp,0
+80002e08: 00d000b7 lui ra,0xd00
+80002e0c: 00b00137 lui sp,0xb00
+80002e10: 02209f33 mulh t5,ra,sp
+80002e14: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e18: 00200293 li t0,2
+80002e1c: fe5216e3 bne tp,t0,80002e08 <test_14+0x4>
+80002e20: 00009eb7 lui t4,0x9
+80002e24: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
+80002e28: 00e00193 li gp,14
+80002e2c: 27df1e63 bne t5,t4,800030a8 <fail>
+
+80002e30 <test_15>:
+80002e30: 00000213 li tp,0
+80002e34: 00e000b7 lui ra,0xe00
+80002e38: 00b00137 lui sp,0xb00
+80002e3c: 00000013 nop
+80002e40: 02209f33 mulh t5,ra,sp
+80002e44: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e48: 00200293 li t0,2
+80002e4c: fe5214e3 bne tp,t0,80002e34 <test_15+0x4>
+80002e50: 0000aeb7 lui t4,0xa
+80002e54: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
+80002e58: 00f00193 li gp,15
+80002e5c: 25df1663 bne t5,t4,800030a8 <fail>
+
+80002e60 <test_16>:
+80002e60: 00000213 li tp,0
+80002e64: 00f000b7 lui ra,0xf00
+80002e68: 00b00137 lui sp,0xb00
+80002e6c: 00000013 nop
+80002e70: 00000013 nop
+80002e74: 02209f33 mulh t5,ra,sp
+80002e78: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e7c: 00200293 li t0,2
+80002e80: fe5212e3 bne tp,t0,80002e64 <test_16+0x4>
+80002e84: 0000aeb7 lui t4,0xa
+80002e88: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
+80002e8c: 01000193 li gp,16
+80002e90: 21df1c63 bne t5,t4,800030a8 <fail>
+
+80002e94 <test_17>:
+80002e94: 00000213 li tp,0
+80002e98: 00d000b7 lui ra,0xd00
+80002e9c: 00000013 nop
+80002ea0: 00b00137 lui sp,0xb00
+80002ea4: 02209f33 mulh t5,ra,sp
+80002ea8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002eac: 00200293 li t0,2
+80002eb0: fe5214e3 bne tp,t0,80002e98 <test_17+0x4>
+80002eb4: 00009eb7 lui t4,0x9
+80002eb8: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
+80002ebc: 01100193 li gp,17
+80002ec0: 1fdf1463 bne t5,t4,800030a8 <fail>
+
+80002ec4 <test_18>:
+80002ec4: 00000213 li tp,0
+80002ec8: 00e000b7 lui ra,0xe00
+80002ecc: 00000013 nop
+80002ed0: 00b00137 lui sp,0xb00
+80002ed4: 00000013 nop
+80002ed8: 02209f33 mulh t5,ra,sp
+80002edc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002ee0: 00200293 li t0,2
+80002ee4: fe5212e3 bne tp,t0,80002ec8 <test_18+0x4>
+80002ee8: 0000aeb7 lui t4,0xa
+80002eec: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
+80002ef0: 01200193 li gp,18
+80002ef4: 1bdf1a63 bne t5,t4,800030a8 <fail>
+
+80002ef8 <test_19>:
+80002ef8: 00000213 li tp,0
+80002efc: 00f000b7 lui ra,0xf00
+80002f00: 00000013 nop
+80002f04: 00000013 nop
+80002f08: 00b00137 lui sp,0xb00
+80002f0c: 02209f33 mulh t5,ra,sp
+80002f10: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002f14: 00200293 li t0,2
+80002f18: fe5212e3 bne tp,t0,80002efc <test_19+0x4>
+80002f1c: 0000aeb7 lui t4,0xa
+80002f20: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
+80002f24: 01300193 li gp,19
+80002f28: 19df1063 bne t5,t4,800030a8 <fail>
+
+80002f2c <test_20>:
+80002f2c: 00000213 li tp,0
+80002f30: 00b00137 lui sp,0xb00
+80002f34: 00d000b7 lui ra,0xd00
+80002f38: 02209f33 mulh t5,ra,sp
+80002f3c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002f40: 00200293 li t0,2
+80002f44: fe5216e3 bne tp,t0,80002f30 <test_20+0x4>
+80002f48: 00009eb7 lui t4,0x9
+80002f4c: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
+80002f50: 01400193 li gp,20
+80002f54: 15df1a63 bne t5,t4,800030a8 <fail>
+
+80002f58 <test_21>:
+80002f58: 00000213 li tp,0
+80002f5c: 00b00137 lui sp,0xb00
+80002f60: 00e000b7 lui ra,0xe00
+80002f64: 00000013 nop
+80002f68: 02209f33 mulh t5,ra,sp
+80002f6c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002f70: 00200293 li t0,2
+80002f74: fe5214e3 bne tp,t0,80002f5c <test_21+0x4>
+80002f78: 0000aeb7 lui t4,0xa
+80002f7c: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
+80002f80: 01500193 li gp,21
+80002f84: 13df1263 bne t5,t4,800030a8 <fail>
+
+80002f88 <test_22>:
+80002f88: 00000213 li tp,0
+80002f8c: 00b00137 lui sp,0xb00
+80002f90: 00f000b7 lui ra,0xf00
+80002f94: 00000013 nop
+80002f98: 00000013 nop
+80002f9c: 02209f33 mulh t5,ra,sp
+80002fa0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002fa4: 00200293 li t0,2
+80002fa8: fe5212e3 bne tp,t0,80002f8c <test_22+0x4>
+80002fac: 0000aeb7 lui t4,0xa
+80002fb0: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
+80002fb4: 01600193 li gp,22
+80002fb8: 0fdf1863 bne t5,t4,800030a8 <fail>
+
+80002fbc <test_23>:
+80002fbc: 00000213 li tp,0
+80002fc0: 00b00137 lui sp,0xb00
+80002fc4: 00000013 nop
+80002fc8: 00d000b7 lui ra,0xd00
+80002fcc: 02209f33 mulh t5,ra,sp
+80002fd0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002fd4: 00200293 li t0,2
+80002fd8: fe5214e3 bne tp,t0,80002fc0 <test_23+0x4>
+80002fdc: 00009eb7 lui t4,0x9
+80002fe0: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
+80002fe4: 01700193 li gp,23
+80002fe8: 0ddf1063 bne t5,t4,800030a8 <fail>
+
+80002fec <test_24>:
+80002fec: 00000213 li tp,0
+80002ff0: 00b00137 lui sp,0xb00
+80002ff4: 00000013 nop
+80002ff8: 00e000b7 lui ra,0xe00
+80002ffc: 00000013 nop
+80003000: 02209f33 mulh t5,ra,sp
+80003004: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80003008: 00200293 li t0,2
+8000300c: fe5212e3 bne tp,t0,80002ff0 <test_24+0x4>
+80003010: 0000aeb7 lui t4,0xa
+80003014: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
+80003018: 01800193 li gp,24
+8000301c: 09df1663 bne t5,t4,800030a8 <fail>
+
+80003020 <test_25>:
+80003020: 00000213 li tp,0
+80003024: 00b00137 lui sp,0xb00
+80003028: 00000013 nop
+8000302c: 00000013 nop
+80003030: 00f000b7 lui ra,0xf00
+80003034: 02209f33 mulh t5,ra,sp
+80003038: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000303c: 00200293 li t0,2
+80003040: fe5212e3 bne tp,t0,80003024 <test_25+0x4>
+80003044: 0000aeb7 lui t4,0xa
+80003048: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
+8000304c: 01900193 li gp,25
+80003050: 05df1c63 bne t5,t4,800030a8 <fail>
+
+80003054 <test_26>:
+80003054: 7c0000b7 lui ra,0x7c000
+80003058: 02101133 mulh sp,zero,ra
+8000305c: 00000e93 li t4,0
+80003060: 01a00193 li gp,26
+80003064: 05d11263 bne sp,t4,800030a8 <fail>
+
+80003068 <test_27>:
+80003068: 800000b7 lui ra,0x80000
+8000306c: 02009133 mulh sp,ra,zero
+80003070: 00000e93 li t4,0
+80003074: 01b00193 li gp,27
+80003078: 03d11863 bne sp,t4,800030a8 <fail>
+
+8000307c <test_28>:
+8000307c: 020010b3 mulh ra,zero,zero
+80003080: 00000e93 li t4,0
+80003084: 01c00193 li gp,28
+80003088: 03d09063 bne ra,t4,800030a8 <fail>
+
+8000308c <test_29>:
+8000308c: 021000b7 lui ra,0x2100
+80003090: 02200137 lui sp,0x2200
+80003094: 02209033 mulh zero,ra,sp
+80003098: 00000e93 li t4,0
+8000309c: 01d00193 li gp,29
+800030a0: 01d01463 bne zero,t4,800030a8 <fail>
+800030a4: 00301a63 bne zero,gp,800030b8 <pass>
+
+800030a8 <fail>:
+800030a8: 00119513 slli a0,gp,0x1
+800030ac: 00050063 beqz a0,800030ac <fail+0x4>
+800030b0: 00156513 ori a0,a0,1
+800030b4: 00000073 ecall
+
+800030b8 <pass>:
+800030b8: 00100513 li a0,1
+800030bc: 00000073 ecall
+800030c0: c0001073 unimp
diff --git a/test/riscv-tests/rv32um-v-mulh.elf b/test/riscv-tests/rv32um-v-mulh.elf
new file mode 100644
index 0000000..5d14e0e
--- /dev/null
+++ b/test/riscv-tests/rv32um-v-mulh.elf
Binary files differ
diff --git a/test/riscv-tests/rv32um-v-mulhsu.dump b/test/riscv-tests/rv32um-v-mulhsu.dump
new file mode 100644
index 0000000..72056c3
--- /dev/null
+++ b/test/riscv-tests/rv32um-v-mulhsu.dump
@@ -0,0 +1,1282 @@
+
+rv32um-v-mulhsu: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00007117 auipc sp,0x7
+8000001c: 35010113 addi sp,sp,848 # 80007368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00002317 auipc t1,0x2
+80002370: c9430313 addi t1,t1,-876 # 80004000 <begin_signature>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00004797 auipc a5,0x4
+8000238c: 06c78793 addi a5,a5,108 # 800063f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00004717 auipc a4,0x4
+800023a0: 05470713 addi a4,a4,84 # 800063f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00004697 auipc a3,0x4
+800023ac: 04f6a623 sw a5,76(a3) # 800063f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00004717 auipc a4,0x4
+800023dc: e2070713 addi a4,a4,-480 # 800061f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf9c08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00004797 auipc a5,0x4
+800024bc: f207ac23 sw zero,-200(a5) # 800063f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00001597 auipc a1,0x1
+800024cc: bfc58593 addi a1,a1,-1028 # 800030c4 <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00001597 auipc a1,0x1
+8000253c: c1858593 addi a1,a1,-1000 # 80003150 <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00001597 auipc a1,0x1
+800025a8: bc458593 addi a1,a1,-1084 # 80003168 <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00001597 auipc a1,0x1
+80002614: af858593 addi a1,a1,-1288 # 80003108 <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00001597 auipc a1,0x1
+8000274c: ae858593 addi a1,a1,-1304 # 80003230 <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00001597 auipc a1,0x1
+800027c0: a5058593 addi a1,a1,-1456 # 8000320c <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00004b17 auipc s6,0x4
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800061f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00001d17 auipc s10,0x1
+80002840: 7c4d0d13 addi s10,s10,1988 # 80004000 <begin_signature>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00004717 auipc a4,0x4
+8000285c: b8f72c23 sw a5,-1128(a4) # 800063f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00004717 auipc a4,0x4
+800028e8: b0c70713 addi a4,a4,-1268 # 800063f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00004717 auipc a4,0x4
+800028fc: aef72c23 sw a5,-1288(a4) # 800063f0 <freelist_tail>
+80002900: 00004717 auipc a4,0x4
+80002904: aef72a23 sw a5,-1292(a4) # 800063f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00001617 auipc a2,0x1
+80002914: 94c60613 addi a2,a2,-1716 # 8000325c <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00001617 auipc a2,0x1
+80002980: 85c60613 addi a2,a2,-1956 # 800031d8 <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 7dc60613 addi a2,a2,2012 # 800031a4 <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00002797 auipc a5,0x2
+80002a4c: 5b878793 addi a5,a5,1464 # 80005000 <begin_signature+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00001697 auipc a3,0x1
+80002a60: 5af6a223 sw a5,1444(a3) # 80004000 <begin_signature>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00001717 auipc a4,0x1
+80002a6c: 59870713 addi a4,a4,1432 # 80004000 <begin_signature>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00002697 auipc a3,0x2
+80002a7c: 58f6a223 sw a5,1412(a3) # 80004ffc <begin_signature+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf9ccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc03797 auipc a5,0x7fc03
+80002aec: 51878793 addi a5,a5,1304 # ffc06000 <_end+0x7fbffc08>
+80002af0: 00004717 auipc a4,0x4
+80002af4: 90f72223 sw a5,-1788(a4) # 800063f4 <freelist_head>
+80002af8: 7fc03797 auipc a5,0x7fc03
+80002afc: 6f878793 addi a5,a5,1784 # ffc061f0 <_end+0x7fbffdf8>
+80002b00: 00004717 auipc a4,0x4
+80002b04: 8ef72823 sw a5,-1808(a4) # 800063f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00003717 auipc a4,0x3
+80002b10: 4f470713 addi a4,a4,1268 # 80006000 <freelist_nodes>
+80002b14: 00003317 auipc t1,0x3
+80002b18: 6e430313 addi t1,t1,1764 # 800061f8 <user_mapping>
+80002b1c: 03a00793 li a5,58
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00003797 auipc a5,0x3
+80002b6c: 6807a623 sw zero,1676(a5) # 800061f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 00fb27b7 lui a5,0xfb2
+80002b9c: 00080637 lui a2,0x80
+80002ba0: f0c78793 addi a5,a5,-244 # fb1f0c <_start-0x7f04e0f4>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: 00000093 li ra,0
+80002be4: 00000113 li sp,0
+80002be8: 0220af33 mulhsu t5,ra,sp
+80002bec: 00000e93 li t4,0
+80002bf0: 00200193 li gp,2
+80002bf4: 4bdf1a63 bne t5,t4,800030a8 <fail>
+
+80002bf8 <test_3>:
+80002bf8: 00100093 li ra,1
+80002bfc: 00100113 li sp,1
+80002c00: 0220af33 mulhsu t5,ra,sp
+80002c04: 00000e93 li t4,0
+80002c08: 00300193 li gp,3
+80002c0c: 49df1e63 bne t5,t4,800030a8 <fail>
+
+80002c10 <test_4>:
+80002c10: 00300093 li ra,3
+80002c14: 00700113 li sp,7
+80002c18: 0220af33 mulhsu t5,ra,sp
+80002c1c: 00000e93 li t4,0
+80002c20: 00400193 li gp,4
+80002c24: 49df1263 bne t5,t4,800030a8 <fail>
+
+80002c28 <test_5>:
+80002c28: 00000093 li ra,0
+80002c2c: ffff8137 lui sp,0xffff8
+80002c30: 0220af33 mulhsu t5,ra,sp
+80002c34: 00000e93 li t4,0
+80002c38: 00500193 li gp,5
+80002c3c: 47df1663 bne t5,t4,800030a8 <fail>
+
+80002c40 <test_6>:
+80002c40: 800000b7 lui ra,0x80000
+80002c44: 00000113 li sp,0
+80002c48: 0220af33 mulhsu t5,ra,sp
+80002c4c: 00000e93 li t4,0
+80002c50: 00600193 li gp,6
+80002c54: 45df1a63 bne t5,t4,800030a8 <fail>
+
+80002c58 <test_7>:
+80002c58: 800000b7 lui ra,0x80000
+80002c5c: ffff8137 lui sp,0xffff8
+80002c60: 0220af33 mulhsu t5,ra,sp
+80002c64: 80004eb7 lui t4,0x80004
+80002c68: 00700193 li gp,7
+80002c6c: 43df1e63 bne t5,t4,800030a8 <fail>
+
+80002c70 <test_30>:
+80002c70: aaaab0b7 lui ra,0xaaaab
+80002c74: aab08093 addi ra,ra,-1365 # aaaaaaab <_end+0x2aaa46b3>
+80002c78: 00030137 lui sp,0x30
+80002c7c: e7d10113 addi sp,sp,-387 # 2fe7d <_start-0x7ffd0183>
+80002c80: 0220af33 mulhsu t5,ra,sp
+80002c84: ffff0eb7 lui t4,0xffff0
+80002c88: 081e8e93 addi t4,t4,129 # ffff0081 <_end+0x7ffe9c89>
+80002c8c: 01e00193 li gp,30
+80002c90: 41df1c63 bne t5,t4,800030a8 <fail>
+
+80002c94 <test_31>:
+80002c94: 000300b7 lui ra,0x30
+80002c98: e7d08093 addi ra,ra,-387 # 2fe7d <_start-0x7ffd0183>
+80002c9c: aaaab137 lui sp,0xaaaab
+80002ca0: aab10113 addi sp,sp,-1365 # aaaaaaab <_end+0x2aaa46b3>
+80002ca4: 0220af33 mulhsu t5,ra,sp
+80002ca8: 00020eb7 lui t4,0x20
+80002cac: efee8e93 addi t4,t4,-258 # 1fefe <_start-0x7ffe0102>
+80002cb0: 01f00193 li gp,31
+80002cb4: 3fdf1a63 bne t5,t4,800030a8 <fail>
+
+80002cb8 <test_32>:
+80002cb8: ff0000b7 lui ra,0xff000
+80002cbc: ff000137 lui sp,0xff000
+80002cc0: 0220af33 mulhsu t5,ra,sp
+80002cc4: ff010eb7 lui t4,0xff010
+80002cc8: 02000193 li gp,32
+80002ccc: 3ddf1e63 bne t5,t4,800030a8 <fail>
+
+80002cd0 <test_33>:
+80002cd0: fff00093 li ra,-1
+80002cd4: fff00113 li sp,-1
+80002cd8: 0220af33 mulhsu t5,ra,sp
+80002cdc: fff00e93 li t4,-1
+80002ce0: 02100193 li gp,33
+80002ce4: 3ddf1263 bne t5,t4,800030a8 <fail>
+
+80002ce8 <test_34>:
+80002ce8: fff00093 li ra,-1
+80002cec: 00100113 li sp,1
+80002cf0: 0220af33 mulhsu t5,ra,sp
+80002cf4: fff00e93 li t4,-1
+80002cf8: 02200193 li gp,34
+80002cfc: 3bdf1663 bne t5,t4,800030a8 <fail>
+
+80002d00 <test_35>:
+80002d00: 00100093 li ra,1
+80002d04: fff00113 li sp,-1
+80002d08: 0220af33 mulhsu t5,ra,sp
+80002d0c: 00000e93 li t4,0
+80002d10: 02300193 li gp,35
+80002d14: 39df1a63 bne t5,t4,800030a8 <fail>
+
+80002d18 <test_8>:
+80002d18: 00d000b7 lui ra,0xd00
+80002d1c: 00b00137 lui sp,0xb00
+80002d20: 0220a0b3 mulhsu ra,ra,sp
+80002d24: 00009eb7 lui t4,0x9
+80002d28: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
+80002d2c: 00800193 li gp,8
+80002d30: 37d09c63 bne ra,t4,800030a8 <fail>
+
+80002d34 <test_9>:
+80002d34: 00e000b7 lui ra,0xe00
+80002d38: 00b00137 lui sp,0xb00
+80002d3c: 0220a133 mulhsu sp,ra,sp
+80002d40: 0000aeb7 lui t4,0xa
+80002d44: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
+80002d48: 00900193 li gp,9
+80002d4c: 35d11e63 bne sp,t4,800030a8 <fail>
+
+80002d50 <test_10>:
+80002d50: 00d000b7 lui ra,0xd00
+80002d54: 0210a0b3 mulhsu ra,ra,ra
+80002d58: 0000beb7 lui t4,0xb
+80002d5c: 900e8e93 addi t4,t4,-1792 # a900 <_start-0x7fff5700>
+80002d60: 00a00193 li gp,10
+80002d64: 35d09263 bne ra,t4,800030a8 <fail>
+
+80002d68 <test_11>:
+80002d68: 00000213 li tp,0
+80002d6c: 00d000b7 lui ra,0xd00
+80002d70: 00b00137 lui sp,0xb00
+80002d74: 0220af33 mulhsu t5,ra,sp
+80002d78: 000f0313 mv t1,t5
+80002d7c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d80: 00200293 li t0,2
+80002d84: fe5214e3 bne tp,t0,80002d6c <test_11+0x4>
+80002d88: 00009eb7 lui t4,0x9
+80002d8c: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
+80002d90: 00b00193 li gp,11
+80002d94: 31d31a63 bne t1,t4,800030a8 <fail>
+
+80002d98 <test_12>:
+80002d98: 00000213 li tp,0
+80002d9c: 00e000b7 lui ra,0xe00
+80002da0: 00b00137 lui sp,0xb00
+80002da4: 0220af33 mulhsu t5,ra,sp
+80002da8: 00000013 nop
+80002dac: 000f0313 mv t1,t5
+80002db0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002db4: 00200293 li t0,2
+80002db8: fe5212e3 bne tp,t0,80002d9c <test_12+0x4>
+80002dbc: 0000aeb7 lui t4,0xa
+80002dc0: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
+80002dc4: 00c00193 li gp,12
+80002dc8: 2fd31063 bne t1,t4,800030a8 <fail>
+
+80002dcc <test_13>:
+80002dcc: 00000213 li tp,0
+80002dd0: 00f000b7 lui ra,0xf00
+80002dd4: 00b00137 lui sp,0xb00
+80002dd8: 0220af33 mulhsu t5,ra,sp
+80002ddc: 00000013 nop
+80002de0: 00000013 nop
+80002de4: 000f0313 mv t1,t5
+80002de8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002dec: 00200293 li t0,2
+80002df0: fe5210e3 bne tp,t0,80002dd0 <test_13+0x4>
+80002df4: 0000aeb7 lui t4,0xa
+80002df8: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
+80002dfc: 00d00193 li gp,13
+80002e00: 2bd31463 bne t1,t4,800030a8 <fail>
+
+80002e04 <test_14>:
+80002e04: 00000213 li tp,0
+80002e08: 00d000b7 lui ra,0xd00
+80002e0c: 00b00137 lui sp,0xb00
+80002e10: 0220af33 mulhsu t5,ra,sp
+80002e14: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e18: 00200293 li t0,2
+80002e1c: fe5216e3 bne tp,t0,80002e08 <test_14+0x4>
+80002e20: 00009eb7 lui t4,0x9
+80002e24: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
+80002e28: 00e00193 li gp,14
+80002e2c: 27df1e63 bne t5,t4,800030a8 <fail>
+
+80002e30 <test_15>:
+80002e30: 00000213 li tp,0
+80002e34: 00e000b7 lui ra,0xe00
+80002e38: 00b00137 lui sp,0xb00
+80002e3c: 00000013 nop
+80002e40: 0220af33 mulhsu t5,ra,sp
+80002e44: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e48: 00200293 li t0,2
+80002e4c: fe5214e3 bne tp,t0,80002e34 <test_15+0x4>
+80002e50: 0000aeb7 lui t4,0xa
+80002e54: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
+80002e58: 00f00193 li gp,15
+80002e5c: 25df1663 bne t5,t4,800030a8 <fail>
+
+80002e60 <test_16>:
+80002e60: 00000213 li tp,0
+80002e64: 00f000b7 lui ra,0xf00
+80002e68: 00b00137 lui sp,0xb00
+80002e6c: 00000013 nop
+80002e70: 00000013 nop
+80002e74: 0220af33 mulhsu t5,ra,sp
+80002e78: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e7c: 00200293 li t0,2
+80002e80: fe5212e3 bne tp,t0,80002e64 <test_16+0x4>
+80002e84: 0000aeb7 lui t4,0xa
+80002e88: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
+80002e8c: 01000193 li gp,16
+80002e90: 21df1c63 bne t5,t4,800030a8 <fail>
+
+80002e94 <test_17>:
+80002e94: 00000213 li tp,0
+80002e98: 00d000b7 lui ra,0xd00
+80002e9c: 00000013 nop
+80002ea0: 00b00137 lui sp,0xb00
+80002ea4: 0220af33 mulhsu t5,ra,sp
+80002ea8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002eac: 00200293 li t0,2
+80002eb0: fe5214e3 bne tp,t0,80002e98 <test_17+0x4>
+80002eb4: 00009eb7 lui t4,0x9
+80002eb8: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
+80002ebc: 01100193 li gp,17
+80002ec0: 1fdf1463 bne t5,t4,800030a8 <fail>
+
+80002ec4 <test_18>:
+80002ec4: 00000213 li tp,0
+80002ec8: 00e000b7 lui ra,0xe00
+80002ecc: 00000013 nop
+80002ed0: 00b00137 lui sp,0xb00
+80002ed4: 00000013 nop
+80002ed8: 0220af33 mulhsu t5,ra,sp
+80002edc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002ee0: 00200293 li t0,2
+80002ee4: fe5212e3 bne tp,t0,80002ec8 <test_18+0x4>
+80002ee8: 0000aeb7 lui t4,0xa
+80002eec: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
+80002ef0: 01200193 li gp,18
+80002ef4: 1bdf1a63 bne t5,t4,800030a8 <fail>
+
+80002ef8 <test_19>:
+80002ef8: 00000213 li tp,0
+80002efc: 00f000b7 lui ra,0xf00
+80002f00: 00000013 nop
+80002f04: 00000013 nop
+80002f08: 00b00137 lui sp,0xb00
+80002f0c: 0220af33 mulhsu t5,ra,sp
+80002f10: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002f14: 00200293 li t0,2
+80002f18: fe5212e3 bne tp,t0,80002efc <test_19+0x4>
+80002f1c: 0000aeb7 lui t4,0xa
+80002f20: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
+80002f24: 01300193 li gp,19
+80002f28: 19df1063 bne t5,t4,800030a8 <fail>
+
+80002f2c <test_20>:
+80002f2c: 00000213 li tp,0
+80002f30: 00b00137 lui sp,0xb00
+80002f34: 00d000b7 lui ra,0xd00
+80002f38: 0220af33 mulhsu t5,ra,sp
+80002f3c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002f40: 00200293 li t0,2
+80002f44: fe5216e3 bne tp,t0,80002f30 <test_20+0x4>
+80002f48: 00009eb7 lui t4,0x9
+80002f4c: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
+80002f50: 01400193 li gp,20
+80002f54: 15df1a63 bne t5,t4,800030a8 <fail>
+
+80002f58 <test_21>:
+80002f58: 00000213 li tp,0
+80002f5c: 00b00137 lui sp,0xb00
+80002f60: 00e000b7 lui ra,0xe00
+80002f64: 00000013 nop
+80002f68: 0220af33 mulhsu t5,ra,sp
+80002f6c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002f70: 00200293 li t0,2
+80002f74: fe5214e3 bne tp,t0,80002f5c <test_21+0x4>
+80002f78: 0000aeb7 lui t4,0xa
+80002f7c: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
+80002f80: 01500193 li gp,21
+80002f84: 13df1263 bne t5,t4,800030a8 <fail>
+
+80002f88 <test_22>:
+80002f88: 00000213 li tp,0
+80002f8c: 00b00137 lui sp,0xb00
+80002f90: 00f000b7 lui ra,0xf00
+80002f94: 00000013 nop
+80002f98: 00000013 nop
+80002f9c: 0220af33 mulhsu t5,ra,sp
+80002fa0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002fa4: 00200293 li t0,2
+80002fa8: fe5212e3 bne tp,t0,80002f8c <test_22+0x4>
+80002fac: 0000aeb7 lui t4,0xa
+80002fb0: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
+80002fb4: 01600193 li gp,22
+80002fb8: 0fdf1863 bne t5,t4,800030a8 <fail>
+
+80002fbc <test_23>:
+80002fbc: 00000213 li tp,0
+80002fc0: 00b00137 lui sp,0xb00
+80002fc4: 00000013 nop
+80002fc8: 00d000b7 lui ra,0xd00
+80002fcc: 0220af33 mulhsu t5,ra,sp
+80002fd0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002fd4: 00200293 li t0,2
+80002fd8: fe5214e3 bne tp,t0,80002fc0 <test_23+0x4>
+80002fdc: 00009eb7 lui t4,0x9
+80002fe0: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
+80002fe4: 01700193 li gp,23
+80002fe8: 0ddf1063 bne t5,t4,800030a8 <fail>
+
+80002fec <test_24>:
+80002fec: 00000213 li tp,0
+80002ff0: 00b00137 lui sp,0xb00
+80002ff4: 00000013 nop
+80002ff8: 00e000b7 lui ra,0xe00
+80002ffc: 00000013 nop
+80003000: 0220af33 mulhsu t5,ra,sp
+80003004: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80003008: 00200293 li t0,2
+8000300c: fe5212e3 bne tp,t0,80002ff0 <test_24+0x4>
+80003010: 0000aeb7 lui t4,0xa
+80003014: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
+80003018: 01800193 li gp,24
+8000301c: 09df1663 bne t5,t4,800030a8 <fail>
+
+80003020 <test_25>:
+80003020: 00000213 li tp,0
+80003024: 00b00137 lui sp,0xb00
+80003028: 00000013 nop
+8000302c: 00000013 nop
+80003030: 00f000b7 lui ra,0xf00
+80003034: 0220af33 mulhsu t5,ra,sp
+80003038: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000303c: 00200293 li t0,2
+80003040: fe5212e3 bne tp,t0,80003024 <test_25+0x4>
+80003044: 0000aeb7 lui t4,0xa
+80003048: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
+8000304c: 01900193 li gp,25
+80003050: 05df1c63 bne t5,t4,800030a8 <fail>
+
+80003054 <test_26>:
+80003054: 7c0000b7 lui ra,0x7c000
+80003058: 02102133 mulhsu sp,zero,ra
+8000305c: 00000e93 li t4,0
+80003060: 01a00193 li gp,26
+80003064: 05d11263 bne sp,t4,800030a8 <fail>
+
+80003068 <test_27>:
+80003068: 800000b7 lui ra,0x80000
+8000306c: 0200a133 mulhsu sp,ra,zero
+80003070: 00000e93 li t4,0
+80003074: 01b00193 li gp,27
+80003078: 03d11863 bne sp,t4,800030a8 <fail>
+
+8000307c <test_28>:
+8000307c: 020020b3 mulhsu ra,zero,zero
+80003080: 00000e93 li t4,0
+80003084: 01c00193 li gp,28
+80003088: 03d09063 bne ra,t4,800030a8 <fail>
+
+8000308c <test_29>:
+8000308c: 021000b7 lui ra,0x2100
+80003090: 02200137 lui sp,0x2200
+80003094: 0220a033 mulhsu zero,ra,sp
+80003098: 00000e93 li t4,0
+8000309c: 01d00193 li gp,29
+800030a0: 01d01463 bne zero,t4,800030a8 <fail>
+800030a4: 00301a63 bne zero,gp,800030b8 <pass>
+
+800030a8 <fail>:
+800030a8: 00119513 slli a0,gp,0x1
+800030ac: 00050063 beqz a0,800030ac <fail+0x4>
+800030b0: 00156513 ori a0,a0,1
+800030b4: 00000073 ecall
+
+800030b8 <pass>:
+800030b8: 00100513 li a0,1
+800030bc: 00000073 ecall
+800030c0: c0001073 unimp
diff --git a/test/riscv-tests/rv32um-v-mulhsu.elf b/test/riscv-tests/rv32um-v-mulhsu.elf
new file mode 100644
index 0000000..beba322
--- /dev/null
+++ b/test/riscv-tests/rv32um-v-mulhsu.elf
Binary files differ
diff --git a/test/riscv-tests/rv32um-v-mulhu.dump b/test/riscv-tests/rv32um-v-mulhu.dump
new file mode 100644
index 0000000..4ce5bb1
--- /dev/null
+++ b/test/riscv-tests/rv32um-v-mulhu.dump
@@ -0,0 +1,1282 @@
+
+rv32um-v-mulhu: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00007117 auipc sp,0x7
+8000001c: 35010113 addi sp,sp,848 # 80007368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00002317 auipc t1,0x2
+80002370: c9430313 addi t1,t1,-876 # 80004000 <begin_signature>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00004797 auipc a5,0x4
+8000238c: 06c78793 addi a5,a5,108 # 800063f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00004717 auipc a4,0x4
+800023a0: 05470713 addi a4,a4,84 # 800063f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00004697 auipc a3,0x4
+800023ac: 04f6a623 sw a5,76(a3) # 800063f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00004717 auipc a4,0x4
+800023dc: e2070713 addi a4,a4,-480 # 800061f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf9c08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00004797 auipc a5,0x4
+800024bc: f207ac23 sw zero,-200(a5) # 800063f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00001597 auipc a1,0x1
+800024cc: bfc58593 addi a1,a1,-1028 # 800030c4 <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00001597 auipc a1,0x1
+8000253c: c1858593 addi a1,a1,-1000 # 80003150 <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00001597 auipc a1,0x1
+800025a8: bc458593 addi a1,a1,-1084 # 80003168 <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00001597 auipc a1,0x1
+80002614: af858593 addi a1,a1,-1288 # 80003108 <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00001597 auipc a1,0x1
+8000274c: ae858593 addi a1,a1,-1304 # 80003230 <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00001597 auipc a1,0x1
+800027c0: a5058593 addi a1,a1,-1456 # 8000320c <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00004b17 auipc s6,0x4
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800061f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00001d17 auipc s10,0x1
+80002840: 7c4d0d13 addi s10,s10,1988 # 80004000 <begin_signature>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00004717 auipc a4,0x4
+8000285c: b8f72c23 sw a5,-1128(a4) # 800063f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00004717 auipc a4,0x4
+800028e8: b0c70713 addi a4,a4,-1268 # 800063f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00004717 auipc a4,0x4
+800028fc: aef72c23 sw a5,-1288(a4) # 800063f0 <freelist_tail>
+80002900: 00004717 auipc a4,0x4
+80002904: aef72a23 sw a5,-1292(a4) # 800063f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00001617 auipc a2,0x1
+80002914: 94c60613 addi a2,a2,-1716 # 8000325c <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00001617 auipc a2,0x1
+80002980: 85c60613 addi a2,a2,-1956 # 800031d8 <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 7dc60613 addi a2,a2,2012 # 800031a4 <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00002797 auipc a5,0x2
+80002a4c: 5b878793 addi a5,a5,1464 # 80005000 <begin_signature+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00001697 auipc a3,0x1
+80002a60: 5af6a223 sw a5,1444(a3) # 80004000 <begin_signature>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00001717 auipc a4,0x1
+80002a6c: 59870713 addi a4,a4,1432 # 80004000 <begin_signature>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00002697 auipc a3,0x2
+80002a7c: 58f6a223 sw a5,1412(a3) # 80004ffc <begin_signature+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf9ccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc03797 auipc a5,0x7fc03
+80002aec: 51878793 addi a5,a5,1304 # ffc06000 <_end+0x7fbffc08>
+80002af0: 00004717 auipc a4,0x4
+80002af4: 90f72223 sw a5,-1788(a4) # 800063f4 <freelist_head>
+80002af8: 7fc03797 auipc a5,0x7fc03
+80002afc: 6f878793 addi a5,a5,1784 # ffc061f0 <_end+0x7fbffdf8>
+80002b00: 00004717 auipc a4,0x4
+80002b04: 8ef72823 sw a5,-1808(a4) # 800063f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00003717 auipc a4,0x3
+80002b10: 4f470713 addi a4,a4,1268 # 80006000 <freelist_nodes>
+80002b14: 00003317 auipc t1,0x3
+80002b18: 6e430313 addi t1,t1,1764 # 800061f8 <user_mapping>
+80002b1c: 03b00793 li a5,59
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00003797 auipc a5,0x3
+80002b6c: 6807a623 sw zero,1676(a5) # 800061f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 0ee8b7b7 lui a5,0xee8b
+80002b9c: 00080637 lui a2,0x80
+80002ba0: 5cf78793 addi a5,a5,1487 # ee8b5cf <_start-0x71174a31>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: 00000093 li ra,0
+80002be4: 00000113 li sp,0
+80002be8: 0220bf33 mulhu t5,ra,sp
+80002bec: 00000e93 li t4,0
+80002bf0: 00200193 li gp,2
+80002bf4: 4bdf1a63 bne t5,t4,800030a8 <fail>
+
+80002bf8 <test_3>:
+80002bf8: 00100093 li ra,1
+80002bfc: 00100113 li sp,1
+80002c00: 0220bf33 mulhu t5,ra,sp
+80002c04: 00000e93 li t4,0
+80002c08: 00300193 li gp,3
+80002c0c: 49df1e63 bne t5,t4,800030a8 <fail>
+
+80002c10 <test_4>:
+80002c10: 00300093 li ra,3
+80002c14: 00700113 li sp,7
+80002c18: 0220bf33 mulhu t5,ra,sp
+80002c1c: 00000e93 li t4,0
+80002c20: 00400193 li gp,4
+80002c24: 49df1263 bne t5,t4,800030a8 <fail>
+
+80002c28 <test_5>:
+80002c28: 00000093 li ra,0
+80002c2c: ffff8137 lui sp,0xffff8
+80002c30: 0220bf33 mulhu t5,ra,sp
+80002c34: 00000e93 li t4,0
+80002c38: 00500193 li gp,5
+80002c3c: 47df1663 bne t5,t4,800030a8 <fail>
+
+80002c40 <test_6>:
+80002c40: 800000b7 lui ra,0x80000
+80002c44: 00000113 li sp,0
+80002c48: 0220bf33 mulhu t5,ra,sp
+80002c4c: 00000e93 li t4,0
+80002c50: 00600193 li gp,6
+80002c54: 45df1a63 bne t5,t4,800030a8 <fail>
+
+80002c58 <test_7>:
+80002c58: 800000b7 lui ra,0x80000
+80002c5c: ffff8137 lui sp,0xffff8
+80002c60: 0220bf33 mulhu t5,ra,sp
+80002c64: 7fffceb7 lui t4,0x7fffc
+80002c68: 00700193 li gp,7
+80002c6c: 43df1e63 bne t5,t4,800030a8 <fail>
+
+80002c70 <test_30>:
+80002c70: aaaab0b7 lui ra,0xaaaab
+80002c74: aab08093 addi ra,ra,-1365 # aaaaaaab <_end+0x2aaa46b3>
+80002c78: 00030137 lui sp,0x30
+80002c7c: e7d10113 addi sp,sp,-387 # 2fe7d <_start-0x7ffd0183>
+80002c80: 0220bf33 mulhu t5,ra,sp
+80002c84: 00020eb7 lui t4,0x20
+80002c88: efee8e93 addi t4,t4,-258 # 1fefe <_start-0x7ffe0102>
+80002c8c: 01e00193 li gp,30
+80002c90: 41df1c63 bne t5,t4,800030a8 <fail>
+
+80002c94 <test_31>:
+80002c94: 000300b7 lui ra,0x30
+80002c98: e7d08093 addi ra,ra,-387 # 2fe7d <_start-0x7ffd0183>
+80002c9c: aaaab137 lui sp,0xaaaab
+80002ca0: aab10113 addi sp,sp,-1365 # aaaaaaab <_end+0x2aaa46b3>
+80002ca4: 0220bf33 mulhu t5,ra,sp
+80002ca8: 00020eb7 lui t4,0x20
+80002cac: efee8e93 addi t4,t4,-258 # 1fefe <_start-0x7ffe0102>
+80002cb0: 01f00193 li gp,31
+80002cb4: 3fdf1a63 bne t5,t4,800030a8 <fail>
+
+80002cb8 <test_32>:
+80002cb8: ff0000b7 lui ra,0xff000
+80002cbc: ff000137 lui sp,0xff000
+80002cc0: 0220bf33 mulhu t5,ra,sp
+80002cc4: fe010eb7 lui t4,0xfe010
+80002cc8: 02000193 li gp,32
+80002ccc: 3ddf1e63 bne t5,t4,800030a8 <fail>
+
+80002cd0 <test_33>:
+80002cd0: fff00093 li ra,-1
+80002cd4: fff00113 li sp,-1
+80002cd8: 0220bf33 mulhu t5,ra,sp
+80002cdc: ffe00e93 li t4,-2
+80002ce0: 02100193 li gp,33
+80002ce4: 3ddf1263 bne t5,t4,800030a8 <fail>
+
+80002ce8 <test_34>:
+80002ce8: fff00093 li ra,-1
+80002cec: 00100113 li sp,1
+80002cf0: 0220bf33 mulhu t5,ra,sp
+80002cf4: 00000e93 li t4,0
+80002cf8: 02200193 li gp,34
+80002cfc: 3bdf1663 bne t5,t4,800030a8 <fail>
+
+80002d00 <test_35>:
+80002d00: 00100093 li ra,1
+80002d04: fff00113 li sp,-1
+80002d08: 0220bf33 mulhu t5,ra,sp
+80002d0c: 00000e93 li t4,0
+80002d10: 02300193 li gp,35
+80002d14: 39df1a63 bne t5,t4,800030a8 <fail>
+
+80002d18 <test_8>:
+80002d18: 00d000b7 lui ra,0xd00
+80002d1c: 00b00137 lui sp,0xb00
+80002d20: 0220b0b3 mulhu ra,ra,sp
+80002d24: 00009eb7 lui t4,0x9
+80002d28: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
+80002d2c: 00800193 li gp,8
+80002d30: 37d09c63 bne ra,t4,800030a8 <fail>
+
+80002d34 <test_9>:
+80002d34: 00e000b7 lui ra,0xe00
+80002d38: 00b00137 lui sp,0xb00
+80002d3c: 0220b133 mulhu sp,ra,sp
+80002d40: 0000aeb7 lui t4,0xa
+80002d44: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
+80002d48: 00900193 li gp,9
+80002d4c: 35d11e63 bne sp,t4,800030a8 <fail>
+
+80002d50 <test_10>:
+80002d50: 00d000b7 lui ra,0xd00
+80002d54: 0210b0b3 mulhu ra,ra,ra
+80002d58: 0000beb7 lui t4,0xb
+80002d5c: 900e8e93 addi t4,t4,-1792 # a900 <_start-0x7fff5700>
+80002d60: 00a00193 li gp,10
+80002d64: 35d09263 bne ra,t4,800030a8 <fail>
+
+80002d68 <test_11>:
+80002d68: 00000213 li tp,0
+80002d6c: 00d000b7 lui ra,0xd00
+80002d70: 00b00137 lui sp,0xb00
+80002d74: 0220bf33 mulhu t5,ra,sp
+80002d78: 000f0313 mv t1,t5
+80002d7c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002d80: 00200293 li t0,2
+80002d84: fe5214e3 bne tp,t0,80002d6c <test_11+0x4>
+80002d88: 00009eb7 lui t4,0x9
+80002d8c: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
+80002d90: 00b00193 li gp,11
+80002d94: 31d31a63 bne t1,t4,800030a8 <fail>
+
+80002d98 <test_12>:
+80002d98: 00000213 li tp,0
+80002d9c: 00e000b7 lui ra,0xe00
+80002da0: 00b00137 lui sp,0xb00
+80002da4: 0220bf33 mulhu t5,ra,sp
+80002da8: 00000013 nop
+80002dac: 000f0313 mv t1,t5
+80002db0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002db4: 00200293 li t0,2
+80002db8: fe5212e3 bne tp,t0,80002d9c <test_12+0x4>
+80002dbc: 0000aeb7 lui t4,0xa
+80002dc0: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
+80002dc4: 00c00193 li gp,12
+80002dc8: 2fd31063 bne t1,t4,800030a8 <fail>
+
+80002dcc <test_13>:
+80002dcc: 00000213 li tp,0
+80002dd0: 00f000b7 lui ra,0xf00
+80002dd4: 00b00137 lui sp,0xb00
+80002dd8: 0220bf33 mulhu t5,ra,sp
+80002ddc: 00000013 nop
+80002de0: 00000013 nop
+80002de4: 000f0313 mv t1,t5
+80002de8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002dec: 00200293 li t0,2
+80002df0: fe5210e3 bne tp,t0,80002dd0 <test_13+0x4>
+80002df4: 0000aeb7 lui t4,0xa
+80002df8: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
+80002dfc: 00d00193 li gp,13
+80002e00: 2bd31463 bne t1,t4,800030a8 <fail>
+
+80002e04 <test_14>:
+80002e04: 00000213 li tp,0
+80002e08: 00d000b7 lui ra,0xd00
+80002e0c: 00b00137 lui sp,0xb00
+80002e10: 0220bf33 mulhu t5,ra,sp
+80002e14: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e18: 00200293 li t0,2
+80002e1c: fe5216e3 bne tp,t0,80002e08 <test_14+0x4>
+80002e20: 00009eb7 lui t4,0x9
+80002e24: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
+80002e28: 00e00193 li gp,14
+80002e2c: 27df1e63 bne t5,t4,800030a8 <fail>
+
+80002e30 <test_15>:
+80002e30: 00000213 li tp,0
+80002e34: 00e000b7 lui ra,0xe00
+80002e38: 00b00137 lui sp,0xb00
+80002e3c: 00000013 nop
+80002e40: 0220bf33 mulhu t5,ra,sp
+80002e44: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e48: 00200293 li t0,2
+80002e4c: fe5214e3 bne tp,t0,80002e34 <test_15+0x4>
+80002e50: 0000aeb7 lui t4,0xa
+80002e54: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
+80002e58: 00f00193 li gp,15
+80002e5c: 25df1663 bne t5,t4,800030a8 <fail>
+
+80002e60 <test_16>:
+80002e60: 00000213 li tp,0
+80002e64: 00f000b7 lui ra,0xf00
+80002e68: 00b00137 lui sp,0xb00
+80002e6c: 00000013 nop
+80002e70: 00000013 nop
+80002e74: 0220bf33 mulhu t5,ra,sp
+80002e78: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002e7c: 00200293 li t0,2
+80002e80: fe5212e3 bne tp,t0,80002e64 <test_16+0x4>
+80002e84: 0000aeb7 lui t4,0xa
+80002e88: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
+80002e8c: 01000193 li gp,16
+80002e90: 21df1c63 bne t5,t4,800030a8 <fail>
+
+80002e94 <test_17>:
+80002e94: 00000213 li tp,0
+80002e98: 00d000b7 lui ra,0xd00
+80002e9c: 00000013 nop
+80002ea0: 00b00137 lui sp,0xb00
+80002ea4: 0220bf33 mulhu t5,ra,sp
+80002ea8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002eac: 00200293 li t0,2
+80002eb0: fe5214e3 bne tp,t0,80002e98 <test_17+0x4>
+80002eb4: 00009eb7 lui t4,0x9
+80002eb8: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
+80002ebc: 01100193 li gp,17
+80002ec0: 1fdf1463 bne t5,t4,800030a8 <fail>
+
+80002ec4 <test_18>:
+80002ec4: 00000213 li tp,0
+80002ec8: 00e000b7 lui ra,0xe00
+80002ecc: 00000013 nop
+80002ed0: 00b00137 lui sp,0xb00
+80002ed4: 00000013 nop
+80002ed8: 0220bf33 mulhu t5,ra,sp
+80002edc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002ee0: 00200293 li t0,2
+80002ee4: fe5212e3 bne tp,t0,80002ec8 <test_18+0x4>
+80002ee8: 0000aeb7 lui t4,0xa
+80002eec: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
+80002ef0: 01200193 li gp,18
+80002ef4: 1bdf1a63 bne t5,t4,800030a8 <fail>
+
+80002ef8 <test_19>:
+80002ef8: 00000213 li tp,0
+80002efc: 00f000b7 lui ra,0xf00
+80002f00: 00000013 nop
+80002f04: 00000013 nop
+80002f08: 00b00137 lui sp,0xb00
+80002f0c: 0220bf33 mulhu t5,ra,sp
+80002f10: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002f14: 00200293 li t0,2
+80002f18: fe5212e3 bne tp,t0,80002efc <test_19+0x4>
+80002f1c: 0000aeb7 lui t4,0xa
+80002f20: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
+80002f24: 01300193 li gp,19
+80002f28: 19df1063 bne t5,t4,800030a8 <fail>
+
+80002f2c <test_20>:
+80002f2c: 00000213 li tp,0
+80002f30: 00b00137 lui sp,0xb00
+80002f34: 00d000b7 lui ra,0xd00
+80002f38: 0220bf33 mulhu t5,ra,sp
+80002f3c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002f40: 00200293 li t0,2
+80002f44: fe5216e3 bne tp,t0,80002f30 <test_20+0x4>
+80002f48: 00009eb7 lui t4,0x9
+80002f4c: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
+80002f50: 01400193 li gp,20
+80002f54: 15df1a63 bne t5,t4,800030a8 <fail>
+
+80002f58 <test_21>:
+80002f58: 00000213 li tp,0
+80002f5c: 00b00137 lui sp,0xb00
+80002f60: 00e000b7 lui ra,0xe00
+80002f64: 00000013 nop
+80002f68: 0220bf33 mulhu t5,ra,sp
+80002f6c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002f70: 00200293 li t0,2
+80002f74: fe5214e3 bne tp,t0,80002f5c <test_21+0x4>
+80002f78: 0000aeb7 lui t4,0xa
+80002f7c: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
+80002f80: 01500193 li gp,21
+80002f84: 13df1263 bne t5,t4,800030a8 <fail>
+
+80002f88 <test_22>:
+80002f88: 00000213 li tp,0
+80002f8c: 00b00137 lui sp,0xb00
+80002f90: 00f000b7 lui ra,0xf00
+80002f94: 00000013 nop
+80002f98: 00000013 nop
+80002f9c: 0220bf33 mulhu t5,ra,sp
+80002fa0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002fa4: 00200293 li t0,2
+80002fa8: fe5212e3 bne tp,t0,80002f8c <test_22+0x4>
+80002fac: 0000aeb7 lui t4,0xa
+80002fb0: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
+80002fb4: 01600193 li gp,22
+80002fb8: 0fdf1863 bne t5,t4,800030a8 <fail>
+
+80002fbc <test_23>:
+80002fbc: 00000213 li tp,0
+80002fc0: 00b00137 lui sp,0xb00
+80002fc4: 00000013 nop
+80002fc8: 00d000b7 lui ra,0xd00
+80002fcc: 0220bf33 mulhu t5,ra,sp
+80002fd0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80002fd4: 00200293 li t0,2
+80002fd8: fe5214e3 bne tp,t0,80002fc0 <test_23+0x4>
+80002fdc: 00009eb7 lui t4,0x9
+80002fe0: f00e8e93 addi t4,t4,-256 # 8f00 <_start-0x7fff7100>
+80002fe4: 01700193 li gp,23
+80002fe8: 0ddf1063 bne t5,t4,800030a8 <fail>
+
+80002fec <test_24>:
+80002fec: 00000213 li tp,0
+80002ff0: 00b00137 lui sp,0xb00
+80002ff4: 00000013 nop
+80002ff8: 00e000b7 lui ra,0xe00
+80002ffc: 00000013 nop
+80003000: 0220bf33 mulhu t5,ra,sp
+80003004: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+80003008: 00200293 li t0,2
+8000300c: fe5212e3 bne tp,t0,80002ff0 <test_24+0x4>
+80003010: 0000aeb7 lui t4,0xa
+80003014: a00e8e93 addi t4,t4,-1536 # 9a00 <_start-0x7fff6600>
+80003018: 01800193 li gp,24
+8000301c: 09df1663 bne t5,t4,800030a8 <fail>
+
+80003020 <test_25>:
+80003020: 00000213 li tp,0
+80003024: 00b00137 lui sp,0xb00
+80003028: 00000013 nop
+8000302c: 00000013 nop
+80003030: 00f000b7 lui ra,0xf00
+80003034: 0220bf33 mulhu t5,ra,sp
+80003038: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+8000303c: 00200293 li t0,2
+80003040: fe5212e3 bne tp,t0,80003024 <test_25+0x4>
+80003044: 0000aeb7 lui t4,0xa
+80003048: 500e8e93 addi t4,t4,1280 # a500 <_start-0x7fff5b00>
+8000304c: 01900193 li gp,25
+80003050: 05df1c63 bne t5,t4,800030a8 <fail>
+
+80003054 <test_26>:
+80003054: 7c0000b7 lui ra,0x7c000
+80003058: 02103133 mulhu sp,zero,ra
+8000305c: 00000e93 li t4,0
+80003060: 01a00193 li gp,26
+80003064: 05d11263 bne sp,t4,800030a8 <fail>
+
+80003068 <test_27>:
+80003068: 800000b7 lui ra,0x80000
+8000306c: 0200b133 mulhu sp,ra,zero
+80003070: 00000e93 li t4,0
+80003074: 01b00193 li gp,27
+80003078: 03d11863 bne sp,t4,800030a8 <fail>
+
+8000307c <test_28>:
+8000307c: 020030b3 mulhu ra,zero,zero
+80003080: 00000e93 li t4,0
+80003084: 01c00193 li gp,28
+80003088: 03d09063 bne ra,t4,800030a8 <fail>
+
+8000308c <test_29>:
+8000308c: 021000b7 lui ra,0x2100
+80003090: 02200137 lui sp,0x2200
+80003094: 0220b033 mulhu zero,ra,sp
+80003098: 00000e93 li t4,0
+8000309c: 01d00193 li gp,29
+800030a0: 01d01463 bne zero,t4,800030a8 <fail>
+800030a4: 00301a63 bne zero,gp,800030b8 <pass>
+
+800030a8 <fail>:
+800030a8: 00119513 slli a0,gp,0x1
+800030ac: 00050063 beqz a0,800030ac <fail+0x4>
+800030b0: 00156513 ori a0,a0,1
+800030b4: 00000073 ecall
+
+800030b8 <pass>:
+800030b8: 00100513 li a0,1
+800030bc: 00000073 ecall
+800030c0: c0001073 unimp
diff --git a/test/riscv-tests/rv32um-v-mulhu.elf b/test/riscv-tests/rv32um-v-mulhu.elf
new file mode 100644
index 0000000..aa8591c
--- /dev/null
+++ b/test/riscv-tests/rv32um-v-mulhu.elf
Binary files differ
diff --git a/test/riscv-tests/rv32um-v-rem.dump b/test/riscv-tests/rv32um-v-rem.dump
new file mode 100644
index 0000000..fd78107
--- /dev/null
+++ b/test/riscv-tests/rv32um-v-rem.dump
@@ -0,0 +1,981 @@
+
+rv32um-v-rem: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00006117 auipc sp,0x6
+8000001c: 35010113 addi sp,sp,848 # 80006368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00001317 auipc t1,0x1
+80002370: c9430313 addi t1,t1,-876 # 80003000 <begin_signature>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00003797 auipc a5,0x3
+8000238c: 06c78793 addi a5,a5,108 # 800053f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00003717 auipc a4,0x3
+800023a0: 05470713 addi a4,a4,84 # 800053f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00003697 auipc a3,0x3
+800023ac: 04f6a623 sw a5,76(a3) # 800053f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00003717 auipc a4,0x3
+800023dc: e2070713 addi a4,a4,-480 # 800051f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbfac08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00003797 auipc a5,0x3
+800024bc: f207ac23 sw zero,-200(a5) # 800053f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00001597 auipc a1,0x1
+800024cc: 81058593 addi a1,a1,-2032 # 80002cd8 <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00001597 auipc a1,0x1
+8000253c: 82c58593 addi a1,a1,-2004 # 80002d64 <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00000597 auipc a1,0x0
+800025a8: 7d858593 addi a1,a1,2008 # 80002d7c <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00000597 auipc a1,0x0
+80002614: 70c58593 addi a1,a1,1804 # 80002d1c <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00000597 auipc a1,0x0
+8000274c: 6fc58593 addi a1,a1,1788 # 80002e44 <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00000597 auipc a1,0x0
+800027c0: 66458593 addi a1,a1,1636 # 80002e20 <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00003b17 auipc s6,0x3
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800051f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00000d17 auipc s10,0x0
+80002840: 7c4d0d13 addi s10,s10,1988 # 80003000 <begin_signature>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00003717 auipc a4,0x3
+8000285c: b8f72c23 sw a5,-1128(a4) # 800053f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00003717 auipc a4,0x3
+800028e8: b0c70713 addi a4,a4,-1268 # 800053f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00003717 auipc a4,0x3
+800028fc: aef72c23 sw a5,-1288(a4) # 800053f0 <freelist_tail>
+80002900: 00003717 auipc a4,0x3
+80002904: aef72a23 sw a5,-1292(a4) # 800053f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00000617 auipc a2,0x0
+80002914: 56060613 addi a2,a2,1376 # 80002e70 <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00000617 auipc a2,0x0
+80002980: 47060613 addi a2,a2,1136 # 80002dec <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 3f060613 addi a2,a2,1008 # 80002db8 <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00001797 auipc a5,0x1
+80002a4c: 5b878793 addi a5,a5,1464 # 80004000 <begin_signature+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00000697 auipc a3,0x0
+80002a60: 5af6a223 sw a5,1444(a3) # 80003000 <begin_signature>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00000717 auipc a4,0x0
+80002a6c: 59870713 addi a4,a4,1432 # 80003000 <begin_signature>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00001697 auipc a3,0x1
+80002a7c: 58f6a223 sw a5,1412(a3) # 80003ffc <begin_signature+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbfaccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc02797 auipc a5,0x7fc02
+80002aec: 51878793 addi a5,a5,1304 # ffc05000 <_end+0x7fbffc08>
+80002af0: 00003717 auipc a4,0x3
+80002af4: 90f72223 sw a5,-1788(a4) # 800053f4 <freelist_head>
+80002af8: 7fc02797 auipc a5,0x7fc02
+80002afc: 6f878793 addi a5,a5,1784 # ffc051f0 <_end+0x7fbffdf8>
+80002b00: 00003717 auipc a4,0x3
+80002b04: 8ef72823 sw a5,-1808(a4) # 800053f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00002717 auipc a4,0x2
+80002b10: 4f470713 addi a4,a4,1268 # 80005000 <freelist_nodes>
+80002b14: 00002317 auipc t1,0x2
+80002b18: 6e430313 addi t1,t1,1764 # 800051f8 <user_mapping>
+80002b1c: 00400793 li a5,4
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00002797 auipc a5,0x2
+80002b6c: 6807a623 sw zero,1676(a5) # 800051f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 05b927b7 lui a5,0x5b92
+80002b9c: 00080637 lui a2,0x80
+80002ba0: b5078793 addi a5,a5,-1200 # 5b91b50 <_start-0x7a46e4b0>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: 01400093 li ra,20
+80002be4: 00600113 li sp,6
+80002be8: 0220ef33 rem t5,ra,sp
+80002bec: 00200e93 li t4,2
+80002bf0: 00200193 li gp,2
+80002bf4: 0ddf1463 bne t5,t4,80002cbc <fail>
+
+80002bf8 <test_3>:
+80002bf8: fec00093 li ra,-20
+80002bfc: 00600113 li sp,6
+80002c00: 0220ef33 rem t5,ra,sp
+80002c04: ffe00e93 li t4,-2
+80002c08: 00300193 li gp,3
+80002c0c: 0bdf1863 bne t5,t4,80002cbc <fail>
+
+80002c10 <test_4>:
+80002c10: 01400093 li ra,20
+80002c14: ffa00113 li sp,-6
+80002c18: 0220ef33 rem t5,ra,sp
+80002c1c: 00200e93 li t4,2
+80002c20: 00400193 li gp,4
+80002c24: 09df1c63 bne t5,t4,80002cbc <fail>
+
+80002c28 <test_5>:
+80002c28: fec00093 li ra,-20
+80002c2c: ffa00113 li sp,-6
+80002c30: 0220ef33 rem t5,ra,sp
+80002c34: ffe00e93 li t4,-2
+80002c38: 00500193 li gp,5
+80002c3c: 09df1063 bne t5,t4,80002cbc <fail>
+
+80002c40 <test_6>:
+80002c40: 800000b7 lui ra,0x80000
+80002c44: 00100113 li sp,1
+80002c48: 0220ef33 rem t5,ra,sp
+80002c4c: 00000e93 li t4,0
+80002c50: 00600193 li gp,6
+80002c54: 07df1463 bne t5,t4,80002cbc <fail>
+
+80002c58 <test_7>:
+80002c58: 800000b7 lui ra,0x80000
+80002c5c: fff00113 li sp,-1
+80002c60: 0220ef33 rem t5,ra,sp
+80002c64: 00000e93 li t4,0
+80002c68: 00700193 li gp,7
+80002c6c: 05df1863 bne t5,t4,80002cbc <fail>
+
+80002c70 <test_8>:
+80002c70: 800000b7 lui ra,0x80000
+80002c74: 00000113 li sp,0
+80002c78: 0220ef33 rem t5,ra,sp
+80002c7c: 80000eb7 lui t4,0x80000
+80002c80: 00800193 li gp,8
+80002c84: 03df1c63 bne t5,t4,80002cbc <fail>
+
+80002c88 <test_9>:
+80002c88: 00100093 li ra,1
+80002c8c: 00000113 li sp,0
+80002c90: 0220ef33 rem t5,ra,sp
+80002c94: 00100e93 li t4,1
+80002c98: 00900193 li gp,9
+80002c9c: 03df1063 bne t5,t4,80002cbc <fail>
+
+80002ca0 <test_10>:
+80002ca0: 00000093 li ra,0
+80002ca4: 00000113 li sp,0
+80002ca8: 0220ef33 rem t5,ra,sp
+80002cac: 00000e93 li t4,0
+80002cb0: 00a00193 li gp,10
+80002cb4: 01df1463 bne t5,t4,80002cbc <fail>
+80002cb8: 00301a63 bne zero,gp,80002ccc <pass>
+
+80002cbc <fail>:
+80002cbc: 00119513 slli a0,gp,0x1
+80002cc0: 00050063 beqz a0,80002cc0 <fail+0x4>
+80002cc4: 00156513 ori a0,a0,1
+80002cc8: 00000073 ecall
+
+80002ccc <pass>:
+80002ccc: 00100513 li a0,1
+80002cd0: 00000073 ecall
+80002cd4: c0001073 unimp
diff --git a/test/riscv-tests/rv32um-v-rem.elf b/test/riscv-tests/rv32um-v-rem.elf
new file mode 100644
index 0000000..36c1d24
--- /dev/null
+++ b/test/riscv-tests/rv32um-v-rem.elf
Binary files differ
diff --git a/test/riscv-tests/rv32um-v-remu.dump b/test/riscv-tests/rv32um-v-remu.dump
new file mode 100644
index 0000000..b02526b
--- /dev/null
+++ b/test/riscv-tests/rv32um-v-remu.dump
@@ -0,0 +1,981 @@
+
+rv32um-v-remu: file format elf32-littleriscv
+
+
+Disassembly of section .text.init:
+
+80000000 <_start>:
+80000000: 00c0006f j 8000000c <handle_reset>
+
+80000004 <nmi_vector>:
+80000004: 2780206f j 8000227c <wtf>
+
+80000008 <trap_vector>:
+80000008: 2740206f j 8000227c <wtf>
+
+8000000c <handle_reset>:
+8000000c: 00000297 auipc t0,0x0
+80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+80000014: 30529073 csrw mtvec,t0
+80000018: 00006117 auipc sp,0x6
+8000001c: 35010113 addi sp,sp,848 # 80006368 <_end+0xf70>
+80000020: f14022f3 csrr t0,mhartid
+80000024: 00c29293 slli t0,t0,0xc
+80000028: 00510133 add sp,sp,t0
+8000002c: 34011073 csrw mscratch,sp
+80000030: 00003517 auipc a0,0x3
+80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
+80000038: 2090206f j 80002a40 <vm_boot>
+
+8000003c <pop_tf>:
+8000003c: 08452283 lw t0,132(a0)
+80000040: 14129073 csrw sepc,t0
+80000044: 00452083 lw ra,4(a0)
+80000048: 00852103 lw sp,8(a0)
+8000004c: 00c52183 lw gp,12(a0)
+80000050: 01052203 lw tp,16(a0)
+80000054: 01452283 lw t0,20(a0)
+80000058: 01852303 lw t1,24(a0)
+8000005c: 01c52383 lw t2,28(a0)
+80000060: 02052403 lw s0,32(a0)
+80000064: 02452483 lw s1,36(a0)
+80000068: 02c52583 lw a1,44(a0)
+8000006c: 03052603 lw a2,48(a0)
+80000070: 03452683 lw a3,52(a0)
+80000074: 03852703 lw a4,56(a0)
+80000078: 03c52783 lw a5,60(a0)
+8000007c: 04052803 lw a6,64(a0)
+80000080: 04452883 lw a7,68(a0)
+80000084: 04852903 lw s2,72(a0)
+80000088: 04c52983 lw s3,76(a0)
+8000008c: 05052a03 lw s4,80(a0)
+80000090: 05452a83 lw s5,84(a0)
+80000094: 05852b03 lw s6,88(a0)
+80000098: 05c52b83 lw s7,92(a0)
+8000009c: 06052c03 lw s8,96(a0)
+800000a0: 06452c83 lw s9,100(a0)
+800000a4: 06852d03 lw s10,104(a0)
+800000a8: 06c52d83 lw s11,108(a0)
+800000ac: 07052e03 lw t3,112(a0)
+800000b0: 07452e83 lw t4,116(a0)
+800000b4: 07852f03 lw t5,120(a0)
+800000b8: 07c52f83 lw t6,124(a0)
+800000bc: 02852503 lw a0,40(a0)
+800000c0: 10200073 sret
+
+800000c4 <trap_entry>:
+800000c4: 14011173 csrrw sp,sscratch,sp
+800000c8: 00112223 sw ra,4(sp)
+800000cc: 00312623 sw gp,12(sp)
+800000d0: 00412823 sw tp,16(sp)
+800000d4: 00512a23 sw t0,20(sp)
+800000d8: 00612c23 sw t1,24(sp)
+800000dc: 00712e23 sw t2,28(sp)
+800000e0: 02812023 sw s0,32(sp)
+800000e4: 02912223 sw s1,36(sp)
+800000e8: 02a12423 sw a0,40(sp)
+800000ec: 02b12623 sw a1,44(sp)
+800000f0: 02c12823 sw a2,48(sp)
+800000f4: 02d12a23 sw a3,52(sp)
+800000f8: 02e12c23 sw a4,56(sp)
+800000fc: 02f12e23 sw a5,60(sp)
+80000100: 05012023 sw a6,64(sp)
+80000104: 05112223 sw a7,68(sp)
+80000108: 05212423 sw s2,72(sp)
+8000010c: 05312623 sw s3,76(sp)
+80000110: 05412823 sw s4,80(sp)
+80000114: 05512a23 sw s5,84(sp)
+80000118: 05612c23 sw s6,88(sp)
+8000011c: 05712e23 sw s7,92(sp)
+80000120: 07812023 sw s8,96(sp)
+80000124: 07912223 sw s9,100(sp)
+80000128: 07a12423 sw s10,104(sp)
+8000012c: 07b12623 sw s11,108(sp)
+80000130: 07c12823 sw t3,112(sp)
+80000134: 07d12a23 sw t4,116(sp)
+80000138: 07e12c23 sw t5,120(sp)
+8000013c: 07f12e23 sw t6,124(sp)
+80000140: 140112f3 csrrw t0,sscratch,sp
+80000144: 00512423 sw t0,8(sp)
+80000148: 100022f3 csrr t0,sstatus
+8000014c: 08512023 sw t0,128(sp)
+80000150: 141022f3 csrr t0,sepc
+80000154: 08512223 sw t0,132(sp)
+80000158: 143022f3 csrr t0,sbadaddr
+8000015c: 08512423 sw t0,136(sp)
+80000160: 142022f3 csrr t0,scause
+80000164: 08512623 sw t0,140(sp)
+80000168: 00010513 mv a0,sp
+8000016c: 50c0206f j 80002678 <handle_trap>
+
+Disassembly of section .text:
+
+80002000 <memcpy>:
+80002000: 00c5e7b3 or a5,a1,a2
+80002004: 00f567b3 or a5,a0,a5
+80002008: 0037f793 andi a5,a5,3
+8000200c: 00c506b3 add a3,a0,a2
+80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
+80002014: 00c58633 add a2,a1,a2
+80002018: 00050793 mv a5,a0
+8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
+80002020: 00158593 addi a1,a1,1
+80002024: fff5c703 lbu a4,-1(a1)
+80002028: 00178793 addi a5,a5,1
+8000202c: fee78fa3 sb a4,-1(a5)
+80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
+80002034: 00008067 ret
+80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
+8000203c: 00050793 mv a5,a0
+80002040: 00458593 addi a1,a1,4
+80002044: ffc5a703 lw a4,-4(a1)
+80002048: 00478793 addi a5,a5,4
+8000204c: fee7ae23 sw a4,-4(a5)
+80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+80002054: 00008067 ret
+80002058: 00008067 ret
+
+8000205c <memset>:
+8000205c: 00c567b3 or a5,a0,a2
+80002060: 0037f793 andi a5,a5,3
+80002064: 00c50633 add a2,a0,a2
+80002068: 02078063 beqz a5,80002088 <memset+0x2c>
+8000206c: 0ff5f593 andi a1,a1,255
+80002070: 00050793 mv a5,a0
+80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
+80002078: 00178793 addi a5,a5,1
+8000207c: feb78fa3 sb a1,-1(a5)
+80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+80002084: 00008067 ret
+80002088: 0ff5f593 andi a1,a1,255
+8000208c: 00859793 slli a5,a1,0x8
+80002090: 00b7e7b3 or a5,a5,a1
+80002094: 01079593 slli a1,a5,0x10
+80002098: 00f5e5b3 or a1,a1,a5
+8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
+800020a0: 00050793 mv a5,a0
+800020a4: 00478793 addi a5,a5,4
+800020a8: feb7ae23 sw a1,-4(a5)
+800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
+800020b0: 00008067 ret
+800020b4: 00008067 ret
+
+800020b8 <strlen>:
+800020b8: 00054783 lbu a5,0(a0)
+800020bc: 00050713 mv a4,a0
+800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
+800020c4: 00150513 addi a0,a0,1
+800020c8: 00054783 lbu a5,0(a0)
+800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
+800020d0: 40e50533 sub a0,a0,a4
+800020d4: 00008067 ret
+800020d8: 00000513 li a0,0
+800020dc: 00008067 ret
+
+800020e0 <strcmp>:
+800020e0: 00150513 addi a0,a0,1
+800020e4: fff54783 lbu a5,-1(a0)
+800020e8: 00158593 addi a1,a1,1
+800020ec: fff5c703 lbu a4,-1(a1)
+800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
+800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
+800020f8: 40e78533 sub a0,a5,a4
+800020fc: 00008067 ret
+80002100: 00000793 li a5,0
+80002104: ff5ff06f j 800020f8 <strcmp+0x18>
+
+80002108 <memcmp>:
+80002108: 00b567b3 or a5,a0,a1
+8000210c: 0037f793 andi a5,a5,3
+80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
+80002114: ffc67693 andi a3,a2,-4
+80002118: 00d506b3 add a3,a0,a3
+8000211c: 00050813 mv a6,a0
+80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
+80002124: 00052703 lw a4,0(a0)
+80002128: 0005a783 lw a5,0(a1)
+8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
+80002130: 0240006f j 80002154 <memcmp+0x4c>
+80002134: 00052703 lw a4,0(a0)
+80002138: 0005a783 lw a5,0(a1)
+8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
+80002140: 00450513 addi a0,a0,4
+80002144: 00458593 addi a1,a1,4
+80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
+8000214c: 41050833 sub a6,a0,a6
+80002150: 41060633 sub a2,a2,a6
+80002154: 00c58633 add a2,a1,a2
+80002158: 0140006f j 8000216c <memcmp+0x64>
+8000215c: 00158593 addi a1,a1,1
+80002160: fff54783 lbu a5,-1(a0)
+80002164: fff5c703 lbu a4,-1(a1)
+80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
+8000216c: 00150513 addi a0,a0,1
+80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
+80002174: 00000513 li a0,0
+80002178: 00008067 ret
+8000217c: 40e78533 sub a0,a5,a4
+80002180: 00008067 ret
+
+80002184 <strcpy>:
+80002184: 00050793 mv a5,a0
+80002188: 00158593 addi a1,a1,1
+8000218c: fff5c703 lbu a4,-1(a1)
+80002190: 00178793 addi a5,a5,1
+80002194: fee78fa3 sb a4,-1(a5)
+80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
+8000219c: 00008067 ret
+
+800021a0 <atol>:
+800021a0: 00054783 lbu a5,0(a0)
+800021a4: 02000713 li a4,32
+800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
+800021ac: 00150513 addi a0,a0,1
+800021b0: 00054783 lbu a5,0(a0)
+800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
+800021b8: fd578713 addi a4,a5,-43
+800021bc: 0fd77713 andi a4,a4,253
+800021c0: 04070263 beqz a4,80002204 <atol+0x64>
+800021c4: 00054683 lbu a3,0(a0)
+800021c8: 00050793 mv a5,a0
+800021cc: 00000613 li a2,0
+800021d0: 04068863 beqz a3,80002220 <atol+0x80>
+800021d4: 00000513 li a0,0
+800021d8: 00178793 addi a5,a5,1
+800021dc: fd068593 addi a1,a3,-48
+800021e0: 00251713 slli a4,a0,0x2
+800021e4: 0007c683 lbu a3,0(a5)
+800021e8: 00a70533 add a0,a4,a0
+800021ec: 00151513 slli a0,a0,0x1
+800021f0: 00a58533 add a0,a1,a0
+800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
+800021f8: 00060463 beqz a2,80002200 <atol+0x60>
+800021fc: 40a00533 neg a0,a0
+80002200: 00008067 ret
+80002204: 00154683 lbu a3,1(a0)
+80002208: fd378793 addi a5,a5,-45
+8000220c: 0017b613 seqz a2,a5
+80002210: 00150793 addi a5,a0,1
+80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
+80002218: 00000513 li a0,0
+8000221c: fddff06f j 800021f8 <atol+0x58>
+80002220: 00000513 li a0,0
+80002224: 00008067 ret
+
+80002228 <terminate>:
+80002228: fffff697 auipc a3,0xfffff
+8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
+80002230: 0006a703 lw a4,0(a3)
+80002234: 0046a783 lw a5,4(a3)
+80002238: 00050813 mv a6,a0
+8000223c: 41f55893 srai a7,a0,0x1f
+80002240: 00f76733 or a4,a4,a5
+80002244: 02070663 beqz a4,80002270 <terminate+0x48>
+80002248: fffff617 auipc a2,0xfffff
+8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
+80002250: 00000713 li a4,0
+80002254: 00e62023 sw a4,0(a2)
+80002258: 00000793 li a5,0
+8000225c: 00f62223 sw a5,4(a2)
+80002260: 0006a703 lw a4,0(a3)
+80002264: 0046a783 lw a5,4(a3)
+80002268: 00f76733 or a4,a4,a5
+8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
+80002270: 0106a023 sw a6,0(a3)
+80002274: 0116a223 sw a7,4(a3)
+80002278: 0000006f j 80002278 <terminate+0x50>
+
+8000227c <wtf>:
+8000227c: ff010113 addi sp,sp,-16
+80002280: 34900513 li a0,841
+80002284: 00112623 sw ra,12(sp)
+80002288: fa1ff0ef jal ra,80002228 <terminate>
+
+8000228c <printhex>:
+8000228c: fe010113 addi sp,sp,-32
+80002290: 01b10793 addi a5,sp,27
+80002294: 00b10e93 addi t4,sp,11
+80002298: 00900e13 li t3,9
+8000229c: 00f57693 andi a3,a0,15
+800022a0: 01c59313 slli t1,a1,0x1c
+800022a4: 00455513 srli a0,a0,0x4
+800022a8: 05700613 li a2,87
+800022ac: 0ff6f713 andi a4,a3,255
+800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
+800022b4: 03000613 li a2,48
+800022b8: 00c70733 add a4,a4,a2
+800022bc: 00e78023 sb a4,0(a5)
+800022c0: fff78793 addi a5,a5,-1
+800022c4: 00a36533 or a0,t1,a0
+800022c8: 0045d593 srli a1,a1,0x4
+800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
+800022d0: 00c14583 lbu a1,12(sp)
+800022d4: 00010e23 sb zero,28(sp)
+800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
+800022dc: 00c10513 addi a0,sp,12
+800022e0: fffff697 auipc a3,0xfffff
+800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
+800022e8: fffff617 auipc a2,0xfffff
+800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
+800022f0: 0006a703 lw a4,0(a3)
+800022f4: 0046a783 lw a5,4(a3)
+800022f8: 00058813 mv a6,a1
+800022fc: 00150513 addi a0,a0,1
+80002300: 00f76733 or a4,a4,a5
+80002304: 010108b7 lui a7,0x1010
+80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
+8000230c: 00000713 li a4,0
+80002310: 00e62023 sw a4,0(a2)
+80002314: 00000793 li a5,0
+80002318: 00f62223 sw a5,4(a2)
+8000231c: 0006a703 lw a4,0(a3)
+80002320: 0046a783 lw a5,4(a3)
+80002324: 00f76733 or a4,a4,a5
+80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
+8000232c: 00054583 lbu a1,0(a0)
+80002330: 0106a023 sw a6,0(a3)
+80002334: 0116a223 sw a7,4(a3)
+80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
+8000233c: 02010113 addi sp,sp,32
+80002340: 00008067 ret
+
+80002344 <handle_fault>:
+80002344: ff010113 addi sp,sp,-16
+80002348: fffff6b7 lui a3,0xfffff
+8000234c: 00112623 sw ra,12(sp)
+80002350: 00812423 sw s0,8(sp)
+80002354: 00912223 sw s1,4(sp)
+80002358: 00d50733 add a4,a0,a3
+8000235c: 0003e7b7 lui a5,0x3e
+80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
+80002364: 00c55613 srli a2,a0,0xc
+80002368: 40060e13 addi t3,a2,1024
+8000236c: 00001317 auipc t1,0x1
+80002370: c9430313 addi t1,t1,-876 # 80003000 <begin_signature>
+80002374: 002e1793 slli a5,t3,0x2
+80002378: 00f307b3 add a5,t1,a5
+8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
+80002380: 00d57533 and a0,a0,a3
+80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
+80002388: 00003797 auipc a5,0x3
+8000238c: 06c78793 addi a5,a5,108 # 800053f4 <freelist_head>
+80002390: 0007a583 lw a1,0(a5)
+80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
+80002398: 0045a783 lw a5,4(a1)
+8000239c: 00003717 auipc a4,0x3
+800023a0: 05470713 addi a4,a4,84 # 800053f0 <freelist_tail>
+800023a4: 00072703 lw a4,0(a4)
+800023a8: 00003697 auipc a3,0x3
+800023ac: 04f6a623 sw a5,76(a3) # 800053f4 <freelist_head>
+800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
+800023b4: 0005a703 lw a4,0(a1)
+800023b8: 002e1793 slli a5,t3,0x2
+800023bc: 00f307b3 add a5,t1,a5
+800023c0: 00c75713 srli a4,a4,0xc
+800023c4: 00a71713 slli a4,a4,0xa
+800023c8: 0df76e93 ori t4,a4,223
+800023cc: 01f76693 ori a3,a4,31
+800023d0: 01d7a023 sw t4,0(a5)
+800023d4: 12050073 sfence.vma a0
+800023d8: 00003717 auipc a4,0x3
+800023dc: e2070713 addi a4,a4,-480 # 800051f8 <user_mapping>
+800023e0: 00361793 slli a5,a2,0x3
+800023e4: 00f707b3 add a5,a4,a5
+800023e8: 0007a703 lw a4,0(a5)
+800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
+800023f0: 0005a703 lw a4,0(a1)
+800023f4: 00e7a023 sw a4,0(a5)
+800023f8: 0045a703 lw a4,4(a1)
+800023fc: 00e7a223 sw a4,4(a5)
+80002400: 000407b7 lui a5,0x40
+80002404: 1007a5f3 csrrs a1,sstatus,a5
+80002408: ffc007b7 lui a5,0xffc00
+8000240c: 00f507b3 add a5,a0,a5
+80002410: 00001637 lui a2,0x1
+80002414: 00050713 mv a4,a0
+80002418: 00c78633 add a2,a5,a2
+8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbfac08>
+80002420: 0047ae83 lw t4,4(a5)
+80002424: 0087a883 lw a7,8(a5)
+80002428: 00c7a803 lw a6,12(a5)
+8000242c: 01e72023 sw t5,0(a4)
+80002430: 01d72223 sw t4,4(a4)
+80002434: 01172423 sw a7,8(a4)
+80002438: 01072623 sw a6,12(a4)
+8000243c: 01078793 addi a5,a5,16
+80002440: 01070713 addi a4,a4,16
+80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
+80002448: 10059073 csrw sstatus,a1
+8000244c: 002e1e13 slli t3,t3,0x2
+80002450: 01c30333 add t1,t1,t3
+80002454: 00d32023 sw a3,0(t1)
+80002458: 12050073 sfence.vma a0
+8000245c: 0000100f fence.i
+80002460: 00c12083 lw ra,12(sp)
+80002464: 00812403 lw s0,8(sp)
+80002468: 00412483 lw s1,4(sp)
+8000246c: 01010113 addi sp,sp,16
+80002470: 00008067 ret
+80002474: 04077693 andi a3,a4,64
+80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
+8000247c: 04076713 ori a4,a4,64
+80002480: 00e7a023 sw a4,0(a5)
+80002484: 12050073 sfence.vma a0
+80002488: 00c12083 lw ra,12(sp)
+8000248c: 00812403 lw s0,8(sp)
+80002490: 00412483 lw s1,4(sp)
+80002494: 01010113 addi sp,sp,16
+80002498: 00008067 ret
+8000249c: 08077693 andi a3,a4,128
+800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
+800024a4: 00f00693 li a3,15
+800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
+800024ac: 08076713 ori a4,a4,128
+800024b0: 00e7a023 sw a4,0(a5)
+800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
+800024b8: 00003797 auipc a5,0x3
+800024bc: f207ac23 sw zero,-200(a5) # 800053f0 <freelist_tail>
+800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
+800024c4: 04100513 li a0,65
+800024c8: 00001597 auipc a1,0x1
+800024cc: 81058593 addi a1,a1,-2032 # 80002cd8 <pass+0xc>
+800024d0: fffff697 auipc a3,0xfffff
+800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
+800024d8: fffff617 auipc a2,0xfffff
+800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
+800024e0: 0006a703 lw a4,0(a3)
+800024e4: 0046a783 lw a5,4(a3)
+800024e8: 00050313 mv t1,a0
+800024ec: 00158593 addi a1,a1,1
+800024f0: 00f76733 or a4,a4,a5
+800024f4: 010103b7 lui t2,0x1010
+800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
+800024fc: 00000793 li a5,0
+80002500: 00f62023 sw a5,0(a2)
+80002504: 00000813 li a6,0
+80002508: 01062223 sw a6,4(a2)
+8000250c: 0006a703 lw a4,0(a3)
+80002510: 0046a783 lw a5,4(a3)
+80002514: 00f76733 or a4,a4,a5
+80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
+8000251c: 0005c503 lbu a0,0(a1)
+80002520: 0066a023 sw t1,0(a3)
+80002524: 0076a223 sw t2,4(a3)
+80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
+8000252c: 00300513 li a0,3
+80002530: cf9ff0ef jal ra,80002228 <terminate>
+80002534: 04100513 li a0,65
+80002538: 00001597 auipc a1,0x1
+8000253c: 82c58593 addi a1,a1,-2004 # 80002d64 <pass+0x98>
+80002540: fffff697 auipc a3,0xfffff
+80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
+80002548: fffff617 auipc a2,0xfffff
+8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
+80002550: 0006a703 lw a4,0(a3)
+80002554: 0046a783 lw a5,4(a3)
+80002558: 00050f13 mv t5,a0
+8000255c: 00158593 addi a1,a1,1
+80002560: 00f76733 or a4,a4,a5
+80002564: 01010fb7 lui t6,0x1010
+80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
+8000256c: 00000793 li a5,0
+80002570: 00f62023 sw a5,0(a2)
+80002574: 00000813 li a6,0
+80002578: 01062223 sw a6,4(a2)
+8000257c: 0006a703 lw a4,0(a3)
+80002580: 0046a783 lw a5,4(a3)
+80002584: 00f76733 or a4,a4,a5
+80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
+8000258c: 0005c503 lbu a0,0(a1)
+80002590: 01e6a023 sw t5,0(a3)
+80002594: 01f6a223 sw t6,4(a3)
+80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
+8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
+800025a0: 04100513 li a0,65
+800025a4: 00000597 auipc a1,0x0
+800025a8: 7d858593 addi a1,a1,2008 # 80002d7c <pass+0xb0>
+800025ac: fffff697 auipc a3,0xfffff
+800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
+800025b4: fffff617 auipc a2,0xfffff
+800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
+800025bc: 0006a703 lw a4,0(a3)
+800025c0: 0046a783 lw a5,4(a3)
+800025c4: 00050813 mv a6,a0
+800025c8: 00158593 addi a1,a1,1
+800025cc: 00f76733 or a4,a4,a5
+800025d0: 010108b7 lui a7,0x1010
+800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
+800025d8: 00000713 li a4,0
+800025dc: 00e62023 sw a4,0(a2)
+800025e0: 00000793 li a5,0
+800025e4: 00f62223 sw a5,4(a2)
+800025e8: 0006a703 lw a4,0(a3)
+800025ec: 0046a783 lw a5,4(a3)
+800025f0: 00f76733 or a4,a4,a5
+800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
+800025f8: 0005c503 lbu a0,0(a1)
+800025fc: 0106a023 sw a6,0(a3)
+80002600: 0116a223 sw a7,4(a3)
+80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
+80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
+8000260c: 04100793 li a5,65
+80002610: 00000597 auipc a1,0x0
+80002614: 70c58593 addi a1,a1,1804 # 80002d1c <pass+0x50>
+80002618: fffff697 auipc a3,0xfffff
+8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
+80002620: fffff617 auipc a2,0xfffff
+80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
+80002628: 0006a803 lw a6,0(a3)
+8000262c: 0046a883 lw a7,4(a3)
+80002630: 00078413 mv s0,a5
+80002634: 00158593 addi a1,a1,1
+80002638: 01186833 or a6,a6,a7
+8000263c: 010104b7 lui s1,0x1010
+80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
+80002644: 00000793 li a5,0
+80002648: 00f62023 sw a5,0(a2)
+8000264c: 00000813 li a6,0
+80002650: 01062223 sw a6,4(a2)
+80002654: 0006a703 lw a4,0(a3)
+80002658: 0046a783 lw a5,4(a3)
+8000265c: 00f76733 or a4,a4,a5
+80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
+80002664: 0005c783 lbu a5,0(a1)
+80002668: 0086a023 sw s0,0(a3)
+8000266c: 0096a223 sw s1,4(a3)
+80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
+80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
+
+80002678 <handle_trap>:
+80002678: 08c52583 lw a1,140(a0)
+8000267c: fb010113 addi sp,sp,-80
+80002680: 03412c23 sw s4,56(sp)
+80002684: 04112623 sw ra,76(sp)
+80002688: 04812423 sw s0,72(sp)
+8000268c: 04912223 sw s1,68(sp)
+80002690: 05212023 sw s2,64(sp)
+80002694: 03312e23 sw s3,60(sp)
+80002698: 03512a23 sw s5,52(sp)
+8000269c: 03612823 sw s6,48(sp)
+800026a0: 03712623 sw s7,44(sp)
+800026a4: 03812423 sw s8,40(sp)
+800026a8: 03912223 sw s9,36(sp)
+800026ac: 03a12023 sw s10,32(sp)
+800026b0: 01b12e23 sw s11,28(sp)
+800026b4: 00800793 li a5,8
+800026b8: 00050a13 mv s4,a0
+800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
+800026c0: 00200793 li a5,2
+800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
+800026c8: ff458793 addi a5,a1,-12
+800026cc: 00100713 li a4,1
+800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
+800026d4: 00f00793 li a5,15
+800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
+800026dc: 088a2503 lw a0,136(s4)
+800026e0: c65ff0ef jal ra,80002344 <handle_fault>
+800026e4: 04812403 lw s0,72(sp)
+800026e8: 04c12083 lw ra,76(sp)
+800026ec: 04412483 lw s1,68(sp)
+800026f0: 04012903 lw s2,64(sp)
+800026f4: 03c12983 lw s3,60(sp)
+800026f8: 03412a83 lw s5,52(sp)
+800026fc: 03012b03 lw s6,48(sp)
+80002700: 02c12b83 lw s7,44(sp)
+80002704: 02812c03 lw s8,40(sp)
+80002708: 02412c83 lw s9,36(sp)
+8000270c: 02012d03 lw s10,32(sp)
+80002710: 01c12d83 lw s11,28(sp)
+80002714: 000a0513 mv a0,s4
+80002718: 03812a03 lw s4,56(sp)
+8000271c: 05010113 addi sp,sp,80
+80002720: 91dfd06f j 8000003c <pop_tf>
+80002724: 08452703 lw a4,132(a0)
+80002728: 00377793 andi a5,a4,3
+8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
+80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
+80002734: 00301073 fssr zero
+80002738: 00072703 lw a4,0(a4)
+8000273c: 0007a783 lw a5,0(a5)
+80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
+80002744: 04100513 li a0,65
+80002748: 00000597 auipc a1,0x0
+8000274c: 6fc58593 addi a1,a1,1788 # 80002e44 <pass+0x178>
+80002750: fffff697 auipc a3,0xfffff
+80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
+80002758: fffff617 auipc a2,0xfffff
+8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
+80002760: 0006a703 lw a4,0(a3)
+80002764: 0046a783 lw a5,4(a3)
+80002768: 00050813 mv a6,a0
+8000276c: 00158593 addi a1,a1,1
+80002770: 00f76733 or a4,a4,a5
+80002774: 010108b7 lui a7,0x1010
+80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
+8000277c: 00000713 li a4,0
+80002780: 00e62023 sw a4,0(a2)
+80002784: 00000793 li a5,0
+80002788: 00f62223 sw a5,4(a2)
+8000278c: 0006a703 lw a4,0(a3)
+80002790: 0046a783 lw a5,4(a3)
+80002794: 00f76733 or a4,a4,a5
+80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
+8000279c: 0005c503 lbu a0,0(a1)
+800027a0: 0106a023 sw a6,0(a3)
+800027a4: 0116a223 sw a7,4(a3)
+800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
+800027ac: 00300513 li a0,3
+800027b0: a79ff0ef jal ra,80002228 <terminate>
+800027b4: 00100513 li a0,1
+800027b8: a71ff0ef jal ra,80002228 <terminate>
+800027bc: 00000597 auipc a1,0x0
+800027c0: 66458593 addi a1,a1,1636 # 80002e20 <pass+0x154>
+800027c4: 04100613 li a2,65
+800027c8: fffff697 auipc a3,0xfffff
+800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
+800027d0: fffff517 auipc a0,0xfffff
+800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
+800027d8: 0006a703 lw a4,0(a3)
+800027dc: 0046a783 lw a5,4(a3)
+800027e0: 00060e13 mv t3,a2
+800027e4: 00158593 addi a1,a1,1
+800027e8: 00f76733 or a4,a4,a5
+800027ec: 01010eb7 lui t4,0x1010
+800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
+800027f4: 00000793 li a5,0
+800027f8: 00f52023 sw a5,0(a0)
+800027fc: 00000813 li a6,0
+80002800: 01052223 sw a6,4(a0)
+80002804: 0006a703 lw a4,0(a3)
+80002808: 0046a783 lw a5,4(a3)
+8000280c: 00f76733 or a4,a4,a5
+80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
+80002814: 0005c603 lbu a2,0(a1)
+80002818: 01c6a023 sw t3,0(a3)
+8000281c: 01d6a223 sw t4,4(a3)
+80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
+80002824: f89ff06f j 800027ac <handle_trap+0x134>
+80002828: 02852783 lw a5,40(a0)
+8000282c: 00001a37 lui s4,0x1
+80002830: 00003b17 auipc s6,0x3
+80002834: 9c8b0b13 addi s6,s6,-1592 # 800051f8 <user_mapping>
+80002838: 00f12223 sw a5,4(sp)
+8000283c: 00000d17 auipc s10,0x0
+80002840: 7c4d0d13 addi s10,s10,1988 # 80003000 <begin_signature>
+80002844: 00040cb7 lui s9,0x40
+80002848: ffc00c37 lui s8,0xffc00
+8000284c: 0003fab7 lui s5,0x3f
+80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
+80002854: 00f72223 sw a5,4(a4)
+80002858: 00003717 auipc a4,0x3
+8000285c: b8f72c23 sw a5,-1128(a4) # 800053f0 <freelist_tail>
+80002860: 000017b7 lui a5,0x1
+80002864: 00fa0a33 add s4,s4,a5
+80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
+8000286c: 00ca5713 srli a4,s4,0xc
+80002870: 00371b93 slli s7,a4,0x3
+80002874: 017b0633 add a2,s6,s7
+80002878: 00062603 lw a2,0(a2)
+8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
+80002880: 40070713 addi a4,a4,1024
+80002884: 00271713 slli a4,a4,0x2
+80002888: 00ed0733 add a4,s10,a4
+8000288c: 00072703 lw a4,0(a4)
+80002890: 04077613 andi a2,a4,64
+80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
+80002898: 00e12623 sw a4,12(sp)
+8000289c: 100cadf3 csrrs s11,sstatus,s9
+800028a0: 018a0833 add a6,s4,s8
+800028a4: 00001637 lui a2,0x1
+800028a8: 00080593 mv a1,a6
+800028ac: 000a0513 mv a0,s4
+800028b0: 01012423 sw a6,8(sp)
+800028b4: 855ff0ef jal ra,80002108 <memcmp>
+800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
+800028bc: 00c12703 lw a4,12(sp)
+800028c0: 00812803 lw a6,8(sp)
+800028c4: 08077713 andi a4,a4,128
+800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
+800028cc: 00001637 lui a2,0x1
+800028d0: 00080593 mv a1,a6
+800028d4: 000a0513 mv a0,s4
+800028d8: f28ff0ef jal ra,80002000 <memcpy>
+800028dc: 017b07b3 add a5,s6,s7
+800028e0: 100d9073 csrw sstatus,s11
+800028e4: 00003717 auipc a4,0x3
+800028e8: b0c70713 addi a4,a4,-1268 # 800053f0 <freelist_tail>
+800028ec: 00072703 lw a4,0(a4)
+800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
+800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
+800028f8: 00003717 auipc a4,0x3
+800028fc: aef72c23 sw a5,-1288(a4) # 800053f0 <freelist_tail>
+80002900: 00003717 auipc a4,0x3
+80002904: aef72a23 sw a5,-1292(a4) # 800053f4 <freelist_head>
+80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
+8000290c: 04100593 li a1,65
+80002910: 00000617 auipc a2,0x0
+80002914: 56060613 addi a2,a2,1376 # 80002e70 <pass+0x1a4>
+80002918: ffffe697 auipc a3,0xffffe
+8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
+80002920: ffffe517 auipc a0,0xffffe
+80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
+80002928: 0006a703 lw a4,0(a3)
+8000292c: 0046a783 lw a5,4(a3)
+80002930: 00058313 mv t1,a1
+80002934: 00160613 addi a2,a2,1
+80002938: 00f76733 or a4,a4,a5
+8000293c: 010103b7 lui t2,0x1010
+80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
+80002944: 00000793 li a5,0
+80002948: 00f52023 sw a5,0(a0)
+8000294c: 00000813 li a6,0
+80002950: 01052223 sw a6,4(a0)
+80002954: 0006a703 lw a4,0(a3)
+80002958: 0046a783 lw a5,4(a3)
+8000295c: 00f76733 or a4,a4,a5
+80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
+80002964: 00064583 lbu a1,0(a2)
+80002968: 0066a023 sw t1,0(a3)
+8000296c: 0076a223 sw t2,4(a3)
+80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
+80002974: e39ff06f j 800027ac <handle_trap+0x134>
+80002978: 04100793 li a5,65
+8000297c: 00000617 auipc a2,0x0
+80002980: 47060613 addi a2,a2,1136 # 80002dec <pass+0x120>
+80002984: ffffe697 auipc a3,0xffffe
+80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
+8000298c: ffffe597 auipc a1,0xffffe
+80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
+80002994: 00078413 mv s0,a5
+80002998: 00160613 addi a2,a2,1
+8000299c: 010104b7 lui s1,0x1010
+800029a0: 0006a703 lw a4,0(a3)
+800029a4: 0046a783 lw a5,4(a3)
+800029a8: 00f76733 or a4,a4,a5
+800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
+800029b0: 00000793 li a5,0
+800029b4: 00000813 li a6,0
+800029b8: 00f5a023 sw a5,0(a1)
+800029bc: 0105a223 sw a6,4(a1)
+800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
+800029c4: 04100793 li a5,65
+800029c8: 00000617 auipc a2,0x0
+800029cc: 3f060613 addi a2,a2,1008 # 80002db8 <pass+0xec>
+800029d0: ffffe697 auipc a3,0xffffe
+800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
+800029d8: ffffe597 auipc a1,0xffffe
+800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
+800029e0: 00078913 mv s2,a5
+800029e4: 00160613 addi a2,a2,1
+800029e8: 010109b7 lui s3,0x1010
+800029ec: 0006a703 lw a4,0(a3)
+800029f0: 0046a783 lw a5,4(a3)
+800029f4: 00f76733 or a4,a4,a5
+800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
+800029fc: 00000793 li a5,0
+80002a00: 00000813 li a6,0
+80002a04: 00f5a023 sw a5,0(a1)
+80002a08: 0105a223 sw a6,4(a1)
+80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
+80002a10: 00412503 lw a0,4(sp)
+80002a14: 815ff0ef jal ra,80002228 <terminate>
+80002a18: 00064783 lbu a5,0(a2)
+80002a1c: 0086a023 sw s0,0(a3)
+80002a20: 0096a223 sw s1,4(a3)
+80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
+80002a28: d85ff06f j 800027ac <handle_trap+0x134>
+80002a2c: 00064783 lbu a5,0(a2)
+80002a30: 0126a023 sw s2,0(a3)
+80002a34: 0136a223 sw s3,4(a3)
+80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
+80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
+
+80002a40 <vm_boot>:
+80002a40: f14027f3 csrr a5,mhartid
+80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
+80002a48: 00001797 auipc a5,0x1
+80002a4c: 5b878793 addi a5,a5,1464 # 80004000 <begin_signature+0x1000>
+80002a50: 00c7d793 srli a5,a5,0xc
+80002a54: 00a79793 slli a5,a5,0xa
+80002a58: 0017e793 ori a5,a5,1
+80002a5c: 00000697 auipc a3,0x0
+80002a60: 5af6a223 sw a5,1444(a3) # 80003000 <begin_signature>
+80002a64: 200007b7 lui a5,0x20000
+80002a68: 00000717 auipc a4,0x0
+80002a6c: 59870713 addi a4,a4,1432 # 80003000 <begin_signature>
+80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
+80002a74: f6010113 addi sp,sp,-160
+80002a78: 00001697 auipc a3,0x1
+80002a7c: 58f6a223 sw a5,1412(a3) # 80003ffc <begin_signature+0xffc>
+80002a80: 00c75793 srli a5,a4,0xc
+80002a84: 80000737 lui a4,0x80000
+80002a88: 08112e23 sw ra,156(sp)
+80002a8c: 08812c23 sw s0,152(sp)
+80002a90: 00e7e7b3 or a5,a5,a4
+80002a94: 18079073 csrw satp,a5
+80002a98: 01f00793 li a5,31
+80002a9c: fff00713 li a4,-1
+80002aa0: 00000297 auipc t0,0x0
+80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
+80002aa8: 305292f3 csrrw t0,mtvec,t0
+80002aac: 3b071073 csrw pmpaddr0,a4
+80002ab0: 3a079073 csrw pmpcfg0,a5
+80002ab4: 7fbfd797 auipc a5,0x7fbfd
+80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbfaccc>
+80002abc: 10579073 csrw stvec,a5
+80002ac0: 340027f3 csrr a5,mscratch
+80002ac4: 7fc00837 lui a6,0x7fc00
+80002ac8: 010787b3 add a5,a5,a6
+80002acc: 14079073 csrw sscratch,a5
+80002ad0: 0000b7b7 lui a5,0xb
+80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
+80002ad8: 30279073 csrw medeleg,a5
+80002adc: 0001e7b7 lui a5,0x1e
+80002ae0: 30079073 csrw mstatus,a5
+80002ae4: 30405073 csrwi mie,0
+80002ae8: 7fc02797 auipc a5,0x7fc02
+80002aec: 51878793 addi a5,a5,1304 # ffc05000 <_end+0x7fbffc08>
+80002af0: 00003717 auipc a4,0x3
+80002af4: 90f72223 sw a5,-1788(a4) # 800053f4 <freelist_head>
+80002af8: 7fc02797 auipc a5,0x7fc02
+80002afc: 6f878793 addi a5,a5,1784 # ffc051f0 <_end+0x7fbffdf8>
+80002b00: 00003717 auipc a4,0x3
+80002b04: 8ef72823 sw a5,-1808(a4) # 800053f0 <freelist_tail>
+80002b08: 000808b7 lui a7,0x80
+80002b0c: 00002717 auipc a4,0x2
+80002b10: 4f470713 addi a4,a4,1268 # 80005000 <freelist_nodes>
+80002b14: 00002317 auipc t1,0x2
+80002b18: 6e430313 addi t1,t1,1764 # 800051f8 <user_mapping>
+80002b1c: 02000793 li a5,32
+80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
+80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
+80002b28: 0017d613 srli a2,a5,0x1
+80002b2c: 011786b3 add a3,a5,a7
+80002b30: 00f647b3 xor a5,a2,a5
+80002b34: 010705b3 add a1,a4,a6
+80002b38: 00c69693 slli a3,a3,0xc
+80002b3c: 00579793 slli a5,a5,0x5
+80002b40: 00d72023 sw a3,0(a4)
+80002b44: 00b72223 sw a1,4(a4)
+80002b48: 0207f793 andi a5,a5,32
+80002b4c: 00870713 addi a4,a4,8
+80002b50: 00f667b3 or a5,a2,a5
+80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
+80002b58: 00050413 mv s0,a0
+80002b5c: 09000613 li a2,144
+80002b60: 00000593 li a1,0
+80002b64: 00010513 mv a0,sp
+80002b68: 00002797 auipc a5,0x2
+80002b6c: 6807a623 sw zero,1676(a5) # 800051f4 <freelist_nodes+0x1f4>
+80002b70: cecff0ef jal ra,8000205c <memset>
+80002b74: 800007b7 lui a5,0x80000
+80002b78: 00f40433 add s0,s0,a5
+80002b7c: 00010513 mv a0,sp
+80002b80: 08812223 sw s0,132(sp)
+80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
+80002b88: 09c12083 lw ra,156(sp)
+80002b8c: 09812403 lw s0,152(sp)
+80002b90: 0a010113 addi sp,sp,160
+80002b94: 00008067 ret
+80002b98: 081b87b7 lui a5,0x81b8
+80002b9c: 00080637 lui a2,0x80
+80002ba0: a6f78793 addi a5,a5,-1425 # 81b7a6f <_start-0x77e48591>
+80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
+80002ba8: 800005b7 lui a1,0x80000
+80002bac: 00c7f733 and a4,a5,a2
+80002bb0: 0017f693 andi a3,a5,1
+80002bb4: 00b70733 add a4,a4,a1
+80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
+80002bbc: 0007202f amoadd.w zero,zero,(a4)
+80002bc0: 0017d793 srli a5,a5,0x1
+80002bc4: 00c7f733 and a4,a5,a2
+80002bc8: 0017f693 andi a3,a5,1
+80002bcc: 00b70733 add a4,a4,a1
+80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
+80002bd4: 00072003 lw zero,0(a4)
+80002bd8: 0017d793 srli a5,a5,0x1
+80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
+
+80002be0 <userstart>:
+80002be0: 01400093 li ra,20
+80002be4: 00600113 li sp,6
+80002be8: 0220ff33 remu t5,ra,sp
+80002bec: 00200e93 li t4,2
+80002bf0: 00200193 li gp,2
+80002bf4: 0ddf1463 bne t5,t4,80002cbc <fail>
+
+80002bf8 <test_3>:
+80002bf8: fec00093 li ra,-20
+80002bfc: 00600113 li sp,6
+80002c00: 0220ff33 remu t5,ra,sp
+80002c04: 00200e93 li t4,2
+80002c08: 00300193 li gp,3
+80002c0c: 0bdf1863 bne t5,t4,80002cbc <fail>
+
+80002c10 <test_4>:
+80002c10: 01400093 li ra,20
+80002c14: ffa00113 li sp,-6
+80002c18: 0220ff33 remu t5,ra,sp
+80002c1c: 01400e93 li t4,20
+80002c20: 00400193 li gp,4
+80002c24: 09df1c63 bne t5,t4,80002cbc <fail>
+
+80002c28 <test_5>:
+80002c28: fec00093 li ra,-20
+80002c2c: ffa00113 li sp,-6
+80002c30: 0220ff33 remu t5,ra,sp
+80002c34: fec00e93 li t4,-20
+80002c38: 00500193 li gp,5
+80002c3c: 09df1063 bne t5,t4,80002cbc <fail>
+
+80002c40 <test_6>:
+80002c40: 800000b7 lui ra,0x80000
+80002c44: 00100113 li sp,1
+80002c48: 0220ff33 remu t5,ra,sp
+80002c4c: 00000e93 li t4,0
+80002c50: 00600193 li gp,6
+80002c54: 07df1463 bne t5,t4,80002cbc <fail>
+
+80002c58 <test_7>:
+80002c58: 800000b7 lui ra,0x80000
+80002c5c: fff00113 li sp,-1
+80002c60: 0220ff33 remu t5,ra,sp
+80002c64: 80000eb7 lui t4,0x80000
+80002c68: 00700193 li gp,7
+80002c6c: 05df1863 bne t5,t4,80002cbc <fail>
+
+80002c70 <test_8>:
+80002c70: 800000b7 lui ra,0x80000
+80002c74: 00000113 li sp,0
+80002c78: 0220ff33 remu t5,ra,sp
+80002c7c: 80000eb7 lui t4,0x80000
+80002c80: 00800193 li gp,8
+80002c84: 03df1c63 bne t5,t4,80002cbc <fail>
+
+80002c88 <test_9>:
+80002c88: 00100093 li ra,1
+80002c8c: 00000113 li sp,0
+80002c90: 0220ff33 remu t5,ra,sp
+80002c94: 00100e93 li t4,1
+80002c98: 00900193 li gp,9
+80002c9c: 03df1063 bne t5,t4,80002cbc <fail>
+
+80002ca0 <test_10>:
+80002ca0: 00000093 li ra,0
+80002ca4: 00000113 li sp,0
+80002ca8: 0220ff33 remu t5,ra,sp
+80002cac: 00000e93 li t4,0
+80002cb0: 00a00193 li gp,10
+80002cb4: 01df1463 bne t5,t4,80002cbc <fail>
+80002cb8: 00301a63 bne zero,gp,80002ccc <pass>
+
+80002cbc <fail>:
+80002cbc: 00119513 slli a0,gp,0x1
+80002cc0: 00050063 beqz a0,80002cc0 <fail+0x4>
+80002cc4: 00156513 ori a0,a0,1
+80002cc8: 00000073 ecall
+
+80002ccc <pass>:
+80002ccc: 00100513 li a0,1
+80002cd0: 00000073 ecall
+80002cd4: c0001073 unimp
diff --git a/test/riscv-tests/rv32um-v-remu.elf b/test/riscv-tests/rv32um-v-remu.elf
new file mode 100644
index 0000000..d1bf499
--- /dev/null
+++ b/test/riscv-tests/rv32um-v-remu.elf
Binary files differ
diff --git a/test/riscv-tests/rv64ua-p-lrsc.elf b/test/riscv-tests/rv64ua-p-lrsc.elf
index 0fb5b44..0fb5b44 100755..100644
--- a/test/riscv-tests/rv64ua-p-lrsc.elf
+++ b/test/riscv-tests/rv64ua-p-lrsc.elf
Binary files differ
diff --git a/test/riscv-tests/rv64ua-v-lrsc.elf b/test/riscv-tests/rv64ua-v-lrsc.elf
index 3f49c87..3f49c87 100755..100644
--- a/test/riscv-tests/rv64ua-v-lrsc.elf
+++ b/test/riscv-tests/rv64ua-v-lrsc.elf
Binary files differ