aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xtest/run_tests.sh89
-rw-r--r--test/tests/.gitignore2
-rw-r--r--test/tests/README27
-rw-r--r--test/tests/disabled/rv64mi-p-access.elfbin0 -> 9296 bytes
-rw-r--r--test/tests/disabled/rv64mi-p-sbreak.dump130
-rw-r--r--test/tests/disabled/rv64mi-p-sbreak.elfbin0 -> 9328 bytes
-rw-r--r--test/tests/disabled/rv64si-p-sbreak.dump128
-rw-r--r--test/tests/disabled/rv64si-p-sbreak.elfbin0 -> 9328 bytes
-rw-r--r--test/tests/disabled/rv64ua-p-lrsc.dump178
-rw-r--r--test/tests/disabled/rv64ua-p-lrsc.elfbin0 -> 14632 bytes
-rw-r--r--test/tests/disabled/rv64ua-v-lrsc.elfbin0 -> 19816 bytes
-rw-r--r--test/tests/rv64mi-p-access.dump142
-rw-r--r--test/tests/rv64mi-p-breakpoint.dump207
-rw-r--r--test/tests/rv64mi-p-breakpoint.elfbin0 -> 13488 bytes
-rw-r--r--test/tests/rv64mi-p-csr.dump287
-rw-r--r--test/tests/rv64mi-p-csr.elfbin0 -> 13936 bytes
-rw-r--r--test/tests/rv64mi-p-illegal.dump383
-rw-r--r--test/tests/rv64mi-p-illegal.elfbin0 -> 9648 bytes
-rw-r--r--test/tests/rv64mi-p-ma_addr.dump563
-rw-r--r--test/tests/rv64mi-p-ma_addr.elfbin0 -> 13712 bytes
-rw-r--r--test/tests/rv64mi-p-ma_fetch.dump219
-rw-r--r--test/tests/rv64mi-p-ma_fetch.elfbin0 -> 9296 bytes
-rw-r--r--test/tests/rv64mi-p-mcsr.dump126
-rw-r--r--test/tests/rv64mi-p-mcsr.elfbin0 -> 9320 bytes
-rw-r--r--test/tests/rv64mi-p-scall.dump147
-rw-r--r--test/tests/rv64mi-p-scall.elfbin0 -> 9328 bytes
-rw-r--r--test/tests/rv64si-p-csr.dump222
-rw-r--r--test/tests/rv64si-p-csr.elfbin0 -> 13840 bytes
-rw-r--r--test/tests/rv64si-p-dirty.dump202
-rw-r--r--test/tests/rv64si-p-dirty.elfbin0 -> 13552 bytes
-rw-r--r--test/tests/rv64si-p-ma_fetch.dump175
-rw-r--r--test/tests/rv64si-p-ma_fetch.elfbin0 -> 9296 bytes
-rw-r--r--test/tests/rv64si-p-scall.dump121
-rw-r--r--test/tests/rv64si-p-scall.elfbin0 -> 9328 bytes
-rw-r--r--test/tests/rv64si-p-wfi.dump128
-rw-r--r--test/tests/rv64si-p-wfi.elfbin0 -> 9256 bytes
-rw-r--r--test/tests/rv64ua-p-amoadd_d.dump153
-rw-r--r--test/tests/rv64ua-p-amoadd_d.elfbin0 -> 9504 bytes
-rw-r--r--test/tests/rv64ua-p-amoadd_w.dump124
-rw-r--r--test/tests/rv64ua-p-amoadd_w.elfbin0 -> 9504 bytes
-rw-r--r--test/tests/rv64ua-p-amoand_d.dump124
-rw-r--r--test/tests/rv64ua-p-amoand_d.elfbin0 -> 9504 bytes
-rw-r--r--test/tests/rv64ua-p-amoand_w.dump125
-rw-r--r--test/tests/rv64ua-p-amoand_w.elfbin0 -> 9504 bytes
-rw-r--r--test/tests/rv64ua-p-amomax_d.dump125
-rw-r--r--test/tests/rv64ua-p-amomax_d.elfbin0 -> 9504 bytes
-rw-r--r--test/tests/rv64ua-p-amomax_w.dump125
-rw-r--r--test/tests/rv64ua-p-amomax_w.elfbin0 -> 9504 bytes
-rw-r--r--test/tests/rv64ua-p-amomaxu_d.dump125
-rw-r--r--test/tests/rv64ua-p-amomaxu_d.elfbin0 -> 9504 bytes
-rw-r--r--test/tests/rv64ua-p-amomaxu_w.dump125
-rw-r--r--test/tests/rv64ua-p-amomaxu_w.elfbin0 -> 9504 bytes
-rw-r--r--test/tests/rv64ua-p-amomin_d.dump125
-rw-r--r--test/tests/rv64ua-p-amomin_d.elfbin0 -> 9504 bytes
-rw-r--r--test/tests/rv64ua-p-amomin_w.dump125
-rw-r--r--test/tests/rv64ua-p-amomin_w.elfbin0 -> 9504 bytes
-rw-r--r--test/tests/rv64ua-p-amominu_d.dump125
-rw-r--r--test/tests/rv64ua-p-amominu_d.elfbin0 -> 9504 bytes
-rw-r--r--test/tests/rv64ua-p-amominu_w.dump125
-rw-r--r--test/tests/rv64ua-p-amominu_w.elfbin0 -> 9504 bytes
-rw-r--r--test/tests/rv64ua-p-amoor_d.dump126
-rw-r--r--test/tests/rv64ua-p-amoor_d.elfbin0 -> 9504 bytes
-rw-r--r--test/tests/rv64ua-p-amoor_w.dump126
-rw-r--r--test/tests/rv64ua-p-amoor_w.elfbin0 -> 9504 bytes
-rw-r--r--test/tests/rv64ua-p-amoswap_d.dump124
-rw-r--r--test/tests/rv64ua-p-amoswap_d.elfbin0 -> 9504 bytes
-rw-r--r--test/tests/rv64ua-p-amoswap_w.dump125
-rw-r--r--test/tests/rv64ua-p-amoswap_w.elfbin0 -> 9504 bytes
-rw-r--r--test/tests/rv64ua-p-amoxor_d.dump155
-rw-r--r--test/tests/rv64ua-p-amoxor_d.elfbin0 -> 9504 bytes
-rw-r--r--test/tests/rv64ua-p-amoxor_w.dump153
-rw-r--r--test/tests/rv64ua-p-amoxor_w.elfbin0 -> 9504 bytes
-rw-r--r--test/tests/rv64ua-p-lrsc.dump691
-rwxr-xr-xtest/tests/rv64ua-p-lrsc.elfbin0 -> 14632 bytes
-rw-r--r--test/tests/rv64ua-v-amoadd_d.dump874
-rw-r--r--test/tests/rv64ua-v-amoadd_d.elfbin0 -> 17912 bytes
-rw-r--r--test/tests/rv64ua-v-amoadd_w.dump871
-rw-r--r--test/tests/rv64ua-v-amoadd_w.elfbin0 -> 17896 bytes
-rw-r--r--test/tests/rv64ua-v-amoand_d.dump871
-rw-r--r--test/tests/rv64ua-v-amoand_d.elfbin0 -> 17896 bytes
-rw-r--r--test/tests/rv64ua-v-amoand_w.dump870
-rw-r--r--test/tests/rv64ua-v-amoand_w.elfbin0 -> 17896 bytes
-rw-r--r--test/tests/rv64ua-v-amomax_d.dump870
-rw-r--r--test/tests/rv64ua-v-amomax_d.elfbin0 -> 17896 bytes
-rw-r--r--test/tests/rv64ua-v-amomax_w.dump870
-rw-r--r--test/tests/rv64ua-v-amomax_w.elfbin0 -> 17896 bytes
-rw-r--r--test/tests/rv64ua-v-amomaxu_d.dump870
-rw-r--r--test/tests/rv64ua-v-amomaxu_d.elfbin0 -> 17896 bytes
-rw-r--r--test/tests/rv64ua-v-amomaxu_w.dump870
-rw-r--r--test/tests/rv64ua-v-amomaxu_w.elfbin0 -> 17896 bytes
-rw-r--r--test/tests/rv64ua-v-amomin_d.dump870
-rw-r--r--test/tests/rv64ua-v-amomin_d.elfbin0 -> 17896 bytes
-rw-r--r--test/tests/rv64ua-v-amomin_w.dump870
-rw-r--r--test/tests/rv64ua-v-amomin_w.elfbin0 -> 17896 bytes
-rw-r--r--test/tests/rv64ua-v-amominu_d.dump870
-rw-r--r--test/tests/rv64ua-v-amominu_d.elfbin0 -> 17896 bytes
-rw-r--r--test/tests/rv64ua-v-amominu_w.dump870
-rw-r--r--test/tests/rv64ua-v-amominu_w.elfbin0 -> 17896 bytes
-rw-r--r--test/tests/rv64ua-v-amoor_d.dump869
-rw-r--r--test/tests/rv64ua-v-amoor_d.elfbin0 -> 17888 bytes
-rw-r--r--test/tests/rv64ua-v-amoor_w.dump869
-rw-r--r--test/tests/rv64ua-v-amoor_w.elfbin0 -> 17888 bytes
-rw-r--r--test/tests/rv64ua-v-amoswap_d.dump871
-rw-r--r--test/tests/rv64ua-v-amoswap_d.elfbin0 -> 17896 bytes
-rw-r--r--test/tests/rv64ua-v-amoswap_w.dump870
-rw-r--r--test/tests/rv64ua-v-amoswap_w.elfbin0 -> 17896 bytes
-rw-r--r--test/tests/rv64ua-v-amoxor_d.dump872
-rw-r--r--test/tests/rv64ua-v-amoxor_d.elfbin0 -> 17904 bytes
-rw-r--r--test/tests/rv64ua-v-amoxor_w.dump874
-rw-r--r--test/tests/rv64ua-v-amoxor_w.elfbin0 -> 17912 bytes
-rw-r--r--test/tests/rv64ua-v-lrsc.dump1426
-rwxr-xr-xtest/tests/rv64ua-v-lrsc.elfbin0 -> 19816 bytes
-rw-r--r--test/tests/rv64uc-p-rvc.dump4878
-rw-r--r--test/tests/rv64uc-p-rvc.elfbin0 -> 18392 bytes
-rw-r--r--test/tests/rv64uc-v-rvc.dump6518
-rw-r--r--test/tests/rv64uc-v-rvc.elfbin0 -> 32128 bytes
-rw-r--r--test/tests/rv64ui-p-add.dump506
-rw-r--r--test/tests/rv64ui-p-add.elfbin0 -> 10432 bytes
-rw-r--r--test/tests/rv64ui-p-addi.dump312
-rw-r--r--test/tests/rv64ui-p-addi.elfbin0 -> 10016 bytes
-rw-r--r--test/tests/rv64ui-p-addiw.dump315
-rw-r--r--test/tests/rv64ui-p-addiw.elfbin0 -> 10016 bytes
-rw-r--r--test/tests/rv64ui-p-addw.dump479
-rw-r--r--test/tests/rv64ui-p-addw.elfbin0 -> 10432 bytes
-rw-r--r--test/tests/rv64ui-p-and.dump491
-rw-r--r--test/tests/rv64ui-p-and.elfbin0 -> 10080 bytes
-rw-r--r--test/tests/rv64ui-p-andi.dump265
-rw-r--r--test/tests/rv64ui-p-andi.elfbin0 -> 9664 bytes
-rw-r--r--test/tests/rv64ui-p-auipc.dump125
-rw-r--r--test/tests/rv64ui-p-auipc.elfbin0 -> 9320 bytes
-rw-r--r--test/tests/rv64ui-p-beq.dump325
-rw-r--r--test/tests/rv64ui-p-beq.elfbin0 -> 9888 bytes
-rw-r--r--test/tests/rv64ui-p-bge.dump339
-rw-r--r--test/tests/rv64ui-p-bge.elfbin0 -> 9984 bytes
-rw-r--r--test/tests/rv64ui-p-bgeu.dump413
-rw-r--r--test/tests/rv64ui-p-bgeu.elfbin0 -> 9984 bytes
-rw-r--r--test/tests/rv64ui-p-blt.dump325
-rw-r--r--test/tests/rv64ui-p-blt.elfbin0 -> 9888 bytes
-rw-r--r--test/tests/rv64ui-p-bltu.dump371
-rw-r--r--test/tests/rv64ui-p-bltu.elfbin0 -> 9888 bytes
-rw-r--r--test/tests/rv64ui-p-bne.dump324
-rw-r--r--test/tests/rv64ui-p-bne.elfbin0 -> 9888 bytes
-rw-r--r--test/tests/rv64ui-p-fence_i.dump189
-rw-r--r--test/tests/rv64ui-p-fence_i.elfbin0 -> 13480 bytes
-rw-r--r--test/tests/rv64ui-p-jal.dump128
-rw-r--r--test/tests/rv64ui-p-jal.elfbin0 -> 9384 bytes
-rw-r--r--test/tests/rv64ui-p-jalr.dump166
-rw-r--r--test/tests/rv64ui-p-jalr.elfbin0 -> 9480 bytes
-rw-r--r--test/tests/rv64ui-p-lb.dump306
-rw-r--r--test/tests/rv64ui-p-lb.elfbin0 -> 14104 bytes
-rw-r--r--test/tests/rv64ui-p-lbu.dump306
-rw-r--r--test/tests/rv64ui-p-lbu.elfbin0 -> 14104 bytes
-rw-r--r--test/tests/rv64ui-p-ld.dump406
-rw-r--r--test/tests/rv64ui-p-ld.elfbin0 -> 14120 bytes
-rw-r--r--test/tests/rv64ui-p-lh.dump327
-rw-r--r--test/tests/rv64ui-p-lh.elfbin0 -> 14104 bytes
-rw-r--r--test/tests/rv64ui-p-lhu.dump322
-rw-r--r--test/tests/rv64ui-p-lhu.elfbin0 -> 14104 bytes
-rw-r--r--test/tests/rv64ui-p-lui.dump127
-rw-r--r--test/tests/rv64ui-p-lui.elfbin0 -> 9408 bytes
-rw-r--r--test/tests/rv64ui-p-lw.dump319
-rw-r--r--test/tests/rv64ui-p-lw.elfbin0 -> 14104 bytes
-rw-r--r--test/tests/rv64ui-p-lwu.dump333
-rw-r--r--test/tests/rv64ui-p-lwu.elfbin0 -> 14104 bytes
-rw-r--r--test/tests/rv64ui-p-or.dump522
-rw-r--r--test/tests/rv64ui-p-or.elfbin0 -> 10080 bytes
-rw-r--r--test/tests/rv64ui-p-ori.dump268
-rw-r--r--test/tests/rv64ui-p-ori.elfbin0 -> 9664 bytes
-rw-r--r--test/tests/rv64ui-p-sb.dump447
-rw-r--r--test/tests/rv64ui-p-sb.elfbin0 -> 14416 bytes
-rw-r--r--test/tests/rv64ui-p-sd.dump594
-rw-r--r--test/tests/rv64ui-p-sd.elfbin0 -> 14480 bytes
-rw-r--r--test/tests/rv64ui-p-sh.dump480
-rw-r--r--test/tests/rv64ui-p-sh.elfbin0 -> 14432 bytes
-rw-r--r--test/tests/rv64ui-p-simple.dump110
-rw-r--r--test/tests/rv64ui-p-simple.elfbin0 -> 9200 bytes
-rw-r--r--test/tests/rv64ui-p-sll.dump580
-rw-r--r--test/tests/rv64ui-p-sll.elfbin0 -> 10688 bytes
-rw-r--r--test/tests/rv64ui-p-slli.dump357
-rw-r--r--test/tests/rv64ui-p-slli.elfbin0 -> 10112 bytes
-rw-r--r--test/tests/rv64ui-p-slliw.dump316
-rw-r--r--test/tests/rv64ui-p-slliw.elfbin0 -> 10016 bytes
-rw-r--r--test/tests/rv64ui-p-sllw.dump550
-rw-r--r--test/tests/rv64ui-p-sllw.elfbin0 -> 10592 bytes
-rw-r--r--test/tests/rv64ui-p-slt.dump485
-rw-r--r--test/tests/rv64ui-p-slt.elfbin0 -> 10432 bytes
-rw-r--r--test/tests/rv64ui-p-slti.dump320
-rw-r--r--test/tests/rv64ui-p-slti.elfbin0 -> 10016 bytes
-rw-r--r--test/tests/rv64ui-p-sltiu.dump320
-rw-r--r--test/tests/rv64ui-p-sltiu.elfbin0 -> 10016 bytes
-rw-r--r--test/tests/rv64ui-p-sltu.dump500
-rw-r--r--test/tests/rv64ui-p-sltu.elfbin0 -> 10432 bytes
-rw-r--r--test/tests/rv64ui-p-sra.dump538
-rw-r--r--test/tests/rv64ui-p-sra.elfbin0 -> 10592 bytes
-rw-r--r--test/tests/rv64ui-p-srai.dump333
-rw-r--r--test/tests/rv64ui-p-srai.elfbin0 -> 10016 bytes
-rw-r--r--test/tests/rv64ui-p-sraiw.dump359
-rw-r--r--test/tests/rv64ui-p-sraiw.elfbin0 -> 10080 bytes
-rw-r--r--test/tests/rv64ui-p-sraw.dump538
-rw-r--r--test/tests/rv64ui-p-sraw.elfbin0 -> 10592 bytes
-rw-r--r--test/tests/rv64ui-p-srl.dump575
-rw-r--r--test/tests/rv64ui-p-srl.elfbin0 -> 10592 bytes
-rw-r--r--test/tests/rv64ui-p-srli.dump350
-rw-r--r--test/tests/rv64ui-p-srli.elfbin0 -> 10016 bytes
-rw-r--r--test/tests/rv64ui-p-srliw.dump309
-rw-r--r--test/tests/rv64ui-p-srliw.elfbin0 -> 10016 bytes
-rw-r--r--test/tests/rv64ui-p-srlw.dump544
-rw-r--r--test/tests/rv64ui-p-srlw.elfbin0 -> 10592 bytes
-rw-r--r--test/tests/rv64ui-p-sub.dump481
-rw-r--r--test/tests/rv64ui-p-sub.elfbin0 -> 10400 bytes
-rw-r--r--test/tests/rv64ui-p-subw.dump485
-rw-r--r--test/tests/rv64ui-p-subw.elfbin0 -> 10400 bytes
-rw-r--r--test/tests/rv64ui-p-sw.dump476
-rw-r--r--test/tests/rv64ui-p-sw.elfbin0 -> 14448 bytes
-rw-r--r--test/tests/rv64ui-p-xor.dump527
-rw-r--r--test/tests/rv64ui-p-xor.elfbin0 -> 10080 bytes
-rw-r--r--test/tests/rv64ui-p-xori.dump238
-rw-r--r--test/tests/rv64ui-p-xori.elfbin0 -> 9664 bytes
-rw-r--r--test/tests/rv64ui-v-add.dump1229
-rw-r--r--test/tests/rv64ui-v-add.elfbin0 -> 20080 bytes
-rw-r--r--test/tests/rv64ui-v-addi.dump1051
-rw-r--r--test/tests/rv64ui-v-addi.elfbin0 -> 19056 bytes
-rw-r--r--test/tests/rv64ui-v-addiw.dump1048
-rw-r--r--test/tests/rv64ui-v-addiw.elfbin0 -> 19048 bytes
-rw-r--r--test/tests/rv64ui-v-addw.dump1224
-rw-r--r--test/tests/rv64ui-v-addw.elfbin0 -> 20064 bytes
-rw-r--r--test/tests/rv64ui-v-and.dump1232
-rw-r--r--test/tests/rv64ui-v-and.elfbin0 -> 19832 bytes
-rw-r--r--test/tests/rv64ui-v-andi.dump990
-rw-r--r--test/tests/rv64ui-v-andi.elfbin0 -> 18552 bytes
-rw-r--r--test/tests/rv64ui-v-auipc.dump859
-rw-r--r--test/tests/rv64ui-v-auipc.elfbin0 -> 17768 bytes
-rw-r--r--test/tests/rv64ui-v-beq.dump1054
-rw-r--r--test/tests/rv64ui-v-beq.elfbin0 -> 18976 bytes
-rw-r--r--test/tests/rv64ui-v-bge.dump1084
-rw-r--r--test/tests/rv64ui-v-bge.elfbin0 -> 19168 bytes
-rw-r--r--test/tests/rv64ui-v-bgeu.dump1138
-rw-r--r--test/tests/rv64ui-v-bgeu.elfbin0 -> 19384 bytes
-rw-r--r--test/tests/rv64ui-v-blt.dump1054
-rw-r--r--test/tests/rv64ui-v-blt.elfbin0 -> 18976 bytes
-rw-r--r--test/tests/rv64ui-v-bltu.dump1104
-rw-r--r--test/tests/rv64ui-v-bltu.elfbin0 -> 19176 bytes
-rw-r--r--test/tests/rv64ui-v-bne.dump1055
-rw-r--r--test/tests/rv64ui-v-bne.elfbin0 -> 18976 bytes
-rw-r--r--test/tests/rv64ui-v-fence_i.dump959
-rw-r--r--test/tests/rv64ui-v-fence_i.elfbin0 -> 18656 bytes
-rw-r--r--test/tests/rv64ui-v-jal.dump867
-rw-r--r--test/tests/rv64ui-v-jal.elfbin0 -> 17856 bytes
-rw-r--r--test/tests/rv64ui-v-jalr.dump905
-rw-r--r--test/tests/rv64ui-v-jalr.elfbin0 -> 18072 bytes
-rw-r--r--test/tests/rv64ui-v-lb.dump1037
-rw-r--r--test/tests/rv64ui-v-lb.elfbin0 -> 19280 bytes
-rw-r--r--test/tests/rv64ui-v-lbu.dump1037
-rw-r--r--test/tests/rv64ui-v-lbu.elfbin0 -> 19280 bytes
-rw-r--r--test/tests/rv64ui-v-ld.dump1141
-rw-r--r--test/tests/rv64ui-v-ld.elfbin0 -> 23408 bytes
-rw-r--r--test/tests/rv64ui-v-lh.dump1043
-rw-r--r--test/tests/rv64ui-v-lh.elfbin0 -> 19288 bytes
-rw-r--r--test/tests/rv64ui-v-lhu.dump1048
-rw-r--r--test/tests/rv64ui-v-lhu.elfbin0 -> 19288 bytes
-rw-r--r--test/tests/rv64ui-v-lui.dump872
-rw-r--r--test/tests/rv64ui-v-lui.elfbin0 -> 17896 bytes
-rw-r--r--test/tests/rv64ui-v-lw.dump1054
-rw-r--r--test/tests/rv64ui-v-lw.elfbin0 -> 19296 bytes
-rw-r--r--test/tests/rv64ui-v-lwu.dump1072
-rw-r--r--test/tests/rv64ui-v-lwu.elfbin0 -> 19296 bytes
-rw-r--r--test/tests/rv64ui-v-or.dump1265
-rw-r--r--test/tests/rv64ui-v-or.elfbin0 -> 19960 bytes
-rw-r--r--test/tests/rv64ui-v-ori.dump987
-rw-r--r--test/tests/rv64ui-v-ori.elfbin0 -> 18536 bytes
-rw-r--r--test/tests/rv64ui-v-sb.dump1169
-rw-r--r--test/tests/rv64ui-v-sb.elfbin0 -> 23688 bytes
-rw-r--r--test/tests/rv64ui-v-sd.dump1325
-rw-r--r--test/tests/rv64ui-v-sd.elfbin0 -> 23760 bytes
-rw-r--r--test/tests/rv64ui-v-sh.dump1200
-rw-r--r--test/tests/rv64ui-v-sh.elfbin0 -> 23696 bytes
-rw-r--r--test/tests/rv64ui-v-simple.dump832
-rw-r--r--test/tests/rv64ui-v-simple.elfbin0 -> 17528 bytes
-rw-r--r--test/tests/rv64ui-v-sll.dump1315
-rw-r--r--test/tests/rv64ui-v-sll.elfbin0 -> 20616 bytes
-rw-r--r--test/tests/rv64ui-v-slli.dump1082
-rw-r--r--test/tests/rv64ui-v-slli.elfbin0 -> 19256 bytes
-rw-r--r--test/tests/rv64ui-v-slliw.dump1047
-rw-r--r--test/tests/rv64ui-v-slliw.elfbin0 -> 19040 bytes
-rw-r--r--test/tests/rv64ui-v-sllw.dump1269
-rw-r--r--test/tests/rv64ui-v-sllw.elfbin0 -> 20360 bytes
-rw-r--r--test/tests/rv64ui-v-slt.dump1218
-rw-r--r--test/tests/rv64ui-v-slt.elfbin0 -> 20040 bytes
-rw-r--r--test/tests/rv64ui-v-slti.dump1043
-rw-r--r--test/tests/rv64ui-v-slti.elfbin0 -> 19024 bytes
-rw-r--r--test/tests/rv64ui-v-sltiu.dump1043
-rw-r--r--test/tests/rv64ui-v-sltiu.elfbin0 -> 19024 bytes
-rw-r--r--test/tests/rv64ui-v-sltu.dump1235
-rw-r--r--test/tests/rv64ui-v-sltu.elfbin0 -> 20104 bytes
-rw-r--r--test/tests/rv64ui-v-sra.dump1281
-rw-r--r--test/tests/rv64ui-v-sra.elfbin0 -> 20408 bytes
-rw-r--r--test/tests/rv64ui-v-srai.dump1062
-rw-r--r--test/tests/rv64ui-v-srai.elfbin0 -> 19104 bytes
-rw-r--r--test/tests/rv64ui-v-sraiw.dump1076
-rw-r--r--test/tests/rv64ui-v-sraiw.elfbin0 -> 19208 bytes
-rw-r--r--test/tests/rv64ui-v-sraw.dump1281
-rw-r--r--test/tests/rv64ui-v-sraw.elfbin0 -> 20408 bytes
-rw-r--r--test/tests/rv64ui-v-srl.dump1308
-rw-r--r--test/tests/rv64ui-v-srl.elfbin0 -> 20520 bytes
-rw-r--r--test/tests/rv64ui-v-srli.dump1077
-rw-r--r--test/tests/rv64ui-v-srli.elfbin0 -> 19160 bytes
-rw-r--r--test/tests/rv64ui-v-srliw.dump1054
-rw-r--r--test/tests/rv64ui-v-srliw.elfbin0 -> 19072 bytes
-rw-r--r--test/tests/rv64ui-v-srlw.dump1275
-rw-r--r--test/tests/rv64ui-v-srlw.elfbin0 -> 20384 bytes
-rw-r--r--test/tests/rv64ui-v-sub.dump1218
-rw-r--r--test/tests/rv64ui-v-sub.elfbin0 -> 20016 bytes
-rw-r--r--test/tests/rv64ui-v-subw.dump1214
-rw-r--r--test/tests/rv64ui-v-subw.elfbin0 -> 20000 bytes
-rw-r--r--test/tests/rv64ui-v-sw.dump1203
-rw-r--r--test/tests/rv64ui-v-sw.elfbin0 -> 23720 bytes
-rw-r--r--test/tests/rv64ui-v-xor.dump1260
-rw-r--r--test/tests/rv64ui-v-xor.elfbin0 -> 19944 bytes
-rw-r--r--test/tests/rv64ui-v-xori.dump985
-rw-r--r--test/tests/rv64ui-v-xori.elfbin0 -> 18528 bytes
-rw-r--r--test/tests/rv64um-p-div.dump195
-rw-r--r--test/tests/rv64um-p-div.elfbin0 -> 9536 bytes
-rw-r--r--test/tests/rv64um-p-divu.dump189
-rw-r--r--test/tests/rv64um-p-divu.elfbin0 -> 9536 bytes
-rw-r--r--test/tests/rv64um-p-divuw.dump197
-rw-r--r--test/tests/rv64um-p-divuw.elfbin0 -> 9536 bytes
-rw-r--r--test/tests/rv64um-p-divw.dump168
-rw-r--r--test/tests/rv64um-p-divw.elfbin0 -> 9536 bytes
-rw-r--r--test/tests/rv64um-p-mul.dump474
-rw-r--r--test/tests/rv64um-p-mul.elfbin0 -> 10272 bytes
-rw-r--r--test/tests/rv64um-p-mulh.dump456
-rw-r--r--test/tests/rv64um-p-mulh.elfbin0 -> 10144 bytes
-rw-r--r--test/tests/rv64um-p-mulhsu.dump456
-rw-r--r--test/tests/rv64um-p-mulhsu.elfbin0 -> 10144 bytes
-rw-r--r--test/tests/rv64um-p-mulhu.dump492
-rw-r--r--test/tests/rv64um-p-mulhu.elfbin0 -> 10208 bytes
-rw-r--r--test/tests/rv64um-p-mulw.dump399
-rw-r--r--test/tests/rv64um-p-mulw.elfbin0 -> 10144 bytes
-rw-r--r--test/tests/rv64um-p-rem.dump196
-rw-r--r--test/tests/rv64um-p-rem.elfbin0 -> 9536 bytes
-rw-r--r--test/tests/rv64um-p-remu.dump195
-rw-r--r--test/tests/rv64um-p-remu.elfbin0 -> 9536 bytes
-rw-r--r--test/tests/rv64um-p-remuw.dump168
-rw-r--r--test/tests/rv64um-p-remuw.elfbin0 -> 9536 bytes
-rw-r--r--test/tests/rv64um-p-remw.dump196
-rw-r--r--test/tests/rv64um-p-remw.elfbin0 -> 9568 bytes
-rw-r--r--test/tests/rv64um-v-div.dump916
-rw-r--r--test/tests/rv64um-v-div.elfbin0 -> 18160 bytes
-rw-r--r--test/tests/rv64um-v-divu.dump922
-rw-r--r--test/tests/rv64um-v-divu.elfbin0 -> 18184 bytes
-rw-r--r--test/tests/rv64um-v-divuw.dump914
-rw-r--r--test/tests/rv64um-v-divuw.elfbin0 -> 18152 bytes
-rw-r--r--test/tests/rv64um-v-divw.dump911
-rw-r--r--test/tests/rv64um-v-divw.elfbin0 -> 18136 bytes
-rw-r--r--test/tests/rv64um-v-mul.dump1209
-rw-r--r--test/tests/rv64um-v-mul.elfbin0 -> 19880 bytes
-rw-r--r--test/tests/rv64um-v-mulh.dump1179
-rw-r--r--test/tests/rv64um-v-mulh.elfbin0 -> 19664 bytes
-rw-r--r--test/tests/rv64um-v-mulhsu.dump1179
-rw-r--r--test/tests/rv64um-v-mulhsu.elfbin0 -> 19664 bytes
-rw-r--r--test/tests/rv64um-v-mulhu.dump1215
-rw-r--r--test/tests/rv64um-v-mulhu.elfbin0 -> 19856 bytes
-rw-r--r--test/tests/rv64um-v-mulw.dump1140
-rw-r--r--test/tests/rv64um-v-mulw.elfbin0 -> 19512 bytes
-rw-r--r--test/tests/rv64um-v-rem.dump915
-rw-r--r--test/tests/rv64um-v-rem.elfbin0 -> 18152 bytes
-rw-r--r--test/tests/rv64um-v-remu.dump916
-rw-r--r--test/tests/rv64um-v-remu.elfbin0 -> 18160 bytes
-rw-r--r--test/tests/rv64um-v-remuw.dump911
-rw-r--r--test/tests/rv64um-v-remuw.elfbin0 -> 18136 bytes
-rw-r--r--test/tests/rv64um-v-remw.dump919
-rw-r--r--test/tests/rv64um-v-remw.elfbin0 -> 18192 bytes
372 files changed, 127624 insertions, 0 deletions
diff --git a/test/run_tests.sh b/test/run_tests.sh
new file mode 100755
index 0000000..aa6245b
--- /dev/null
+++ b/test/run_tests.sh
@@ -0,0 +1,89 @@
+#!/usr/bin/env bash
+set -e
+
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+cd $DIR
+RISCVDIR="$DIR/.."
+
+RED='\033[0;91m'
+GREEN='\033[0;92m'
+YELLOW='\033[0;93m'
+NC='\033[0m'
+
+rm -f $DIR/tests.xml
+
+pass=0
+fail=0
+XML=""
+
+function green {
+ (( pass += 1 ))
+ printf "$1: ${GREEN}$2${NC}\n"
+ XML+=" <testcase name=\"$1\"/>\n"
+}
+
+function yellow {
+ (( fail += 1 ))
+ printf "$1: ${YELLOW}$2${NC}\n"
+ XML+=" <testcase name=\"$1\">\n <error message=\"$2\">$2</error>\n </testcase>\n"
+}
+
+function red {
+ (( fail += 1 ))
+ printf "$1: ${RED}$2${NC}\n"
+ XML+=" <testcase name=\"$1\">\n <error message=\"$2\">$2</error>\n </testcase>\n"
+}
+
+function finish_suite {
+ printf "$1: Passed ${pass} out of $(( pass + fail ))\n\n"
+ XML=" <testsuite name=\"$1\" tests=\"$(( pass + fail ))\" failures=\"${fail}\" timestamp=\"$(date)\">\n$XML </testsuite>\n"
+ printf "$XML" >> $DIR/tests.xml
+ XML=""
+ pass=0
+ fail=0
+}
+
+SAILLIBDIR="$DIR/../../lib/"
+
+printf "<testsuites>\n" >> $DIR/tests.xml
+
+cd $RISCVDIR
+
+printf "Building RISCV specification...\n"
+
+if make platform ;
+then
+ green "Building RISCV specification" "ok"
+else
+ red "Building RISCV specification" "fail"
+fi
+
+for test in $DIR/tests/*.elf; do
+ if $RISCVDIR/platform "$test" >"${test/.elf/.out}" 2>&1 && grep -q SUCCESS "${test/.elf/.out}"
+ then
+ green "$(basename $test)" "ok"
+ else
+ red "$(basename $test)" "fail"
+ fi
+done
+
+if make riscv_sim;
+then
+ green "Building RISCV specification to C" "ok"
+else
+ red "Building RISCV specification to C" "fail"
+fi
+
+for test in $DIR/tests/*.elf; do
+ if timeout 5 $RISCVDIR/riscv_sim $test > ${test%.elf}.cout 2>&1 && grep -q SUCCESS ${test%.elf}.cout
+ then
+ green "$(basename $test)" "ok"
+ else
+ red "$(basename $test)" "fail"
+ fi
+done
+
+finish_suite "RISCV tests"
+
+printf "</testsuites>\n" >> $DIR/tests.xml
+
diff --git a/test/tests/.gitignore b/test/tests/.gitignore
new file mode 100644
index 0000000..72a5e44
--- /dev/null
+++ b/test/tests/.gitignore
@@ -0,0 +1,2 @@
+*.out
+*.cout
diff --git a/test/tests/README b/test/tests/README
new file mode 100644
index 0000000..cb1e510
--- /dev/null
+++ b/test/tests/README
@@ -0,0 +1,27 @@
+Copyright (c) 2012-2015, The Regents of the University of California (Regents).
+All Rights Reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+3. Neither the name of the Regents nor the
+ names of its contributors may be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+IN NO EVENT SHALL REGENTS BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT,
+SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING
+OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF REGENTS HAS
+BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+REGENTS SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE SOFTWARE AND ACCOMPANYING DOCUMENTATION, IF ANY, PROVIDED
+HEREUNDER IS PROVIDED "AS IS". REGENTS HAS NO OBLIGATION TO PROVIDE
+MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+
+The tests in this directory were built from
+https://github.com/riscv/riscv-tools commit 84e9d5bf515908d15215cd8ee5b5beb6f7519491 .
diff --git a/test/tests/disabled/rv64mi-p-access.elf b/test/tests/disabled/rv64mi-p-access.elf
new file mode 100644
index 0000000..9bd96fb
--- /dev/null
+++ b/test/tests/disabled/rv64mi-p-access.elf
Binary files differ
diff --git a/test/tests/disabled/rv64mi-p-sbreak.dump b/test/tests/disabled/rv64mi-p-sbreak.dump
new file mode 100644
index 0000000..8e03511
--- /dev/null
+++ b/test/tests/disabled/rv64mi-p-sbreak.dump
@@ -0,0 +1,130 @@
+
+rv64mi-p-sbreak: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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: 8005051b addiw a0,a0,-2048
+ 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
+
+000000008000010c <do_break>:
+ 8000010c: 00100073 ebreak
+ 80000110: 0080006f j 80000118 <fail>
+ 80000114: 00301c63 bne zero,gp,8000012c <pass>
+
+0000000080000118 <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
+
+000000008000012c <pass>:
+ 8000012c: 0ff0000f fence
+ 80000130: 00100193 li gp,1
+ 80000134: 00000073 ecall
+
+0000000080000138 <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/tests/disabled/rv64mi-p-sbreak.elf b/test/tests/disabled/rv64mi-p-sbreak.elf
new file mode 100644
index 0000000..0319c2d
--- /dev/null
+++ b/test/tests/disabled/rv64mi-p-sbreak.elf
Binary files differ
diff --git a/test/tests/disabled/rv64si-p-sbreak.dump b/test/tests/disabled/rv64si-p-sbreak.dump
new file mode 100644
index 0000000..e981c54
--- /dev/null
+++ b/test/tests/disabled/rv64si-p-sbreak.dump
@@ -0,0 +1,128 @@
+
+rv64si-p-sbreak: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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: 8005051b addiw a0,a0,-2048
+ 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
+
+0000000080000114 <do_break>:
+ 80000114: 00100073 ebreak
+ 80000118: 0080006f j 80000120 <fail>
+ 8000011c: 00301c63 bne zero,gp,80000134 <pass>
+
+0000000080000120 <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
+
+0000000080000134 <pass>:
+ 80000134: 0ff0000f fence
+ 80000138: 00100193 li gp,1
+ 8000013c: 00000073 ecall
+
+0000000080000140 <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/tests/disabled/rv64si-p-sbreak.elf b/test/tests/disabled/rv64si-p-sbreak.elf
new file mode 100644
index 0000000..2d6c2e7
--- /dev/null
+++ b/test/tests/disabled/rv64si-p-sbreak.elf
Binary files differ
diff --git a/test/tests/disabled/rv64ua-p-lrsc.dump b/test/tests/disabled/rv64ua-p-lrsc.dump
new file mode 100644
index 0000000..4aec511
--- /dev/null
+++ b/test/tests/disabled/rv64ua-p-lrsc.dump
@@ -0,0 +1,178 @@
+
+rv64ua-p-lrsc: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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>
+
+000000008000011c <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>
+
+0000000080000134 <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
+
+0000000080000198 <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>
+
+00000000800001c0 <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
+
+00000000800001d4 <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:
+
+0000000080002000 <begin_signature>:
+ 80002000: 0000 unimp
+ 80002002: 0000 unimp
+
+0000000080002004 <barrier>:
+ 80002004: 0000 unimp
+ 80002006: 0000 unimp
+
+0000000080002008 <foo>:
+ 80002008: 0000 unimp
+ 8000200a: 0000 unimp
+ 8000200c: 0000 unimp
+ 8000200e: 0000 unimp
diff --git a/test/tests/disabled/rv64ua-p-lrsc.elf b/test/tests/disabled/rv64ua-p-lrsc.elf
new file mode 100644
index 0000000..bff6664
--- /dev/null
+++ b/test/tests/disabled/rv64ua-p-lrsc.elf
Binary files differ
diff --git a/test/tests/disabled/rv64ua-v-lrsc.elf b/test/tests/disabled/rv64ua-v-lrsc.elf
new file mode 100644
index 0000000..10a2866
--- /dev/null
+++ b/test/tests/disabled/rv64ua-v-lrsc.elf
Binary files differ
diff --git a/test/tests/rv64mi-p-access.dump b/test/tests/rv64mi-p-access.dump
new file mode 100644
index 0000000..5b35e59
--- /dev/null
+++ b/test/tests/rv64mi-p-access.dump
@@ -0,0 +1,142 @@
+
+rv64mi-p-access: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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: 8005051b addiw a0,a0,-2048
+ 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: 00000397 auipc t2,0x0
+ 8000010c: 05038393 addi t2,t2,80 # 80000158 <fail>
+ 80000110: fff0029b addiw t0,zero,-1
+ 80000114: 03f29293 slli t0,t0,0x3f
+ 80000118: 0072c2b3 xor t0,t0,t2
+ 8000011c: 00200193 li gp,2
+ 80000120: 00100313 li t1,1
+ 80000124: 00000e17 auipc t3,0x0
+ 80000128: 010e0e13 addi t3,t3,16 # 80000134 <reset_vector+0xe8>
+ 8000012c: 00000393 li t2,0
+ 80000130: 000283e7 jalr t2,t0
+ 80000134: 00300193 li gp,3
+ 80000138: 00500313 li t1,5
+ 8000013c: 00000e17 auipc t3,0x0
+ 80000140: 014e0e13 addi t3,t3,20 # 80000150 <reset_vector+0x104>
+ 80000144: 000e0393 mv t2,t3
+ 80000148: 00028383 lb t2,0(t0)
+ 8000014c: 00c0006f j 80000158 <fail>
+ 80000150: 01c0006f j 8000016c <pass>
+ 80000154: 00301c63 bne zero,gp,8000016c <pass>
+
+0000000080000158 <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
+
+000000008000016c <pass>:
+ 8000016c: 0ff0000f fence
+ 80000170: 00100193 li gp,1
+ 80000174: 00000073 ecall
+
+0000000080000178 <mtvec_handler>:
+ 80000178: 00200513 li a0,2
+ 8000017c: 00a18863 beq gp,a0,8000018c <mtvec_handler+0x14>
+ 80000180: 00300513 li a0,3
+ 80000184: 00a18463 beq gp,a0,8000018c <mtvec_handler+0x14>
+ 80000188: fd1ff06f j 80000158 <fail>
+ 8000018c: fdc396e3 bne t2,t3,80000158 <fail>
+ 80000190: 342023f3 csrr t2,mcause
+ 80000194: fc6392e3 bne t2,t1,80000158 <fail>
+ 80000198: 341e1073 csrw mepc,t3
+ 8000019c: 30200073 mret
+ 800001a0: c0001073 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/tests/rv64mi-p-breakpoint.dump b/test/tests/rv64mi-p-breakpoint.dump
new file mode 100644
index 0000000..d882b10
--- /dev/null
+++ b/test/tests/rv64mi-p-breakpoint.dump
@@ -0,0 +1,207 @@
+
+rv64mi-p-breakpoint: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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: 8005051b addiw a0,a0,-2048
+ 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: 03c55513 srli a0,a0,0x3c
+ 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: 03c55513 srli a0,a0,0x3c
+ 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>
+
+0000000080000210 <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
+
+0000000080000224 <pass>:
+ 80000224: 0ff0000f fence
+ 80000228: 00100193 li gp,1
+ 8000022c: 00000073 ecall
+
+0000000080000230 <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:
+
+0000000080002000 <begin_signature>:
+ 80002000: 0000 unimp
+ 80002002: 0000 unimp
+
+0000000080002004 <data2>:
+ 80002004: 0000 unimp
+ 80002006: 0000 unimp
+ 80002008: 0000 unimp
+ 8000200a: 0000 unimp
+ 8000200c: 0000 unimp
+ 8000200e: 0000 unimp
diff --git a/test/tests/rv64mi-p-breakpoint.elf b/test/tests/rv64mi-p-breakpoint.elf
new file mode 100644
index 0000000..04af6b2
--- /dev/null
+++ b/test/tests/rv64mi-p-breakpoint.elf
Binary files differ
diff --git a/test/tests/rv64mi-p-csr.dump b/test/tests/rv64mi-p-csr.dump
new file mode 100644
index 0000000..e2ccda2
--- /dev/null
+++ b/test/tests/rv64mi-p-csr.dump
@@ -0,0 +1,287 @@
+
+rv64mi-p-csr: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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: 2a0f0f13 addi t5,t5,672 # 800002c0 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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: 8005051b addiw a0,a0,-2048
+ 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: 000022b7 lui t0,0x2
+ 8000010c: 8002829b addiw t0,t0,-2048
+ 80000110: 3002b073 csrc mstatus,t0
+ 80000114: 30002373 csrr t1,mstatus
+ 80000118: 0062f2b3 and t0,t0,t1
+ 8000011c: 02029463 bnez t0,80000144 <test_14>
+
+0000000080000120 <test_13>:
+ 80000120: 30002573 csrr a0,mstatus
+ 80000124: 0030059b addiw a1,zero,3
+ 80000128: 02059593 slli a1,a1,0x20
+ 8000012c: 00b57533 and a0,a0,a1
+ 80000130: 00100e9b addiw t4,zero,1
+ 80000134: 021e9e93 slli t4,t4,0x21
+ 80000138: 00d00193 li gp,13
+ 8000013c: 17d51263 bne a0,t4,800002a0 <fail>
+ 80000140: 0200006f j 80000160 <test_14+0x1c>
+
+0000000080000144 <test_14>:
+ 80000144: 30002573 csrr a0,mstatus
+ 80000148: 0030059b addiw a1,zero,3
+ 8000014c: 02059593 slli a1,a1,0x20
+ 80000150: 00b57533 and a0,a0,a1
+ 80000154: 00000e93 li t4,0
+ 80000158: 00e00193 li gp,14
+ 8000015c: 15d51263 bne a0,t4,800002a0 <fail>
+ 80000160: 3401d073 csrwi mscratch,3
+
+0000000080000164 <test_2>:
+ 80000164: 34002573 csrr a0,mscratch
+ 80000168: 00300e93 li t4,3
+ 8000016c: 00200193 li gp,2
+ 80000170: 13d51863 bne a0,t4,800002a0 <fail>
+
+0000000080000174 <test_3>:
+ 80000174: 3400f5f3 csrrci a1,mscratch,1
+ 80000178: 00300e93 li t4,3
+ 8000017c: 00300193 li gp,3
+ 80000180: 13d59063 bne a1,t4,800002a0 <fail>
+
+0000000080000184 <test_4>:
+ 80000184: 34026673 csrrsi a2,mscratch,4
+ 80000188: 00200e93 li t4,2
+ 8000018c: 00400193 li gp,4
+ 80000190: 11d61863 bne a2,t4,800002a0 <fail>
+
+0000000080000194 <test_5>:
+ 80000194: 340156f3 csrrwi a3,mscratch,2
+ 80000198: 00600e93 li t4,6
+ 8000019c: 00500193 li gp,5
+ 800001a0: 11d69063 bne a3,t4,800002a0 <fail>
+
+00000000800001a4 <test_6>:
+ 800001a4: 0bad2537 lui a0,0xbad2
+ 800001a8: dea5051b addiw a0,a0,-534
+ 800001ac: 340515f3 csrrw a1,mscratch,a0
+ 800001b0: 00200e93 li t4,2
+ 800001b4: 00600193 li gp,6
+ 800001b8: 0fd59463 bne a1,t4,800002a0 <fail>
+
+00000000800001bc <test_7>:
+ 800001bc: 00002537 lui a0,0x2
+ 800001c0: dea5051b addiw a0,a0,-534
+ 800001c4: 34053573 csrrc a0,mscratch,a0
+ 800001c8: 0bad2eb7 lui t4,0xbad2
+ 800001cc: deae8e9b addiw t4,t4,-534
+ 800001d0: 00700193 li gp,7
+ 800001d4: 0dd51663 bne a0,t4,800002a0 <fail>
+
+00000000800001d8 <test_8>:
+ 800001d8: 0000c537 lui a0,0xc
+ 800001dc: eef5051b addiw a0,a0,-273
+ 800001e0: 34052573 csrrs a0,mscratch,a0
+ 800001e4: 0bad0eb7 lui t4,0xbad0
+ 800001e8: 00800193 li gp,8
+ 800001ec: 0bd51a63 bne a0,t4,800002a0 <fail>
+
+00000000800001f0 <test_9>:
+ 800001f0: 34002573 csrr a0,mscratch
+ 800001f4: 0badceb7 lui t4,0xbadc
+ 800001f8: eefe8e9b addiw t4,t4,-273
+ 800001fc: 00900193 li gp,9
+ 80000200: 0bd51063 bne a0,t4,800002a0 <fail>
+ 80000204: 30102573 csrr a0,misa
+ 80000208: 02057513 andi a0,a0,32
+ 8000020c: 02050863 beqz a0,8000023c <test_10+0x14>
+ 80000210: 000065b7 lui a1,0x6
+ 80000214: 3005a073 csrs mstatus,a1
+ 80000218: f0000053 fmv.w.x ft0,zero
+ 8000021c: 3005b073 csrc mstatus,a1
+ 80000220: 00002597 auipc a1,0x2
+ 80000224: de058593 addi a1,a1,-544 # 80002000 <begin_signature>
+
+0000000080000228 <test_10>:
+ 80000228: 0005a027 fsw ft0,0(a1)
+ 8000022c: 0005a503 lw a0,0(a1)
+ 80000230: 00100e93 li t4,1
+ 80000234: 00a00193 li gp,10
+ 80000238: 07d51463 bne a0,t4,800002a0 <fail>
+ 8000023c: 30102573 csrr a0,misa
+ 80000240: 01455513 srli a0,a0,0x14
+ 80000244: 00157513 andi a0,a0,1
+ 80000248: 04050463 beqz a0,80000290 <finish>
+ 8000024c: 000022b7 lui t0,0x2
+ 80000250: 8002829b addiw t0,t0,-2048
+ 80000254: 3002b073 csrc mstatus,t0
+ 80000258: 00000297 auipc t0,0x0
+ 8000025c: 01028293 addi t0,t0,16 # 80000268 <test_11>
+ 80000260: 34129073 csrw mepc,t0
+ 80000264: 30200073 mret
+
+0000000080000268 <test_11>:
+ 80000268: 0ff00513 li a0,255
+ 8000026c: c0001573 csrrw a0,cycle,zero
+ 80000270: 0ff00e93 li t4,255
+ 80000274: 00b00193 li gp,11
+ 80000278: 03d51463 bne a0,t4,800002a0 <fail>
+
+000000008000027c <test_12>:
+ 8000027c: 0ff00513 li a0,255
+ 80000280: 30002573 csrr a0,mstatus
+ 80000284: 0ff00e93 li t4,255
+ 80000288: 00c00193 li gp,12
+ 8000028c: 01d51a63 bne a0,t4,800002a0 <fail>
+
+0000000080000290 <finish>:
+ 80000290: 0ff0000f fence
+ 80000294: 00100193 li gp,1
+ 80000298: 00000073 ecall
+ 8000029c: 00301c63 bne zero,gp,800002b4 <pass>
+
+00000000800002a0 <fail>:
+ 800002a0: 0ff0000f fence
+ 800002a4: 00018063 beqz gp,800002a4 <fail+0x4>
+ 800002a8: 00119193 slli gp,gp,0x1
+ 800002ac: 0011e193 ori gp,gp,1
+ 800002b0: 00000073 ecall
+
+00000000800002b4 <pass>:
+ 800002b4: 0ff0000f fence
+ 800002b8: 00100193 li gp,1
+ 800002bc: 00000073 ecall
+
+00000000800002c0 <mtvec_handler>:
+ 800002c0: 00900293 li t0,9
+ 800002c4: 0051e663 bltu gp,t0,800002d0 <mtvec_handler+0x10>
+ 800002c8: 00b00293 li t0,11
+ 800002cc: 0032fe63 bleu gp,t0,800002e8 <privileged>
+ 800002d0: 342022f3 csrr t0,mcause
+ 800002d4: 00800313 li t1,8
+ 800002d8: fc6294e3 bne t0,t1,800002a0 <fail>
+ 800002dc: 0ff0000f fence
+ 800002e0: 00100193 li gp,1
+ 800002e4: 00000073 ecall
+
+00000000800002e8 <privileged>:
+ 800002e8: 342022f3 csrr t0,mcause
+ 800002ec: 00200313 li t1,2
+ 800002f0: fa6298e3 bne t0,t1,800002a0 <fail>
+ 800002f4: 341022f3 csrr t0,mepc
+ 800002f8: 00428293 addi t0,t0,4
+ 800002fc: 34129073 csrw mepc,t0
+ 80000300: 30200073 mret
+ 80000304: c0001073 unimp
+ 80000308: 0000 unimp
+ 8000030a: 0000 unimp
+ 8000030c: 0000 unimp
+ 8000030e: 0000 unimp
+ 80000310: 0000 unimp
+ 80000312: 0000 unimp
+ 80000314: 0000 unimp
+ 80000316: 0000 unimp
+ 80000318: 0000 unimp
+ 8000031a: 0000 unimp
+ 8000031c: 0000 unimp
+ 8000031e: 0000 unimp
+ 80000320: 0000 unimp
+ 80000322: 0000 unimp
+ 80000324: 0000 unimp
+ 80000326: 0000 unimp
+ 80000328: 0000 unimp
+ 8000032a: 0000 unimp
+ 8000032c: 0000 unimp
+ 8000032e: 0000 unimp
+ 80000330: 0000 unimp
+ 80000332: 0000 unimp
+ 80000334: 0000 unimp
+ 80000336: 0000 unimp
+ 80000338: 0000 unimp
+ 8000033a: 0000 unimp
+ 8000033c: 0000 unimp
+ 8000033e: 0000 unimp
+ 80000340: 0000 unimp
+ 80000342: 0000 unimp
+
+Disassembly of section .data:
+
+0000000080002000 <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/tests/rv64mi-p-csr.elf b/test/tests/rv64mi-p-csr.elf
new file mode 100644
index 0000000..d7c74bc
--- /dev/null
+++ b/test/tests/rv64mi-p-csr.elf
Binary files differ
diff --git a/test/tests/rv64mi-p-illegal.dump b/test/tests/rv64mi-p-illegal.dump
new file mode 100644
index 0000000..56485c4
--- /dev/null
+++ b/test/tests/rv64mi-p-illegal.dump
@@ -0,0 +1,383 @@
+
+rv64mi-p-illegal: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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: 8005051b addiw a0,a0,-2048
+ 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
+
+000000008000010c <bad2>:
+ 8000010c: 0000 unimp
+ 8000010e: 0000 unimp
+ 80000110: 0f40006f j 80000204 <fail>
+ 80000114: 000022b7 lui t0,0x2
+ 80000118: 8002829b addiw t0,t0,-2048
+ 8000011c: 3002b073 csrc mstatus,t0
+ 80000120: 00001337 lui t1,0x1
+ 80000124: 8003031b addiw t1,t1,-2048
+ 80000128: 30032073 csrs mstatus,t1
+ 8000012c: 300023f3 csrr t2,mstatus
+ 80000130: 0053f3b3 and t2,t2,t0
+ 80000134: 0e731263 bne t1,t2,80000218 <pass>
+
+0000000080000138 <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>
+
+0000000080000160 <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: 8002829b addiw t0,t0,-2048
+ 8000017c: 3002b073 csrc mstatus,t0
+ 80000180: 00001337 lui t1,0x1
+ 80000184: 8003031b addiw t1,t1,-2048
+ 80000188: 30032073 csrs mstatus,t1
+ 8000018c: 30200073 mret
+ 80000190: 10500073 wfi
+
+0000000080000194 <bad3>:
+ 80000194: 0000 unimp
+ 80000196: 0000 unimp
+ 80000198: 06c0006f j 80000204 <fail>
+
+000000008000019c <bad4>:
+ 8000019c: 10500073 wfi
+ 800001a0: 0640006f j 80000204 <fail>
+ 800001a4: 12000073 sfence.vma
+ 800001a8: 180022f3 csrr t0,satp
+
+00000000800001ac <bad5>:
+ 800001ac: 0000 unimp
+ 800001ae: 0000 unimp
+ 800001b0: 0540006f j 80000204 <fail>
+
+00000000800001b4 <bad6>:
+ 800001b4: 12000073 sfence.vma
+ 800001b8: 04c0006f j 80000204 <fail>
+
+00000000800001bc <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
+
+00000000800001e4 <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
+
+00000000800001f8 <bad9>:
+ 800001f8: 10200073 sret
+ 800001fc: 0080006f j 80000204 <fail>
+ 80000200: 00301c63 bne zero,gp,80000218 <pass>
+
+0000000080000204 <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
+
+0000000080000218 <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
+
+0000000080000300 <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>
+
+0000000080000340 <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/tests/rv64mi-p-illegal.elf b/test/tests/rv64mi-p-illegal.elf
new file mode 100644
index 0000000..7441498
--- /dev/null
+++ b/test/tests/rv64mi-p-illegal.elf
Binary files differ
diff --git a/test/tests/rv64mi-p-ma_addr.dump b/test/tests/rv64mi-p-ma_addr.dump
new file mode 100644
index 0000000..b559567
--- /dev/null
+++ b/test/tests/rv64mi-p-ma_addr.dump
@@ -0,0 +1,563 @@
+
+rv64mi-p-ma_addr: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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: 5e8f0f13 addi t5,t5,1512 # 80000608 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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: 8005051b addiw a0,a0,-2048
+ 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: bcc3839b addiw t2,t2,-1076
+ 80000130: 4a731c63 bne t1,t2,800005e8 <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: bcc3839b addiw t2,t2,-1076
+ 80000150: 48731c63 bne t1,t2,800005e8 <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: bcc3839b addiw t2,t2,-1076
+ 80000170: 46731c63 bne t1,t2,800005e8 <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: abb3839b addiw t2,t2,-1349
+ 80000190: 44731c63 bne t1,t2,800005e8 <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: 9aa3839b addiw t2,t2,-1622
+ 800001b0: 42731c63 bne t1,t2,800005e8 <fail>
+ 800001b4: 00700193 li gp,7
+ 800001b8: 00000397 auipc t2,0x0
+ 800001bc: 02438393 addi t2,t2,36 # 800001dc <reset_vector+0x190>
+ 800001c0: 00140313 addi t1,s0,1
+ 800001c4: 00146303 lwu t1,1(s0)
+ 800001c8: 000263b7 lui t2,0x26
+ 800001cc: 6ab3839b addiw t2,t2,1707
+ 800001d0: 00e39393 slli t2,t2,0xe
+ 800001d4: bcc38393 addi t2,t2,-1076 # 25bcc <_start-0x7ffda434>
+ 800001d8: 40731863 bne t1,t2,800005e8 <fail>
+ 800001dc: 00800193 li gp,8
+ 800001e0: 00000397 auipc t2,0x0
+ 800001e4: 02438393 addi t2,t2,36 # 80000204 <reset_vector+0x1b8>
+ 800001e8: 00240313 addi t1,s0,2
+ 800001ec: 00246303 lwu t1,2(s0)
+ 800001f0: 000893b7 lui t2,0x89
+ 800001f4: 99b3839b addiw t2,t2,-1637
+ 800001f8: 00c39393 slli t2,t2,0xc
+ 800001fc: abb38393 addi t2,t2,-1349 # 88abb <_start-0x7ff77545>
+ 80000200: 3e731463 bne t1,t2,800005e8 <fail>
+ 80000204: 00900193 li gp,9
+ 80000208: 00000397 auipc t2,0x0
+ 8000020c: 01c38393 addi t2,t2,28 # 80000224 <reset_vector+0x1d8>
+ 80000210: 00340313 addi t1,s0,3
+ 80000214: 00346303 lwu t1,3(s0)
+ 80000218: 7788a3b7 lui t2,0x7788a
+ 8000021c: 9aa3839b addiw t2,t2,-1622
+ 80000220: 3c731463 bne t1,t2,800005e8 <fail>
+ 80000224: 00a00193 li gp,10
+ 80000228: 00000397 auipc t2,0x0
+ 8000022c: 03438393 addi t2,t2,52 # 8000025c <reset_vector+0x210>
+ 80000230: 00140313 addi t1,s0,1
+ 80000234: 00143303 ld t1,1(s0)
+ 80000238: 00aad3b7 lui t2,0xaad
+ 8000023c: cef3839b addiw t2,t2,-785
+ 80000240: 00c39393 slli t2,t2,0xc
+ 80000244: 11338393 addi t2,t2,275 # aad113 <_start-0x7f552eed>
+ 80000248: 00d39393 slli t2,t2,0xd
+ 8000024c: 6ab38393 addi t2,t2,1707
+ 80000250: 00e39393 slli t2,t2,0xe
+ 80000254: bcc38393 addi t2,t2,-1076
+ 80000258: 38731863 bne t1,t2,800005e8 <fail>
+ 8000025c: 00b00193 li gp,11
+ 80000260: 00000397 auipc t2,0x0
+ 80000264: 03438393 addi t2,t2,52 # 80000294 <reset_vector+0x248>
+ 80000268: 00240313 addi t1,s0,2
+ 8000026c: 00243303 ld t1,2(s0)
+ 80000270: 044553b7 lui t2,0x4455
+ 80000274: 6673839b addiw t2,t2,1639
+ 80000278: 00c39393 slli t2,t2,0xc
+ 8000027c: 78938393 addi t2,t2,1929 # 4455789 <_start-0x7bbaa877>
+ 80000280: 00c39393 slli t2,t2,0xc
+ 80000284: 99b38393 addi t2,t2,-1637
+ 80000288: 00c39393 slli t2,t2,0xc
+ 8000028c: abb38393 addi t2,t2,-1349
+ 80000290: 34731c63 bne t1,t2,800005e8 <fail>
+ 80000294: 00c00193 li gp,12
+ 80000298: 00000397 auipc t2,0x0
+ 8000029c: 03438393 addi t2,t2,52 # 800002cc <reset_vector+0x280>
+ 800002a0: 00340313 addi t1,s0,3
+ 800002a4: 00343303 ld t1,3(s0)
+ 800002a8: 006693b7 lui t2,0x669
+ 800002ac: 8ab3839b addiw t2,t2,-1877
+ 800002b0: 00c39393 slli t2,t2,0xc
+ 800002b4: ccf38393 addi t2,t2,-817 # 668ccf <_start-0x7f997331>
+ 800002b8: 00e39393 slli t2,t2,0xe
+ 800002bc: c4538393 addi t2,t2,-955
+ 800002c0: 00d39393 slli t2,t2,0xd
+ 800002c4: 9aa38393 addi t2,t2,-1622
+ 800002c8: 32731063 bne t1,t2,800005e8 <fail>
+ 800002cc: 00d00193 li gp,13
+ 800002d0: 00000397 auipc t2,0x0
+ 800002d4: 03438393 addi t2,t2,52 # 80000304 <reset_vector+0x2b8>
+ 800002d8: 00440313 addi t1,s0,4
+ 800002dc: 00443303 ld t1,4(s0)
+ 800002e0: 0111a3b7 lui t2,0x111a
+ 800002e4: a233839b addiw t2,t2,-1501
+ 800002e8: 00c39393 slli t2,t2,0xc
+ 800002ec: ab338393 addi t2,t2,-1357 # 1119ab3 <_start-0x7eee654d>
+ 800002f0: 00d39393 slli t2,t2,0xd
+ 800002f4: 77938393 addi t2,t2,1913
+ 800002f8: 00c39393 slli t2,t2,0xc
+ 800002fc: 89938393 addi t2,t2,-1895
+ 80000300: 2e731463 bne t1,t2,800005e8 <fail>
+ 80000304: 00e00193 li gp,14
+ 80000308: 00000397 auipc t2,0x0
+ 8000030c: 03438393 addi t2,t2,52 # 8000033c <reset_vector+0x2f0>
+ 80000310: 00540313 addi t1,s0,5
+ 80000314: 00543303 ld t1,5(s0)
+ 80000318: 004493b7 lui t2,0x449
+ 8000031c: 8cd3839b addiw t2,t2,-1843
+ 80000320: 00e39393 slli t2,t2,0xe
+ 80000324: 45538393 addi t2,t2,1109 # 449455 <_start-0x7fbb6bab>
+ 80000328: 00c39393 slli t2,t2,0xc
+ 8000032c: 66738393 addi t2,t2,1639
+ 80000330: 00c39393 slli t2,t2,0xc
+ 80000334: 78838393 addi t2,t2,1928
+ 80000338: 2a731863 bne t1,t2,800005e8 <fail>
+ 8000033c: 00f00193 li gp,15
+ 80000340: 00000397 auipc t2,0x0
+ 80000344: 03438393 addi t2,t2,52 # 80000374 <reset_vector+0x328>
+ 80000348: 00640313 addi t1,s0,6
+ 8000034c: 00643303 ld t1,6(s0)
+ 80000350: ffb843b7 lui t2,0xffb84
+ 80000354: 4893839b addiw t2,t2,1161
+ 80000358: 00c39393 slli t2,t2,0xc
+ 8000035c: cd138393 addi t2,t2,-815 # ffffffffffb83cd1 <_end+0xffffffff7fb81bc1>
+ 80000360: 00d39393 slli t2,t2,0xd
+ 80000364: 2ab38393 addi t2,t2,683
+ 80000368: 00d39393 slli t2,t2,0xd
+ 8000036c: 67738393 addi t2,t2,1655
+ 80000370: 26731c63 bne t1,t2,800005e8 <fail>
+ 80000374: 01000193 li gp,16
+ 80000378: 00000397 auipc t2,0x0
+ 8000037c: 02c38393 addi t2,t2,44 # 800003a4 <reset_vector+0x358>
+ 80000380: 00740313 addi t1,s0,7
+ 80000384: 00743303 ld t1,7(s0)
+ 80000388: ee1123b7 lui t2,0xee112
+ 8000038c: 2333839b addiw t2,t2,563
+ 80000390: 00c39393 slli t2,t2,0xc
+ 80000394: 44538393 addi t2,t2,1093 # ffffffffee112445 <_end+0xffffffff6e110335>
+ 80000398: 00c39393 slli t2,t2,0xc
+ 8000039c: 56638393 addi t2,t2,1382
+ 800003a0: 24731463 bne t1,t2,800005e8 <fail>
+ 800003a4: 00600493 li s1,6
+ 800003a8: 01600193 li gp,22
+ 800003ac: 00000397 auipc t2,0x0
+ 800003b0: 03038393 addi t2,t2,48 # 800003dc <reset_vector+0x390>
+ 800003b4: 00140313 addi t1,s0,1
+ 800003b8: 000410a3 sh zero,1(s0)
+ 800003bc: 00040303 lb t1,0(s0)
+ 800003c0: 22030463 beqz t1,800005e8 <fail>
+ 800003c4: 00340303 lb t1,3(s0)
+ 800003c8: 22030063 beqz t1,800005e8 <fail>
+ 800003cc: 00140303 lb t1,1(s0)
+ 800003d0: 20031c63 bnez t1,800005e8 <fail>
+ 800003d4: 00240303 lb t1,2(s0)
+ 800003d8: 20031863 bnez t1,800005e8 <fail>
+ 800003dc: 01700193 li gp,23
+ 800003e0: 00000397 auipc t2,0x0
+ 800003e4: 03038393 addi t2,t2,48 # 80000410 <reset_vector+0x3c4>
+ 800003e8: 00540313 addi t1,s0,5
+ 800003ec: 000422a3 sw zero,5(s0)
+ 800003f0: 00440303 lb t1,4(s0)
+ 800003f4: 1e030a63 beqz t1,800005e8 <fail>
+ 800003f8: 00940303 lb t1,9(s0)
+ 800003fc: 1e030663 beqz t1,800005e8 <fail>
+ 80000400: 00540303 lb t1,5(s0)
+ 80000404: 1e031263 bnez t1,800005e8 <fail>
+ 80000408: 00840303 lb t1,8(s0)
+ 8000040c: 1c031e63 bnez t1,800005e8 <fail>
+ 80000410: 01800193 li gp,24
+ 80000414: 00000397 auipc t2,0x0
+ 80000418: 03038393 addi t2,t2,48 # 80000444 <reset_vector+0x3f8>
+ 8000041c: 00a40313 addi t1,s0,10
+ 80000420: 00042523 sw zero,10(s0)
+ 80000424: 00940303 lb t1,9(s0)
+ 80000428: 1c030063 beqz t1,800005e8 <fail>
+ 8000042c: 00e40303 lb t1,14(s0)
+ 80000430: 1a030c63 beqz t1,800005e8 <fail>
+ 80000434: 00a40303 lb t1,10(s0)
+ 80000438: 1a031863 bnez t1,800005e8 <fail>
+ 8000043c: 00d40303 lb t1,13(s0)
+ 80000440: 1a031463 bnez t1,800005e8 <fail>
+ 80000444: 01900193 li gp,25
+ 80000448: 00000397 auipc t2,0x0
+ 8000044c: 03038393 addi t2,t2,48 # 80000478 <reset_vector+0x42c>
+ 80000450: 00f40313 addi t1,s0,15
+ 80000454: 000427a3 sw zero,15(s0)
+ 80000458: 00e40303 lb t1,14(s0)
+ 8000045c: 18030663 beqz t1,800005e8 <fail>
+ 80000460: 01340303 lb t1,19(s0)
+ 80000464: 18030263 beqz t1,800005e8 <fail>
+ 80000468: 00f40303 lb t1,15(s0)
+ 8000046c: 16031e63 bnez t1,800005e8 <fail>
+ 80000470: 01240303 lb t1,18(s0)
+ 80000474: 16031a63 bnez t1,800005e8 <fail>
+ 80000478: 01a00193 li gp,26
+ 8000047c: 00000397 auipc t2,0x0
+ 80000480: 03038393 addi t2,t2,48 # 800004ac <reset_vector+0x460>
+ 80000484: 01940313 addi t1,s0,25
+ 80000488: 00043ca3 sd zero,25(s0)
+ 8000048c: 01840303 lb t1,24(s0)
+ 80000490: 14030c63 beqz t1,800005e8 <fail>
+ 80000494: 02140303 lb t1,33(s0)
+ 80000498: 14030863 beqz t1,800005e8 <fail>
+ 8000049c: 01940303 lb t1,25(s0)
+ 800004a0: 14031463 bnez t1,800005e8 <fail>
+ 800004a4: 02040303 lb t1,32(s0)
+ 800004a8: 14031063 bnez t1,800005e8 <fail>
+ 800004ac: 01b00193 li gp,27
+ 800004b0: 00000397 auipc t2,0x0
+ 800004b4: 03038393 addi t2,t2,48 # 800004e0 <reset_vector+0x494>
+ 800004b8: 02240313 addi t1,s0,34
+ 800004bc: 02043123 sd zero,34(s0)
+ 800004c0: 02140303 lb t1,33(s0)
+ 800004c4: 12030263 beqz t1,800005e8 <fail>
+ 800004c8: 02a40303 lb t1,42(s0)
+ 800004cc: 10030e63 beqz t1,800005e8 <fail>
+ 800004d0: 02240303 lb t1,34(s0)
+ 800004d4: 10031a63 bnez t1,800005e8 <fail>
+ 800004d8: 02940303 lb t1,41(s0)
+ 800004dc: 10031663 bnez t1,800005e8 <fail>
+ 800004e0: 01c00193 li gp,28
+ 800004e4: 00000397 auipc t2,0x0
+ 800004e8: 03038393 addi t2,t2,48 # 80000514 <reset_vector+0x4c8>
+ 800004ec: 02b40313 addi t1,s0,43
+ 800004f0: 020435a3 sd zero,43(s0)
+ 800004f4: 02a40303 lb t1,42(s0)
+ 800004f8: 0e030863 beqz t1,800005e8 <fail>
+ 800004fc: 03340303 lb t1,51(s0)
+ 80000500: 0e030463 beqz t1,800005e8 <fail>
+ 80000504: 02b40303 lb t1,43(s0)
+ 80000508: 0e031063 bnez t1,800005e8 <fail>
+ 8000050c: 03240303 lb t1,50(s0)
+ 80000510: 0c031c63 bnez t1,800005e8 <fail>
+ 80000514: 01d00193 li gp,29
+ 80000518: 00000397 auipc t2,0x0
+ 8000051c: 03038393 addi t2,t2,48 # 80000548 <reset_vector+0x4fc>
+ 80000520: 03440313 addi t1,s0,52
+ 80000524: 02043a23 sd zero,52(s0)
+ 80000528: 03340303 lb t1,51(s0)
+ 8000052c: 0a030e63 beqz t1,800005e8 <fail>
+ 80000530: 03c40303 lb t1,60(s0)
+ 80000534: 0a030a63 beqz t1,800005e8 <fail>
+ 80000538: 03440303 lb t1,52(s0)
+ 8000053c: 0a031663 bnez t1,800005e8 <fail>
+ 80000540: 03b40303 lb t1,59(s0)
+ 80000544: 0a031263 bnez t1,800005e8 <fail>
+ 80000548: 01e00193 li gp,30
+ 8000054c: 00000397 auipc t2,0x0
+ 80000550: 03038393 addi t2,t2,48 # 8000057c <reset_vector+0x530>
+ 80000554: 03d40313 addi t1,s0,61
+ 80000558: 02043ea3 sd zero,61(s0)
+ 8000055c: 03c40303 lb t1,60(s0)
+ 80000560: 08030463 beqz t1,800005e8 <fail>
+ 80000564: 04540303 lb t1,69(s0)
+ 80000568: 08030063 beqz t1,800005e8 <fail>
+ 8000056c: 03d40303 lb t1,61(s0)
+ 80000570: 06031c63 bnez t1,800005e8 <fail>
+ 80000574: 04440303 lb t1,68(s0)
+ 80000578: 06031863 bnez t1,800005e8 <fail>
+ 8000057c: 01f00193 li gp,31
+ 80000580: 00000397 auipc t2,0x0
+ 80000584: 03038393 addi t2,t2,48 # 800005b0 <reset_vector+0x564>
+ 80000588: 04640313 addi t1,s0,70
+ 8000058c: 04043323 sd zero,70(s0)
+ 80000590: 04540303 lb t1,69(s0)
+ 80000594: 04030a63 beqz t1,800005e8 <fail>
+ 80000598: 04e40303 lb t1,78(s0)
+ 8000059c: 04030663 beqz t1,800005e8 <fail>
+ 800005a0: 04640303 lb t1,70(s0)
+ 800005a4: 04031263 bnez t1,800005e8 <fail>
+ 800005a8: 04d40303 lb t1,77(s0)
+ 800005ac: 02031e63 bnez t1,800005e8 <fail>
+ 800005b0: 02000193 li gp,32
+ 800005b4: 00000397 auipc t2,0x0
+ 800005b8: 03038393 addi t2,t2,48 # 800005e4 <reset_vector+0x598>
+ 800005bc: 04f40313 addi t1,s0,79
+ 800005c0: 040437a3 sd zero,79(s0)
+ 800005c4: 04e40303 lb t1,78(s0)
+ 800005c8: 02030063 beqz t1,800005e8 <fail>
+ 800005cc: 05740303 lb t1,87(s0)
+ 800005d0: 00030c63 beqz t1,800005e8 <fail>
+ 800005d4: 04f40303 lb t1,79(s0)
+ 800005d8: 00031863 bnez t1,800005e8 <fail>
+ 800005dc: 05640303 lb t1,86(s0)
+ 800005e0: 00031463 bnez t1,800005e8 <fail>
+ 800005e4: 00301c63 bne zero,gp,800005fc <pass>
+
+00000000800005e8 <fail>:
+ 800005e8: 0ff0000f fence
+ 800005ec: 00018063 beqz gp,800005ec <fail+0x4>
+ 800005f0: 00119193 slli gp,gp,0x1
+ 800005f4: 0011e193 ori gp,gp,1
+ 800005f8: 00000073 ecall
+
+00000000800005fc <pass>:
+ 800005fc: 0ff0000f fence
+ 80000600: 00100193 li gp,1
+ 80000604: 00000073 ecall
+
+0000000080000608 <mtvec_handler>:
+ 80000608: 342022f3 csrr t0,mcause
+ 8000060c: fc929ee3 bne t0,s1,800005e8 <fail>
+ 80000610: 343022f3 csrr t0,mbadaddr
+ 80000614: fc629ae3 bne t0,t1,800005e8 <fail>
+ 80000618: 00028283 lb t0,0(t0)
+ 8000061c: fc0286e3 beqz t0,800005e8 <fail>
+ 80000620: 34139073 csrw mepc,t2
+ 80000624: 30200073 mret
+ 80000628: c0001073 unimp
+ 8000062c: 0000 unimp
+ 8000062e: 0000 unimp
+ 80000630: 0000 unimp
+ 80000632: 0000 unimp
+ 80000634: 0000 unimp
+ 80000636: 0000 unimp
+ 80000638: 0000 unimp
+ 8000063a: 0000 unimp
+ 8000063c: 0000 unimp
+ 8000063e: 0000 unimp
+
+Disassembly of section .data:
+
+0000000080002000 <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/tests/rv64mi-p-ma_addr.elf b/test/tests/rv64mi-p-ma_addr.elf
new file mode 100644
index 0000000..fc32662
--- /dev/null
+++ b/test/tests/rv64mi-p-ma_addr.elf
Binary files differ
diff --git a/test/tests/rv64mi-p-ma_fetch.dump b/test/tests/rv64mi-p-ma_fetch.dump
new file mode 100644
index 0000000..6a5285a
--- /dev/null
+++ b/test/tests/rv64mi-p-ma_fetch.dump
@@ -0,0 +1,219 @@
+
+rv64mi-p-ma_fetch: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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: 8005051b addiw a0,a0,-2048
+ 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: 8003839b addiw t2,t2,-2048
+ 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>
+
+0000000080000208 <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
+
+000000008000021c <pass>:
+ 8000021c: 0ff0000f fence
+ 80000220: 00100193 li gp,1
+ 80000224: 00000073 ecall
+
+0000000080000228 <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 # 1ffe <_start-0x7fffe002>
+ 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/tests/rv64mi-p-ma_fetch.elf b/test/tests/rv64mi-p-ma_fetch.elf
new file mode 100644
index 0000000..40ffdf3
--- /dev/null
+++ b/test/tests/rv64mi-p-ma_fetch.elf
Binary files differ
diff --git a/test/tests/rv64mi-p-mcsr.dump b/test/tests/rv64mi-p-mcsr.dump
new file mode 100644
index 0000000..befb193
--- /dev/null
+++ b/test/tests/rv64mi-p-mcsr.dump
@@ -0,0 +1,126 @@
+
+rv64mi-p-mcsr: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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: 8005051b addiw a0,a0,-2048
+ 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
+
+0000000080000108 <test_2>:
+ 80000108: 30102573 csrr a0,misa
+ 8000010c: 03e55513 srli a0,a0,0x3e
+ 80000110: 00200e93 li t4,2
+ 80000114: 00200193 li gp,2
+ 80000118: 03d51863 bne a0,t4,80000148 <fail>
+
+000000008000011c <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>
+
+0000000080000148 <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
+
+000000008000015c <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/tests/rv64mi-p-mcsr.elf b/test/tests/rv64mi-p-mcsr.elf
new file mode 100644
index 0000000..4ce3d35
--- /dev/null
+++ b/test/tests/rv64mi-p-mcsr.elf
Binary files differ
diff --git a/test/tests/rv64mi-p-scall.dump b/test/tests/rv64mi-p-scall.dump
new file mode 100644
index 0000000..940db03
--- /dev/null
+++ b/test/tests/rv64mi-p-scall.dump
@@ -0,0 +1,147 @@
+
+rv64mi-p-scall: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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: 8005051b addiw a0,a0,-2048
+ 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: 8002829b addiw t0,t0,-2048
+ 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: 8002829b addiw t0,t0,-2048
+ 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
+
+000000008000014c <do_scall>:
+ 8000014c: 00000073 ecall
+ 80000150: 0080006f j 80000158 <fail>
+ 80000154: 00301c63 bne zero,gp,8000016c <pass>
+
+0000000080000158 <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
+
+000000008000016c <pass>:
+ 8000016c: 0ff0000f fence
+ 80000170: 00100193 li gp,1
+ 80000174: 00000073 ecall
+
+0000000080000178 <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/tests/rv64mi-p-scall.elf b/test/tests/rv64mi-p-scall.elf
new file mode 100644
index 0000000..bbb1526
--- /dev/null
+++ b/test/tests/rv64mi-p-scall.elf
Binary files differ
diff --git a/test/tests/rv64si-p-csr.dump b/test/tests/rv64si-p-csr.dump
new file mode 100644
index 0000000..e4e92ac
--- /dev/null
+++ b/test/tests/rv64si-p-csr.dump
@@ -0,0 +1,222 @@
+
+rv64si-p-csr: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez a0,800000c0 <reset_vector+0x74>
+ 800000b4: 0ff0000f fence
+ 800000b8: 00100193 li gp,1
+ 800000bc: 00000073 ecall
+ 800000c0: 00000297 auipc t0,0x0
+ 800000c4: 16c28293 addi t0,t0,364 # 8000022c <stvec_handler>
+ 800000c8: 00028e63 beqz t0,800000e4 <reset_vector+0x98>
+ 800000cc: 10529073 csrw stvec,t0
+ 800000d0: 0000b2b7 lui t0,0xb
+ 800000d4: 1092829b addiw t0,t0,265
+ 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: 8005051b addiw a0,a0,-2048
+ 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 <test_13>
+ 80000104: 34129073 csrw mepc,t0
+ 80000108: f1402573 csrr a0,mhartid
+ 8000010c: 30200073 mret
+
+0000000080000110 <test_13>:
+ 80000110: 10002573 csrr a0,sstatus
+ 80000114: 0030059b addiw a1,zero,3
+ 80000118: 02059593 slli a1,a1,0x20
+ 8000011c: 00b57533 and a0,a0,a1
+ 80000120: 00100e9b addiw t4,zero,1
+ 80000124: 021e9e93 slli t4,t4,0x21
+ 80000128: 00d00193 li gp,13
+ 8000012c: 0fd51063 bne a0,t4,8000020c <fail>
+ 80000130: 1401d073 csrwi sscratch,3
+
+0000000080000134 <test_2>:
+ 80000134: 14002573 csrr a0,sscratch
+ 80000138: 00300e93 li t4,3
+ 8000013c: 00200193 li gp,2
+ 80000140: 0dd51663 bne a0,t4,8000020c <fail>
+
+0000000080000144 <test_3>:
+ 80000144: 1400f5f3 csrrci a1,sscratch,1
+ 80000148: 00300e93 li t4,3
+ 8000014c: 00300193 li gp,3
+ 80000150: 0bd59e63 bne a1,t4,8000020c <fail>
+
+0000000080000154 <test_4>:
+ 80000154: 14026673 csrrsi a2,sscratch,4
+ 80000158: 00200e93 li t4,2
+ 8000015c: 00400193 li gp,4
+ 80000160: 0bd61663 bne a2,t4,8000020c <fail>
+
+0000000080000164 <test_5>:
+ 80000164: 140156f3 csrrwi a3,sscratch,2
+ 80000168: 00600e93 li t4,6
+ 8000016c: 00500193 li gp,5
+ 80000170: 09d69e63 bne a3,t4,8000020c <fail>
+
+0000000080000174 <test_6>:
+ 80000174: 0bad2537 lui a0,0xbad2
+ 80000178: dea5051b addiw a0,a0,-534
+ 8000017c: 140515f3 csrrw a1,sscratch,a0
+ 80000180: 00200e93 li t4,2
+ 80000184: 00600193 li gp,6
+ 80000188: 09d59263 bne a1,t4,8000020c <fail>
+
+000000008000018c <test_7>:
+ 8000018c: 00002537 lui a0,0x2
+ 80000190: dea5051b addiw a0,a0,-534
+ 80000194: 14053573 csrrc a0,sscratch,a0
+ 80000198: 0bad2eb7 lui t4,0xbad2
+ 8000019c: deae8e9b addiw t4,t4,-534
+ 800001a0: 00700193 li gp,7
+ 800001a4: 07d51463 bne a0,t4,8000020c <fail>
+
+00000000800001a8 <test_8>:
+ 800001a8: 0000c537 lui a0,0xc
+ 800001ac: eef5051b addiw a0,a0,-273
+ 800001b0: 14052573 csrrs a0,sscratch,a0
+ 800001b4: 0bad0eb7 lui t4,0xbad0
+ 800001b8: 00800193 li gp,8
+ 800001bc: 05d51863 bne a0,t4,8000020c <fail>
+
+00000000800001c0 <test_9>:
+ 800001c0: 14002573 csrr a0,sscratch
+ 800001c4: 0badceb7 lui t4,0xbadc
+ 800001c8: eefe8e9b addiw t4,t4,-273
+ 800001cc: 00900193 li gp,9
+ 800001d0: 03d51e63 bne a0,t4,8000020c <fail>
+ 800001d4: 10000293 li t0,256
+ 800001d8: 1002b073 csrc sstatus,t0
+ 800001dc: 00000297 auipc t0,0x0
+ 800001e0: 01028293 addi t0,t0,16 # 800001ec <test_12>
+ 800001e4: 14129073 csrw sepc,t0
+ 800001e8: 10200073 sret
+
+00000000800001ec <test_12>:
+ 800001ec: 00000013 nop
+ 800001f0: 00000e93 li t4,0
+ 800001f4: 00c00193 li gp,12
+ 800001f8: 01d01a63 bne zero,t4,8000020c <fail>
+
+00000000800001fc <finish>:
+ 800001fc: 0ff0000f fence
+ 80000200: 00100193 li gp,1
+ 80000204: 00000073 ecall
+ 80000208: 00301c63 bne zero,gp,80000220 <pass>
+
+000000008000020c <fail>:
+ 8000020c: 0ff0000f fence
+ 80000210: 00018063 beqz gp,80000210 <fail+0x4>
+ 80000214: 00119193 slli gp,gp,0x1
+ 80000218: 0011e193 ori gp,gp,1
+ 8000021c: 00000073 ecall
+
+0000000080000220 <pass>:
+ 80000220: 0ff0000f fence
+ 80000224: 00100193 li gp,1
+ 80000228: 00000073 ecall
+
+000000008000022c <stvec_handler>:
+ 8000022c: 00900293 li t0,9
+ 80000230: 0051e663 bltu gp,t0,8000023c <stvec_handler+0x10>
+ 80000234: 00b00293 li t0,11
+ 80000238: 0032fe63 bleu gp,t0,80000254 <privileged>
+ 8000023c: 142022f3 csrr t0,scause
+ 80000240: 00800313 li t1,8
+ 80000244: fc6294e3 bne t0,t1,8000020c <fail>
+ 80000248: 0ff0000f fence
+ 8000024c: 00100193 li gp,1
+ 80000250: 00000073 ecall
+
+0000000080000254 <privileged>:
+ 80000254: 142022f3 csrr t0,scause
+ 80000258: 00200313 li t1,2
+ 8000025c: fa6298e3 bne t0,t1,8000020c <fail>
+ 80000260: 141022f3 csrr t0,sepc
+ 80000264: 00428293 addi t0,t0,4
+ 80000268: 14129073 csrw sepc,t0
+ 8000026c: 10200073 sret
+ 80000270: c0001073 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:
+
+0000000080002000 <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/tests/rv64si-p-csr.elf b/test/tests/rv64si-p-csr.elf
new file mode 100644
index 0000000..3f0921c
--- /dev/null
+++ b/test/tests/rv64si-p-csr.elf
Binary files differ
diff --git a/test/tests/rv64si-p-dirty.dump b/test/tests/rv64si-p-dirty.dump
new file mode 100644
index 0000000..a92c70d
--- /dev/null
+++ b/test/tests/rv64si-p-dirty.dump
@@ -0,0 +1,202 @@
+
+rv64si-p-dirty: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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: 1d0f0f13 addi t5,t5,464 # 800001f0 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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: 8005051b addiw a0,a0,-2048
+ 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: fff0051b addiw a0,zero,-1
+ 8000010c: 03f51513 slli a0,a0,0x3f
+ 80000110: 00002597 auipc a1,0x2
+ 80000114: ef058593 addi a1,a1,-272 # 80002000 <begin_signature>
+ 80000118: 00c5d593 srli a1,a1,0xc
+ 8000011c: 00a5e5b3 or a1,a1,a0
+ 80000120: 18059073 csrw satp,a1
+ 80000124: 12000073 sfence.vma
+ 80000128: 000215b7 lui a1,0x21
+ 8000012c: 8005859b addiw a1,a1,-2048
+ 80000130: 3005a073 csrs mstatus,a1
+ 80000134: 00200193 li gp,2
+ 80000138: 00100393 li t2,1
+ 8000013c: 80002517 auipc a0,0x80002
+ 80000140: ec752623 sw t2,-308(a0) # 2008 <_start-0x7fffdff8>
+ 80000144: 00300193 li gp,3
+ 80000148: 000415b7 lui a1,0x41
+ 8000014c: 8005859b addiw a1,a1,-2048
+ 80000150: 3005a073 csrs mstatus,a1
+ 80000154: 80002297 auipc t0,0x80002
+ 80000158: eb42a283 lw t0,-332(t0) # 2008 <_start-0x7fffdff8>
+ 8000015c: 10029063 bnez t0,8000025c <die>
+ 80000160: 80002517 auipc a0,0x80002
+ 80000164: ea752423 sw t2,-344(a0) # 2008 <_start-0x7fffdff8>
+ 80000168: 80002297 auipc t0,0x80002
+ 8000016c: ea02a283 lw t0,-352(t0) # 2008 <_start-0x7fffdff8>
+ 80000170: 0e729663 bne t0,t2,8000025c <die>
+ 80000174: 000202b7 lui t0,0x20
+ 80000178: 3002b073 csrc mstatus,t0
+ 8000017c: 00002297 auipc t0,0x2
+ 80000180: e842a283 lw t0,-380(t0) # 80002000 <begin_signature>
+ 80000184: 0c000513 li a0,192
+ 80000188: 00a2f2b3 and t0,t0,a0
+ 8000018c: 0ca29863 bne t0,a0,8000025c <die>
+ 80000190: 000202b7 lui t0,0x20
+ 80000194: 3002a073 csrs mstatus,t0
+ 80000198: 00400193 li gp,4
+ 8000019c: 80002517 auipc a0,0x80002
+ 800001a0: e6452503 lw a0,-412(a0) # 2000 <_start-0x7fffe000>
+ 800001a4: 40056513 ori a0,a0,1024
+ 800001a8: 80002297 auipc t0,0x80002
+ 800001ac: e4a2ac23 sw a0,-424(t0) # 2000 <_start-0x7fffe000>
+ 800001b0: 12000073 sfence.vma
+ 800001b4: 80002297 auipc t0,0x80002
+ 800001b8: e4a2a623 sw a0,-436(t0) # 2000 <_start-0x7fffe000>
+ 800001bc: 0a00006f j 8000025c <die>
+ 800001c0: 0ff0000f fence
+ 800001c4: 00100193 li gp,1
+ 800001c8: 00000073 ecall
+ 800001cc: 00301c63 bne zero,gp,800001e4 <pass>
+
+00000000800001d0 <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
+
+00000000800001e4 <pass>:
+ 800001e4: 0ff0000f fence
+ 800001e8: 00100193 li gp,1
+ 800001ec: 00000073 ecall
+
+00000000800001f0 <mtvec_handler>:
+ 800001f0: 342022f3 csrr t0,mcause
+ 800001f4: ff128293 addi t0,t0,-15
+ 800001f8: 06029263 bnez t0,8000025c <die>
+ 800001fc: 00200313 li t1,2
+ 80000200: 02619263 bne gp,t1,80000224 <skip+0x10>
+ 80000204: 00002297 auipc t0,0x2
+ 80000208: dfc2a283 lw t0,-516(t0) # 80002000 <begin_signature>
+ 8000020c: 0802f313 andi t1,t0,128
+ 80000210: 04031663 bnez t1,8000025c <die>
+
+0000000080000214 <skip>:
+ 80000214: 341022f3 csrr t0,mepc
+ 80000218: 00428293 addi t0,t0,4
+ 8000021c: 34129073 csrw mepc,t0
+ 80000220: 30200073 mret
+ 80000224: 00300313 li t1,3
+ 80000228: 02619463 bne gp,t1,80000250 <skip+0x3c>
+ 8000022c: 00002297 auipc t0,0x2
+ 80000230: dd42a283 lw t0,-556(t0) # 80002000 <begin_signature>
+ 80000234: 0802f313 andi t1,t0,128
+ 80000238: 02031263 bnez t1,8000025c <die>
+ 8000023c: 0802e293 ori t0,t0,128
+ 80000240: 00002317 auipc t1,0x2
+ 80000244: dc532023 sw t0,-576(t1) # 80002000 <begin_signature>
+ 80000248: 12000073 sfence.vma
+ 8000024c: 30200073 mret
+ 80000250: 00400313 li t1,4
+ 80000254: 00619463 bne gp,t1,8000025c <die>
+ 80000258: f8dff06f j 800001e4 <pass>
+
+000000008000025c <die>:
+ 8000025c: 0ff0000f fence
+ 80000260: 00018063 beqz gp,80000260 <die+0x4>
+ 80000264: 00119193 slli gp,gp,0x1
+ 80000268: 0011e193 ori gp,gp,1
+ 8000026c: 00000073 ecall
+ 80000270: c0001073 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:
+
+0000000080002000 <begin_signature>:
+ 80002000: 005f 2000 0000 0x2000005f
+ 80002006: 0000 unimp
+
+0000000080002008 <dummy>:
+ 80002008: 0000 unimp
+ 8000200a: 0000 unimp
+ 8000200c: 0000 unimp
+ 8000200e: 0000 unimp
diff --git a/test/tests/rv64si-p-dirty.elf b/test/tests/rv64si-p-dirty.elf
new file mode 100644
index 0000000..7ff11e5
--- /dev/null
+++ b/test/tests/rv64si-p-dirty.elf
Binary files differ
diff --git a/test/tests/rv64si-p-ma_fetch.dump b/test/tests/rv64si-p-ma_fetch.dump
new file mode 100644
index 0000000..bd8178b
--- /dev/null
+++ b/test/tests/rv64si-p-ma_fetch.dump
@@ -0,0 +1,175 @@
+
+rv64si-p-ma_fetch: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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: 8005051b addiw a0,a0,-2048
+ 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>
+
+00000000800001b4 <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
+
+00000000800001c8 <pass>:
+ 800001c8: 0ff0000f fence
+ 800001cc: 00100193 li gp,1
+ 800001d0: 00000073 ecall
+
+00000000800001d4 <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 # ffe <_start-0x7ffff002>
+ 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/tests/rv64si-p-ma_fetch.elf b/test/tests/rv64si-p-ma_fetch.elf
new file mode 100644
index 0000000..23977ad
--- /dev/null
+++ b/test/tests/rv64si-p-ma_fetch.elf
Binary files differ
diff --git a/test/tests/rv64si-p-scall.dump b/test/tests/rv64si-p-scall.dump
new file mode 100644
index 0000000..9967450
--- /dev/null
+++ b/test/tests/rv64si-p-scall.dump
@@ -0,0 +1,121 @@
+
+rv64si-p-scall: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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: 8005051b addiw a0,a0,-2048
+ 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
+
+0000000080000134 <do_scall>:
+ 80000134: 00000073 ecall
+ 80000138: 0080006f j 80000140 <fail>
+ 8000013c: 00301c63 bne zero,gp,80000154 <pass>
+
+0000000080000140 <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
+
+0000000080000154 <pass>:
+ 80000154: 0ff0000f fence
+ 80000158: 00100193 li gp,1
+ 8000015c: 00000073 ecall
+
+0000000080000160 <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/tests/rv64si-p-scall.elf b/test/tests/rv64si-p-scall.elf
new file mode 100644
index 0000000..4d7dc27
--- /dev/null
+++ b/test/tests/rv64si-p-scall.elf
Binary files differ
diff --git a/test/tests/rv64si-p-wfi.dump b/test/tests/rv64si-p-wfi.dump
new file mode 100644
index 0000000..2cd7bf8
--- /dev/null
+++ b/test/tests/rv64si-p-wfi.dump
@@ -0,0 +1,128 @@
+
+rv64si-p-wfi: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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: 8005051b addiw a0,a0,-2048
+ 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>
+
+0000000080000130 <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
+
+0000000080000144 <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/tests/rv64si-p-wfi.elf b/test/tests/rv64si-p-wfi.elf
new file mode 100644
index 0000000..23d0c0c
--- /dev/null
+++ b/test/tests/rv64si-p-wfi.elf
Binary files differ
diff --git a/test/tests/rv64ua-p-amoadd_d.dump b/test/tests/rv64ua-p-amoadd_d.dump
new file mode 100644
index 0000000..e90473b
--- /dev/null
+++ b/test/tests/rv64ua-p-amoadd_d.dump
@@ -0,0 +1,153 @@
+
+rv64ua-p-amoadd_d: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <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: 00a6b023 sd a0,0(a3)
+ 80000110: 00b6b72f amoadd.d a4,a1,(a3)
+ 80000114: 80000eb7 lui t4,0x80000
+ 80000118: 00200193 li gp,2
+ 8000011c: 05d71863 bne a4,t4,8000016c <fail>
+
+0000000080000120 <test_3>:
+ 80000120: 0006b783 ld a5,0(a3)
+ 80000124: fff00e9b addiw t4,zero,-1
+ 80000128: 01fe9e93 slli t4,t4,0x1f
+ 8000012c: 800e8e93 addi t4,t4,-2048 # ffffffff7ffff800 <_end+0xfffffffeffffd7f8>
+ 80000130: 00300193 li gp,3
+ 80000134: 03d79c63 bne a5,t4,8000016c <fail>
+
+0000000080000138 <test_4>:
+ 80000138: 00b6b72f amoadd.d a4,a1,(a3)
+ 8000013c: fff00e9b addiw t4,zero,-1
+ 80000140: 01fe9e93 slli t4,t4,0x1f
+ 80000144: 800e8e93 addi t4,t4,-2048
+ 80000148: 00400193 li gp,4
+ 8000014c: 03d71063 bne a4,t4,8000016c <fail>
+
+0000000080000150 <test_5>:
+ 80000150: 0006b783 ld a5,0(a3)
+ 80000154: fff80eb7 lui t4,0xfff80
+ 80000158: fffe8e9b addiw t4,t4,-1
+ 8000015c: 00ce9e93 slli t4,t4,0xc
+ 80000160: 00500193 li gp,5
+ 80000164: 01d79463 bne a5,t4,8000016c <fail>
+ 80000168: 00301c63 bne zero,gp,80000180 <pass>
+
+000000008000016c <fail>:
+ 8000016c: 0ff0000f fence
+ 80000170: 00018063 beqz gp,80000170 <fail+0x4>
+ 80000174: 00119193 slli gp,gp,0x1
+ 80000178: 0011e193 ori gp,gp,1
+ 8000017c: 00000073 ecall
+
+0000000080000180 <pass>:
+ 80000180: 0ff0000f fence
+ 80000184: 00100193 li gp,1
+ 80000188: 00000073 ecall
+ 8000018c: c0001073 unimp
+ 80000190: 0000 unimp
+ 80000192: 0000 unimp
+ 80000194: 0000 unimp
+ 80000196: 0000 unimp
+ 80000198: 0000 unimp
+ 8000019a: 0000 unimp
+ 8000019c: 0000 unimp
+ 8000019e: 0000 unimp
+ 800001a0: 0000 unimp
+ 800001a2: 0000 unimp
+ 800001a4: 0000 unimp
+ 800001a6: 0000 unimp
+ 800001a8: 0000 unimp
+ 800001aa: 0000 unimp
+ 800001ac: 0000 unimp
+ 800001ae: 0000 unimp
+ 800001b0: 0000 unimp
+ 800001b2: 0000 unimp
+ 800001b4: 0000 unimp
+ 800001b6: 0000 unimp
+ 800001b8: 0000 unimp
+ 800001ba: 0000 unimp
+ 800001bc: 0000 unimp
+ 800001be: 0000 unimp
+ 800001c0: 0000 unimp
+ 800001c2: 0000 unimp
diff --git a/test/tests/rv64ua-p-amoadd_d.elf b/test/tests/rv64ua-p-amoadd_d.elf
new file mode 100644
index 0000000..e20d290
--- /dev/null
+++ b/test/tests/rv64ua-p-amoadd_d.elf
Binary files differ
diff --git a/test/tests/rv64ua-p-amoadd_w.dump b/test/tests/rv64ua-p-amoadd_w.dump
new file mode 100644
index 0000000..a0bc84e
--- /dev/null
+++ b/test/tests/rv64ua-p-amoadd_w.dump
@@ -0,0 +1,124 @@
+
+rv64ua-p-amoadd_w: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <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>
+
+0000000080000120 <test_3>:
+ 80000120: 0006a783 lw a5,0(a3)
+ 80000124: 80000eb7 lui t4,0x80000
+ 80000128: 800e8e9b addiw t4,t4,-2048
+ 8000012c: 00300193 li gp,3
+ 80000130: 03d79863 bne a5,t4,80000160 <fail>
+
+0000000080000134 <test_4>:
+ 80000134: 800005b7 lui a1,0x80000
+ 80000138: 00b6a72f amoadd.w a4,a1,(a3)
+ 8000013c: 80000eb7 lui t4,0x80000
+ 80000140: 800e8e9b addiw t4,t4,-2048
+ 80000144: 00400193 li gp,4
+ 80000148: 01d71c63 bne a4,t4,80000160 <fail>
+
+000000008000014c <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>
+
+0000000080000160 <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
+
+0000000080000174 <pass>:
+ 80000174: 0ff0000f fence
+ 80000178: 00100193 li gp,1
+ 8000017c: 00000073 ecall
+ 80000180: c0001073 unimp
diff --git a/test/tests/rv64ua-p-amoadd_w.elf b/test/tests/rv64ua-p-amoadd_w.elf
new file mode 100644
index 0000000..f8c15af
--- /dev/null
+++ b/test/tests/rv64ua-p-amoadd_w.elf
Binary files differ
diff --git a/test/tests/rv64ua-p-amoand_d.dump b/test/tests/rv64ua-p-amoand_d.dump
new file mode 100644
index 0000000..cb398f8
--- /dev/null
+++ b/test/tests/rv64ua-p-amoand_d.dump
@@ -0,0 +1,124 @@
+
+rv64ua-p-amoand_d: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <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: 00a6b023 sd a0,0(a3)
+ 80000110: 60b6b72f amoand.d a4,a1,(a3)
+ 80000114: 80000eb7 lui t4,0x80000
+ 80000118: 00200193 li gp,2
+ 8000011c: 05d71263 bne a4,t4,80000160 <fail>
+
+0000000080000120 <test_3>:
+ 80000120: 0006b783 ld a5,0(a3)
+ 80000124: 80000eb7 lui t4,0x80000
+ 80000128: 00300193 li gp,3
+ 8000012c: 03d79a63 bne a5,t4,80000160 <fail>
+
+0000000080000130 <test_4>:
+ 80000130: 0010059b addiw a1,zero,1
+ 80000134: 01f59593 slli a1,a1,0x1f
+ 80000138: 60b6b72f amoand.d a4,a1,(a3)
+ 8000013c: 80000eb7 lui t4,0x80000
+ 80000140: 00400193 li gp,4
+ 80000144: 01d71e63 bne a4,t4,80000160 <fail>
+
+0000000080000148 <test_5>:
+ 80000148: 0006b783 ld a5,0(a3)
+ 8000014c: 00100e9b addiw t4,zero,1
+ 80000150: 01fe9e93 slli t4,t4,0x1f
+ 80000154: 00500193 li gp,5
+ 80000158: 01d79463 bne a5,t4,80000160 <fail>
+ 8000015c: 00301c63 bne zero,gp,80000174 <pass>
+
+0000000080000160 <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
+
+0000000080000174 <pass>:
+ 80000174: 0ff0000f fence
+ 80000178: 00100193 li gp,1
+ 8000017c: 00000073 ecall
+ 80000180: c0001073 unimp
diff --git a/test/tests/rv64ua-p-amoand_d.elf b/test/tests/rv64ua-p-amoand_d.elf
new file mode 100644
index 0000000..6f9ec5c
--- /dev/null
+++ b/test/tests/rv64ua-p-amoand_d.elf
Binary files differ
diff --git a/test/tests/rv64ua-p-amoand_w.dump b/test/tests/rv64ua-p-amoand_w.dump
new file mode 100644
index 0000000..83ce206
--- /dev/null
+++ b/test/tests/rv64ua-p-amoand_w.dump
@@ -0,0 +1,125 @@
+
+rv64ua-p-amoand_w: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <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: 05d71063 bne a4,t4,8000015c <fail>
+
+0000000080000120 <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>
+
+0000000080000130 <test_4>:
+ 80000130: 0010059b addiw a1,zero,1
+ 80000134: 01f59593 slli a1,a1,0x1f
+ 80000138: 60b6a72f amoand.w a4,a1,(a3)
+ 8000013c: 80000eb7 lui t4,0x80000
+ 80000140: 00400193 li gp,4
+ 80000144: 01d71c63 bne a4,t4,8000015c <fail>
+
+0000000080000148 <test_5>:
+ 80000148: 0006a783 lw a5,0(a3)
+ 8000014c: 80000eb7 lui t4,0x80000
+ 80000150: 00500193 li gp,5
+ 80000154: 01d79463 bne a5,t4,8000015c <fail>
+ 80000158: 00301c63 bne zero,gp,80000170 <pass>
+
+000000008000015c <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
+
+0000000080000170 <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/tests/rv64ua-p-amoand_w.elf b/test/tests/rv64ua-p-amoand_w.elf
new file mode 100644
index 0000000..fefc4fc
--- /dev/null
+++ b/test/tests/rv64ua-p-amoand_w.elf
Binary files differ
diff --git a/test/tests/rv64ua-p-amomax_d.dump b/test/tests/rv64ua-p-amomax_d.dump
new file mode 100644
index 0000000..c91c2c8
--- /dev/null
+++ b/test/tests/rv64ua-p-amomax_d.dump
@@ -0,0 +1,125 @@
+
+rv64ua-p-amomax_d: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <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: 00a6b023 sd a0,0(a3)
+ 80000110: a0b6b72f amomax.d a4,a1,(a3)
+ 80000114: 80000eb7 lui t4,0x80000
+ 80000118: 00200193 li gp,2
+ 8000011c: 05d71063 bne a4,t4,8000015c <fail>
+
+0000000080000120 <test_3>:
+ 80000120: 0006b783 ld a5,0(a3)
+ 80000124: 80000e93 li t4,-2048
+ 80000128: 00300193 li gp,3
+ 8000012c: 03d79863 bne a5,t4,8000015c <fail>
+
+0000000080000130 <test_4>:
+ 80000130: 00100593 li a1,1
+ 80000134: 0006b023 sd zero,0(a3)
+ 80000138: a0b6b72f amomax.d a4,a1,(a3)
+ 8000013c: 00000e93 li t4,0
+ 80000140: 00400193 li gp,4
+ 80000144: 01d71c63 bne a4,t4,8000015c <fail>
+
+0000000080000148 <test_5>:
+ 80000148: 0006b783 ld 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>
+
+000000008000015c <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
+
+0000000080000170 <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/tests/rv64ua-p-amomax_d.elf b/test/tests/rv64ua-p-amomax_d.elf
new file mode 100644
index 0000000..051cf48
--- /dev/null
+++ b/test/tests/rv64ua-p-amomax_d.elf
Binary files differ
diff --git a/test/tests/rv64ua-p-amomax_w.dump b/test/tests/rv64ua-p-amomax_w.dump
new file mode 100644
index 0000000..5de2185
--- /dev/null
+++ b/test/tests/rv64ua-p-amomax_w.dump
@@ -0,0 +1,125 @@
+
+rv64ua-p-amomax_w: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <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>
+
+0000000080000120 <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>
+
+0000000080000130 <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>
+
+0000000080000148 <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>
+
+000000008000015c <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
+
+0000000080000170 <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/tests/rv64ua-p-amomax_w.elf b/test/tests/rv64ua-p-amomax_w.elf
new file mode 100644
index 0000000..59d12a1
--- /dev/null
+++ b/test/tests/rv64ua-p-amomax_w.elf
Binary files differ
diff --git a/test/tests/rv64ua-p-amomaxu_d.dump b/test/tests/rv64ua-p-amomaxu_d.dump
new file mode 100644
index 0000000..8492cd4
--- /dev/null
+++ b/test/tests/rv64ua-p-amomaxu_d.dump
@@ -0,0 +1,125 @@
+
+rv64ua-p-amomaxu_d: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <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: 00a6b023 sd a0,0(a3)
+ 80000110: e0b6b72f amomaxu.d a4,a1,(a3)
+ 80000114: 80000eb7 lui t4,0x80000
+ 80000118: 00200193 li gp,2
+ 8000011c: 05d71063 bne a4,t4,8000015c <fail>
+
+0000000080000120 <test_3>:
+ 80000120: 0006b783 ld a5,0(a3)
+ 80000124: 80000e93 li t4,-2048
+ 80000128: 00300193 li gp,3
+ 8000012c: 03d79863 bne a5,t4,8000015c <fail>
+
+0000000080000130 <test_4>:
+ 80000130: fff00593 li a1,-1
+ 80000134: 0006b023 sd zero,0(a3)
+ 80000138: e0b6b72f amomaxu.d a4,a1,(a3)
+ 8000013c: 00000e93 li t4,0
+ 80000140: 00400193 li gp,4
+ 80000144: 01d71c63 bne a4,t4,8000015c <fail>
+
+0000000080000148 <test_5>:
+ 80000148: 0006b783 ld 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>
+
+000000008000015c <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
+
+0000000080000170 <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/tests/rv64ua-p-amomaxu_d.elf b/test/tests/rv64ua-p-amomaxu_d.elf
new file mode 100644
index 0000000..4c13c12
--- /dev/null
+++ b/test/tests/rv64ua-p-amomaxu_d.elf
Binary files differ
diff --git a/test/tests/rv64ua-p-amomaxu_w.dump b/test/tests/rv64ua-p-amomaxu_w.dump
new file mode 100644
index 0000000..1f01067
--- /dev/null
+++ b/test/tests/rv64ua-p-amomaxu_w.dump
@@ -0,0 +1,125 @@
+
+rv64ua-p-amomaxu_w: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <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>
+
+0000000080000120 <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>
+
+0000000080000130 <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>
+
+0000000080000148 <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>
+
+000000008000015c <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
+
+0000000080000170 <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/tests/rv64ua-p-amomaxu_w.elf b/test/tests/rv64ua-p-amomaxu_w.elf
new file mode 100644
index 0000000..0c97a3a
--- /dev/null
+++ b/test/tests/rv64ua-p-amomaxu_w.elf
Binary files differ
diff --git a/test/tests/rv64ua-p-amomin_d.dump b/test/tests/rv64ua-p-amomin_d.dump
new file mode 100644
index 0000000..a45ab4f
--- /dev/null
+++ b/test/tests/rv64ua-p-amomin_d.dump
@@ -0,0 +1,125 @@
+
+rv64ua-p-amomin_d: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <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: 00a6b023 sd a0,0(a3)
+ 80000110: 80b6b72f amomin.d a4,a1,(a3)
+ 80000114: 80000eb7 lui t4,0x80000
+ 80000118: 00200193 li gp,2
+ 8000011c: 05d71063 bne a4,t4,8000015c <fail>
+
+0000000080000120 <test_3>:
+ 80000120: 0006b783 ld a5,0(a3)
+ 80000124: 80000eb7 lui t4,0x80000
+ 80000128: 00300193 li gp,3
+ 8000012c: 03d79863 bne a5,t4,8000015c <fail>
+
+0000000080000130 <test_4>:
+ 80000130: fff00593 li a1,-1
+ 80000134: 0006b023 sd zero,0(a3)
+ 80000138: 80b6b72f amomin.d a4,a1,(a3)
+ 8000013c: 00000e93 li t4,0
+ 80000140: 00400193 li gp,4
+ 80000144: 01d71c63 bne a4,t4,8000015c <fail>
+
+0000000080000148 <test_5>:
+ 80000148: 0006b783 ld 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>
+
+000000008000015c <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
+
+0000000080000170 <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/tests/rv64ua-p-amomin_d.elf b/test/tests/rv64ua-p-amomin_d.elf
new file mode 100644
index 0000000..791c78f
--- /dev/null
+++ b/test/tests/rv64ua-p-amomin_d.elf
Binary files differ
diff --git a/test/tests/rv64ua-p-amomin_w.dump b/test/tests/rv64ua-p-amomin_w.dump
new file mode 100644
index 0000000..b97ec5a
--- /dev/null
+++ b/test/tests/rv64ua-p-amomin_w.dump
@@ -0,0 +1,125 @@
+
+rv64ua-p-amomin_w: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <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>
+
+0000000080000120 <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>
+
+0000000080000130 <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>
+
+0000000080000148 <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>
+
+000000008000015c <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
+
+0000000080000170 <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/tests/rv64ua-p-amomin_w.elf b/test/tests/rv64ua-p-amomin_w.elf
new file mode 100644
index 0000000..7bf86a3
--- /dev/null
+++ b/test/tests/rv64ua-p-amomin_w.elf
Binary files differ
diff --git a/test/tests/rv64ua-p-amominu_d.dump b/test/tests/rv64ua-p-amominu_d.dump
new file mode 100644
index 0000000..c4b90c6
--- /dev/null
+++ b/test/tests/rv64ua-p-amominu_d.dump
@@ -0,0 +1,125 @@
+
+rv64ua-p-amominu_d: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <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: 00a6b023 sd a0,0(a3)
+ 80000110: c0b6b72f amominu.d a4,a1,(a3)
+ 80000114: 80000eb7 lui t4,0x80000
+ 80000118: 00200193 li gp,2
+ 8000011c: 05d71063 bne a4,t4,8000015c <fail>
+
+0000000080000120 <test_3>:
+ 80000120: 0006b783 ld a5,0(a3)
+ 80000124: 80000eb7 lui t4,0x80000
+ 80000128: 00300193 li gp,3
+ 8000012c: 03d79863 bne a5,t4,8000015c <fail>
+
+0000000080000130 <test_4>:
+ 80000130: fff00593 li a1,-1
+ 80000134: 0006b023 sd zero,0(a3)
+ 80000138: c0b6b72f amominu.d a4,a1,(a3)
+ 8000013c: 00000e93 li t4,0
+ 80000140: 00400193 li gp,4
+ 80000144: 01d71c63 bne a4,t4,8000015c <fail>
+
+0000000080000148 <test_5>:
+ 80000148: 0006b783 ld 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>
+
+000000008000015c <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
+
+0000000080000170 <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/tests/rv64ua-p-amominu_d.elf b/test/tests/rv64ua-p-amominu_d.elf
new file mode 100644
index 0000000..1c6d6ad
--- /dev/null
+++ b/test/tests/rv64ua-p-amominu_d.elf
Binary files differ
diff --git a/test/tests/rv64ua-p-amominu_w.dump b/test/tests/rv64ua-p-amominu_w.dump
new file mode 100644
index 0000000..7a80790
--- /dev/null
+++ b/test/tests/rv64ua-p-amominu_w.dump
@@ -0,0 +1,125 @@
+
+rv64ua-p-amominu_w: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <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>
+
+0000000080000120 <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>
+
+0000000080000130 <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>
+
+0000000080000148 <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>
+
+000000008000015c <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
+
+0000000080000170 <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/tests/rv64ua-p-amominu_w.elf b/test/tests/rv64ua-p-amominu_w.elf
new file mode 100644
index 0000000..af14db9
--- /dev/null
+++ b/test/tests/rv64ua-p-amominu_w.elf
Binary files differ
diff --git a/test/tests/rv64ua-p-amoor_d.dump b/test/tests/rv64ua-p-amoor_d.dump
new file mode 100644
index 0000000..0248704
--- /dev/null
+++ b/test/tests/rv64ua-p-amoor_d.dump
@@ -0,0 +1,126 @@
+
+rv64ua-p-amoor_d: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <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: 00a6b023 sd a0,0(a3)
+ 80000110: 40b6b72f amoor.d a4,a1,(a3)
+ 80000114: 80000eb7 lui t4,0x80000
+ 80000118: 00200193 li gp,2
+ 8000011c: 03d71e63 bne a4,t4,80000158 <fail>
+
+0000000080000120 <test_3>:
+ 80000120: 0006b783 ld a5,0(a3)
+ 80000124: 80000e93 li t4,-2048
+ 80000128: 00300193 li gp,3
+ 8000012c: 03d79663 bne a5,t4,80000158 <fail>
+
+0000000080000130 <test_4>:
+ 80000130: 00100593 li a1,1
+ 80000134: 40b6b72f amoor.d a4,a1,(a3)
+ 80000138: 80000e93 li t4,-2048
+ 8000013c: 00400193 li gp,4
+ 80000140: 01d71c63 bne a4,t4,80000158 <fail>
+
+0000000080000144 <test_5>:
+ 80000144: 0006b783 ld 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>
+
+0000000080000158 <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
+
+000000008000016c <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/tests/rv64ua-p-amoor_d.elf b/test/tests/rv64ua-p-amoor_d.elf
new file mode 100644
index 0000000..a00b97c
--- /dev/null
+++ b/test/tests/rv64ua-p-amoor_d.elf
Binary files differ
diff --git a/test/tests/rv64ua-p-amoor_w.dump b/test/tests/rv64ua-p-amoor_w.dump
new file mode 100644
index 0000000..d20d20a
--- /dev/null
+++ b/test/tests/rv64ua-p-amoor_w.dump
@@ -0,0 +1,126 @@
+
+rv64ua-p-amoor_w: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <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>
+
+0000000080000120 <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>
+
+0000000080000130 <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>
+
+0000000080000144 <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>
+
+0000000080000158 <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
+
+000000008000016c <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/tests/rv64ua-p-amoor_w.elf b/test/tests/rv64ua-p-amoor_w.elf
new file mode 100644
index 0000000..e35c29f
--- /dev/null
+++ b/test/tests/rv64ua-p-amoor_w.elf
Binary files differ
diff --git a/test/tests/rv64ua-p-amoswap_d.dump b/test/tests/rv64ua-p-amoswap_d.dump
new file mode 100644
index 0000000..f61e23b
--- /dev/null
+++ b/test/tests/rv64ua-p-amoswap_d.dump
@@ -0,0 +1,124 @@
+
+rv64ua-p-amoswap_d: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <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: 00a6b023 sd a0,0(a3)
+ 80000110: 08b6b72f amoswap.d a4,a1,(a3)
+ 80000114: 80000eb7 lui t4,0x80000
+ 80000118: 00200193 li gp,2
+ 8000011c: 05d71263 bne a4,t4,80000160 <fail>
+
+0000000080000120 <test_3>:
+ 80000120: 0006b783 ld a5,0(a3)
+ 80000124: 80000e93 li t4,-2048
+ 80000128: 00300193 li gp,3
+ 8000012c: 03d79a63 bne a5,t4,80000160 <fail>
+
+0000000080000130 <test_4>:
+ 80000130: 0010059b addiw a1,zero,1
+ 80000134: 01f59593 slli a1,a1,0x1f
+ 80000138: 08b6b72f amoswap.d a4,a1,(a3)
+ 8000013c: 80000e93 li t4,-2048
+ 80000140: 00400193 li gp,4
+ 80000144: 01d71e63 bne a4,t4,80000160 <fail>
+
+0000000080000148 <test_5>:
+ 80000148: 0006b783 ld a5,0(a3)
+ 8000014c: 00100e9b addiw t4,zero,1
+ 80000150: 01fe9e93 slli t4,t4,0x1f
+ 80000154: 00500193 li gp,5
+ 80000158: 01d79463 bne a5,t4,80000160 <fail>
+ 8000015c: 00301c63 bne zero,gp,80000174 <pass>
+
+0000000080000160 <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
+
+0000000080000174 <pass>:
+ 80000174: 0ff0000f fence
+ 80000178: 00100193 li gp,1
+ 8000017c: 00000073 ecall
+ 80000180: c0001073 unimp
diff --git a/test/tests/rv64ua-p-amoswap_d.elf b/test/tests/rv64ua-p-amoswap_d.elf
new file mode 100644
index 0000000..63d01a7
--- /dev/null
+++ b/test/tests/rv64ua-p-amoswap_d.elf
Binary files differ
diff --git a/test/tests/rv64ua-p-amoswap_w.dump b/test/tests/rv64ua-p-amoswap_w.dump
new file mode 100644
index 0000000..e43f382
--- /dev/null
+++ b/test/tests/rv64ua-p-amoswap_w.dump
@@ -0,0 +1,125 @@
+
+rv64ua-p-amoswap_w: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <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: 05d71063 bne a4,t4,8000015c <fail>
+
+0000000080000120 <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>
+
+0000000080000130 <test_4>:
+ 80000130: 0010059b addiw a1,zero,1
+ 80000134: 01f59593 slli a1,a1,0x1f
+ 80000138: 08b6a72f amoswap.w a4,a1,(a3)
+ 8000013c: 80000e93 li t4,-2048
+ 80000140: 00400193 li gp,4
+ 80000144: 01d71c63 bne a4,t4,8000015c <fail>
+
+0000000080000148 <test_5>:
+ 80000148: 0006a783 lw a5,0(a3)
+ 8000014c: 80000eb7 lui t4,0x80000
+ 80000150: 00500193 li gp,5
+ 80000154: 01d79463 bne a5,t4,8000015c <fail>
+ 80000158: 00301c63 bne zero,gp,80000170 <pass>
+
+000000008000015c <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
+
+0000000080000170 <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/tests/rv64ua-p-amoswap_w.elf b/test/tests/rv64ua-p-amoswap_w.elf
new file mode 100644
index 0000000..011d5e2
--- /dev/null
+++ b/test/tests/rv64ua-p-amoswap_w.elf
Binary files differ
diff --git a/test/tests/rv64ua-p-amoxor_d.dump b/test/tests/rv64ua-p-amoxor_d.dump
new file mode 100644
index 0000000..992a22e
--- /dev/null
+++ b/test/tests/rv64ua-p-amoxor_d.dump
@@ -0,0 +1,155 @@
+
+rv64ua-p-amoxor_d: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <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: 00a6b023 sd a0,0(a3)
+ 80000110: 20b6b72f amoxor.d a4,a1,(a3)
+ 80000114: 80000eb7 lui t4,0x80000
+ 80000118: 00200193 li gp,2
+ 8000011c: 05d71463 bne a4,t4,80000164 <fail>
+
+0000000080000120 <test_3>:
+ 80000120: 0006b783 ld a5,0(a3)
+ 80000124: 80000eb7 lui t4,0x80000
+ 80000128: 800e8e9b addiw t4,t4,-2048
+ 8000012c: 00300193 li gp,3
+ 80000130: 03d79a63 bne a5,t4,80000164 <fail>
+
+0000000080000134 <test_4>:
+ 80000134: 00100593 li a1,1
+ 80000138: 20b6b72f amoxor.d a4,a1,(a3)
+ 8000013c: 80000eb7 lui t4,0x80000
+ 80000140: 800e8e9b addiw t4,t4,-2048
+ 80000144: 00400193 li gp,4
+ 80000148: 01d71e63 bne a4,t4,80000164 <fail>
+
+000000008000014c <test_5>:
+ 8000014c: 0006b783 ld a5,0(a3)
+ 80000150: 80000eb7 lui t4,0x80000
+ 80000154: 801e8e9b addiw t4,t4,-2047
+ 80000158: 00500193 li gp,5
+ 8000015c: 01d79463 bne a5,t4,80000164 <fail>
+ 80000160: 00301c63 bne zero,gp,80000178 <pass>
+
+0000000080000164 <fail>:
+ 80000164: 0ff0000f fence
+ 80000168: 00018063 beqz gp,80000168 <fail+0x4>
+ 8000016c: 00119193 slli gp,gp,0x1
+ 80000170: 0011e193 ori gp,gp,1
+ 80000174: 00000073 ecall
+
+0000000080000178 <pass>:
+ 80000178: 0ff0000f fence
+ 8000017c: 00100193 li gp,1
+ 80000180: 00000073 ecall
+ 80000184: c0001073 unimp
+ 80000188: 0000 unimp
+ 8000018a: 0000 unimp
+ 8000018c: 0000 unimp
+ 8000018e: 0000 unimp
+ 80000190: 0000 unimp
+ 80000192: 0000 unimp
+ 80000194: 0000 unimp
+ 80000196: 0000 unimp
+ 80000198: 0000 unimp
+ 8000019a: 0000 unimp
+ 8000019c: 0000 unimp
+ 8000019e: 0000 unimp
+ 800001a0: 0000 unimp
+ 800001a2: 0000 unimp
+ 800001a4: 0000 unimp
+ 800001a6: 0000 unimp
+ 800001a8: 0000 unimp
+ 800001aa: 0000 unimp
+ 800001ac: 0000 unimp
+ 800001ae: 0000 unimp
+ 800001b0: 0000 unimp
+ 800001b2: 0000 unimp
+ 800001b4: 0000 unimp
+ 800001b6: 0000 unimp
+ 800001b8: 0000 unimp
+ 800001ba: 0000 unimp
+ 800001bc: 0000 unimp
+ 800001be: 0000 unimp
+ 800001c0: 0000 unimp
+ 800001c2: 0000 unimp
diff --git a/test/tests/rv64ua-p-amoxor_d.elf b/test/tests/rv64ua-p-amoxor_d.elf
new file mode 100644
index 0000000..4bec6cc
--- /dev/null
+++ b/test/tests/rv64ua-p-amoxor_d.elf
Binary files differ
diff --git a/test/tests/rv64ua-p-amoxor_w.dump b/test/tests/rv64ua-p-amoxor_w.dump
new file mode 100644
index 0000000..6bca3f6
--- /dev/null
+++ b/test/tests/rv64ua-p-amoxor_w.dump
@@ -0,0 +1,153 @@
+
+rv64ua-p-amoxor_w: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <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: 05d71863 bne a4,t4,8000016c <fail>
+
+0000000080000120 <test_3>:
+ 80000120: 0006a783 lw a5,0(a3)
+ 80000124: 80000eb7 lui t4,0x80000
+ 80000128: 800e8e9b addiw t4,t4,-2048
+ 8000012c: 00300193 li gp,3
+ 80000130: 03d79e63 bne a5,t4,8000016c <fail>
+
+0000000080000134 <test_4>:
+ 80000134: 0030059b addiw a1,zero,3
+ 80000138: 01e59593 slli a1,a1,0x1e
+ 8000013c: 00158593 addi a1,a1,1
+ 80000140: 20b6a72f amoxor.w a4,a1,(a3)
+ 80000144: 80000eb7 lui t4,0x80000
+ 80000148: 800e8e9b addiw t4,t4,-2048
+ 8000014c: 00400193 li gp,4
+ 80000150: 01d71e63 bne a4,t4,8000016c <fail>
+
+0000000080000154 <test_5>:
+ 80000154: 0006a783 lw a5,0(a3)
+ 80000158: c0000eb7 lui t4,0xc0000
+ 8000015c: 801e8e9b addiw t4,t4,-2047
+ 80000160: 00500193 li gp,5
+ 80000164: 01d79463 bne a5,t4,8000016c <fail>
+ 80000168: 00301c63 bne zero,gp,80000180 <pass>
+
+000000008000016c <fail>:
+ 8000016c: 0ff0000f fence
+ 80000170: 00018063 beqz gp,80000170 <fail+0x4>
+ 80000174: 00119193 slli gp,gp,0x1
+ 80000178: 0011e193 ori gp,gp,1
+ 8000017c: 00000073 ecall
+
+0000000080000180 <pass>:
+ 80000180: 0ff0000f fence
+ 80000184: 00100193 li gp,1
+ 80000188: 00000073 ecall
+ 8000018c: c0001073 unimp
+ 80000190: 0000 unimp
+ 80000192: 0000 unimp
+ 80000194: 0000 unimp
+ 80000196: 0000 unimp
+ 80000198: 0000 unimp
+ 8000019a: 0000 unimp
+ 8000019c: 0000 unimp
+ 8000019e: 0000 unimp
+ 800001a0: 0000 unimp
+ 800001a2: 0000 unimp
+ 800001a4: 0000 unimp
+ 800001a6: 0000 unimp
+ 800001a8: 0000 unimp
+ 800001aa: 0000 unimp
+ 800001ac: 0000 unimp
+ 800001ae: 0000 unimp
+ 800001b0: 0000 unimp
+ 800001b2: 0000 unimp
+ 800001b4: 0000 unimp
+ 800001b6: 0000 unimp
+ 800001b8: 0000 unimp
+ 800001ba: 0000 unimp
+ 800001bc: 0000 unimp
+ 800001be: 0000 unimp
+ 800001c0: 0000 unimp
+ 800001c2: 0000 unimp
diff --git a/test/tests/rv64ua-p-amoxor_w.elf b/test/tests/rv64ua-p-amoxor_w.elf
new file mode 100644
index 0000000..22e8ba9
--- /dev/null
+++ b/test/tests/rv64ua-p-amoxor_w.elf
Binary files differ
diff --git a/test/tests/rv64ua-p-lrsc.dump b/test/tests/rv64ua-p-lrsc.dump
new file mode 100644
index 0000000..bcca392
--- /dev/null
+++ b/test/tests/rv64ua-p-lrsc.dump
@@ -0,0 +1,691 @@
+
+rv64ua-p-lrsc: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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>
+
+000000008000011c <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: 09d71a63 bne a4,t4,800001c4 <fail>
+
+0000000080000134 <test_3>:
+ 80000134: 00002517 auipc a0,0x2
+ 80000138: ed450513 addi a0,a0,-300 # 80002008 <foo>
+ 8000013c: 00002597 auipc a1,0x2
+ 80000140: 2d058593 addi a1,a1,720 # 8000240c <fooTest3>
+ 80000144: 1005a5af lr.w a1,(a1)
+ 80000148: 18b5272f sc.w a4,a1,(a0)
+ 8000014c: 00100e93 li t4,1
+ 80000150: 00300193 li gp,3
+ 80000154: 07d71863 bne a4,t4,800001c4 <fail>
+ 80000158: 00002517 auipc a0,0x2
+ 8000015c: eb050513 addi a0,a0,-336 # 80002008 <foo>
+ 80000160: 40000593 li a1,1024
+ 80000164: 00160613 addi a2,a2,1
+ 80000168: 1005272f lr.w a4,(a0)
+ 8000016c: 00c70733 add a4,a4,a2
+ 80000170: 18e5272f sc.w a4,a4,(a0)
+ 80000174: fe071ae3 bnez a4,80000168 <test_3+0x34>
+ 80000178: fff58593 addi a1,a1,-1
+ 8000017c: fe0596e3 bnez a1,80000168 <test_3+0x34>
+ 80000180: 00002517 auipc a0,0x2
+ 80000184: e8450513 addi a0,a0,-380 # 80002004 <barrier>
+ 80000188: 00100593 li a1,1
+ 8000018c: 00b5202f amoadd.w zero,a1,(a0)
+ 80000190: 00052583 lw a1,0(a0)
+ 80000194: fed5cee3 blt a1,a3,80000190 <test_3+0x5c>
+ 80000198: 0ff0000f fence
+
+000000008000019c <test_4>:
+ 8000019c: 00002517 auipc a0,0x2
+ 800001a0: e6c52503 lw a0,-404(a0) # 80002008 <foo>
+ 800001a4: 00969593 slli a1,a3,0x9
+ 800001a8: 40b50533 sub a0,a0,a1
+ 800001ac: fff68693 addi a3,a3,-1
+ 800001b0: fe06dce3 bgez a3,800001a8 <test_4+0xc>
+ 800001b4: 00000e93 li t4,0
+ 800001b8: 00400193 li gp,4
+ 800001bc: 01d51463 bne a0,t4,800001c4 <fail>
+ 800001c0: 00301c63 bne zero,gp,800001d8 <pass>
+
+00000000800001c4 <fail>:
+ 800001c4: 0ff0000f fence
+ 800001c8: 00018063 beqz gp,800001c8 <fail+0x4>
+ 800001cc: 00119193 slli gp,gp,0x1
+ 800001d0: 0011e193 ori gp,gp,1
+ 800001d4: 00000073 ecall
+
+00000000800001d8 <pass>:
+ 800001d8: 0ff0000f fence
+ 800001dc: 00100193 li gp,1
+ 800001e0: 00000073 ecall
+ 800001e4: c0001073 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:
+
+0000000080002000 <begin_signature>:
+ 80002000: 0000 unimp
+ 80002002: 0000 unimp
+
+0000000080002004 <barrier>:
+ 80002004: 0000 unimp
+ 80002006: 0000 unimp
+
+0000000080002008 <foo>:
+ 80002008: 0000 unimp
+ 8000200a: 0000 unimp
+ 8000200c: 0000 unimp
+ 8000200e: 0000 unimp
+ 80002010: 0000 unimp
+ 80002012: 0000 unimp
+ 80002014: 0000 unimp
+ 80002016: 0000 unimp
+ 80002018: 0000 unimp
+ 8000201a: 0000 unimp
+ 8000201c: 0000 unimp
+ 8000201e: 0000 unimp
+ 80002020: 0000 unimp
+ 80002022: 0000 unimp
+ 80002024: 0000 unimp
+ 80002026: 0000 unimp
+ 80002028: 0000 unimp
+ 8000202a: 0000 unimp
+ 8000202c: 0000 unimp
+ 8000202e: 0000 unimp
+ 80002030: 0000 unimp
+ 80002032: 0000 unimp
+ 80002034: 0000 unimp
+ 80002036: 0000 unimp
+ 80002038: 0000 unimp
+ 8000203a: 0000 unimp
+ 8000203c: 0000 unimp
+ 8000203e: 0000 unimp
+ 80002040: 0000 unimp
+ 80002042: 0000 unimp
+ 80002044: 0000 unimp
+ 80002046: 0000 unimp
+ 80002048: 0000 unimp
+ 8000204a: 0000 unimp
+ 8000204c: 0000 unimp
+ 8000204e: 0000 unimp
+ 80002050: 0000 unimp
+ 80002052: 0000 unimp
+ 80002054: 0000 unimp
+ 80002056: 0000 unimp
+ 80002058: 0000 unimp
+ 8000205a: 0000 unimp
+ 8000205c: 0000 unimp
+ 8000205e: 0000 unimp
+ 80002060: 0000 unimp
+ 80002062: 0000 unimp
+ 80002064: 0000 unimp
+ 80002066: 0000 unimp
+ 80002068: 0000 unimp
+ 8000206a: 0000 unimp
+ 8000206c: 0000 unimp
+ 8000206e: 0000 unimp
+ 80002070: 0000 unimp
+ 80002072: 0000 unimp
+ 80002074: 0000 unimp
+ 80002076: 0000 unimp
+ 80002078: 0000 unimp
+ 8000207a: 0000 unimp
+ 8000207c: 0000 unimp
+ 8000207e: 0000 unimp
+ 80002080: 0000 unimp
+ 80002082: 0000 unimp
+ 80002084: 0000 unimp
+ 80002086: 0000 unimp
+ 80002088: 0000 unimp
+ 8000208a: 0000 unimp
+ 8000208c: 0000 unimp
+ 8000208e: 0000 unimp
+ 80002090: 0000 unimp
+ 80002092: 0000 unimp
+ 80002094: 0000 unimp
+ 80002096: 0000 unimp
+ 80002098: 0000 unimp
+ 8000209a: 0000 unimp
+ 8000209c: 0000 unimp
+ 8000209e: 0000 unimp
+ 800020a0: 0000 unimp
+ 800020a2: 0000 unimp
+ 800020a4: 0000 unimp
+ 800020a6: 0000 unimp
+ 800020a8: 0000 unimp
+ 800020aa: 0000 unimp
+ 800020ac: 0000 unimp
+ 800020ae: 0000 unimp
+ 800020b0: 0000 unimp
+ 800020b2: 0000 unimp
+ 800020b4: 0000 unimp
+ 800020b6: 0000 unimp
+ 800020b8: 0000 unimp
+ 800020ba: 0000 unimp
+ 800020bc: 0000 unimp
+ 800020be: 0000 unimp
+ 800020c0: 0000 unimp
+ 800020c2: 0000 unimp
+ 800020c4: 0000 unimp
+ 800020c6: 0000 unimp
+ 800020c8: 0000 unimp
+ 800020ca: 0000 unimp
+ 800020cc: 0000 unimp
+ 800020ce: 0000 unimp
+ 800020d0: 0000 unimp
+ 800020d2: 0000 unimp
+ 800020d4: 0000 unimp
+ 800020d6: 0000 unimp
+ 800020d8: 0000 unimp
+ 800020da: 0000 unimp
+ 800020dc: 0000 unimp
+ 800020de: 0000 unimp
+ 800020e0: 0000 unimp
+ 800020e2: 0000 unimp
+ 800020e4: 0000 unimp
+ 800020e6: 0000 unimp
+ 800020e8: 0000 unimp
+ 800020ea: 0000 unimp
+ 800020ec: 0000 unimp
+ 800020ee: 0000 unimp
+ 800020f0: 0000 unimp
+ 800020f2: 0000 unimp
+ 800020f4: 0000 unimp
+ 800020f6: 0000 unimp
+ 800020f8: 0000 unimp
+ 800020fa: 0000 unimp
+ 800020fc: 0000 unimp
+ 800020fe: 0000 unimp
+ 80002100: 0000 unimp
+ 80002102: 0000 unimp
+ 80002104: 0000 unimp
+ 80002106: 0000 unimp
+ 80002108: 0000 unimp
+ 8000210a: 0000 unimp
+ 8000210c: 0000 unimp
+ 8000210e: 0000 unimp
+ 80002110: 0000 unimp
+ 80002112: 0000 unimp
+ 80002114: 0000 unimp
+ 80002116: 0000 unimp
+ 80002118: 0000 unimp
+ 8000211a: 0000 unimp
+ 8000211c: 0000 unimp
+ 8000211e: 0000 unimp
+ 80002120: 0000 unimp
+ 80002122: 0000 unimp
+ 80002124: 0000 unimp
+ 80002126: 0000 unimp
+ 80002128: 0000 unimp
+ 8000212a: 0000 unimp
+ 8000212c: 0000 unimp
+ 8000212e: 0000 unimp
+ 80002130: 0000 unimp
+ 80002132: 0000 unimp
+ 80002134: 0000 unimp
+ 80002136: 0000 unimp
+ 80002138: 0000 unimp
+ 8000213a: 0000 unimp
+ 8000213c: 0000 unimp
+ 8000213e: 0000 unimp
+ 80002140: 0000 unimp
+ 80002142: 0000 unimp
+ 80002144: 0000 unimp
+ 80002146: 0000 unimp
+ 80002148: 0000 unimp
+ 8000214a: 0000 unimp
+ 8000214c: 0000 unimp
+ 8000214e: 0000 unimp
+ 80002150: 0000 unimp
+ 80002152: 0000 unimp
+ 80002154: 0000 unimp
+ 80002156: 0000 unimp
+ 80002158: 0000 unimp
+ 8000215a: 0000 unimp
+ 8000215c: 0000 unimp
+ 8000215e: 0000 unimp
+ 80002160: 0000 unimp
+ 80002162: 0000 unimp
+ 80002164: 0000 unimp
+ 80002166: 0000 unimp
+ 80002168: 0000 unimp
+ 8000216a: 0000 unimp
+ 8000216c: 0000 unimp
+ 8000216e: 0000 unimp
+ 80002170: 0000 unimp
+ 80002172: 0000 unimp
+ 80002174: 0000 unimp
+ 80002176: 0000 unimp
+ 80002178: 0000 unimp
+ 8000217a: 0000 unimp
+ 8000217c: 0000 unimp
+ 8000217e: 0000 unimp
+ 80002180: 0000 unimp
+ 80002182: 0000 unimp
+ 80002184: 0000 unimp
+ 80002186: 0000 unimp
+ 80002188: 0000 unimp
+ 8000218a: 0000 unimp
+ 8000218c: 0000 unimp
+ 8000218e: 0000 unimp
+ 80002190: 0000 unimp
+ 80002192: 0000 unimp
+ 80002194: 0000 unimp
+ 80002196: 0000 unimp
+ 80002198: 0000 unimp
+ 8000219a: 0000 unimp
+ 8000219c: 0000 unimp
+ 8000219e: 0000 unimp
+ 800021a0: 0000 unimp
+ 800021a2: 0000 unimp
+ 800021a4: 0000 unimp
+ 800021a6: 0000 unimp
+ 800021a8: 0000 unimp
+ 800021aa: 0000 unimp
+ 800021ac: 0000 unimp
+ 800021ae: 0000 unimp
+ 800021b0: 0000 unimp
+ 800021b2: 0000 unimp
+ 800021b4: 0000 unimp
+ 800021b6: 0000 unimp
+ 800021b8: 0000 unimp
+ 800021ba: 0000 unimp
+ 800021bc: 0000 unimp
+ 800021be: 0000 unimp
+ 800021c0: 0000 unimp
+ 800021c2: 0000 unimp
+ 800021c4: 0000 unimp
+ 800021c6: 0000 unimp
+ 800021c8: 0000 unimp
+ 800021ca: 0000 unimp
+ 800021cc: 0000 unimp
+ 800021ce: 0000 unimp
+ 800021d0: 0000 unimp
+ 800021d2: 0000 unimp
+ 800021d4: 0000 unimp
+ 800021d6: 0000 unimp
+ 800021d8: 0000 unimp
+ 800021da: 0000 unimp
+ 800021dc: 0000 unimp
+ 800021de: 0000 unimp
+ 800021e0: 0000 unimp
+ 800021e2: 0000 unimp
+ 800021e4: 0000 unimp
+ 800021e6: 0000 unimp
+ 800021e8: 0000 unimp
+ 800021ea: 0000 unimp
+ 800021ec: 0000 unimp
+ 800021ee: 0000 unimp
+ 800021f0: 0000 unimp
+ 800021f2: 0000 unimp
+ 800021f4: 0000 unimp
+ 800021f6: 0000 unimp
+ 800021f8: 0000 unimp
+ 800021fa: 0000 unimp
+ 800021fc: 0000 unimp
+ 800021fe: 0000 unimp
+ 80002200: 0000 unimp
+ 80002202: 0000 unimp
+ 80002204: 0000 unimp
+ 80002206: 0000 unimp
+ 80002208: 0000 unimp
+ 8000220a: 0000 unimp
+ 8000220c: 0000 unimp
+ 8000220e: 0000 unimp
+ 80002210: 0000 unimp
+ 80002212: 0000 unimp
+ 80002214: 0000 unimp
+ 80002216: 0000 unimp
+ 80002218: 0000 unimp
+ 8000221a: 0000 unimp
+ 8000221c: 0000 unimp
+ 8000221e: 0000 unimp
+ 80002220: 0000 unimp
+ 80002222: 0000 unimp
+ 80002224: 0000 unimp
+ 80002226: 0000 unimp
+ 80002228: 0000 unimp
+ 8000222a: 0000 unimp
+ 8000222c: 0000 unimp
+ 8000222e: 0000 unimp
+ 80002230: 0000 unimp
+ 80002232: 0000 unimp
+ 80002234: 0000 unimp
+ 80002236: 0000 unimp
+ 80002238: 0000 unimp
+ 8000223a: 0000 unimp
+ 8000223c: 0000 unimp
+ 8000223e: 0000 unimp
+ 80002240: 0000 unimp
+ 80002242: 0000 unimp
+ 80002244: 0000 unimp
+ 80002246: 0000 unimp
+ 80002248: 0000 unimp
+ 8000224a: 0000 unimp
+ 8000224c: 0000 unimp
+ 8000224e: 0000 unimp
+ 80002250: 0000 unimp
+ 80002252: 0000 unimp
+ 80002254: 0000 unimp
+ 80002256: 0000 unimp
+ 80002258: 0000 unimp
+ 8000225a: 0000 unimp
+ 8000225c: 0000 unimp
+ 8000225e: 0000 unimp
+ 80002260: 0000 unimp
+ 80002262: 0000 unimp
+ 80002264: 0000 unimp
+ 80002266: 0000 unimp
+ 80002268: 0000 unimp
+ 8000226a: 0000 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
+
+000000008000240c <fooTest3>:
+ 8000240c: 0000 unimp
+ 8000240e: 0000 unimp
diff --git a/test/tests/rv64ua-p-lrsc.elf b/test/tests/rv64ua-p-lrsc.elf
new file mode 100755
index 0000000..0fb5b44
--- /dev/null
+++ b/test/tests/rv64ua-p-lrsc.elf
Binary files differ
diff --git a/test/tests/rv64ua-v-amoadd_d.dump b/test/tests/rv64ua-v-amoadd_d.dump
new file mode 100644
index 0000000..6e2c614
--- /dev/null
+++ b/test/tests/rv64ua-v-amoadd_d.dump
@@ -0,0 +1,874 @@
+
+rv64ua-v-amoadd_d: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <handle_reset>:
+ 8000000c: 00000297 auipc t0,0x0
+ 80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+ 80000014: 30529073 csrw mtvec,t0
+ 80000018: 00009117 auipc sp,0x9
+ 8000001c: 6b810113 addi sp,sp,1720 # 800096d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00002617 auipc a2,0x2
+ 80002318: cec60613 addi a2,a2,-788 # 80004000 <pt>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00006797 auipc a5,0x6
+ 80002334: 4b878793 addi a5,a5,1208 # 800087e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00006717 auipc a4,0x6
+ 80002348: 49c70713 addi a4,a4,1180 # 800087e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00006897 auipc a7,0x6
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800087e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00006797 auipc a5,0x6
+ 80002384: 07078793 addi a5,a5,112 # 800083f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf7810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00006797 auipc a5,0x6
+ 80002448: 3807be23 sd zero,924(a5) # 800087e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00000697 auipc a3,0x0
+ 8000245c: 70068693 addi a3,a3,1792 # 80002b58 <pass+0x10>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00000617 auipc a2,0x0
+ 800024b8: 73460613 addi a2,a2,1844 # 80002be8 <pass+0xa0>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00000617 auipc a2,0x0
+ 80002508: 6fc60613 addi a2,a2,1788 # 80002c00 <pass+0xb8>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00000697 auipc a3,0x0
+ 80002558: 64c68693 addi a3,a3,1612 # 80002ba0 <pass+0x58>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00000697 auipc a3,0x0
+ 80002674: 66868693 addi a3,a3,1640 # 80002cd8 <pass+0x190>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00000617 auipc a2,0x0
+ 800026cc: 5e860613 addi a2,a2,1512 # 80002cb0 <pass+0x168>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00006d17 auipc s10,0x6
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800083f0 <user_mapping>
+ 80002724: 00002b97 auipc s7,0x2
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80004000 <pt>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00006a17 auipc s4,0x6
+ 80002738: 0aca0a13 addi s4,s4,172 # 800087e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00006717 auipc a4,0x6
+ 8000274c: 08f73c23 sd a5,152(a4) # 800087e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00006717 auipc a4,0x6
+ 800027d4: 00f73823 sd a5,16(a4) # 800087e0 <freelist_tail>
+ 800027d8: 00006717 auipc a4,0x6
+ 800027dc: 00f73823 sd a5,16(a4) # 800087e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 51c68693 addi a3,a3,1308 # 80002d08 <pass+0x1c0>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 43c68693 addi a3,a3,1084 # 80002c78 <pass+0x130>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 3cc68693 addi a3,a3,972 # 80002c40 <pass+0xf8>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00002697 auipc a3,0x2
+ 800028e0: 72468693 addi a3,a3,1828 # 80005000 <pt+0x1000>
+ 800028e4: 00003717 auipc a4,0x3
+ 800028e8: 71c70713 addi a4,a4,1820 # 80006000 <pt+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00004797 auipc a5,0x4
+ 800028f8: 70c78793 addi a5,a5,1804 # 80007000 <pt+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00001897 auipc a7,0x1
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80004000 <pt>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00002697 auipc a3,0x2
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80004ff8 <pt+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00001617 auipc a2,0x1
+ 80002938: 6cc60613 addi a2,a2,1740 # 80004000 <pt>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00004697 auipc a3,0x4
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80006ff8 <pt+0x2ff8>
+ 8000294c: 00002717 auipc a4,0x2
+ 80002950: 6af73a23 sd a5,1716(a4) # 80005000 <pt+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00005697 auipc a3,0x5
+ 800029c0: 64468693 addi a3,a3,1604 # 80008000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00006617 auipc a2,0x6
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800087e8 <freelist_head>
+ 800029d4: 00006797 auipc a5,0x6
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800087e0 <freelist_tail>
+ 800029dc: 00006317 auipc t1,0x6
+ 800029e0: a1430313 addi t1,t1,-1516 # 800083f0 <user_mapping>
+ 800029e4: 03e00793 li a5,62
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00006797 auipc a5,0x6
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800083e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 0f6267b7 lui a5,0xf626
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: 79178793 addi a5,a5,1937 # f626791 <_start-0x709d986f>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 80000537 lui a0,0x80000
+ 80002acc: 80000593 li a1,-2048
+ 80002ad0: 00000697 auipc a3,0x0
+ 80002ad4: 53068693 addi a3,a3,1328 # 80003000 <begin_signature>
+ 80002ad8: 00a6b023 sd a0,0(a3)
+ 80002adc: 00b6b72f amoadd.d a4,a1,(a3)
+ 80002ae0: 80000eb7 lui t4,0x80000
+ 80002ae4: 00200193 li gp,2
+ 80002ae8: 05d71863 bne a4,t4,80002b38 <fail>
+
+0000000080002aec <test_3>:
+ 80002aec: 0006b783 ld a5,0(a3)
+ 80002af0: fff00e9b addiw t4,zero,-1
+ 80002af4: 01fe9e93 slli t4,t4,0x1f
+ 80002af8: 800e8e93 addi t4,t4,-2048 # ffffffff7ffff800 <_end+0xfffffffeffff7010>
+ 80002afc: 00300193 li gp,3
+ 80002b00: 03d79c63 bne a5,t4,80002b38 <fail>
+
+0000000080002b04 <test_4>:
+ 80002b04: 00b6b72f amoadd.d a4,a1,(a3)
+ 80002b08: fff00e9b addiw t4,zero,-1
+ 80002b0c: 01fe9e93 slli t4,t4,0x1f
+ 80002b10: 800e8e93 addi t4,t4,-2048
+ 80002b14: 00400193 li gp,4
+ 80002b18: 03d71063 bne a4,t4,80002b38 <fail>
+
+0000000080002b1c <test_5>:
+ 80002b1c: 0006b783 ld a5,0(a3)
+ 80002b20: fff80eb7 lui t4,0xfff80
+ 80002b24: fffe8e9b addiw t4,t4,-1
+ 80002b28: 00ce9e93 slli t4,t4,0xc
+ 80002b2c: 00500193 li gp,5
+ 80002b30: 01d79463 bne a5,t4,80002b38 <fail>
+ 80002b34: 00301a63 bne zero,gp,80002b48 <pass>
+
+0000000080002b38 <fail>:
+ 80002b38: 00119513 slli a0,gp,0x1
+ 80002b3c: 00050063 beqz a0,80002b3c <fail+0x4>
+ 80002b40: 00156513 ori a0,a0,1
+ 80002b44: 00000073 ecall
+
+0000000080002b48 <pass>:
+ 80002b48: 00100513 li a0,1
+ 80002b4c: 00000073 ecall
+ 80002b50: c0001073 unimp
diff --git a/test/tests/rv64ua-v-amoadd_d.elf b/test/tests/rv64ua-v-amoadd_d.elf
new file mode 100644
index 0000000..655f27c
--- /dev/null
+++ b/test/tests/rv64ua-v-amoadd_d.elf
Binary files differ
diff --git a/test/tests/rv64ua-v-amoadd_w.dump b/test/tests/rv64ua-v-amoadd_w.dump
new file mode 100644
index 0000000..b8ca9c8
--- /dev/null
+++ b/test/tests/rv64ua-v-amoadd_w.dump
@@ -0,0 +1,871 @@
+
+rv64ua-v-amoadd_w: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <handle_reset>:
+ 8000000c: 00000297 auipc t0,0x0
+ 80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+ 80000014: 30529073 csrw mtvec,t0
+ 80000018: 00009117 auipc sp,0x9
+ 8000001c: 6b810113 addi sp,sp,1720 # 800096d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00002617 auipc a2,0x2
+ 80002318: cec60613 addi a2,a2,-788 # 80004000 <pt>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00006797 auipc a5,0x6
+ 80002334: 4b878793 addi a5,a5,1208 # 800087e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00006717 auipc a4,0x6
+ 80002348: 49c70713 addi a4,a4,1180 # 800087e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00006897 auipc a7,0x6
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800087e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00006797 auipc a5,0x6
+ 80002384: 07078793 addi a5,a5,112 # 800083f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf7810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00006797 auipc a5,0x6
+ 80002448: 3807be23 sd zero,924(a5) # 800087e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00000697 auipc a3,0x0
+ 8000245c: 6f068693 addi a3,a3,1776 # 80002b48 <pass+0xc>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00000617 auipc a2,0x0
+ 800024b8: 72460613 addi a2,a2,1828 # 80002bd8 <pass+0x9c>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00000617 auipc a2,0x0
+ 80002508: 6ec60613 addi a2,a2,1772 # 80002bf0 <pass+0xb4>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00000697 auipc a3,0x0
+ 80002558: 63c68693 addi a3,a3,1596 # 80002b90 <pass+0x54>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00000697 auipc a3,0x0
+ 80002674: 65868693 addi a3,a3,1624 # 80002cc8 <pass+0x18c>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00000617 auipc a2,0x0
+ 800026cc: 5d860613 addi a2,a2,1496 # 80002ca0 <pass+0x164>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00006d17 auipc s10,0x6
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800083f0 <user_mapping>
+ 80002724: 00002b97 auipc s7,0x2
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80004000 <pt>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00006a17 auipc s4,0x6
+ 80002738: 0aca0a13 addi s4,s4,172 # 800087e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00006717 auipc a4,0x6
+ 8000274c: 08f73c23 sd a5,152(a4) # 800087e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00006717 auipc a4,0x6
+ 800027d4: 00f73823 sd a5,16(a4) # 800087e0 <freelist_tail>
+ 800027d8: 00006717 auipc a4,0x6
+ 800027dc: 00f73823 sd a5,16(a4) # 800087e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 50c68693 addi a3,a3,1292 # 80002cf8 <pass+0x1bc>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 42c68693 addi a3,a3,1068 # 80002c68 <pass+0x12c>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 3bc68693 addi a3,a3,956 # 80002c30 <pass+0xf4>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00002697 auipc a3,0x2
+ 800028e0: 72468693 addi a3,a3,1828 # 80005000 <pt+0x1000>
+ 800028e4: 00003717 auipc a4,0x3
+ 800028e8: 71c70713 addi a4,a4,1820 # 80006000 <pt+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00004797 auipc a5,0x4
+ 800028f8: 70c78793 addi a5,a5,1804 # 80007000 <pt+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00001897 auipc a7,0x1
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80004000 <pt>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00002697 auipc a3,0x2
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80004ff8 <pt+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00001617 auipc a2,0x1
+ 80002938: 6cc60613 addi a2,a2,1740 # 80004000 <pt>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00004697 auipc a3,0x4
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80006ff8 <pt+0x2ff8>
+ 8000294c: 00002717 auipc a4,0x2
+ 80002950: 6af73a23 sd a5,1716(a4) # 80005000 <pt+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00005697 auipc a3,0x5
+ 800029c0: 64468693 addi a3,a3,1604 # 80008000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00006617 auipc a2,0x6
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800087e8 <freelist_head>
+ 800029d4: 00006797 auipc a5,0x6
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800087e0 <freelist_tail>
+ 800029dc: 00006317 auipc t1,0x6
+ 800029e0: a1430313 addi t1,t1,-1516 # 800083f0 <user_mapping>
+ 800029e4: 00100793 li a5,1
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00006797 auipc a5,0x6
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800083e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 0806d7b7 lui a5,0x806d
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: 4f578793 addi a5,a5,1269 # 806d4f5 <_start-0x77f92b0b>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 80000537 lui a0,0x80000
+ 80002acc: 80000593 li a1,-2048
+ 80002ad0: 00000697 auipc a3,0x0
+ 80002ad4: 53068693 addi a3,a3,1328 # 80003000 <begin_signature>
+ 80002ad8: 00a6a023 sw a0,0(a3)
+ 80002adc: 00b6a72f amoadd.w a4,a1,(a3)
+ 80002ae0: 80000eb7 lui t4,0x80000
+ 80002ae4: 00200193 li gp,2
+ 80002ae8: 05d71263 bne a4,t4,80002b2c <fail>
+
+0000000080002aec <test_3>:
+ 80002aec: 0006a783 lw a5,0(a3)
+ 80002af0: 80000eb7 lui t4,0x80000
+ 80002af4: 800e8e9b addiw t4,t4,-2048
+ 80002af8: 00300193 li gp,3
+ 80002afc: 03d79863 bne a5,t4,80002b2c <fail>
+
+0000000080002b00 <test_4>:
+ 80002b00: 800005b7 lui a1,0x80000
+ 80002b04: 00b6a72f amoadd.w a4,a1,(a3)
+ 80002b08: 80000eb7 lui t4,0x80000
+ 80002b0c: 800e8e9b addiw t4,t4,-2048
+ 80002b10: 00400193 li gp,4
+ 80002b14: 01d71c63 bne a4,t4,80002b2c <fail>
+
+0000000080002b18 <test_5>:
+ 80002b18: 0006a783 lw a5,0(a3)
+ 80002b1c: 80000e93 li t4,-2048
+ 80002b20: 00500193 li gp,5
+ 80002b24: 01d79463 bne a5,t4,80002b2c <fail>
+ 80002b28: 00301a63 bne zero,gp,80002b3c <pass>
+
+0000000080002b2c <fail>:
+ 80002b2c: 00119513 slli a0,gp,0x1
+ 80002b30: 00050063 beqz a0,80002b30 <fail+0x4>
+ 80002b34: 00156513 ori a0,a0,1
+ 80002b38: 00000073 ecall
+
+0000000080002b3c <pass>:
+ 80002b3c: 00100513 li a0,1
+ 80002b40: 00000073 ecall
+ 80002b44: c0001073 unimp
diff --git a/test/tests/rv64ua-v-amoadd_w.elf b/test/tests/rv64ua-v-amoadd_w.elf
new file mode 100644
index 0000000..32d6c1a
--- /dev/null
+++ b/test/tests/rv64ua-v-amoadd_w.elf
Binary files differ
diff --git a/test/tests/rv64ua-v-amoand_d.dump b/test/tests/rv64ua-v-amoand_d.dump
new file mode 100644
index 0000000..89e4722
--- /dev/null
+++ b/test/tests/rv64ua-v-amoand_d.dump
@@ -0,0 +1,871 @@
+
+rv64ua-v-amoand_d: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <handle_reset>:
+ 8000000c: 00000297 auipc t0,0x0
+ 80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+ 80000014: 30529073 csrw mtvec,t0
+ 80000018: 00009117 auipc sp,0x9
+ 8000001c: 6b810113 addi sp,sp,1720 # 800096d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00002617 auipc a2,0x2
+ 80002318: cec60613 addi a2,a2,-788 # 80004000 <pt>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00006797 auipc a5,0x6
+ 80002334: 4b878793 addi a5,a5,1208 # 800087e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00006717 auipc a4,0x6
+ 80002348: 49c70713 addi a4,a4,1180 # 800087e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00006897 auipc a7,0x6
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800087e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00006797 auipc a5,0x6
+ 80002384: 07078793 addi a5,a5,112 # 800083f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf7810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00006797 auipc a5,0x6
+ 80002448: 3807be23 sd zero,924(a5) # 800087e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00000697 auipc a3,0x0
+ 8000245c: 6f068693 addi a3,a3,1776 # 80002b48 <pass+0xc>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00000617 auipc a2,0x0
+ 800024b8: 72460613 addi a2,a2,1828 # 80002bd8 <pass+0x9c>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00000617 auipc a2,0x0
+ 80002508: 6ec60613 addi a2,a2,1772 # 80002bf0 <pass+0xb4>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00000697 auipc a3,0x0
+ 80002558: 63c68693 addi a3,a3,1596 # 80002b90 <pass+0x54>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00000697 auipc a3,0x0
+ 80002674: 65868693 addi a3,a3,1624 # 80002cc8 <pass+0x18c>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00000617 auipc a2,0x0
+ 800026cc: 5d860613 addi a2,a2,1496 # 80002ca0 <pass+0x164>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00006d17 auipc s10,0x6
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800083f0 <user_mapping>
+ 80002724: 00002b97 auipc s7,0x2
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80004000 <pt>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00006a17 auipc s4,0x6
+ 80002738: 0aca0a13 addi s4,s4,172 # 800087e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00006717 auipc a4,0x6
+ 8000274c: 08f73c23 sd a5,152(a4) # 800087e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00006717 auipc a4,0x6
+ 800027d4: 00f73823 sd a5,16(a4) # 800087e0 <freelist_tail>
+ 800027d8: 00006717 auipc a4,0x6
+ 800027dc: 00f73823 sd a5,16(a4) # 800087e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 50c68693 addi a3,a3,1292 # 80002cf8 <pass+0x1bc>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 42c68693 addi a3,a3,1068 # 80002c68 <pass+0x12c>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 3bc68693 addi a3,a3,956 # 80002c30 <pass+0xf4>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00002697 auipc a3,0x2
+ 800028e0: 72468693 addi a3,a3,1828 # 80005000 <pt+0x1000>
+ 800028e4: 00003717 auipc a4,0x3
+ 800028e8: 71c70713 addi a4,a4,1820 # 80006000 <pt+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00004797 auipc a5,0x4
+ 800028f8: 70c78793 addi a5,a5,1804 # 80007000 <pt+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00001897 auipc a7,0x1
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80004000 <pt>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00002697 auipc a3,0x2
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80004ff8 <pt+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00001617 auipc a2,0x1
+ 80002938: 6cc60613 addi a2,a2,1740 # 80004000 <pt>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00004697 auipc a3,0x4
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80006ff8 <pt+0x2ff8>
+ 8000294c: 00002717 auipc a4,0x2
+ 80002950: 6af73a23 sd a5,1716(a4) # 80005000 <pt+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00005697 auipc a3,0x5
+ 800029c0: 64468693 addi a3,a3,1604 # 80008000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00006617 auipc a2,0x6
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800087e8 <freelist_head>
+ 800029d4: 00006797 auipc a5,0x6
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800087e0 <freelist_tail>
+ 800029dc: 00006317 auipc t1,0x6
+ 800029e0: a1430313 addi t1,t1,-1516 # 800083f0 <user_mapping>
+ 800029e4: 02800793 li a5,40
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00006797 auipc a5,0x6
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800083e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 02f8b7b7 lui a5,0x2f8b
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: 4c878793 addi a5,a5,1224 # 2f8b4c8 <_start-0x7d074b38>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 80000537 lui a0,0x80000
+ 80002acc: 80000593 li a1,-2048
+ 80002ad0: 00000697 auipc a3,0x0
+ 80002ad4: 53068693 addi a3,a3,1328 # 80003000 <begin_signature>
+ 80002ad8: 00a6b023 sd a0,0(a3)
+ 80002adc: 60b6b72f amoand.d a4,a1,(a3)
+ 80002ae0: 80000eb7 lui t4,0x80000
+ 80002ae4: 00200193 li gp,2
+ 80002ae8: 05d71263 bne a4,t4,80002b2c <fail>
+
+0000000080002aec <test_3>:
+ 80002aec: 0006b783 ld a5,0(a3)
+ 80002af0: 80000eb7 lui t4,0x80000
+ 80002af4: 00300193 li gp,3
+ 80002af8: 03d79a63 bne a5,t4,80002b2c <fail>
+
+0000000080002afc <test_4>:
+ 80002afc: 0010059b addiw a1,zero,1
+ 80002b00: 01f59593 slli a1,a1,0x1f
+ 80002b04: 60b6b72f amoand.d a4,a1,(a3)
+ 80002b08: 80000eb7 lui t4,0x80000
+ 80002b0c: 00400193 li gp,4
+ 80002b10: 01d71e63 bne a4,t4,80002b2c <fail>
+
+0000000080002b14 <test_5>:
+ 80002b14: 0006b783 ld a5,0(a3)
+ 80002b18: 00100e9b addiw t4,zero,1
+ 80002b1c: 01fe9e93 slli t4,t4,0x1f
+ 80002b20: 00500193 li gp,5
+ 80002b24: 01d79463 bne a5,t4,80002b2c <fail>
+ 80002b28: 00301a63 bne zero,gp,80002b3c <pass>
+
+0000000080002b2c <fail>:
+ 80002b2c: 00119513 slli a0,gp,0x1
+ 80002b30: 00050063 beqz a0,80002b30 <fail+0x4>
+ 80002b34: 00156513 ori a0,a0,1
+ 80002b38: 00000073 ecall
+
+0000000080002b3c <pass>:
+ 80002b3c: 00100513 li a0,1
+ 80002b40: 00000073 ecall
+ 80002b44: c0001073 unimp
diff --git a/test/tests/rv64ua-v-amoand_d.elf b/test/tests/rv64ua-v-amoand_d.elf
new file mode 100644
index 0000000..ae0fa7c
--- /dev/null
+++ b/test/tests/rv64ua-v-amoand_d.elf
Binary files differ
diff --git a/test/tests/rv64ua-v-amoand_w.dump b/test/tests/rv64ua-v-amoand_w.dump
new file mode 100644
index 0000000..0fdbc13
--- /dev/null
+++ b/test/tests/rv64ua-v-amoand_w.dump
@@ -0,0 +1,870 @@
+
+rv64ua-v-amoand_w: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <handle_reset>:
+ 8000000c: 00000297 auipc t0,0x0
+ 80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+ 80000014: 30529073 csrw mtvec,t0
+ 80000018: 00009117 auipc sp,0x9
+ 8000001c: 6b810113 addi sp,sp,1720 # 800096d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00002617 auipc a2,0x2
+ 80002318: cec60613 addi a2,a2,-788 # 80004000 <pt>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00006797 auipc a5,0x6
+ 80002334: 4b878793 addi a5,a5,1208 # 800087e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00006717 auipc a4,0x6
+ 80002348: 49c70713 addi a4,a4,1180 # 800087e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00006897 auipc a7,0x6
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800087e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00006797 auipc a5,0x6
+ 80002384: 07078793 addi a5,a5,112 # 800083f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf7810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00006797 auipc a5,0x6
+ 80002448: 3807be23 sd zero,924(a5) # 800087e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00000697 auipc a3,0x0
+ 8000245c: 6f068693 addi a3,a3,1776 # 80002b48 <pass+0x10>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00000617 auipc a2,0x0
+ 800024b8: 72460613 addi a2,a2,1828 # 80002bd8 <pass+0xa0>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00000617 auipc a2,0x0
+ 80002508: 6ec60613 addi a2,a2,1772 # 80002bf0 <pass+0xb8>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00000697 auipc a3,0x0
+ 80002558: 63c68693 addi a3,a3,1596 # 80002b90 <pass+0x58>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00000697 auipc a3,0x0
+ 80002674: 65868693 addi a3,a3,1624 # 80002cc8 <pass+0x190>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00000617 auipc a2,0x0
+ 800026cc: 5d860613 addi a2,a2,1496 # 80002ca0 <pass+0x168>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00006d17 auipc s10,0x6
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800083f0 <user_mapping>
+ 80002724: 00002b97 auipc s7,0x2
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80004000 <pt>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00006a17 auipc s4,0x6
+ 80002738: 0aca0a13 addi s4,s4,172 # 800087e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00006717 auipc a4,0x6
+ 8000274c: 08f73c23 sd a5,152(a4) # 800087e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00006717 auipc a4,0x6
+ 800027d4: 00f73823 sd a5,16(a4) # 800087e0 <freelist_tail>
+ 800027d8: 00006717 auipc a4,0x6
+ 800027dc: 00f73823 sd a5,16(a4) # 800087e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 50c68693 addi a3,a3,1292 # 80002cf8 <pass+0x1c0>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 42c68693 addi a3,a3,1068 # 80002c68 <pass+0x130>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 3bc68693 addi a3,a3,956 # 80002c30 <pass+0xf8>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00002697 auipc a3,0x2
+ 800028e0: 72468693 addi a3,a3,1828 # 80005000 <pt+0x1000>
+ 800028e4: 00003717 auipc a4,0x3
+ 800028e8: 71c70713 addi a4,a4,1820 # 80006000 <pt+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00004797 auipc a5,0x4
+ 800028f8: 70c78793 addi a5,a5,1804 # 80007000 <pt+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00001897 auipc a7,0x1
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80004000 <pt>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00002697 auipc a3,0x2
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80004ff8 <pt+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00001617 auipc a2,0x1
+ 80002938: 6cc60613 addi a2,a2,1740 # 80004000 <pt>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00004697 auipc a3,0x4
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80006ff8 <pt+0x2ff8>
+ 8000294c: 00002717 auipc a4,0x2
+ 80002950: 6af73a23 sd a5,1716(a4) # 80005000 <pt+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00005697 auipc a3,0x5
+ 800029c0: 64468693 addi a3,a3,1604 # 80008000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00006617 auipc a2,0x6
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800087e8 <freelist_head>
+ 800029d4: 00006797 auipc a5,0x6
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800087e0 <freelist_tail>
+ 800029dc: 00006317 auipc t1,0x6
+ 800029e0: a1430313 addi t1,t1,-1516 # 800083f0 <user_mapping>
+ 800029e4: 00900793 li a5,9
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00006797 auipc a5,0x6
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800083e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 068a27b7 lui a5,0x68a2
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: d4878793 addi a5,a5,-696 # 68a1d48 <_start-0x7975e2b8>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 80000537 lui a0,0x80000
+ 80002acc: 80000593 li a1,-2048
+ 80002ad0: 00000697 auipc a3,0x0
+ 80002ad4: 53068693 addi a3,a3,1328 # 80003000 <begin_signature>
+ 80002ad8: 00a6a023 sw a0,0(a3)
+ 80002adc: 60b6a72f amoand.w a4,a1,(a3)
+ 80002ae0: 80000eb7 lui t4,0x80000
+ 80002ae4: 00200193 li gp,2
+ 80002ae8: 05d71063 bne a4,t4,80002b28 <fail>
+
+0000000080002aec <test_3>:
+ 80002aec: 0006a783 lw a5,0(a3)
+ 80002af0: 80000eb7 lui t4,0x80000
+ 80002af4: 00300193 li gp,3
+ 80002af8: 03d79863 bne a5,t4,80002b28 <fail>
+
+0000000080002afc <test_4>:
+ 80002afc: 0010059b addiw a1,zero,1
+ 80002b00: 01f59593 slli a1,a1,0x1f
+ 80002b04: 60b6a72f amoand.w a4,a1,(a3)
+ 80002b08: 80000eb7 lui t4,0x80000
+ 80002b0c: 00400193 li gp,4
+ 80002b10: 01d71c63 bne a4,t4,80002b28 <fail>
+
+0000000080002b14 <test_5>:
+ 80002b14: 0006a783 lw a5,0(a3)
+ 80002b18: 80000eb7 lui t4,0x80000
+ 80002b1c: 00500193 li gp,5
+ 80002b20: 01d79463 bne a5,t4,80002b28 <fail>
+ 80002b24: 00301a63 bne zero,gp,80002b38 <pass>
+
+0000000080002b28 <fail>:
+ 80002b28: 00119513 slli a0,gp,0x1
+ 80002b2c: 00050063 beqz a0,80002b2c <fail+0x4>
+ 80002b30: 00156513 ori a0,a0,1
+ 80002b34: 00000073 ecall
+
+0000000080002b38 <pass>:
+ 80002b38: 00100513 li a0,1
+ 80002b3c: 00000073 ecall
+ 80002b40: c0001073 unimp
diff --git a/test/tests/rv64ua-v-amoand_w.elf b/test/tests/rv64ua-v-amoand_w.elf
new file mode 100644
index 0000000..97e45f4
--- /dev/null
+++ b/test/tests/rv64ua-v-amoand_w.elf
Binary files differ
diff --git a/test/tests/rv64ua-v-amomax_d.dump b/test/tests/rv64ua-v-amomax_d.dump
new file mode 100644
index 0000000..d69d15d
--- /dev/null
+++ b/test/tests/rv64ua-v-amomax_d.dump
@@ -0,0 +1,870 @@
+
+rv64ua-v-amomax_d: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <handle_reset>:
+ 8000000c: 00000297 auipc t0,0x0
+ 80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+ 80000014: 30529073 csrw mtvec,t0
+ 80000018: 00009117 auipc sp,0x9
+ 8000001c: 6b810113 addi sp,sp,1720 # 800096d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00002617 auipc a2,0x2
+ 80002318: cec60613 addi a2,a2,-788 # 80004000 <pt>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00006797 auipc a5,0x6
+ 80002334: 4b878793 addi a5,a5,1208 # 800087e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00006717 auipc a4,0x6
+ 80002348: 49c70713 addi a4,a4,1180 # 800087e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00006897 auipc a7,0x6
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800087e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00006797 auipc a5,0x6
+ 80002384: 07078793 addi a5,a5,112 # 800083f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf7810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00006797 auipc a5,0x6
+ 80002448: 3807be23 sd zero,924(a5) # 800087e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00000697 auipc a3,0x0
+ 8000245c: 6f068693 addi a3,a3,1776 # 80002b48 <pass+0x10>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00000617 auipc a2,0x0
+ 800024b8: 72460613 addi a2,a2,1828 # 80002bd8 <pass+0xa0>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00000617 auipc a2,0x0
+ 80002508: 6ec60613 addi a2,a2,1772 # 80002bf0 <pass+0xb8>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00000697 auipc a3,0x0
+ 80002558: 63c68693 addi a3,a3,1596 # 80002b90 <pass+0x58>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00000697 auipc a3,0x0
+ 80002674: 65868693 addi a3,a3,1624 # 80002cc8 <pass+0x190>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00000617 auipc a2,0x0
+ 800026cc: 5d860613 addi a2,a2,1496 # 80002ca0 <pass+0x168>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00006d17 auipc s10,0x6
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800083f0 <user_mapping>
+ 80002724: 00002b97 auipc s7,0x2
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80004000 <pt>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00006a17 auipc s4,0x6
+ 80002738: 0aca0a13 addi s4,s4,172 # 800087e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00006717 auipc a4,0x6
+ 8000274c: 08f73c23 sd a5,152(a4) # 800087e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00006717 auipc a4,0x6
+ 800027d4: 00f73823 sd a5,16(a4) # 800087e0 <freelist_tail>
+ 800027d8: 00006717 auipc a4,0x6
+ 800027dc: 00f73823 sd a5,16(a4) # 800087e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 50c68693 addi a3,a3,1292 # 80002cf8 <pass+0x1c0>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 42c68693 addi a3,a3,1068 # 80002c68 <pass+0x130>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 3bc68693 addi a3,a3,956 # 80002c30 <pass+0xf8>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00002697 auipc a3,0x2
+ 800028e0: 72468693 addi a3,a3,1828 # 80005000 <pt+0x1000>
+ 800028e4: 00003717 auipc a4,0x3
+ 800028e8: 71c70713 addi a4,a4,1820 # 80006000 <pt+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00004797 auipc a5,0x4
+ 800028f8: 70c78793 addi a5,a5,1804 # 80007000 <pt+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00001897 auipc a7,0x1
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80004000 <pt>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00002697 auipc a3,0x2
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80004ff8 <pt+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00001617 auipc a2,0x1
+ 80002938: 6cc60613 addi a2,a2,1740 # 80004000 <pt>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00004697 auipc a3,0x4
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80006ff8 <pt+0x2ff8>
+ 8000294c: 00002717 auipc a4,0x2
+ 80002950: 6af73a23 sd a5,1716(a4) # 80005000 <pt+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00005697 auipc a3,0x5
+ 800029c0: 64468693 addi a3,a3,1604 # 80008000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00006617 auipc a2,0x6
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800087e8 <freelist_head>
+ 800029d4: 00006797 auipc a5,0x6
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800087e0 <freelist_tail>
+ 800029dc: 00006317 auipc t1,0x6
+ 800029e0: a1430313 addi t1,t1,-1516 # 800083f0 <user_mapping>
+ 800029e4: 03c00793 li a5,60
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00006797 auipc a5,0x6
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800083e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 09d2d7b7 lui a5,0x9d2d
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: 6b578793 addi a5,a5,1717 # 9d2d6b5 <_start-0x762d294b>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 80000537 lui a0,0x80000
+ 80002acc: 80000593 li a1,-2048
+ 80002ad0: 00000697 auipc a3,0x0
+ 80002ad4: 53068693 addi a3,a3,1328 # 80003000 <begin_signature>
+ 80002ad8: 00a6b023 sd a0,0(a3)
+ 80002adc: a0b6b72f amomax.d a4,a1,(a3)
+ 80002ae0: 80000eb7 lui t4,0x80000
+ 80002ae4: 00200193 li gp,2
+ 80002ae8: 05d71063 bne a4,t4,80002b28 <fail>
+
+0000000080002aec <test_3>:
+ 80002aec: 0006b783 ld a5,0(a3)
+ 80002af0: 80000e93 li t4,-2048
+ 80002af4: 00300193 li gp,3
+ 80002af8: 03d79863 bne a5,t4,80002b28 <fail>
+
+0000000080002afc <test_4>:
+ 80002afc: 00100593 li a1,1
+ 80002b00: 0006b023 sd zero,0(a3)
+ 80002b04: a0b6b72f amomax.d a4,a1,(a3)
+ 80002b08: 00000e93 li t4,0
+ 80002b0c: 00400193 li gp,4
+ 80002b10: 01d71c63 bne a4,t4,80002b28 <fail>
+
+0000000080002b14 <test_5>:
+ 80002b14: 0006b783 ld a5,0(a3)
+ 80002b18: 00100e93 li t4,1
+ 80002b1c: 00500193 li gp,5
+ 80002b20: 01d79463 bne a5,t4,80002b28 <fail>
+ 80002b24: 00301a63 bne zero,gp,80002b38 <pass>
+
+0000000080002b28 <fail>:
+ 80002b28: 00119513 slli a0,gp,0x1
+ 80002b2c: 00050063 beqz a0,80002b2c <fail+0x4>
+ 80002b30: 00156513 ori a0,a0,1
+ 80002b34: 00000073 ecall
+
+0000000080002b38 <pass>:
+ 80002b38: 00100513 li a0,1
+ 80002b3c: 00000073 ecall
+ 80002b40: c0001073 unimp
diff --git a/test/tests/rv64ua-v-amomax_d.elf b/test/tests/rv64ua-v-amomax_d.elf
new file mode 100644
index 0000000..04dfdae
--- /dev/null
+++ b/test/tests/rv64ua-v-amomax_d.elf
Binary files differ
diff --git a/test/tests/rv64ua-v-amomax_w.dump b/test/tests/rv64ua-v-amomax_w.dump
new file mode 100644
index 0000000..eb204ee
--- /dev/null
+++ b/test/tests/rv64ua-v-amomax_w.dump
@@ -0,0 +1,870 @@
+
+rv64ua-v-amomax_w: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <handle_reset>:
+ 8000000c: 00000297 auipc t0,0x0
+ 80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+ 80000014: 30529073 csrw mtvec,t0
+ 80000018: 00009117 auipc sp,0x9
+ 8000001c: 6b810113 addi sp,sp,1720 # 800096d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00002617 auipc a2,0x2
+ 80002318: cec60613 addi a2,a2,-788 # 80004000 <pt>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00006797 auipc a5,0x6
+ 80002334: 4b878793 addi a5,a5,1208 # 800087e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00006717 auipc a4,0x6
+ 80002348: 49c70713 addi a4,a4,1180 # 800087e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00006897 auipc a7,0x6
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800087e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00006797 auipc a5,0x6
+ 80002384: 07078793 addi a5,a5,112 # 800083f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf7810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00006797 auipc a5,0x6
+ 80002448: 3807be23 sd zero,924(a5) # 800087e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00000697 auipc a3,0x0
+ 8000245c: 6f068693 addi a3,a3,1776 # 80002b48 <pass+0x10>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00000617 auipc a2,0x0
+ 800024b8: 72460613 addi a2,a2,1828 # 80002bd8 <pass+0xa0>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00000617 auipc a2,0x0
+ 80002508: 6ec60613 addi a2,a2,1772 # 80002bf0 <pass+0xb8>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00000697 auipc a3,0x0
+ 80002558: 63c68693 addi a3,a3,1596 # 80002b90 <pass+0x58>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00000697 auipc a3,0x0
+ 80002674: 65868693 addi a3,a3,1624 # 80002cc8 <pass+0x190>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00000617 auipc a2,0x0
+ 800026cc: 5d860613 addi a2,a2,1496 # 80002ca0 <pass+0x168>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00006d17 auipc s10,0x6
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800083f0 <user_mapping>
+ 80002724: 00002b97 auipc s7,0x2
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80004000 <pt>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00006a17 auipc s4,0x6
+ 80002738: 0aca0a13 addi s4,s4,172 # 800087e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00006717 auipc a4,0x6
+ 8000274c: 08f73c23 sd a5,152(a4) # 800087e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00006717 auipc a4,0x6
+ 800027d4: 00f73823 sd a5,16(a4) # 800087e0 <freelist_tail>
+ 800027d8: 00006717 auipc a4,0x6
+ 800027dc: 00f73823 sd a5,16(a4) # 800087e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 50c68693 addi a3,a3,1292 # 80002cf8 <pass+0x1c0>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 42c68693 addi a3,a3,1068 # 80002c68 <pass+0x130>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 3bc68693 addi a3,a3,956 # 80002c30 <pass+0xf8>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00002697 auipc a3,0x2
+ 800028e0: 72468693 addi a3,a3,1828 # 80005000 <pt+0x1000>
+ 800028e4: 00003717 auipc a4,0x3
+ 800028e8: 71c70713 addi a4,a4,1820 # 80006000 <pt+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00004797 auipc a5,0x4
+ 800028f8: 70c78793 addi a5,a5,1804 # 80007000 <pt+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00001897 auipc a7,0x1
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80004000 <pt>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00002697 auipc a3,0x2
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80004ff8 <pt+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00001617 auipc a2,0x1
+ 80002938: 6cc60613 addi a2,a2,1740 # 80004000 <pt>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00004697 auipc a3,0x4
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80006ff8 <pt+0x2ff8>
+ 8000294c: 00002717 auipc a4,0x2
+ 80002950: 6af73a23 sd a5,1716(a4) # 80005000 <pt+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00005697 auipc a3,0x5
+ 800029c0: 64468693 addi a3,a3,1604 # 80008000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00006617 auipc a2,0x6
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800087e8 <freelist_head>
+ 800029d4: 00006797 auipc a5,0x6
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800087e0 <freelist_tail>
+ 800029dc: 00006317 auipc t1,0x6
+ 800029e0: a1430313 addi t1,t1,-1516 # 800083f0 <user_mapping>
+ 800029e4: 02700793 li a5,39
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00006797 auipc a5,0x6
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800083e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 06a237b7 lui a5,0x6a23
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: 87378793 addi a5,a5,-1933 # 6a22873 <_start-0x795dd78d>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 80000537 lui a0,0x80000
+ 80002acc: 80000593 li a1,-2048
+ 80002ad0: 00000697 auipc a3,0x0
+ 80002ad4: 53068693 addi a3,a3,1328 # 80003000 <begin_signature>
+ 80002ad8: 00a6a023 sw a0,0(a3)
+ 80002adc: a0b6a72f amomax.w a4,a1,(a3)
+ 80002ae0: 80000eb7 lui t4,0x80000
+ 80002ae4: 00200193 li gp,2
+ 80002ae8: 05d71063 bne a4,t4,80002b28 <fail>
+
+0000000080002aec <test_3>:
+ 80002aec: 0006a783 lw a5,0(a3)
+ 80002af0: 80000e93 li t4,-2048
+ 80002af4: 00300193 li gp,3
+ 80002af8: 03d79863 bne a5,t4,80002b28 <fail>
+
+0000000080002afc <test_4>:
+ 80002afc: 00100593 li a1,1
+ 80002b00: 0006a023 sw zero,0(a3)
+ 80002b04: a0b6a72f amomax.w a4,a1,(a3)
+ 80002b08: 00000e93 li t4,0
+ 80002b0c: 00400193 li gp,4
+ 80002b10: 01d71c63 bne a4,t4,80002b28 <fail>
+
+0000000080002b14 <test_5>:
+ 80002b14: 0006a783 lw a5,0(a3)
+ 80002b18: 00100e93 li t4,1
+ 80002b1c: 00500193 li gp,5
+ 80002b20: 01d79463 bne a5,t4,80002b28 <fail>
+ 80002b24: 00301a63 bne zero,gp,80002b38 <pass>
+
+0000000080002b28 <fail>:
+ 80002b28: 00119513 slli a0,gp,0x1
+ 80002b2c: 00050063 beqz a0,80002b2c <fail+0x4>
+ 80002b30: 00156513 ori a0,a0,1
+ 80002b34: 00000073 ecall
+
+0000000080002b38 <pass>:
+ 80002b38: 00100513 li a0,1
+ 80002b3c: 00000073 ecall
+ 80002b40: c0001073 unimp
diff --git a/test/tests/rv64ua-v-amomax_w.elf b/test/tests/rv64ua-v-amomax_w.elf
new file mode 100644
index 0000000..4952179
--- /dev/null
+++ b/test/tests/rv64ua-v-amomax_w.elf
Binary files differ
diff --git a/test/tests/rv64ua-v-amomaxu_d.dump b/test/tests/rv64ua-v-amomaxu_d.dump
new file mode 100644
index 0000000..271a03c
--- /dev/null
+++ b/test/tests/rv64ua-v-amomaxu_d.dump
@@ -0,0 +1,870 @@
+
+rv64ua-v-amomaxu_d: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <handle_reset>:
+ 8000000c: 00000297 auipc t0,0x0
+ 80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+ 80000014: 30529073 csrw mtvec,t0
+ 80000018: 00009117 auipc sp,0x9
+ 8000001c: 6b810113 addi sp,sp,1720 # 800096d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00002617 auipc a2,0x2
+ 80002318: cec60613 addi a2,a2,-788 # 80004000 <pt>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00006797 auipc a5,0x6
+ 80002334: 4b878793 addi a5,a5,1208 # 800087e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00006717 auipc a4,0x6
+ 80002348: 49c70713 addi a4,a4,1180 # 800087e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00006897 auipc a7,0x6
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800087e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00006797 auipc a5,0x6
+ 80002384: 07078793 addi a5,a5,112 # 800083f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf7810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00006797 auipc a5,0x6
+ 80002448: 3807be23 sd zero,924(a5) # 800087e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00000697 auipc a3,0x0
+ 8000245c: 6f068693 addi a3,a3,1776 # 80002b48 <pass+0x10>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00000617 auipc a2,0x0
+ 800024b8: 72460613 addi a2,a2,1828 # 80002bd8 <pass+0xa0>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00000617 auipc a2,0x0
+ 80002508: 6ec60613 addi a2,a2,1772 # 80002bf0 <pass+0xb8>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00000697 auipc a3,0x0
+ 80002558: 63c68693 addi a3,a3,1596 # 80002b90 <pass+0x58>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00000697 auipc a3,0x0
+ 80002674: 65868693 addi a3,a3,1624 # 80002cc8 <pass+0x190>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00000617 auipc a2,0x0
+ 800026cc: 5d860613 addi a2,a2,1496 # 80002ca0 <pass+0x168>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00006d17 auipc s10,0x6
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800083f0 <user_mapping>
+ 80002724: 00002b97 auipc s7,0x2
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80004000 <pt>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00006a17 auipc s4,0x6
+ 80002738: 0aca0a13 addi s4,s4,172 # 800087e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00006717 auipc a4,0x6
+ 8000274c: 08f73c23 sd a5,152(a4) # 800087e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00006717 auipc a4,0x6
+ 800027d4: 00f73823 sd a5,16(a4) # 800087e0 <freelist_tail>
+ 800027d8: 00006717 auipc a4,0x6
+ 800027dc: 00f73823 sd a5,16(a4) # 800087e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 50c68693 addi a3,a3,1292 # 80002cf8 <pass+0x1c0>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 42c68693 addi a3,a3,1068 # 80002c68 <pass+0x130>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 3bc68693 addi a3,a3,956 # 80002c30 <pass+0xf8>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00002697 auipc a3,0x2
+ 800028e0: 72468693 addi a3,a3,1828 # 80005000 <pt+0x1000>
+ 800028e4: 00003717 auipc a4,0x3
+ 800028e8: 71c70713 addi a4,a4,1820 # 80006000 <pt+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00004797 auipc a5,0x4
+ 800028f8: 70c78793 addi a5,a5,1804 # 80007000 <pt+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00001897 auipc a7,0x1
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80004000 <pt>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00002697 auipc a3,0x2
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80004ff8 <pt+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00001617 auipc a2,0x1
+ 80002938: 6cc60613 addi a2,a2,1740 # 80004000 <pt>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00004697 auipc a3,0x4
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80006ff8 <pt+0x2ff8>
+ 8000294c: 00002717 auipc a4,0x2
+ 80002950: 6af73a23 sd a5,1716(a4) # 80005000 <pt+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00005697 auipc a3,0x5
+ 800029c0: 64468693 addi a3,a3,1604 # 80008000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00006617 auipc a2,0x6
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800087e8 <freelist_head>
+ 800029d4: 00006797 auipc a5,0x6
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800087e0 <freelist_tail>
+ 800029dc: 00006317 auipc t1,0x6
+ 800029e0: a1430313 addi t1,t1,-1516 # 800083f0 <user_mapping>
+ 800029e4: 03700793 li a5,55
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00006797 auipc a5,0x6
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800083e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 00b117b7 lui a5,0xb11
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: cc678793 addi a5,a5,-826 # b10cc6 <_start-0x7f4ef33a>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 80000537 lui a0,0x80000
+ 80002acc: 80000593 li a1,-2048
+ 80002ad0: 00000697 auipc a3,0x0
+ 80002ad4: 53068693 addi a3,a3,1328 # 80003000 <begin_signature>
+ 80002ad8: 00a6b023 sd a0,0(a3)
+ 80002adc: e0b6b72f amomaxu.d a4,a1,(a3)
+ 80002ae0: 80000eb7 lui t4,0x80000
+ 80002ae4: 00200193 li gp,2
+ 80002ae8: 05d71063 bne a4,t4,80002b28 <fail>
+
+0000000080002aec <test_3>:
+ 80002aec: 0006b783 ld a5,0(a3)
+ 80002af0: 80000e93 li t4,-2048
+ 80002af4: 00300193 li gp,3
+ 80002af8: 03d79863 bne a5,t4,80002b28 <fail>
+
+0000000080002afc <test_4>:
+ 80002afc: fff00593 li a1,-1
+ 80002b00: 0006b023 sd zero,0(a3)
+ 80002b04: e0b6b72f amomaxu.d a4,a1,(a3)
+ 80002b08: 00000e93 li t4,0
+ 80002b0c: 00400193 li gp,4
+ 80002b10: 01d71c63 bne a4,t4,80002b28 <fail>
+
+0000000080002b14 <test_5>:
+ 80002b14: 0006b783 ld a5,0(a3)
+ 80002b18: fff00e93 li t4,-1
+ 80002b1c: 00500193 li gp,5
+ 80002b20: 01d79463 bne a5,t4,80002b28 <fail>
+ 80002b24: 00301a63 bne zero,gp,80002b38 <pass>
+
+0000000080002b28 <fail>:
+ 80002b28: 00119513 slli a0,gp,0x1
+ 80002b2c: 00050063 beqz a0,80002b2c <fail+0x4>
+ 80002b30: 00156513 ori a0,a0,1
+ 80002b34: 00000073 ecall
+
+0000000080002b38 <pass>:
+ 80002b38: 00100513 li a0,1
+ 80002b3c: 00000073 ecall
+ 80002b40: c0001073 unimp
diff --git a/test/tests/rv64ua-v-amomaxu_d.elf b/test/tests/rv64ua-v-amomaxu_d.elf
new file mode 100644
index 0000000..0b9930f
--- /dev/null
+++ b/test/tests/rv64ua-v-amomaxu_d.elf
Binary files differ
diff --git a/test/tests/rv64ua-v-amomaxu_w.dump b/test/tests/rv64ua-v-amomaxu_w.dump
new file mode 100644
index 0000000..d6f336e
--- /dev/null
+++ b/test/tests/rv64ua-v-amomaxu_w.dump
@@ -0,0 +1,870 @@
+
+rv64ua-v-amomaxu_w: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <handle_reset>:
+ 8000000c: 00000297 auipc t0,0x0
+ 80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+ 80000014: 30529073 csrw mtvec,t0
+ 80000018: 00009117 auipc sp,0x9
+ 8000001c: 6b810113 addi sp,sp,1720 # 800096d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00002617 auipc a2,0x2
+ 80002318: cec60613 addi a2,a2,-788 # 80004000 <pt>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00006797 auipc a5,0x6
+ 80002334: 4b878793 addi a5,a5,1208 # 800087e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00006717 auipc a4,0x6
+ 80002348: 49c70713 addi a4,a4,1180 # 800087e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00006897 auipc a7,0x6
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800087e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00006797 auipc a5,0x6
+ 80002384: 07078793 addi a5,a5,112 # 800083f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf7810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00006797 auipc a5,0x6
+ 80002448: 3807be23 sd zero,924(a5) # 800087e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00000697 auipc a3,0x0
+ 8000245c: 6f068693 addi a3,a3,1776 # 80002b48 <pass+0x10>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00000617 auipc a2,0x0
+ 800024b8: 72460613 addi a2,a2,1828 # 80002bd8 <pass+0xa0>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00000617 auipc a2,0x0
+ 80002508: 6ec60613 addi a2,a2,1772 # 80002bf0 <pass+0xb8>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00000697 auipc a3,0x0
+ 80002558: 63c68693 addi a3,a3,1596 # 80002b90 <pass+0x58>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00000697 auipc a3,0x0
+ 80002674: 65868693 addi a3,a3,1624 # 80002cc8 <pass+0x190>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00000617 auipc a2,0x0
+ 800026cc: 5d860613 addi a2,a2,1496 # 80002ca0 <pass+0x168>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00006d17 auipc s10,0x6
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800083f0 <user_mapping>
+ 80002724: 00002b97 auipc s7,0x2
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80004000 <pt>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00006a17 auipc s4,0x6
+ 80002738: 0aca0a13 addi s4,s4,172 # 800087e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00006717 auipc a4,0x6
+ 8000274c: 08f73c23 sd a5,152(a4) # 800087e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00006717 auipc a4,0x6
+ 800027d4: 00f73823 sd a5,16(a4) # 800087e0 <freelist_tail>
+ 800027d8: 00006717 auipc a4,0x6
+ 800027dc: 00f73823 sd a5,16(a4) # 800087e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 50c68693 addi a3,a3,1292 # 80002cf8 <pass+0x1c0>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 42c68693 addi a3,a3,1068 # 80002c68 <pass+0x130>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 3bc68693 addi a3,a3,956 # 80002c30 <pass+0xf8>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00002697 auipc a3,0x2
+ 800028e0: 72468693 addi a3,a3,1828 # 80005000 <pt+0x1000>
+ 800028e4: 00003717 auipc a4,0x3
+ 800028e8: 71c70713 addi a4,a4,1820 # 80006000 <pt+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00004797 auipc a5,0x4
+ 800028f8: 70c78793 addi a5,a5,1804 # 80007000 <pt+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00001897 auipc a7,0x1
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80004000 <pt>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00002697 auipc a3,0x2
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80004ff8 <pt+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00001617 auipc a2,0x1
+ 80002938: 6cc60613 addi a2,a2,1740 # 80004000 <pt>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00004697 auipc a3,0x4
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80006ff8 <pt+0x2ff8>
+ 8000294c: 00002717 auipc a4,0x2
+ 80002950: 6af73a23 sd a5,1716(a4) # 80005000 <pt+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00005697 auipc a3,0x5
+ 800029c0: 64468693 addi a3,a3,1604 # 80008000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00006617 auipc a2,0x6
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800087e8 <freelist_head>
+ 800029d4: 00006797 auipc a5,0x6
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800087e0 <freelist_tail>
+ 800029dc: 00006317 auipc t1,0x6
+ 800029e0: a1430313 addi t1,t1,-1516 # 800083f0 <user_mapping>
+ 800029e4: 00700793 li a5,7
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00006797 auipc a5,0x6
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800083e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 0d8487b7 lui a5,0xd848
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: c5e78793 addi a5,a5,-930 # d847c5e <_start-0x727b83a2>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 80000537 lui a0,0x80000
+ 80002acc: 80000593 li a1,-2048
+ 80002ad0: 00000697 auipc a3,0x0
+ 80002ad4: 53068693 addi a3,a3,1328 # 80003000 <begin_signature>
+ 80002ad8: 00a6a023 sw a0,0(a3)
+ 80002adc: e0b6a72f amomaxu.w a4,a1,(a3)
+ 80002ae0: 80000eb7 lui t4,0x80000
+ 80002ae4: 00200193 li gp,2
+ 80002ae8: 05d71063 bne a4,t4,80002b28 <fail>
+
+0000000080002aec <test_3>:
+ 80002aec: 0006a783 lw a5,0(a3)
+ 80002af0: 80000e93 li t4,-2048
+ 80002af4: 00300193 li gp,3
+ 80002af8: 03d79863 bne a5,t4,80002b28 <fail>
+
+0000000080002afc <test_4>:
+ 80002afc: fff00593 li a1,-1
+ 80002b00: 0006a023 sw zero,0(a3)
+ 80002b04: e0b6a72f amomaxu.w a4,a1,(a3)
+ 80002b08: 00000e93 li t4,0
+ 80002b0c: 00400193 li gp,4
+ 80002b10: 01d71c63 bne a4,t4,80002b28 <fail>
+
+0000000080002b14 <test_5>:
+ 80002b14: 0006a783 lw a5,0(a3)
+ 80002b18: fff00e93 li t4,-1
+ 80002b1c: 00500193 li gp,5
+ 80002b20: 01d79463 bne a5,t4,80002b28 <fail>
+ 80002b24: 00301a63 bne zero,gp,80002b38 <pass>
+
+0000000080002b28 <fail>:
+ 80002b28: 00119513 slli a0,gp,0x1
+ 80002b2c: 00050063 beqz a0,80002b2c <fail+0x4>
+ 80002b30: 00156513 ori a0,a0,1
+ 80002b34: 00000073 ecall
+
+0000000080002b38 <pass>:
+ 80002b38: 00100513 li a0,1
+ 80002b3c: 00000073 ecall
+ 80002b40: c0001073 unimp
diff --git a/test/tests/rv64ua-v-amomaxu_w.elf b/test/tests/rv64ua-v-amomaxu_w.elf
new file mode 100644
index 0000000..989ad0c
--- /dev/null
+++ b/test/tests/rv64ua-v-amomaxu_w.elf
Binary files differ
diff --git a/test/tests/rv64ua-v-amomin_d.dump b/test/tests/rv64ua-v-amomin_d.dump
new file mode 100644
index 0000000..a97febd
--- /dev/null
+++ b/test/tests/rv64ua-v-amomin_d.dump
@@ -0,0 +1,870 @@
+
+rv64ua-v-amomin_d: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <handle_reset>:
+ 8000000c: 00000297 auipc t0,0x0
+ 80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+ 80000014: 30529073 csrw mtvec,t0
+ 80000018: 00009117 auipc sp,0x9
+ 8000001c: 6b810113 addi sp,sp,1720 # 800096d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00002617 auipc a2,0x2
+ 80002318: cec60613 addi a2,a2,-788 # 80004000 <pt>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00006797 auipc a5,0x6
+ 80002334: 4b878793 addi a5,a5,1208 # 800087e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00006717 auipc a4,0x6
+ 80002348: 49c70713 addi a4,a4,1180 # 800087e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00006897 auipc a7,0x6
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800087e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00006797 auipc a5,0x6
+ 80002384: 07078793 addi a5,a5,112 # 800083f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf7810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00006797 auipc a5,0x6
+ 80002448: 3807be23 sd zero,924(a5) # 800087e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00000697 auipc a3,0x0
+ 8000245c: 6f068693 addi a3,a3,1776 # 80002b48 <pass+0x10>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00000617 auipc a2,0x0
+ 800024b8: 72460613 addi a2,a2,1828 # 80002bd8 <pass+0xa0>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00000617 auipc a2,0x0
+ 80002508: 6ec60613 addi a2,a2,1772 # 80002bf0 <pass+0xb8>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00000697 auipc a3,0x0
+ 80002558: 63c68693 addi a3,a3,1596 # 80002b90 <pass+0x58>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00000697 auipc a3,0x0
+ 80002674: 65868693 addi a3,a3,1624 # 80002cc8 <pass+0x190>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00000617 auipc a2,0x0
+ 800026cc: 5d860613 addi a2,a2,1496 # 80002ca0 <pass+0x168>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00006d17 auipc s10,0x6
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800083f0 <user_mapping>
+ 80002724: 00002b97 auipc s7,0x2
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80004000 <pt>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00006a17 auipc s4,0x6
+ 80002738: 0aca0a13 addi s4,s4,172 # 800087e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00006717 auipc a4,0x6
+ 8000274c: 08f73c23 sd a5,152(a4) # 800087e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00006717 auipc a4,0x6
+ 800027d4: 00f73823 sd a5,16(a4) # 800087e0 <freelist_tail>
+ 800027d8: 00006717 auipc a4,0x6
+ 800027dc: 00f73823 sd a5,16(a4) # 800087e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 50c68693 addi a3,a3,1292 # 80002cf8 <pass+0x1c0>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 42c68693 addi a3,a3,1068 # 80002c68 <pass+0x130>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 3bc68693 addi a3,a3,956 # 80002c30 <pass+0xf8>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00002697 auipc a3,0x2
+ 800028e0: 72468693 addi a3,a3,1828 # 80005000 <pt+0x1000>
+ 800028e4: 00003717 auipc a4,0x3
+ 800028e8: 71c70713 addi a4,a4,1820 # 80006000 <pt+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00004797 auipc a5,0x4
+ 800028f8: 70c78793 addi a5,a5,1804 # 80007000 <pt+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00001897 auipc a7,0x1
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80004000 <pt>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00002697 auipc a3,0x2
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80004ff8 <pt+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00001617 auipc a2,0x1
+ 80002938: 6cc60613 addi a2,a2,1740 # 80004000 <pt>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00004697 auipc a3,0x4
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80006ff8 <pt+0x2ff8>
+ 8000294c: 00002717 auipc a4,0x2
+ 80002950: 6af73a23 sd a5,1716(a4) # 80005000 <pt+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00005697 auipc a3,0x5
+ 800029c0: 64468693 addi a3,a3,1604 # 80008000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00006617 auipc a2,0x6
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800087e8 <freelist_head>
+ 800029d4: 00006797 auipc a5,0x6
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800087e0 <freelist_tail>
+ 800029dc: 00006317 auipc t1,0x6
+ 800029e0: a1430313 addi t1,t1,-1516 # 800083f0 <user_mapping>
+ 800029e4: 00500793 li a5,5
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00006797 auipc a5,0x6
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800083e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 0353d7b7 lui a5,0x353d
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: a0778793 addi a5,a5,-1529 # 353ca07 <_start-0x7cac35f9>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 80000537 lui a0,0x80000
+ 80002acc: 80000593 li a1,-2048
+ 80002ad0: 00000697 auipc a3,0x0
+ 80002ad4: 53068693 addi a3,a3,1328 # 80003000 <begin_signature>
+ 80002ad8: 00a6b023 sd a0,0(a3)
+ 80002adc: 80b6b72f amomin.d a4,a1,(a3)
+ 80002ae0: 80000eb7 lui t4,0x80000
+ 80002ae4: 00200193 li gp,2
+ 80002ae8: 05d71063 bne a4,t4,80002b28 <fail>
+
+0000000080002aec <test_3>:
+ 80002aec: 0006b783 ld a5,0(a3)
+ 80002af0: 80000eb7 lui t4,0x80000
+ 80002af4: 00300193 li gp,3
+ 80002af8: 03d79863 bne a5,t4,80002b28 <fail>
+
+0000000080002afc <test_4>:
+ 80002afc: fff00593 li a1,-1
+ 80002b00: 0006b023 sd zero,0(a3)
+ 80002b04: 80b6b72f amomin.d a4,a1,(a3)
+ 80002b08: 00000e93 li t4,0
+ 80002b0c: 00400193 li gp,4
+ 80002b10: 01d71c63 bne a4,t4,80002b28 <fail>
+
+0000000080002b14 <test_5>:
+ 80002b14: 0006b783 ld a5,0(a3)
+ 80002b18: fff00e93 li t4,-1
+ 80002b1c: 00500193 li gp,5
+ 80002b20: 01d79463 bne a5,t4,80002b28 <fail>
+ 80002b24: 00301a63 bne zero,gp,80002b38 <pass>
+
+0000000080002b28 <fail>:
+ 80002b28: 00119513 slli a0,gp,0x1
+ 80002b2c: 00050063 beqz a0,80002b2c <fail+0x4>
+ 80002b30: 00156513 ori a0,a0,1
+ 80002b34: 00000073 ecall
+
+0000000080002b38 <pass>:
+ 80002b38: 00100513 li a0,1
+ 80002b3c: 00000073 ecall
+ 80002b40: c0001073 unimp
diff --git a/test/tests/rv64ua-v-amomin_d.elf b/test/tests/rv64ua-v-amomin_d.elf
new file mode 100644
index 0000000..c136408
--- /dev/null
+++ b/test/tests/rv64ua-v-amomin_d.elf
Binary files differ
diff --git a/test/tests/rv64ua-v-amomin_w.dump b/test/tests/rv64ua-v-amomin_w.dump
new file mode 100644
index 0000000..a436c95
--- /dev/null
+++ b/test/tests/rv64ua-v-amomin_w.dump
@@ -0,0 +1,870 @@
+
+rv64ua-v-amomin_w: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <handle_reset>:
+ 8000000c: 00000297 auipc t0,0x0
+ 80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+ 80000014: 30529073 csrw mtvec,t0
+ 80000018: 00009117 auipc sp,0x9
+ 8000001c: 6b810113 addi sp,sp,1720 # 800096d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00002617 auipc a2,0x2
+ 80002318: cec60613 addi a2,a2,-788 # 80004000 <pt>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00006797 auipc a5,0x6
+ 80002334: 4b878793 addi a5,a5,1208 # 800087e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00006717 auipc a4,0x6
+ 80002348: 49c70713 addi a4,a4,1180 # 800087e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00006897 auipc a7,0x6
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800087e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00006797 auipc a5,0x6
+ 80002384: 07078793 addi a5,a5,112 # 800083f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf7810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00006797 auipc a5,0x6
+ 80002448: 3807be23 sd zero,924(a5) # 800087e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00000697 auipc a3,0x0
+ 8000245c: 6f068693 addi a3,a3,1776 # 80002b48 <pass+0x10>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00000617 auipc a2,0x0
+ 800024b8: 72460613 addi a2,a2,1828 # 80002bd8 <pass+0xa0>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00000617 auipc a2,0x0
+ 80002508: 6ec60613 addi a2,a2,1772 # 80002bf0 <pass+0xb8>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00000697 auipc a3,0x0
+ 80002558: 63c68693 addi a3,a3,1596 # 80002b90 <pass+0x58>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00000697 auipc a3,0x0
+ 80002674: 65868693 addi a3,a3,1624 # 80002cc8 <pass+0x190>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00000617 auipc a2,0x0
+ 800026cc: 5d860613 addi a2,a2,1496 # 80002ca0 <pass+0x168>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00006d17 auipc s10,0x6
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800083f0 <user_mapping>
+ 80002724: 00002b97 auipc s7,0x2
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80004000 <pt>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00006a17 auipc s4,0x6
+ 80002738: 0aca0a13 addi s4,s4,172 # 800087e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00006717 auipc a4,0x6
+ 8000274c: 08f73c23 sd a5,152(a4) # 800087e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00006717 auipc a4,0x6
+ 800027d4: 00f73823 sd a5,16(a4) # 800087e0 <freelist_tail>
+ 800027d8: 00006717 auipc a4,0x6
+ 800027dc: 00f73823 sd a5,16(a4) # 800087e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 50c68693 addi a3,a3,1292 # 80002cf8 <pass+0x1c0>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 42c68693 addi a3,a3,1068 # 80002c68 <pass+0x130>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 3bc68693 addi a3,a3,956 # 80002c30 <pass+0xf8>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00002697 auipc a3,0x2
+ 800028e0: 72468693 addi a3,a3,1828 # 80005000 <pt+0x1000>
+ 800028e4: 00003717 auipc a4,0x3
+ 800028e8: 71c70713 addi a4,a4,1820 # 80006000 <pt+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00004797 auipc a5,0x4
+ 800028f8: 70c78793 addi a5,a5,1804 # 80007000 <pt+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00001897 auipc a7,0x1
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80004000 <pt>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00002697 auipc a3,0x2
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80004ff8 <pt+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00001617 auipc a2,0x1
+ 80002938: 6cc60613 addi a2,a2,1740 # 80004000 <pt>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00004697 auipc a3,0x4
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80006ff8 <pt+0x2ff8>
+ 8000294c: 00002717 auipc a4,0x2
+ 80002950: 6af73a23 sd a5,1716(a4) # 80005000 <pt+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00005697 auipc a3,0x5
+ 800029c0: 64468693 addi a3,a3,1604 # 80008000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00006617 auipc a2,0x6
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800087e8 <freelist_head>
+ 800029d4: 00006797 auipc a5,0x6
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800087e0 <freelist_tail>
+ 800029dc: 00006317 auipc t1,0x6
+ 800029e0: a1430313 addi t1,t1,-1516 # 800083f0 <user_mapping>
+ 800029e4: 03800793 li a5,56
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00006797 auipc a5,0x6
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800083e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 0ccca7b7 lui a5,0xccca
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: 0ea78793 addi a5,a5,234 # ccca0ea <_start-0x73335f16>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 80000537 lui a0,0x80000
+ 80002acc: 80000593 li a1,-2048
+ 80002ad0: 00000697 auipc a3,0x0
+ 80002ad4: 53068693 addi a3,a3,1328 # 80003000 <begin_signature>
+ 80002ad8: 00a6a023 sw a0,0(a3)
+ 80002adc: 80b6a72f amomin.w a4,a1,(a3)
+ 80002ae0: 80000eb7 lui t4,0x80000
+ 80002ae4: 00200193 li gp,2
+ 80002ae8: 05d71063 bne a4,t4,80002b28 <fail>
+
+0000000080002aec <test_3>:
+ 80002aec: 0006a783 lw a5,0(a3)
+ 80002af0: 80000eb7 lui t4,0x80000
+ 80002af4: 00300193 li gp,3
+ 80002af8: 03d79863 bne a5,t4,80002b28 <fail>
+
+0000000080002afc <test_4>:
+ 80002afc: fff00593 li a1,-1
+ 80002b00: 0006a023 sw zero,0(a3)
+ 80002b04: 80b6a72f amomin.w a4,a1,(a3)
+ 80002b08: 00000e93 li t4,0
+ 80002b0c: 00400193 li gp,4
+ 80002b10: 01d71c63 bne a4,t4,80002b28 <fail>
+
+0000000080002b14 <test_5>:
+ 80002b14: 0006a783 lw a5,0(a3)
+ 80002b18: fff00e93 li t4,-1
+ 80002b1c: 00500193 li gp,5
+ 80002b20: 01d79463 bne a5,t4,80002b28 <fail>
+ 80002b24: 00301a63 bne zero,gp,80002b38 <pass>
+
+0000000080002b28 <fail>:
+ 80002b28: 00119513 slli a0,gp,0x1
+ 80002b2c: 00050063 beqz a0,80002b2c <fail+0x4>
+ 80002b30: 00156513 ori a0,a0,1
+ 80002b34: 00000073 ecall
+
+0000000080002b38 <pass>:
+ 80002b38: 00100513 li a0,1
+ 80002b3c: 00000073 ecall
+ 80002b40: c0001073 unimp
diff --git a/test/tests/rv64ua-v-amomin_w.elf b/test/tests/rv64ua-v-amomin_w.elf
new file mode 100644
index 0000000..46fa3ac
--- /dev/null
+++ b/test/tests/rv64ua-v-amomin_w.elf
Binary files differ
diff --git a/test/tests/rv64ua-v-amominu_d.dump b/test/tests/rv64ua-v-amominu_d.dump
new file mode 100644
index 0000000..693d6a6
--- /dev/null
+++ b/test/tests/rv64ua-v-amominu_d.dump
@@ -0,0 +1,870 @@
+
+rv64ua-v-amominu_d: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <handle_reset>:
+ 8000000c: 00000297 auipc t0,0x0
+ 80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+ 80000014: 30529073 csrw mtvec,t0
+ 80000018: 00009117 auipc sp,0x9
+ 8000001c: 6b810113 addi sp,sp,1720 # 800096d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00002617 auipc a2,0x2
+ 80002318: cec60613 addi a2,a2,-788 # 80004000 <pt>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00006797 auipc a5,0x6
+ 80002334: 4b878793 addi a5,a5,1208 # 800087e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00006717 auipc a4,0x6
+ 80002348: 49c70713 addi a4,a4,1180 # 800087e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00006897 auipc a7,0x6
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800087e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00006797 auipc a5,0x6
+ 80002384: 07078793 addi a5,a5,112 # 800083f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf7810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00006797 auipc a5,0x6
+ 80002448: 3807be23 sd zero,924(a5) # 800087e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00000697 auipc a3,0x0
+ 8000245c: 6f068693 addi a3,a3,1776 # 80002b48 <pass+0x10>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00000617 auipc a2,0x0
+ 800024b8: 72460613 addi a2,a2,1828 # 80002bd8 <pass+0xa0>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00000617 auipc a2,0x0
+ 80002508: 6ec60613 addi a2,a2,1772 # 80002bf0 <pass+0xb8>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00000697 auipc a3,0x0
+ 80002558: 63c68693 addi a3,a3,1596 # 80002b90 <pass+0x58>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00000697 auipc a3,0x0
+ 80002674: 65868693 addi a3,a3,1624 # 80002cc8 <pass+0x190>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00000617 auipc a2,0x0
+ 800026cc: 5d860613 addi a2,a2,1496 # 80002ca0 <pass+0x168>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00006d17 auipc s10,0x6
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800083f0 <user_mapping>
+ 80002724: 00002b97 auipc s7,0x2
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80004000 <pt>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00006a17 auipc s4,0x6
+ 80002738: 0aca0a13 addi s4,s4,172 # 800087e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00006717 auipc a4,0x6
+ 8000274c: 08f73c23 sd a5,152(a4) # 800087e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00006717 auipc a4,0x6
+ 800027d4: 00f73823 sd a5,16(a4) # 800087e0 <freelist_tail>
+ 800027d8: 00006717 auipc a4,0x6
+ 800027dc: 00f73823 sd a5,16(a4) # 800087e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 50c68693 addi a3,a3,1292 # 80002cf8 <pass+0x1c0>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 42c68693 addi a3,a3,1068 # 80002c68 <pass+0x130>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 3bc68693 addi a3,a3,956 # 80002c30 <pass+0xf8>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00002697 auipc a3,0x2
+ 800028e0: 72468693 addi a3,a3,1828 # 80005000 <pt+0x1000>
+ 800028e4: 00003717 auipc a4,0x3
+ 800028e8: 71c70713 addi a4,a4,1820 # 80006000 <pt+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00004797 auipc a5,0x4
+ 800028f8: 70c78793 addi a5,a5,1804 # 80007000 <pt+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00001897 auipc a7,0x1
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80004000 <pt>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00002697 auipc a3,0x2
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80004ff8 <pt+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00001617 auipc a2,0x1
+ 80002938: 6cc60613 addi a2,a2,1740 # 80004000 <pt>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00004697 auipc a3,0x4
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80006ff8 <pt+0x2ff8>
+ 8000294c: 00002717 auipc a4,0x2
+ 80002950: 6af73a23 sd a5,1716(a4) # 80005000 <pt+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00005697 auipc a3,0x5
+ 800029c0: 64468693 addi a3,a3,1604 # 80008000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00006617 auipc a2,0x6
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800087e8 <freelist_head>
+ 800029d4: 00006797 auipc a5,0x6
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800087e0 <freelist_tail>
+ 800029dc: 00006317 auipc t1,0x6
+ 800029e0: a1430313 addi t1,t1,-1516 # 800083f0 <user_mapping>
+ 800029e4: 02800793 li a5,40
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00006797 auipc a5,0x6
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800083e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 08b4f7b7 lui a5,0x8b4f
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: 5cb78793 addi a5,a5,1483 # 8b4f5cb <_start-0x774b0a35>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 80000537 lui a0,0x80000
+ 80002acc: 80000593 li a1,-2048
+ 80002ad0: 00000697 auipc a3,0x0
+ 80002ad4: 53068693 addi a3,a3,1328 # 80003000 <begin_signature>
+ 80002ad8: 00a6b023 sd a0,0(a3)
+ 80002adc: c0b6b72f amominu.d a4,a1,(a3)
+ 80002ae0: 80000eb7 lui t4,0x80000
+ 80002ae4: 00200193 li gp,2
+ 80002ae8: 05d71063 bne a4,t4,80002b28 <fail>
+
+0000000080002aec <test_3>:
+ 80002aec: 0006b783 ld a5,0(a3)
+ 80002af0: 80000eb7 lui t4,0x80000
+ 80002af4: 00300193 li gp,3
+ 80002af8: 03d79863 bne a5,t4,80002b28 <fail>
+
+0000000080002afc <test_4>:
+ 80002afc: fff00593 li a1,-1
+ 80002b00: 0006b023 sd zero,0(a3)
+ 80002b04: c0b6b72f amominu.d a4,a1,(a3)
+ 80002b08: 00000e93 li t4,0
+ 80002b0c: 00400193 li gp,4
+ 80002b10: 01d71c63 bne a4,t4,80002b28 <fail>
+
+0000000080002b14 <test_5>:
+ 80002b14: 0006b783 ld a5,0(a3)
+ 80002b18: 00000e93 li t4,0
+ 80002b1c: 00500193 li gp,5
+ 80002b20: 01d79463 bne a5,t4,80002b28 <fail>
+ 80002b24: 00301a63 bne zero,gp,80002b38 <pass>
+
+0000000080002b28 <fail>:
+ 80002b28: 00119513 slli a0,gp,0x1
+ 80002b2c: 00050063 beqz a0,80002b2c <fail+0x4>
+ 80002b30: 00156513 ori a0,a0,1
+ 80002b34: 00000073 ecall
+
+0000000080002b38 <pass>:
+ 80002b38: 00100513 li a0,1
+ 80002b3c: 00000073 ecall
+ 80002b40: c0001073 unimp
diff --git a/test/tests/rv64ua-v-amominu_d.elf b/test/tests/rv64ua-v-amominu_d.elf
new file mode 100644
index 0000000..1c7e7db
--- /dev/null
+++ b/test/tests/rv64ua-v-amominu_d.elf
Binary files differ
diff --git a/test/tests/rv64ua-v-amominu_w.dump b/test/tests/rv64ua-v-amominu_w.dump
new file mode 100644
index 0000000..ac8240d
--- /dev/null
+++ b/test/tests/rv64ua-v-amominu_w.dump
@@ -0,0 +1,870 @@
+
+rv64ua-v-amominu_w: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <handle_reset>:
+ 8000000c: 00000297 auipc t0,0x0
+ 80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+ 80000014: 30529073 csrw mtvec,t0
+ 80000018: 00009117 auipc sp,0x9
+ 8000001c: 6b810113 addi sp,sp,1720 # 800096d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00002617 auipc a2,0x2
+ 80002318: cec60613 addi a2,a2,-788 # 80004000 <pt>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00006797 auipc a5,0x6
+ 80002334: 4b878793 addi a5,a5,1208 # 800087e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00006717 auipc a4,0x6
+ 80002348: 49c70713 addi a4,a4,1180 # 800087e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00006897 auipc a7,0x6
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800087e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00006797 auipc a5,0x6
+ 80002384: 07078793 addi a5,a5,112 # 800083f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf7810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00006797 auipc a5,0x6
+ 80002448: 3807be23 sd zero,924(a5) # 800087e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00000697 auipc a3,0x0
+ 8000245c: 6f068693 addi a3,a3,1776 # 80002b48 <pass+0x10>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00000617 auipc a2,0x0
+ 800024b8: 72460613 addi a2,a2,1828 # 80002bd8 <pass+0xa0>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00000617 auipc a2,0x0
+ 80002508: 6ec60613 addi a2,a2,1772 # 80002bf0 <pass+0xb8>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00000697 auipc a3,0x0
+ 80002558: 63c68693 addi a3,a3,1596 # 80002b90 <pass+0x58>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00000697 auipc a3,0x0
+ 80002674: 65868693 addi a3,a3,1624 # 80002cc8 <pass+0x190>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00000617 auipc a2,0x0
+ 800026cc: 5d860613 addi a2,a2,1496 # 80002ca0 <pass+0x168>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00006d17 auipc s10,0x6
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800083f0 <user_mapping>
+ 80002724: 00002b97 auipc s7,0x2
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80004000 <pt>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00006a17 auipc s4,0x6
+ 80002738: 0aca0a13 addi s4,s4,172 # 800087e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00006717 auipc a4,0x6
+ 8000274c: 08f73c23 sd a5,152(a4) # 800087e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00006717 auipc a4,0x6
+ 800027d4: 00f73823 sd a5,16(a4) # 800087e0 <freelist_tail>
+ 800027d8: 00006717 auipc a4,0x6
+ 800027dc: 00f73823 sd a5,16(a4) # 800087e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 50c68693 addi a3,a3,1292 # 80002cf8 <pass+0x1c0>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 42c68693 addi a3,a3,1068 # 80002c68 <pass+0x130>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 3bc68693 addi a3,a3,956 # 80002c30 <pass+0xf8>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00002697 auipc a3,0x2
+ 800028e0: 72468693 addi a3,a3,1828 # 80005000 <pt+0x1000>
+ 800028e4: 00003717 auipc a4,0x3
+ 800028e8: 71c70713 addi a4,a4,1820 # 80006000 <pt+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00004797 auipc a5,0x4
+ 800028f8: 70c78793 addi a5,a5,1804 # 80007000 <pt+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00001897 auipc a7,0x1
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80004000 <pt>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00002697 auipc a3,0x2
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80004ff8 <pt+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00001617 auipc a2,0x1
+ 80002938: 6cc60613 addi a2,a2,1740 # 80004000 <pt>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00004697 auipc a3,0x4
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80006ff8 <pt+0x2ff8>
+ 8000294c: 00002717 auipc a4,0x2
+ 80002950: 6af73a23 sd a5,1716(a4) # 80005000 <pt+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00005697 auipc a3,0x5
+ 800029c0: 64468693 addi a3,a3,1604 # 80008000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00006617 auipc a2,0x6
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800087e8 <freelist_head>
+ 800029d4: 00006797 auipc a5,0x6
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800087e0 <freelist_tail>
+ 800029dc: 00006317 auipc t1,0x6
+ 800029e0: a1430313 addi t1,t1,-1516 # 800083f0 <user_mapping>
+ 800029e4: 01500793 li a5,21
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00006797 auipc a5,0x6
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800083e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 083c07b7 lui a5,0x83c0
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: 36f78793 addi a5,a5,879 # 83c036f <_start-0x77c3fc91>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 80000537 lui a0,0x80000
+ 80002acc: 80000593 li a1,-2048
+ 80002ad0: 00000697 auipc a3,0x0
+ 80002ad4: 53068693 addi a3,a3,1328 # 80003000 <begin_signature>
+ 80002ad8: 00a6a023 sw a0,0(a3)
+ 80002adc: c0b6a72f amominu.w a4,a1,(a3)
+ 80002ae0: 80000eb7 lui t4,0x80000
+ 80002ae4: 00200193 li gp,2
+ 80002ae8: 05d71063 bne a4,t4,80002b28 <fail>
+
+0000000080002aec <test_3>:
+ 80002aec: 0006a783 lw a5,0(a3)
+ 80002af0: 80000eb7 lui t4,0x80000
+ 80002af4: 00300193 li gp,3
+ 80002af8: 03d79863 bne a5,t4,80002b28 <fail>
+
+0000000080002afc <test_4>:
+ 80002afc: fff00593 li a1,-1
+ 80002b00: 0006a023 sw zero,0(a3)
+ 80002b04: c0b6a72f amominu.w a4,a1,(a3)
+ 80002b08: 00000e93 li t4,0
+ 80002b0c: 00400193 li gp,4
+ 80002b10: 01d71c63 bne a4,t4,80002b28 <fail>
+
+0000000080002b14 <test_5>:
+ 80002b14: 0006a783 lw a5,0(a3)
+ 80002b18: 00000e93 li t4,0
+ 80002b1c: 00500193 li gp,5
+ 80002b20: 01d79463 bne a5,t4,80002b28 <fail>
+ 80002b24: 00301a63 bne zero,gp,80002b38 <pass>
+
+0000000080002b28 <fail>:
+ 80002b28: 00119513 slli a0,gp,0x1
+ 80002b2c: 00050063 beqz a0,80002b2c <fail+0x4>
+ 80002b30: 00156513 ori a0,a0,1
+ 80002b34: 00000073 ecall
+
+0000000080002b38 <pass>:
+ 80002b38: 00100513 li a0,1
+ 80002b3c: 00000073 ecall
+ 80002b40: c0001073 unimp
diff --git a/test/tests/rv64ua-v-amominu_w.elf b/test/tests/rv64ua-v-amominu_w.elf
new file mode 100644
index 0000000..b255689
--- /dev/null
+++ b/test/tests/rv64ua-v-amominu_w.elf
Binary files differ
diff --git a/test/tests/rv64ua-v-amoor_d.dump b/test/tests/rv64ua-v-amoor_d.dump
new file mode 100644
index 0000000..6bf5fa1
--- /dev/null
+++ b/test/tests/rv64ua-v-amoor_d.dump
@@ -0,0 +1,869 @@
+
+rv64ua-v-amoor_d: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <handle_reset>:
+ 8000000c: 00000297 auipc t0,0x0
+ 80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+ 80000014: 30529073 csrw mtvec,t0
+ 80000018: 00009117 auipc sp,0x9
+ 8000001c: 6b810113 addi sp,sp,1720 # 800096d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00002617 auipc a2,0x2
+ 80002318: cec60613 addi a2,a2,-788 # 80004000 <pt>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00006797 auipc a5,0x6
+ 80002334: 4b878793 addi a5,a5,1208 # 800087e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00006717 auipc a4,0x6
+ 80002348: 49c70713 addi a4,a4,1180 # 800087e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00006897 auipc a7,0x6
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800087e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00006797 auipc a5,0x6
+ 80002384: 07078793 addi a5,a5,112 # 800083f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf7810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00006797 auipc a5,0x6
+ 80002448: 3807be23 sd zero,924(a5) # 800087e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00000697 auipc a3,0x0
+ 8000245c: 6e868693 addi a3,a3,1768 # 80002b40 <pass+0xc>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00000617 auipc a2,0x0
+ 800024b8: 71c60613 addi a2,a2,1820 # 80002bd0 <pass+0x9c>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00000617 auipc a2,0x0
+ 80002508: 6e460613 addi a2,a2,1764 # 80002be8 <pass+0xb4>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00000697 auipc a3,0x0
+ 80002558: 63468693 addi a3,a3,1588 # 80002b88 <pass+0x54>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00000697 auipc a3,0x0
+ 80002674: 65068693 addi a3,a3,1616 # 80002cc0 <pass+0x18c>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00000617 auipc a2,0x0
+ 800026cc: 5d060613 addi a2,a2,1488 # 80002c98 <pass+0x164>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00006d17 auipc s10,0x6
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800083f0 <user_mapping>
+ 80002724: 00002b97 auipc s7,0x2
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80004000 <pt>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00006a17 auipc s4,0x6
+ 80002738: 0aca0a13 addi s4,s4,172 # 800087e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00006717 auipc a4,0x6
+ 8000274c: 08f73c23 sd a5,152(a4) # 800087e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00006717 auipc a4,0x6
+ 800027d4: 00f73823 sd a5,16(a4) # 800087e0 <freelist_tail>
+ 800027d8: 00006717 auipc a4,0x6
+ 800027dc: 00f73823 sd a5,16(a4) # 800087e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 50468693 addi a3,a3,1284 # 80002cf0 <pass+0x1bc>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 42468693 addi a3,a3,1060 # 80002c60 <pass+0x12c>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 3b468693 addi a3,a3,948 # 80002c28 <pass+0xf4>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00002697 auipc a3,0x2
+ 800028e0: 72468693 addi a3,a3,1828 # 80005000 <pt+0x1000>
+ 800028e4: 00003717 auipc a4,0x3
+ 800028e8: 71c70713 addi a4,a4,1820 # 80006000 <pt+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00004797 auipc a5,0x4
+ 800028f8: 70c78793 addi a5,a5,1804 # 80007000 <pt+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00001897 auipc a7,0x1
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80004000 <pt>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00002697 auipc a3,0x2
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80004ff8 <pt+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00001617 auipc a2,0x1
+ 80002938: 6cc60613 addi a2,a2,1740 # 80004000 <pt>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00004697 auipc a3,0x4
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80006ff8 <pt+0x2ff8>
+ 8000294c: 00002717 auipc a4,0x2
+ 80002950: 6af73a23 sd a5,1716(a4) # 80005000 <pt+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00005697 auipc a3,0x5
+ 800029c0: 64468693 addi a3,a3,1604 # 80008000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00006617 auipc a2,0x6
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800087e8 <freelist_head>
+ 800029d4: 00006797 auipc a5,0x6
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800087e0 <freelist_tail>
+ 800029dc: 00006317 auipc t1,0x6
+ 800029e0: a1430313 addi t1,t1,-1516 # 800083f0 <user_mapping>
+ 800029e4: 02d00793 li a5,45
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00006797 auipc a5,0x6
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800083e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 006937b7 lui a5,0x693
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: b1378793 addi a5,a5,-1261 # 692b13 <_start-0x7f96d4ed>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 80000537 lui a0,0x80000
+ 80002acc: 80000593 li a1,-2048
+ 80002ad0: 00000697 auipc a3,0x0
+ 80002ad4: 53068693 addi a3,a3,1328 # 80003000 <begin_signature>
+ 80002ad8: 00a6b023 sd a0,0(a3)
+ 80002adc: 40b6b72f amoor.d a4,a1,(a3)
+ 80002ae0: 80000eb7 lui t4,0x80000
+ 80002ae4: 00200193 li gp,2
+ 80002ae8: 03d71e63 bne a4,t4,80002b24 <fail>
+
+0000000080002aec <test_3>:
+ 80002aec: 0006b783 ld a5,0(a3)
+ 80002af0: 80000e93 li t4,-2048
+ 80002af4: 00300193 li gp,3
+ 80002af8: 03d79663 bne a5,t4,80002b24 <fail>
+
+0000000080002afc <test_4>:
+ 80002afc: 00100593 li a1,1
+ 80002b00: 40b6b72f amoor.d a4,a1,(a3)
+ 80002b04: 80000e93 li t4,-2048
+ 80002b08: 00400193 li gp,4
+ 80002b0c: 01d71c63 bne a4,t4,80002b24 <fail>
+
+0000000080002b10 <test_5>:
+ 80002b10: 0006b783 ld a5,0(a3)
+ 80002b14: 80100e93 li t4,-2047
+ 80002b18: 00500193 li gp,5
+ 80002b1c: 01d79463 bne a5,t4,80002b24 <fail>
+ 80002b20: 00301a63 bne zero,gp,80002b34 <pass>
+
+0000000080002b24 <fail>:
+ 80002b24: 00119513 slli a0,gp,0x1
+ 80002b28: 00050063 beqz a0,80002b28 <fail+0x4>
+ 80002b2c: 00156513 ori a0,a0,1
+ 80002b30: 00000073 ecall
+
+0000000080002b34 <pass>:
+ 80002b34: 00100513 li a0,1
+ 80002b38: 00000073 ecall
+ 80002b3c: c0001073 unimp
diff --git a/test/tests/rv64ua-v-amoor_d.elf b/test/tests/rv64ua-v-amoor_d.elf
new file mode 100644
index 0000000..ce15b22
--- /dev/null
+++ b/test/tests/rv64ua-v-amoor_d.elf
Binary files differ
diff --git a/test/tests/rv64ua-v-amoor_w.dump b/test/tests/rv64ua-v-amoor_w.dump
new file mode 100644
index 0000000..71a4ebe
--- /dev/null
+++ b/test/tests/rv64ua-v-amoor_w.dump
@@ -0,0 +1,869 @@
+
+rv64ua-v-amoor_w: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <handle_reset>:
+ 8000000c: 00000297 auipc t0,0x0
+ 80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+ 80000014: 30529073 csrw mtvec,t0
+ 80000018: 00009117 auipc sp,0x9
+ 8000001c: 6b810113 addi sp,sp,1720 # 800096d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00002617 auipc a2,0x2
+ 80002318: cec60613 addi a2,a2,-788 # 80004000 <pt>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00006797 auipc a5,0x6
+ 80002334: 4b878793 addi a5,a5,1208 # 800087e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00006717 auipc a4,0x6
+ 80002348: 49c70713 addi a4,a4,1180 # 800087e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00006897 auipc a7,0x6
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800087e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00006797 auipc a5,0x6
+ 80002384: 07078793 addi a5,a5,112 # 800083f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf7810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00006797 auipc a5,0x6
+ 80002448: 3807be23 sd zero,924(a5) # 800087e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00000697 auipc a3,0x0
+ 8000245c: 6e868693 addi a3,a3,1768 # 80002b40 <pass+0xc>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00000617 auipc a2,0x0
+ 800024b8: 71c60613 addi a2,a2,1820 # 80002bd0 <pass+0x9c>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00000617 auipc a2,0x0
+ 80002508: 6e460613 addi a2,a2,1764 # 80002be8 <pass+0xb4>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00000697 auipc a3,0x0
+ 80002558: 63468693 addi a3,a3,1588 # 80002b88 <pass+0x54>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00000697 auipc a3,0x0
+ 80002674: 65068693 addi a3,a3,1616 # 80002cc0 <pass+0x18c>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00000617 auipc a2,0x0
+ 800026cc: 5d060613 addi a2,a2,1488 # 80002c98 <pass+0x164>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00006d17 auipc s10,0x6
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800083f0 <user_mapping>
+ 80002724: 00002b97 auipc s7,0x2
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80004000 <pt>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00006a17 auipc s4,0x6
+ 80002738: 0aca0a13 addi s4,s4,172 # 800087e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00006717 auipc a4,0x6
+ 8000274c: 08f73c23 sd a5,152(a4) # 800087e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00006717 auipc a4,0x6
+ 800027d4: 00f73823 sd a5,16(a4) # 800087e0 <freelist_tail>
+ 800027d8: 00006717 auipc a4,0x6
+ 800027dc: 00f73823 sd a5,16(a4) # 800087e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 50468693 addi a3,a3,1284 # 80002cf0 <pass+0x1bc>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 42468693 addi a3,a3,1060 # 80002c60 <pass+0x12c>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 3b468693 addi a3,a3,948 # 80002c28 <pass+0xf4>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00002697 auipc a3,0x2
+ 800028e0: 72468693 addi a3,a3,1828 # 80005000 <pt+0x1000>
+ 800028e4: 00003717 auipc a4,0x3
+ 800028e8: 71c70713 addi a4,a4,1820 # 80006000 <pt+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00004797 auipc a5,0x4
+ 800028f8: 70c78793 addi a5,a5,1804 # 80007000 <pt+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00001897 auipc a7,0x1
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80004000 <pt>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00002697 auipc a3,0x2
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80004ff8 <pt+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00001617 auipc a2,0x1
+ 80002938: 6cc60613 addi a2,a2,1740 # 80004000 <pt>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00004697 auipc a3,0x4
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80006ff8 <pt+0x2ff8>
+ 8000294c: 00002717 auipc a4,0x2
+ 80002950: 6af73a23 sd a5,1716(a4) # 80005000 <pt+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00005697 auipc a3,0x5
+ 800029c0: 64468693 addi a3,a3,1604 # 80008000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00006617 auipc a2,0x6
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800087e8 <freelist_head>
+ 800029d4: 00006797 auipc a5,0x6
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800087e0 <freelist_tail>
+ 800029dc: 00006317 auipc t1,0x6
+ 800029e0: a1430313 addi t1,t1,-1516 # 800083f0 <user_mapping>
+ 800029e4: 00f00793 li a5,15
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00006797 auipc a5,0x6
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800083e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 092c77b7 lui a5,0x92c7
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: f3678793 addi a5,a5,-202 # 92c6f36 <_start-0x76d390ca>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 80000537 lui a0,0x80000
+ 80002acc: 80000593 li a1,-2048
+ 80002ad0: 00000697 auipc a3,0x0
+ 80002ad4: 53068693 addi a3,a3,1328 # 80003000 <begin_signature>
+ 80002ad8: 00a6a023 sw a0,0(a3)
+ 80002adc: 40b6a72f amoor.w a4,a1,(a3)
+ 80002ae0: 80000eb7 lui t4,0x80000
+ 80002ae4: 00200193 li gp,2
+ 80002ae8: 03d71e63 bne a4,t4,80002b24 <fail>
+
+0000000080002aec <test_3>:
+ 80002aec: 0006a783 lw a5,0(a3)
+ 80002af0: 80000e93 li t4,-2048
+ 80002af4: 00300193 li gp,3
+ 80002af8: 03d79663 bne a5,t4,80002b24 <fail>
+
+0000000080002afc <test_4>:
+ 80002afc: 00100593 li a1,1
+ 80002b00: 40b6a72f amoor.w a4,a1,(a3)
+ 80002b04: 80000e93 li t4,-2048
+ 80002b08: 00400193 li gp,4
+ 80002b0c: 01d71c63 bne a4,t4,80002b24 <fail>
+
+0000000080002b10 <test_5>:
+ 80002b10: 0006a783 lw a5,0(a3)
+ 80002b14: 80100e93 li t4,-2047
+ 80002b18: 00500193 li gp,5
+ 80002b1c: 01d79463 bne a5,t4,80002b24 <fail>
+ 80002b20: 00301a63 bne zero,gp,80002b34 <pass>
+
+0000000080002b24 <fail>:
+ 80002b24: 00119513 slli a0,gp,0x1
+ 80002b28: 00050063 beqz a0,80002b28 <fail+0x4>
+ 80002b2c: 00156513 ori a0,a0,1
+ 80002b30: 00000073 ecall
+
+0000000080002b34 <pass>:
+ 80002b34: 00100513 li a0,1
+ 80002b38: 00000073 ecall
+ 80002b3c: c0001073 unimp
diff --git a/test/tests/rv64ua-v-amoor_w.elf b/test/tests/rv64ua-v-amoor_w.elf
new file mode 100644
index 0000000..44f0a91
--- /dev/null
+++ b/test/tests/rv64ua-v-amoor_w.elf
Binary files differ
diff --git a/test/tests/rv64ua-v-amoswap_d.dump b/test/tests/rv64ua-v-amoswap_d.dump
new file mode 100644
index 0000000..bcb607b
--- /dev/null
+++ b/test/tests/rv64ua-v-amoswap_d.dump
@@ -0,0 +1,871 @@
+
+rv64ua-v-amoswap_d: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <handle_reset>:
+ 8000000c: 00000297 auipc t0,0x0
+ 80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+ 80000014: 30529073 csrw mtvec,t0
+ 80000018: 00009117 auipc sp,0x9
+ 8000001c: 6b810113 addi sp,sp,1720 # 800096d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00002617 auipc a2,0x2
+ 80002318: cec60613 addi a2,a2,-788 # 80004000 <pt>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00006797 auipc a5,0x6
+ 80002334: 4b878793 addi a5,a5,1208 # 800087e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00006717 auipc a4,0x6
+ 80002348: 49c70713 addi a4,a4,1180 # 800087e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00006897 auipc a7,0x6
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800087e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00006797 auipc a5,0x6
+ 80002384: 07078793 addi a5,a5,112 # 800083f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf7810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00006797 auipc a5,0x6
+ 80002448: 3807be23 sd zero,924(a5) # 800087e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00000697 auipc a3,0x0
+ 8000245c: 6f068693 addi a3,a3,1776 # 80002b48 <pass+0xc>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00000617 auipc a2,0x0
+ 800024b8: 72460613 addi a2,a2,1828 # 80002bd8 <pass+0x9c>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00000617 auipc a2,0x0
+ 80002508: 6ec60613 addi a2,a2,1772 # 80002bf0 <pass+0xb4>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00000697 auipc a3,0x0
+ 80002558: 63c68693 addi a3,a3,1596 # 80002b90 <pass+0x54>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00000697 auipc a3,0x0
+ 80002674: 65868693 addi a3,a3,1624 # 80002cc8 <pass+0x18c>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00000617 auipc a2,0x0
+ 800026cc: 5d860613 addi a2,a2,1496 # 80002ca0 <pass+0x164>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00006d17 auipc s10,0x6
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800083f0 <user_mapping>
+ 80002724: 00002b97 auipc s7,0x2
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80004000 <pt>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00006a17 auipc s4,0x6
+ 80002738: 0aca0a13 addi s4,s4,172 # 800087e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00006717 auipc a4,0x6
+ 8000274c: 08f73c23 sd a5,152(a4) # 800087e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00006717 auipc a4,0x6
+ 800027d4: 00f73823 sd a5,16(a4) # 800087e0 <freelist_tail>
+ 800027d8: 00006717 auipc a4,0x6
+ 800027dc: 00f73823 sd a5,16(a4) # 800087e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 50c68693 addi a3,a3,1292 # 80002cf8 <pass+0x1bc>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 42c68693 addi a3,a3,1068 # 80002c68 <pass+0x12c>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 3bc68693 addi a3,a3,956 # 80002c30 <pass+0xf4>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00002697 auipc a3,0x2
+ 800028e0: 72468693 addi a3,a3,1828 # 80005000 <pt+0x1000>
+ 800028e4: 00003717 auipc a4,0x3
+ 800028e8: 71c70713 addi a4,a4,1820 # 80006000 <pt+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00004797 auipc a5,0x4
+ 800028f8: 70c78793 addi a5,a5,1804 # 80007000 <pt+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00001897 auipc a7,0x1
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80004000 <pt>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00002697 auipc a3,0x2
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80004ff8 <pt+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00001617 auipc a2,0x1
+ 80002938: 6cc60613 addi a2,a2,1740 # 80004000 <pt>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00004697 auipc a3,0x4
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80006ff8 <pt+0x2ff8>
+ 8000294c: 00002717 auipc a4,0x2
+ 80002950: 6af73a23 sd a5,1716(a4) # 80005000 <pt+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00005697 auipc a3,0x5
+ 800029c0: 64468693 addi a3,a3,1604 # 80008000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00006617 auipc a2,0x6
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800087e8 <freelist_head>
+ 800029d4: 00006797 auipc a5,0x6
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800087e0 <freelist_tail>
+ 800029dc: 00006317 auipc t1,0x6
+ 800029e0: a1430313 addi t1,t1,-1516 # 800083f0 <user_mapping>
+ 800029e4: 03700793 li a5,55
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00006797 auipc a5,0x6
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800083e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 039c87b7 lui a5,0x39c8
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: e8a78793 addi a5,a5,-374 # 39c7e8a <_start-0x7c638176>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 80000537 lui a0,0x80000
+ 80002acc: 80000593 li a1,-2048
+ 80002ad0: 00000697 auipc a3,0x0
+ 80002ad4: 53068693 addi a3,a3,1328 # 80003000 <begin_signature>
+ 80002ad8: 00a6b023 sd a0,0(a3)
+ 80002adc: 08b6b72f amoswap.d a4,a1,(a3)
+ 80002ae0: 80000eb7 lui t4,0x80000
+ 80002ae4: 00200193 li gp,2
+ 80002ae8: 05d71263 bne a4,t4,80002b2c <fail>
+
+0000000080002aec <test_3>:
+ 80002aec: 0006b783 ld a5,0(a3)
+ 80002af0: 80000e93 li t4,-2048
+ 80002af4: 00300193 li gp,3
+ 80002af8: 03d79a63 bne a5,t4,80002b2c <fail>
+
+0000000080002afc <test_4>:
+ 80002afc: 0010059b addiw a1,zero,1
+ 80002b00: 01f59593 slli a1,a1,0x1f
+ 80002b04: 08b6b72f amoswap.d a4,a1,(a3)
+ 80002b08: 80000e93 li t4,-2048
+ 80002b0c: 00400193 li gp,4
+ 80002b10: 01d71e63 bne a4,t4,80002b2c <fail>
+
+0000000080002b14 <test_5>:
+ 80002b14: 0006b783 ld a5,0(a3)
+ 80002b18: 00100e9b addiw t4,zero,1
+ 80002b1c: 01fe9e93 slli t4,t4,0x1f
+ 80002b20: 00500193 li gp,5
+ 80002b24: 01d79463 bne a5,t4,80002b2c <fail>
+ 80002b28: 00301a63 bne zero,gp,80002b3c <pass>
+
+0000000080002b2c <fail>:
+ 80002b2c: 00119513 slli a0,gp,0x1
+ 80002b30: 00050063 beqz a0,80002b30 <fail+0x4>
+ 80002b34: 00156513 ori a0,a0,1
+ 80002b38: 00000073 ecall
+
+0000000080002b3c <pass>:
+ 80002b3c: 00100513 li a0,1
+ 80002b40: 00000073 ecall
+ 80002b44: c0001073 unimp
diff --git a/test/tests/rv64ua-v-amoswap_d.elf b/test/tests/rv64ua-v-amoswap_d.elf
new file mode 100644
index 0000000..6f8a817
--- /dev/null
+++ b/test/tests/rv64ua-v-amoswap_d.elf
Binary files differ
diff --git a/test/tests/rv64ua-v-amoswap_w.dump b/test/tests/rv64ua-v-amoswap_w.dump
new file mode 100644
index 0000000..2369b0d
--- /dev/null
+++ b/test/tests/rv64ua-v-amoswap_w.dump
@@ -0,0 +1,870 @@
+
+rv64ua-v-amoswap_w: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <handle_reset>:
+ 8000000c: 00000297 auipc t0,0x0
+ 80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+ 80000014: 30529073 csrw mtvec,t0
+ 80000018: 00009117 auipc sp,0x9
+ 8000001c: 6b810113 addi sp,sp,1720 # 800096d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00002617 auipc a2,0x2
+ 80002318: cec60613 addi a2,a2,-788 # 80004000 <pt>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00006797 auipc a5,0x6
+ 80002334: 4b878793 addi a5,a5,1208 # 800087e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00006717 auipc a4,0x6
+ 80002348: 49c70713 addi a4,a4,1180 # 800087e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00006897 auipc a7,0x6
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800087e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00006797 auipc a5,0x6
+ 80002384: 07078793 addi a5,a5,112 # 800083f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf7810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00006797 auipc a5,0x6
+ 80002448: 3807be23 sd zero,924(a5) # 800087e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00000697 auipc a3,0x0
+ 8000245c: 6f068693 addi a3,a3,1776 # 80002b48 <pass+0x10>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00000617 auipc a2,0x0
+ 800024b8: 72460613 addi a2,a2,1828 # 80002bd8 <pass+0xa0>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00000617 auipc a2,0x0
+ 80002508: 6ec60613 addi a2,a2,1772 # 80002bf0 <pass+0xb8>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00000697 auipc a3,0x0
+ 80002558: 63c68693 addi a3,a3,1596 # 80002b90 <pass+0x58>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00000697 auipc a3,0x0
+ 80002674: 65868693 addi a3,a3,1624 # 80002cc8 <pass+0x190>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00000617 auipc a2,0x0
+ 800026cc: 5d860613 addi a2,a2,1496 # 80002ca0 <pass+0x168>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00006d17 auipc s10,0x6
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800083f0 <user_mapping>
+ 80002724: 00002b97 auipc s7,0x2
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80004000 <pt>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00006a17 auipc s4,0x6
+ 80002738: 0aca0a13 addi s4,s4,172 # 800087e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00006717 auipc a4,0x6
+ 8000274c: 08f73c23 sd a5,152(a4) # 800087e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00006717 auipc a4,0x6
+ 800027d4: 00f73823 sd a5,16(a4) # 800087e0 <freelist_tail>
+ 800027d8: 00006717 auipc a4,0x6
+ 800027dc: 00f73823 sd a5,16(a4) # 800087e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 50c68693 addi a3,a3,1292 # 80002cf8 <pass+0x1c0>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 42c68693 addi a3,a3,1068 # 80002c68 <pass+0x130>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 3bc68693 addi a3,a3,956 # 80002c30 <pass+0xf8>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00002697 auipc a3,0x2
+ 800028e0: 72468693 addi a3,a3,1828 # 80005000 <pt+0x1000>
+ 800028e4: 00003717 auipc a4,0x3
+ 800028e8: 71c70713 addi a4,a4,1820 # 80006000 <pt+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00004797 auipc a5,0x4
+ 800028f8: 70c78793 addi a5,a5,1804 # 80007000 <pt+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00001897 auipc a7,0x1
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80004000 <pt>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00002697 auipc a3,0x2
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80004ff8 <pt+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00001617 auipc a2,0x1
+ 80002938: 6cc60613 addi a2,a2,1740 # 80004000 <pt>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00004697 auipc a3,0x4
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80006ff8 <pt+0x2ff8>
+ 8000294c: 00002717 auipc a4,0x2
+ 80002950: 6af73a23 sd a5,1716(a4) # 80005000 <pt+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00005697 auipc a3,0x5
+ 800029c0: 64468693 addi a3,a3,1604 # 80008000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00006617 auipc a2,0x6
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800087e8 <freelist_head>
+ 800029d4: 00006797 auipc a5,0x6
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800087e0 <freelist_tail>
+ 800029dc: 00006317 auipc t1,0x6
+ 800029e0: a1430313 addi t1,t1,-1516 # 800083f0 <user_mapping>
+ 800029e4: 00d00793 li a5,13
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00006797 auipc a5,0x6
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800083e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 0788e7b7 lui a5,0x788e
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: c2478793 addi a5,a5,-988 # 788dc24 <_start-0x787723dc>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 80000537 lui a0,0x80000
+ 80002acc: 80000593 li a1,-2048
+ 80002ad0: 00000697 auipc a3,0x0
+ 80002ad4: 53068693 addi a3,a3,1328 # 80003000 <begin_signature>
+ 80002ad8: 00a6a023 sw a0,0(a3)
+ 80002adc: 08b6a72f amoswap.w a4,a1,(a3)
+ 80002ae0: 80000eb7 lui t4,0x80000
+ 80002ae4: 00200193 li gp,2
+ 80002ae8: 05d71063 bne a4,t4,80002b28 <fail>
+
+0000000080002aec <test_3>:
+ 80002aec: 0006a783 lw a5,0(a3)
+ 80002af0: 80000e93 li t4,-2048
+ 80002af4: 00300193 li gp,3
+ 80002af8: 03d79863 bne a5,t4,80002b28 <fail>
+
+0000000080002afc <test_4>:
+ 80002afc: 0010059b addiw a1,zero,1
+ 80002b00: 01f59593 slli a1,a1,0x1f
+ 80002b04: 08b6a72f amoswap.w a4,a1,(a3)
+ 80002b08: 80000e93 li t4,-2048
+ 80002b0c: 00400193 li gp,4
+ 80002b10: 01d71c63 bne a4,t4,80002b28 <fail>
+
+0000000080002b14 <test_5>:
+ 80002b14: 0006a783 lw a5,0(a3)
+ 80002b18: 80000eb7 lui t4,0x80000
+ 80002b1c: 00500193 li gp,5
+ 80002b20: 01d79463 bne a5,t4,80002b28 <fail>
+ 80002b24: 00301a63 bne zero,gp,80002b38 <pass>
+
+0000000080002b28 <fail>:
+ 80002b28: 00119513 slli a0,gp,0x1
+ 80002b2c: 00050063 beqz a0,80002b2c <fail+0x4>
+ 80002b30: 00156513 ori a0,a0,1
+ 80002b34: 00000073 ecall
+
+0000000080002b38 <pass>:
+ 80002b38: 00100513 li a0,1
+ 80002b3c: 00000073 ecall
+ 80002b40: c0001073 unimp
diff --git a/test/tests/rv64ua-v-amoswap_w.elf b/test/tests/rv64ua-v-amoswap_w.elf
new file mode 100644
index 0000000..58a23d3
--- /dev/null
+++ b/test/tests/rv64ua-v-amoswap_w.elf
Binary files differ
diff --git a/test/tests/rv64ua-v-amoxor_d.dump b/test/tests/rv64ua-v-amoxor_d.dump
new file mode 100644
index 0000000..6fa564d
--- /dev/null
+++ b/test/tests/rv64ua-v-amoxor_d.dump
@@ -0,0 +1,872 @@
+
+rv64ua-v-amoxor_d: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <handle_reset>:
+ 8000000c: 00000297 auipc t0,0x0
+ 80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+ 80000014: 30529073 csrw mtvec,t0
+ 80000018: 00009117 auipc sp,0x9
+ 8000001c: 6b810113 addi sp,sp,1720 # 800096d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00002617 auipc a2,0x2
+ 80002318: cec60613 addi a2,a2,-788 # 80004000 <pt>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00006797 auipc a5,0x6
+ 80002334: 4b878793 addi a5,a5,1208 # 800087e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00006717 auipc a4,0x6
+ 80002348: 49c70713 addi a4,a4,1180 # 800087e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00006897 auipc a7,0x6
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800087e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00006797 auipc a5,0x6
+ 80002384: 07078793 addi a5,a5,112 # 800083f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf7810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00006797 auipc a5,0x6
+ 80002448: 3807be23 sd zero,924(a5) # 800087e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00000697 auipc a3,0x0
+ 8000245c: 6f868693 addi a3,a3,1784 # 80002b50 <pass+0x10>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00000617 auipc a2,0x0
+ 800024b8: 72c60613 addi a2,a2,1836 # 80002be0 <pass+0xa0>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00000617 auipc a2,0x0
+ 80002508: 6f460613 addi a2,a2,1780 # 80002bf8 <pass+0xb8>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00000697 auipc a3,0x0
+ 80002558: 64468693 addi a3,a3,1604 # 80002b98 <pass+0x58>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00000697 auipc a3,0x0
+ 80002674: 66068693 addi a3,a3,1632 # 80002cd0 <pass+0x190>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00000617 auipc a2,0x0
+ 800026cc: 5e060613 addi a2,a2,1504 # 80002ca8 <pass+0x168>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00006d17 auipc s10,0x6
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800083f0 <user_mapping>
+ 80002724: 00002b97 auipc s7,0x2
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80004000 <pt>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00006a17 auipc s4,0x6
+ 80002738: 0aca0a13 addi s4,s4,172 # 800087e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00006717 auipc a4,0x6
+ 8000274c: 08f73c23 sd a5,152(a4) # 800087e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00006717 auipc a4,0x6
+ 800027d4: 00f73823 sd a5,16(a4) # 800087e0 <freelist_tail>
+ 800027d8: 00006717 auipc a4,0x6
+ 800027dc: 00f73823 sd a5,16(a4) # 800087e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 51468693 addi a3,a3,1300 # 80002d00 <pass+0x1c0>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 43468693 addi a3,a3,1076 # 80002c70 <pass+0x130>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 3c468693 addi a3,a3,964 # 80002c38 <pass+0xf8>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00002697 auipc a3,0x2
+ 800028e0: 72468693 addi a3,a3,1828 # 80005000 <pt+0x1000>
+ 800028e4: 00003717 auipc a4,0x3
+ 800028e8: 71c70713 addi a4,a4,1820 # 80006000 <pt+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00004797 auipc a5,0x4
+ 800028f8: 70c78793 addi a5,a5,1804 # 80007000 <pt+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00001897 auipc a7,0x1
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80004000 <pt>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00002697 auipc a3,0x2
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80004ff8 <pt+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00001617 auipc a2,0x1
+ 80002938: 6cc60613 addi a2,a2,1740 # 80004000 <pt>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00004697 auipc a3,0x4
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80006ff8 <pt+0x2ff8>
+ 8000294c: 00002717 auipc a4,0x2
+ 80002950: 6af73a23 sd a5,1716(a4) # 80005000 <pt+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00005697 auipc a3,0x5
+ 800029c0: 64468693 addi a3,a3,1604 # 80008000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00006617 auipc a2,0x6
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800087e8 <freelist_head>
+ 800029d4: 00006797 auipc a5,0x6
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800087e0 <freelist_tail>
+ 800029dc: 00006317 auipc t1,0x6
+ 800029e0: a1430313 addi t1,t1,-1516 # 800083f0 <user_mapping>
+ 800029e4: 02e00793 li a5,46
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00006797 auipc a5,0x6
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800083e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 0a9e67b7 lui a5,0xa9e6
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: 11178793 addi a5,a5,273 # a9e6111 <_start-0x75619eef>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 80000537 lui a0,0x80000
+ 80002acc: 80000593 li a1,-2048
+ 80002ad0: 00000697 auipc a3,0x0
+ 80002ad4: 53068693 addi a3,a3,1328 # 80003000 <begin_signature>
+ 80002ad8: 00a6b023 sd a0,0(a3)
+ 80002adc: 20b6b72f amoxor.d a4,a1,(a3)
+ 80002ae0: 80000eb7 lui t4,0x80000
+ 80002ae4: 00200193 li gp,2
+ 80002ae8: 05d71463 bne a4,t4,80002b30 <fail>
+
+0000000080002aec <test_3>:
+ 80002aec: 0006b783 ld a5,0(a3)
+ 80002af0: 80000eb7 lui t4,0x80000
+ 80002af4: 800e8e9b addiw t4,t4,-2048
+ 80002af8: 00300193 li gp,3
+ 80002afc: 03d79a63 bne a5,t4,80002b30 <fail>
+
+0000000080002b00 <test_4>:
+ 80002b00: 00100593 li a1,1
+ 80002b04: 20b6b72f amoxor.d a4,a1,(a3)
+ 80002b08: 80000eb7 lui t4,0x80000
+ 80002b0c: 800e8e9b addiw t4,t4,-2048
+ 80002b10: 00400193 li gp,4
+ 80002b14: 01d71e63 bne a4,t4,80002b30 <fail>
+
+0000000080002b18 <test_5>:
+ 80002b18: 0006b783 ld a5,0(a3)
+ 80002b1c: 80000eb7 lui t4,0x80000
+ 80002b20: 801e8e9b addiw t4,t4,-2047
+ 80002b24: 00500193 li gp,5
+ 80002b28: 01d79463 bne a5,t4,80002b30 <fail>
+ 80002b2c: 00301a63 bne zero,gp,80002b40 <pass>
+
+0000000080002b30 <fail>:
+ 80002b30: 00119513 slli a0,gp,0x1
+ 80002b34: 00050063 beqz a0,80002b34 <fail+0x4>
+ 80002b38: 00156513 ori a0,a0,1
+ 80002b3c: 00000073 ecall
+
+0000000080002b40 <pass>:
+ 80002b40: 00100513 li a0,1
+ 80002b44: 00000073 ecall
+ 80002b48: c0001073 unimp
diff --git a/test/tests/rv64ua-v-amoxor_d.elf b/test/tests/rv64ua-v-amoxor_d.elf
new file mode 100644
index 0000000..963af59
--- /dev/null
+++ b/test/tests/rv64ua-v-amoxor_d.elf
Binary files differ
diff --git a/test/tests/rv64ua-v-amoxor_w.dump b/test/tests/rv64ua-v-amoxor_w.dump
new file mode 100644
index 0000000..6ced740
--- /dev/null
+++ b/test/tests/rv64ua-v-amoxor_w.dump
@@ -0,0 +1,874 @@
+
+rv64ua-v-amoxor_w: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <handle_reset>:
+ 8000000c: 00000297 auipc t0,0x0
+ 80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+ 80000014: 30529073 csrw mtvec,t0
+ 80000018: 00009117 auipc sp,0x9
+ 8000001c: 6b810113 addi sp,sp,1720 # 800096d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00002617 auipc a2,0x2
+ 80002318: cec60613 addi a2,a2,-788 # 80004000 <pt>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00006797 auipc a5,0x6
+ 80002334: 4b878793 addi a5,a5,1208 # 800087e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00006717 auipc a4,0x6
+ 80002348: 49c70713 addi a4,a4,1180 # 800087e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00006897 auipc a7,0x6
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800087e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00006797 auipc a5,0x6
+ 80002384: 07078793 addi a5,a5,112 # 800083f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf7810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00006797 auipc a5,0x6
+ 80002448: 3807be23 sd zero,924(a5) # 800087e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00000697 auipc a3,0x0
+ 8000245c: 70068693 addi a3,a3,1792 # 80002b58 <pass+0x10>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00000617 auipc a2,0x0
+ 800024b8: 73460613 addi a2,a2,1844 # 80002be8 <pass+0xa0>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00000617 auipc a2,0x0
+ 80002508: 6fc60613 addi a2,a2,1788 # 80002c00 <pass+0xb8>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00000697 auipc a3,0x0
+ 80002558: 64c68693 addi a3,a3,1612 # 80002ba0 <pass+0x58>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00000697 auipc a3,0x0
+ 80002674: 66868693 addi a3,a3,1640 # 80002cd8 <pass+0x190>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00000617 auipc a2,0x0
+ 800026cc: 5e860613 addi a2,a2,1512 # 80002cb0 <pass+0x168>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00006d17 auipc s10,0x6
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800083f0 <user_mapping>
+ 80002724: 00002b97 auipc s7,0x2
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80004000 <pt>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00006a17 auipc s4,0x6
+ 80002738: 0aca0a13 addi s4,s4,172 # 800087e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00006717 auipc a4,0x6
+ 8000274c: 08f73c23 sd a5,152(a4) # 800087e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00006717 auipc a4,0x6
+ 800027d4: 00f73823 sd a5,16(a4) # 800087e0 <freelist_tail>
+ 800027d8: 00006717 auipc a4,0x6
+ 800027dc: 00f73823 sd a5,16(a4) # 800087e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 51c68693 addi a3,a3,1308 # 80002d08 <pass+0x1c0>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 43c68693 addi a3,a3,1084 # 80002c78 <pass+0x130>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 3cc68693 addi a3,a3,972 # 80002c40 <pass+0xf8>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00002697 auipc a3,0x2
+ 800028e0: 72468693 addi a3,a3,1828 # 80005000 <pt+0x1000>
+ 800028e4: 00003717 auipc a4,0x3
+ 800028e8: 71c70713 addi a4,a4,1820 # 80006000 <pt+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00004797 auipc a5,0x4
+ 800028f8: 70c78793 addi a5,a5,1804 # 80007000 <pt+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00001897 auipc a7,0x1
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80004000 <pt>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00002697 auipc a3,0x2
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80004ff8 <pt+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00001617 auipc a2,0x1
+ 80002938: 6cc60613 addi a2,a2,1740 # 80004000 <pt>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00004697 auipc a3,0x4
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80006ff8 <pt+0x2ff8>
+ 8000294c: 00002717 auipc a4,0x2
+ 80002950: 6af73a23 sd a5,1716(a4) # 80005000 <pt+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00005697 auipc a3,0x5
+ 800029c0: 64468693 addi a3,a3,1604 # 80008000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00006617 auipc a2,0x6
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800087e8 <freelist_head>
+ 800029d4: 00006797 auipc a5,0x6
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800087e0 <freelist_tail>
+ 800029dc: 00006317 auipc t1,0x6
+ 800029e0: a1430313 addi t1,t1,-1516 # 800083f0 <user_mapping>
+ 800029e4: 00600793 li a5,6
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00006797 auipc a5,0x6
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800083e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 078757b7 lui a5,0x7875
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: 2db78793 addi a5,a5,731 # 78752db <_start-0x7878ad25>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 80000537 lui a0,0x80000
+ 80002acc: 80000593 li a1,-2048
+ 80002ad0: 00000697 auipc a3,0x0
+ 80002ad4: 53068693 addi a3,a3,1328 # 80003000 <begin_signature>
+ 80002ad8: 00a6a023 sw a0,0(a3)
+ 80002adc: 20b6a72f amoxor.w a4,a1,(a3)
+ 80002ae0: 80000eb7 lui t4,0x80000
+ 80002ae4: 00200193 li gp,2
+ 80002ae8: 05d71863 bne a4,t4,80002b38 <fail>
+
+0000000080002aec <test_3>:
+ 80002aec: 0006a783 lw a5,0(a3)
+ 80002af0: 80000eb7 lui t4,0x80000
+ 80002af4: 800e8e9b addiw t4,t4,-2048
+ 80002af8: 00300193 li gp,3
+ 80002afc: 03d79e63 bne a5,t4,80002b38 <fail>
+
+0000000080002b00 <test_4>:
+ 80002b00: 0030059b addiw a1,zero,3
+ 80002b04: 01e59593 slli a1,a1,0x1e
+ 80002b08: 00158593 addi a1,a1,1
+ 80002b0c: 20b6a72f amoxor.w a4,a1,(a3)
+ 80002b10: 80000eb7 lui t4,0x80000
+ 80002b14: 800e8e9b addiw t4,t4,-2048
+ 80002b18: 00400193 li gp,4
+ 80002b1c: 01d71e63 bne a4,t4,80002b38 <fail>
+
+0000000080002b20 <test_5>:
+ 80002b20: 0006a783 lw a5,0(a3)
+ 80002b24: c0000eb7 lui t4,0xc0000
+ 80002b28: 801e8e9b addiw t4,t4,-2047
+ 80002b2c: 00500193 li gp,5
+ 80002b30: 01d79463 bne a5,t4,80002b38 <fail>
+ 80002b34: 00301a63 bne zero,gp,80002b48 <pass>
+
+0000000080002b38 <fail>:
+ 80002b38: 00119513 slli a0,gp,0x1
+ 80002b3c: 00050063 beqz a0,80002b3c <fail+0x4>
+ 80002b40: 00156513 ori a0,a0,1
+ 80002b44: 00000073 ecall
+
+0000000080002b48 <pass>:
+ 80002b48: 00100513 li a0,1
+ 80002b4c: 00000073 ecall
+ 80002b50: c0001073 unimp
diff --git a/test/tests/rv64ua-v-amoxor_w.elf b/test/tests/rv64ua-v-amoxor_w.elf
new file mode 100644
index 0000000..3b91cc1
--- /dev/null
+++ b/test/tests/rv64ua-v-amoxor_w.elf
Binary files differ
diff --git a/test/tests/rv64ua-v-lrsc.dump b/test/tests/rv64ua-v-lrsc.dump
new file mode 100644
index 0000000..5678673
--- /dev/null
+++ b/test/tests/rv64ua-v-lrsc.dump
@@ -0,0 +1,1426 @@
+
+rv64ua-v-lrsc: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <handle_reset>:
+ 8000000c: 00000297 auipc t0,0x0
+ 80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+ 80000014: 30529073 csrw mtvec,t0
+ 80000018: 00009117 auipc sp,0x9
+ 8000001c: 6b810113 addi sp,sp,1720 # 800096d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00002617 auipc a2,0x2
+ 80002318: cec60613 addi a2,a2,-788 # 80004000 <pt>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00006797 auipc a5,0x6
+ 80002334: 4b878793 addi a5,a5,1208 # 800087e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00006717 auipc a4,0x6
+ 80002348: 49c70713 addi a4,a4,1180 # 800087e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00006897 auipc a7,0x6
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800087e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00006797 auipc a5,0x6
+ 80002384: 07078793 addi a5,a5,112 # 800083f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf7810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00006797 auipc a5,0x6
+ 80002448: 3807be23 sd zero,924(a5) # 800087e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00000697 auipc a3,0x0
+ 8000245c: 75868693 addi a3,a3,1880 # 80002bb0 <pass+0x10>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00000617 auipc a2,0x0
+ 800024b8: 78c60613 addi a2,a2,1932 # 80002c40 <pass+0xa0>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00000617 auipc a2,0x0
+ 80002508: 75460613 addi a2,a2,1876 # 80002c58 <pass+0xb8>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00000697 auipc a3,0x0
+ 80002558: 6a468693 addi a3,a3,1700 # 80002bf8 <pass+0x58>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00000697 auipc a3,0x0
+ 80002674: 6c068693 addi a3,a3,1728 # 80002d30 <pass+0x190>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00000617 auipc a2,0x0
+ 800026cc: 64060613 addi a2,a2,1600 # 80002d08 <pass+0x168>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00006d17 auipc s10,0x6
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800083f0 <user_mapping>
+ 80002724: 00002b97 auipc s7,0x2
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80004000 <pt>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00006a17 auipc s4,0x6
+ 80002738: 0aca0a13 addi s4,s4,172 # 800087e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00006717 auipc a4,0x6
+ 8000274c: 08f73c23 sd a5,152(a4) # 800087e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00006717 auipc a4,0x6
+ 800027d4: 00f73823 sd a5,16(a4) # 800087e0 <freelist_tail>
+ 800027d8: 00006717 auipc a4,0x6
+ 800027dc: 00f73823 sd a5,16(a4) # 800087e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 57468693 addi a3,a3,1396 # 80002d60 <pass+0x1c0>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 49468693 addi a3,a3,1172 # 80002cd0 <pass+0x130>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 42468693 addi a3,a3,1060 # 80002c98 <pass+0xf8>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00002697 auipc a3,0x2
+ 800028e0: 72468693 addi a3,a3,1828 # 80005000 <pt+0x1000>
+ 800028e4: 00003717 auipc a4,0x3
+ 800028e8: 71c70713 addi a4,a4,1820 # 80006000 <pt+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00004797 auipc a5,0x4
+ 800028f8: 70c78793 addi a5,a5,1804 # 80007000 <pt+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00001897 auipc a7,0x1
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80004000 <pt>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00002697 auipc a3,0x2
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80004ff8 <pt+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00001617 auipc a2,0x1
+ 80002938: 6cc60613 addi a2,a2,1740 # 80004000 <pt>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00004697 auipc a3,0x4
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80006ff8 <pt+0x2ff8>
+ 8000294c: 00002717 auipc a4,0x2
+ 80002950: 6af73a23 sd a5,1716(a4) # 80005000 <pt+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00005697 auipc a3,0x5
+ 800029c0: 64468693 addi a3,a3,1604 # 80008000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00006617 auipc a2,0x6
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800087e8 <freelist_head>
+ 800029d4: 00006797 auipc a5,0x6
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800087e0 <freelist_tail>
+ 800029dc: 00006317 auipc t1,0x6
+ 800029e0: a1430313 addi t1,t1,-1516 # 800083f0 <user_mapping>
+ 800029e4: 02c00793 li a5,44
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00006797 auipc a5,0x6
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800083e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 0b4d77b7 lui a5,0xb4d7
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: 59f78793 addi a5,a5,1439 # b4d759f <_start-0x74b28a61>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 00000517 auipc a0,0x0
+ 80002acc: 53850513 addi a0,a0,1336 # 80003000 <begin_signature>
+ 80002ad0: 00100593 li a1,1
+ 80002ad4: 00b5262f amoadd.w a2,a1,(a0)
+ 80002ad8: 00100693 li a3,1
+ 80002adc: fed67ee3 bleu a3,a2,80002ad8 <userstart+0x10>
+ 80002ae0: 00052583 lw a1,0(a0)
+ 80002ae4: fed5eee3 bltu a1,a3,80002ae0 <userstart+0x18>
+
+0000000080002ae8 <test_2>:
+ 80002ae8: 00000517 auipc a0,0x0
+ 80002aec: 52050513 addi a0,a0,1312 # 80003008 <foo>
+ 80002af0: 1805272f sc.w a4,zero,(a0)
+ 80002af4: 00100e93 li t4,1
+ 80002af8: 00200193 li gp,2
+ 80002afc: 09d71a63 bne a4,t4,80002b90 <fail>
+
+0000000080002b00 <test_3>:
+ 80002b00: 00000517 auipc a0,0x0
+ 80002b04: 50850513 addi a0,a0,1288 # 80003008 <foo>
+ 80002b08: 00001597 auipc a1,0x1
+ 80002b0c: 90458593 addi a1,a1,-1788 # 8000340c <fooTest3>
+ 80002b10: 1005a5af lr.w a1,(a1)
+ 80002b14: 18b5272f sc.w a4,a1,(a0)
+ 80002b18: 00100e93 li t4,1
+ 80002b1c: 00300193 li gp,3
+ 80002b20: 07d71863 bne a4,t4,80002b90 <fail>
+ 80002b24: 00000517 auipc a0,0x0
+ 80002b28: 4e450513 addi a0,a0,1252 # 80003008 <foo>
+ 80002b2c: 40000593 li a1,1024
+ 80002b30: 00160613 addi a2,a2,1
+ 80002b34: 1005272f lr.w a4,(a0)
+ 80002b38: 00c70733 add a4,a4,a2
+ 80002b3c: 18e5272f sc.w a4,a4,(a0)
+ 80002b40: fe071ae3 bnez a4,80002b34 <test_3+0x34>
+ 80002b44: fff58593 addi a1,a1,-1
+ 80002b48: fe0596e3 bnez a1,80002b34 <test_3+0x34>
+ 80002b4c: 00000517 auipc a0,0x0
+ 80002b50: 4b850513 addi a0,a0,1208 # 80003004 <barrier>
+ 80002b54: 00100593 li a1,1
+ 80002b58: 00b5202f amoadd.w zero,a1,(a0)
+ 80002b5c: 00052583 lw a1,0(a0)
+ 80002b60: fed5cee3 blt a1,a3,80002b5c <test_3+0x5c>
+ 80002b64: 0ff0000f fence
+
+0000000080002b68 <test_4>:
+ 80002b68: 00000517 auipc a0,0x0
+ 80002b6c: 4a052503 lw a0,1184(a0) # 80003008 <foo>
+ 80002b70: 00969593 slli a1,a3,0x9
+ 80002b74: 40b50533 sub a0,a0,a1
+ 80002b78: fff68693 addi a3,a3,-1
+ 80002b7c: fe06dce3 bgez a3,80002b74 <test_4+0xc>
+ 80002b80: 00000e93 li t4,0
+ 80002b84: 00400193 li gp,4
+ 80002b88: 01d51463 bne a0,t4,80002b90 <fail>
+ 80002b8c: 00301a63 bne zero,gp,80002ba0 <pass>
+
+0000000080002b90 <fail>:
+ 80002b90: 00119513 slli a0,gp,0x1
+ 80002b94: 00050063 beqz a0,80002b94 <fail+0x4>
+ 80002b98: 00156513 ori a0,a0,1
+ 80002b9c: 00000073 ecall
+
+0000000080002ba0 <pass>:
+ 80002ba0: 00100513 li a0,1
+ 80002ba4: 00000073 ecall
+ 80002ba8: c0001073 unimp
+
+Disassembly of section .data:
+
+0000000080003000 <begin_signature>:
+ 80003000: 0000 unimp
+ 80003002: 0000 unimp
+
+0000000080003004 <barrier>:
+ 80003004: 0000 unimp
+ 80003006: 0000 unimp
+
+0000000080003008 <foo>:
+ 80003008: 0000 unimp
+ 8000300a: 0000 unimp
+ 8000300c: 0000 unimp
+ 8000300e: 0000 unimp
+ 80003010: 0000 unimp
+ 80003012: 0000 unimp
+ 80003014: 0000 unimp
+ 80003016: 0000 unimp
+ 80003018: 0000 unimp
+ 8000301a: 0000 unimp
+ 8000301c: 0000 unimp
+ 8000301e: 0000 unimp
+ 80003020: 0000 unimp
+ 80003022: 0000 unimp
+ 80003024: 0000 unimp
+ 80003026: 0000 unimp
+ 80003028: 0000 unimp
+ 8000302a: 0000 unimp
+ 8000302c: 0000 unimp
+ 8000302e: 0000 unimp
+ 80003030: 0000 unimp
+ 80003032: 0000 unimp
+ 80003034: 0000 unimp
+ 80003036: 0000 unimp
+ 80003038: 0000 unimp
+ 8000303a: 0000 unimp
+ 8000303c: 0000 unimp
+ 8000303e: 0000 unimp
+ 80003040: 0000 unimp
+ 80003042: 0000 unimp
+ 80003044: 0000 unimp
+ 80003046: 0000 unimp
+ 80003048: 0000 unimp
+ 8000304a: 0000 unimp
+ 8000304c: 0000 unimp
+ 8000304e: 0000 unimp
+ 80003050: 0000 unimp
+ 80003052: 0000 unimp
+ 80003054: 0000 unimp
+ 80003056: 0000 unimp
+ 80003058: 0000 unimp
+ 8000305a: 0000 unimp
+ 8000305c: 0000 unimp
+ 8000305e: 0000 unimp
+ 80003060: 0000 unimp
+ 80003062: 0000 unimp
+ 80003064: 0000 unimp
+ 80003066: 0000 unimp
+ 80003068: 0000 unimp
+ 8000306a: 0000 unimp
+ 8000306c: 0000 unimp
+ 8000306e: 0000 unimp
+ 80003070: 0000 unimp
+ 80003072: 0000 unimp
+ 80003074: 0000 unimp
+ 80003076: 0000 unimp
+ 80003078: 0000 unimp
+ 8000307a: 0000 unimp
+ 8000307c: 0000 unimp
+ 8000307e: 0000 unimp
+ 80003080: 0000 unimp
+ 80003082: 0000 unimp
+ 80003084: 0000 unimp
+ 80003086: 0000 unimp
+ 80003088: 0000 unimp
+ 8000308a: 0000 unimp
+ 8000308c: 0000 unimp
+ 8000308e: 0000 unimp
+ 80003090: 0000 unimp
+ 80003092: 0000 unimp
+ 80003094: 0000 unimp
+ 80003096: 0000 unimp
+ 80003098: 0000 unimp
+ 8000309a: 0000 unimp
+ 8000309c: 0000 unimp
+ 8000309e: 0000 unimp
+ 800030a0: 0000 unimp
+ 800030a2: 0000 unimp
+ 800030a4: 0000 unimp
+ 800030a6: 0000 unimp
+ 800030a8: 0000 unimp
+ 800030aa: 0000 unimp
+ 800030ac: 0000 unimp
+ 800030ae: 0000 unimp
+ 800030b0: 0000 unimp
+ 800030b2: 0000 unimp
+ 800030b4: 0000 unimp
+ 800030b6: 0000 unimp
+ 800030b8: 0000 unimp
+ 800030ba: 0000 unimp
+ 800030bc: 0000 unimp
+ 800030be: 0000 unimp
+ 800030c0: 0000 unimp
+ 800030c2: 0000 unimp
+ 800030c4: 0000 unimp
+ 800030c6: 0000 unimp
+ 800030c8: 0000 unimp
+ 800030ca: 0000 unimp
+ 800030cc: 0000 unimp
+ 800030ce: 0000 unimp
+ 800030d0: 0000 unimp
+ 800030d2: 0000 unimp
+ 800030d4: 0000 unimp
+ 800030d6: 0000 unimp
+ 800030d8: 0000 unimp
+ 800030da: 0000 unimp
+ 800030dc: 0000 unimp
+ 800030de: 0000 unimp
+ 800030e0: 0000 unimp
+ 800030e2: 0000 unimp
+ 800030e4: 0000 unimp
+ 800030e6: 0000 unimp
+ 800030e8: 0000 unimp
+ 800030ea: 0000 unimp
+ 800030ec: 0000 unimp
+ 800030ee: 0000 unimp
+ 800030f0: 0000 unimp
+ 800030f2: 0000 unimp
+ 800030f4: 0000 unimp
+ 800030f6: 0000 unimp
+ 800030f8: 0000 unimp
+ 800030fa: 0000 unimp
+ 800030fc: 0000 unimp
+ 800030fe: 0000 unimp
+ 80003100: 0000 unimp
+ 80003102: 0000 unimp
+ 80003104: 0000 unimp
+ 80003106: 0000 unimp
+ 80003108: 0000 unimp
+ 8000310a: 0000 unimp
+ 8000310c: 0000 unimp
+ 8000310e: 0000 unimp
+ 80003110: 0000 unimp
+ 80003112: 0000 unimp
+ 80003114: 0000 unimp
+ 80003116: 0000 unimp
+ 80003118: 0000 unimp
+ 8000311a: 0000 unimp
+ 8000311c: 0000 unimp
+ 8000311e: 0000 unimp
+ 80003120: 0000 unimp
+ 80003122: 0000 unimp
+ 80003124: 0000 unimp
+ 80003126: 0000 unimp
+ 80003128: 0000 unimp
+ 8000312a: 0000 unimp
+ 8000312c: 0000 unimp
+ 8000312e: 0000 unimp
+ 80003130: 0000 unimp
+ 80003132: 0000 unimp
+ 80003134: 0000 unimp
+ 80003136: 0000 unimp
+ 80003138: 0000 unimp
+ 8000313a: 0000 unimp
+ 8000313c: 0000 unimp
+ 8000313e: 0000 unimp
+ 80003140: 0000 unimp
+ 80003142: 0000 unimp
+ 80003144: 0000 unimp
+ 80003146: 0000 unimp
+ 80003148: 0000 unimp
+ 8000314a: 0000 unimp
+ 8000314c: 0000 unimp
+ 8000314e: 0000 unimp
+ 80003150: 0000 unimp
+ 80003152: 0000 unimp
+ 80003154: 0000 unimp
+ 80003156: 0000 unimp
+ 80003158: 0000 unimp
+ 8000315a: 0000 unimp
+ 8000315c: 0000 unimp
+ 8000315e: 0000 unimp
+ 80003160: 0000 unimp
+ 80003162: 0000 unimp
+ 80003164: 0000 unimp
+ 80003166: 0000 unimp
+ 80003168: 0000 unimp
+ 8000316a: 0000 unimp
+ 8000316c: 0000 unimp
+ 8000316e: 0000 unimp
+ 80003170: 0000 unimp
+ 80003172: 0000 unimp
+ 80003174: 0000 unimp
+ 80003176: 0000 unimp
+ 80003178: 0000 unimp
+ 8000317a: 0000 unimp
+ 8000317c: 0000 unimp
+ 8000317e: 0000 unimp
+ 80003180: 0000 unimp
+ 80003182: 0000 unimp
+ 80003184: 0000 unimp
+ 80003186: 0000 unimp
+ 80003188: 0000 unimp
+ 8000318a: 0000 unimp
+ 8000318c: 0000 unimp
+ 8000318e: 0000 unimp
+ 80003190: 0000 unimp
+ 80003192: 0000 unimp
+ 80003194: 0000 unimp
+ 80003196: 0000 unimp
+ 80003198: 0000 unimp
+ 8000319a: 0000 unimp
+ 8000319c: 0000 unimp
+ 8000319e: 0000 unimp
+ 800031a0: 0000 unimp
+ 800031a2: 0000 unimp
+ 800031a4: 0000 unimp
+ 800031a6: 0000 unimp
+ 800031a8: 0000 unimp
+ 800031aa: 0000 unimp
+ 800031ac: 0000 unimp
+ 800031ae: 0000 unimp
+ 800031b0: 0000 unimp
+ 800031b2: 0000 unimp
+ 800031b4: 0000 unimp
+ 800031b6: 0000 unimp
+ 800031b8: 0000 unimp
+ 800031ba: 0000 unimp
+ 800031bc: 0000 unimp
+ 800031be: 0000 unimp
+ 800031c0: 0000 unimp
+ 800031c2: 0000 unimp
+ 800031c4: 0000 unimp
+ 800031c6: 0000 unimp
+ 800031c8: 0000 unimp
+ 800031ca: 0000 unimp
+ 800031cc: 0000 unimp
+ 800031ce: 0000 unimp
+ 800031d0: 0000 unimp
+ 800031d2: 0000 unimp
+ 800031d4: 0000 unimp
+ 800031d6: 0000 unimp
+ 800031d8: 0000 unimp
+ 800031da: 0000 unimp
+ 800031dc: 0000 unimp
+ 800031de: 0000 unimp
+ 800031e0: 0000 unimp
+ 800031e2: 0000 unimp
+ 800031e4: 0000 unimp
+ 800031e6: 0000 unimp
+ 800031e8: 0000 unimp
+ 800031ea: 0000 unimp
+ 800031ec: 0000 unimp
+ 800031ee: 0000 unimp
+ 800031f0: 0000 unimp
+ 800031f2: 0000 unimp
+ 800031f4: 0000 unimp
+ 800031f6: 0000 unimp
+ 800031f8: 0000 unimp
+ 800031fa: 0000 unimp
+ 800031fc: 0000 unimp
+ 800031fe: 0000 unimp
+ 80003200: 0000 unimp
+ 80003202: 0000 unimp
+ 80003204: 0000 unimp
+ 80003206: 0000 unimp
+ 80003208: 0000 unimp
+ 8000320a: 0000 unimp
+ 8000320c: 0000 unimp
+ 8000320e: 0000 unimp
+ 80003210: 0000 unimp
+ 80003212: 0000 unimp
+ 80003214: 0000 unimp
+ 80003216: 0000 unimp
+ 80003218: 0000 unimp
+ 8000321a: 0000 unimp
+ 8000321c: 0000 unimp
+ 8000321e: 0000 unimp
+ 80003220: 0000 unimp
+ 80003222: 0000 unimp
+ 80003224: 0000 unimp
+ 80003226: 0000 unimp
+ 80003228: 0000 unimp
+ 8000322a: 0000 unimp
+ 8000322c: 0000 unimp
+ 8000322e: 0000 unimp
+ 80003230: 0000 unimp
+ 80003232: 0000 unimp
+ 80003234: 0000 unimp
+ 80003236: 0000 unimp
+ 80003238: 0000 unimp
+ 8000323a: 0000 unimp
+ 8000323c: 0000 unimp
+ 8000323e: 0000 unimp
+ 80003240: 0000 unimp
+ 80003242: 0000 unimp
+ 80003244: 0000 unimp
+ 80003246: 0000 unimp
+ 80003248: 0000 unimp
+ 8000324a: 0000 unimp
+ 8000324c: 0000 unimp
+ 8000324e: 0000 unimp
+ 80003250: 0000 unimp
+ 80003252: 0000 unimp
+ 80003254: 0000 unimp
+ 80003256: 0000 unimp
+ 80003258: 0000 unimp
+ 8000325a: 0000 unimp
+ 8000325c: 0000 unimp
+ 8000325e: 0000 unimp
+ 80003260: 0000 unimp
+ 80003262: 0000 unimp
+ 80003264: 0000 unimp
+ 80003266: 0000 unimp
+ 80003268: 0000 unimp
+ 8000326a: 0000 unimp
+ 8000326c: 0000 unimp
+ 8000326e: 0000 unimp
+ 80003270: 0000 unimp
+ 80003272: 0000 unimp
+ 80003274: 0000 unimp
+ 80003276: 0000 unimp
+ 80003278: 0000 unimp
+ 8000327a: 0000 unimp
+ 8000327c: 0000 unimp
+ 8000327e: 0000 unimp
+ 80003280: 0000 unimp
+ 80003282: 0000 unimp
+ 80003284: 0000 unimp
+ 80003286: 0000 unimp
+ 80003288: 0000 unimp
+ 8000328a: 0000 unimp
+ 8000328c: 0000 unimp
+ 8000328e: 0000 unimp
+ 80003290: 0000 unimp
+ 80003292: 0000 unimp
+ 80003294: 0000 unimp
+ 80003296: 0000 unimp
+ 80003298: 0000 unimp
+ 8000329a: 0000 unimp
+ 8000329c: 0000 unimp
+ 8000329e: 0000 unimp
+ 800032a0: 0000 unimp
+ 800032a2: 0000 unimp
+ 800032a4: 0000 unimp
+ 800032a6: 0000 unimp
+ 800032a8: 0000 unimp
+ 800032aa: 0000 unimp
+ 800032ac: 0000 unimp
+ 800032ae: 0000 unimp
+ 800032b0: 0000 unimp
+ 800032b2: 0000 unimp
+ 800032b4: 0000 unimp
+ 800032b6: 0000 unimp
+ 800032b8: 0000 unimp
+ 800032ba: 0000 unimp
+ 800032bc: 0000 unimp
+ 800032be: 0000 unimp
+ 800032c0: 0000 unimp
+ 800032c2: 0000 unimp
+ 800032c4: 0000 unimp
+ 800032c6: 0000 unimp
+ 800032c8: 0000 unimp
+ 800032ca: 0000 unimp
+ 800032cc: 0000 unimp
+ 800032ce: 0000 unimp
+ 800032d0: 0000 unimp
+ 800032d2: 0000 unimp
+ 800032d4: 0000 unimp
+ 800032d6: 0000 unimp
+ 800032d8: 0000 unimp
+ 800032da: 0000 unimp
+ 800032dc: 0000 unimp
+ 800032de: 0000 unimp
+ 800032e0: 0000 unimp
+ 800032e2: 0000 unimp
+ 800032e4: 0000 unimp
+ 800032e6: 0000 unimp
+ 800032e8: 0000 unimp
+ 800032ea: 0000 unimp
+ 800032ec: 0000 unimp
+ 800032ee: 0000 unimp
+ 800032f0: 0000 unimp
+ 800032f2: 0000 unimp
+ 800032f4: 0000 unimp
+ 800032f6: 0000 unimp
+ 800032f8: 0000 unimp
+ 800032fa: 0000 unimp
+ 800032fc: 0000 unimp
+ 800032fe: 0000 unimp
+ 80003300: 0000 unimp
+ 80003302: 0000 unimp
+ 80003304: 0000 unimp
+ 80003306: 0000 unimp
+ 80003308: 0000 unimp
+ 8000330a: 0000 unimp
+ 8000330c: 0000 unimp
+ 8000330e: 0000 unimp
+ 80003310: 0000 unimp
+ 80003312: 0000 unimp
+ 80003314: 0000 unimp
+ 80003316: 0000 unimp
+ 80003318: 0000 unimp
+ 8000331a: 0000 unimp
+ 8000331c: 0000 unimp
+ 8000331e: 0000 unimp
+ 80003320: 0000 unimp
+ 80003322: 0000 unimp
+ 80003324: 0000 unimp
+ 80003326: 0000 unimp
+ 80003328: 0000 unimp
+ 8000332a: 0000 unimp
+ 8000332c: 0000 unimp
+ 8000332e: 0000 unimp
+ 80003330: 0000 unimp
+ 80003332: 0000 unimp
+ 80003334: 0000 unimp
+ 80003336: 0000 unimp
+ 80003338: 0000 unimp
+ 8000333a: 0000 unimp
+ 8000333c: 0000 unimp
+ 8000333e: 0000 unimp
+ 80003340: 0000 unimp
+ 80003342: 0000 unimp
+ 80003344: 0000 unimp
+ 80003346: 0000 unimp
+ 80003348: 0000 unimp
+ 8000334a: 0000 unimp
+ 8000334c: 0000 unimp
+ 8000334e: 0000 unimp
+ 80003350: 0000 unimp
+ 80003352: 0000 unimp
+ 80003354: 0000 unimp
+ 80003356: 0000 unimp
+ 80003358: 0000 unimp
+ 8000335a: 0000 unimp
+ 8000335c: 0000 unimp
+ 8000335e: 0000 unimp
+ 80003360: 0000 unimp
+ 80003362: 0000 unimp
+ 80003364: 0000 unimp
+ 80003366: 0000 unimp
+ 80003368: 0000 unimp
+ 8000336a: 0000 unimp
+ 8000336c: 0000 unimp
+ 8000336e: 0000 unimp
+ 80003370: 0000 unimp
+ 80003372: 0000 unimp
+ 80003374: 0000 unimp
+ 80003376: 0000 unimp
+ 80003378: 0000 unimp
+ 8000337a: 0000 unimp
+ 8000337c: 0000 unimp
+ 8000337e: 0000 unimp
+ 80003380: 0000 unimp
+ 80003382: 0000 unimp
+ 80003384: 0000 unimp
+ 80003386: 0000 unimp
+ 80003388: 0000 unimp
+ 8000338a: 0000 unimp
+ 8000338c: 0000 unimp
+ 8000338e: 0000 unimp
+ 80003390: 0000 unimp
+ 80003392: 0000 unimp
+ 80003394: 0000 unimp
+ 80003396: 0000 unimp
+ 80003398: 0000 unimp
+ 8000339a: 0000 unimp
+ 8000339c: 0000 unimp
+ 8000339e: 0000 unimp
+ 800033a0: 0000 unimp
+ 800033a2: 0000 unimp
+ 800033a4: 0000 unimp
+ 800033a6: 0000 unimp
+ 800033a8: 0000 unimp
+ 800033aa: 0000 unimp
+ 800033ac: 0000 unimp
+ 800033ae: 0000 unimp
+ 800033b0: 0000 unimp
+ 800033b2: 0000 unimp
+ 800033b4: 0000 unimp
+ 800033b6: 0000 unimp
+ 800033b8: 0000 unimp
+ 800033ba: 0000 unimp
+ 800033bc: 0000 unimp
+ 800033be: 0000 unimp
+ 800033c0: 0000 unimp
+ 800033c2: 0000 unimp
+ 800033c4: 0000 unimp
+ 800033c6: 0000 unimp
+ 800033c8: 0000 unimp
+ 800033ca: 0000 unimp
+ 800033cc: 0000 unimp
+ 800033ce: 0000 unimp
+ 800033d0: 0000 unimp
+ 800033d2: 0000 unimp
+ 800033d4: 0000 unimp
+ 800033d6: 0000 unimp
+ 800033d8: 0000 unimp
+ 800033da: 0000 unimp
+ 800033dc: 0000 unimp
+ 800033de: 0000 unimp
+ 800033e0: 0000 unimp
+ 800033e2: 0000 unimp
+ 800033e4: 0000 unimp
+ 800033e6: 0000 unimp
+ 800033e8: 0000 unimp
+ 800033ea: 0000 unimp
+ 800033ec: 0000 unimp
+ 800033ee: 0000 unimp
+ 800033f0: 0000 unimp
+ 800033f2: 0000 unimp
+ 800033f4: 0000 unimp
+ 800033f6: 0000 unimp
+ 800033f8: 0000 unimp
+ 800033fa: 0000 unimp
+ 800033fc: 0000 unimp
+ 800033fe: 0000 unimp
+ 80003400: 0000 unimp
+ 80003402: 0000 unimp
+ 80003404: 0000 unimp
+ 80003406: 0000 unimp
+ 80003408: 0000 unimp
+ 8000340a: 0000 unimp
+
+000000008000340c <fooTest3>:
+ 8000340c: 0000 unimp
+ 8000340e: 0000 unimp
diff --git a/test/tests/rv64ua-v-lrsc.elf b/test/tests/rv64ua-v-lrsc.elf
new file mode 100755
index 0000000..3f49c87
--- /dev/null
+++ b/test/tests/rv64ua-v-lrsc.elf
Binary files differ
diff --git a/test/tests/rv64uc-p-rvc.dump b/test/tests/rv64uc-p-rvc.dump
new file mode 100644
index 0000000..616e38f
--- /dev/null
+++ b/test/tests/rv64uc-p-rvc.dump
@@ -0,0 +1,4878 @@
+
+rv64uc-p-rvc: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00003f17 auipc t5,0x3
+ 80000044: fc3f2023 sw gp,-64(t5) # 80003000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+0000000080000104 <test_2>:
+ 80000104: 6fb0106f j 80001ffe <data+0x1ef6>
+
+0000000080000108 <data>:
+ 80000108: 3210 fld fa2,32(a2)
+ 8000010a: 7654 ld a3,168(a2)
+ 8000010c: ba98 fsd fa4,48(a3)
+ 8000010e: fedc sd a5,184(a3)
+ 80000110: 3210 fld fa2,32(a2)
+ 80000112: 7654 ld a3,168(a2)
+ 80000114: ba98 fsd fa4,48(a3)
+ 80000116: fedc sd a5,184(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: 2dd59163 bne a1,t4,800022cc <fail>
+ 8000200e: 00001137 lui sp,0x1
+ 80002012: 2341011b addiw sp,sp,564
+
+0000000080002016 <test_3>:
+ 80002016: 1fe8 addi a0,sp,1020
+ 80002018: 00001eb7 lui t4,0x1
+ 8000201c: 630e8e9b addiw t4,t4,1584
+ 80002020: 00300193 li gp,3
+ 80002024: 2bd51463 bne a0,t4,800022cc <fail>
+
+0000000080002028 <test_4>:
+ 80002028: 617d addi sp,sp,496
+ 8000202a: 0001 nop
+ 8000202c: 00001eb7 lui t4,0x1
+ 80002030: 424e8e9b addiw t4,t4,1060
+ 80002034: 00400193 li gp,4
+ 80002038: 29d11a63 bne sp,t4,800022cc <fail>
+
+000000008000203c <test_5>:
+ 8000203c: 7101 addi sp,sp,-512
+ 8000203e: 0001 nop
+ 80002040: 00001eb7 lui t4,0x1
+ 80002044: 224e8e9b addiw t4,t4,548
+ 80002048: 00500193 li gp,5
+ 8000204c: 29d11063 bne sp,t4,800022cc <fail>
+ 80002050: ffffe597 auipc a1,0xffffe
+ 80002054: 0b858593 addi a1,a1,184 # 80000108 <data>
+
+0000000080002058 <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: a99e8e9b addiw t4,t4,-1383
+ 80002068: 00600193 li gp,6
+ 8000206c: 27d61063 bne a2,t4,800022cc <fail>
+
+0000000080002070 <test_7>:
+ 80002070: 6188 ld a0,0(a1)
+ 80002072: 0505 addi a0,a0,1
+ 80002074: e188 sd a0,0(a1)
+ 80002076: 6190 ld a2,0(a1)
+ 80002078: fff6eeb7 lui t4,0xfff6e
+ 8000207c: 5d5e8e9b addiw t4,t4,1493
+ 80002080: 00ce9e93 slli t4,t4,0xc
+ 80002084: cbbe8e93 addi t4,t4,-837 # fffffffffff6dcbb <_end+0xffffffff7ff69cbb>
+ 80002088: 00de9e93 slli t4,t4,0xd
+ 8000208c: 543e8e93 addi t4,t4,1347
+ 80002090: 00ce9e93 slli t4,t4,0xc
+ 80002094: 211e8e93 addi t4,t4,529
+ 80002098: 00700193 li gp,7
+ 8000209c: 23d61863 bne a2,t4,800022cc <fail>
+
+00000000800020a0 <test_8>:
+ 800020a0: 00106513 ori a0,zero,1
+ 800020a4: 1541 addi a0,a0,-16
+ 800020a6: 0001 nop
+ 800020a8: ff100e93 li t4,-15
+ 800020ac: 00800193 li gp,8
+ 800020b0: 21d51e63 bne a0,t4,800022cc <fail>
+
+00000000800020b4 <test_9>:
+ 800020b4: 00106793 ori a5,zero,1
+ 800020b8: 57c1 li a5,-16
+ 800020ba: 0001 nop
+ 800020bc: ff000e93 li t4,-16
+ 800020c0: 00900193 li gp,9
+ 800020c4: 21d79463 bne a5,t4,800022cc <fail>
+
+00000000800020c8 <test_10>:
+ 800020c8: 6188 ld a0,0(a1)
+ 800020ca: 357d addiw a0,a0,-1
+ 800020cc: 76543eb7 lui t4,0x76543
+ 800020d0: 210e8e9b addiw t4,t4,528
+ 800020d4: 00a00193 li gp,10
+ 800020d8: 1fd51a63 bne a0,t4,800022cc <fail>
+
+00000000800020dc <test_11>:
+ 800020dc: 7405 lui s0,0xfffe1
+ 800020de: 8431 srai s0,s0,0xc
+ 800020e0: fe100e93 li t4,-31
+ 800020e4: 00b00193 li gp,11
+ 800020e8: 1fd41263 bne s0,t4,800022cc <fail>
+
+00000000800020ec <test_12>:
+ 800020ec: 7405 lui s0,0xfffe1
+ 800020ee: 8031 srli s0,s0,0xc
+ 800020f0: 00100e9b addiw t4,zero,1
+ 800020f4: 034e9e93 slli t4,t4,0x34
+ 800020f8: fe1e8e93 addi t4,t4,-31 # 76542fe1 <_start-0x9abd01f>
+ 800020fc: 00c00193 li gp,12
+ 80002100: 1dd41663 bne s0,t4,800022cc <fail>
+
+0000000080002104 <test_14>:
+ 80002104: 5479 li s0,-2
+ 80002106: 983d andi s0,s0,-17
+ 80002108: fee00e93 li t4,-18
+ 8000210c: 00e00193 li gp,14
+ 80002110: 1bd41e63 bne s0,t4,800022cc <fail>
+
+0000000080002114 <test_15>:
+ 80002114: 44d1 li s1,20
+ 80002116: 4519 li a0,6
+ 80002118: 8c89 sub s1,s1,a0
+ 8000211a: 0001 nop
+ 8000211c: 00e00e93 li t4,14
+ 80002120: 00f00193 li gp,15
+ 80002124: 1bd49463 bne s1,t4,800022cc <fail>
+
+0000000080002128 <test_16>:
+ 80002128: 44d1 li s1,20
+ 8000212a: 4519 li a0,6
+ 8000212c: 8ca9 xor s1,s1,a0
+ 8000212e: 0001 nop
+ 80002130: 01200e93 li t4,18
+ 80002134: 01000193 li gp,16
+ 80002138: 19d49a63 bne s1,t4,800022cc <fail>
+
+000000008000213c <test_17>:
+ 8000213c: 44d1 li s1,20
+ 8000213e: 4519 li a0,6
+ 80002140: 8cc9 or s1,s1,a0
+ 80002142: 0001 nop
+ 80002144: 01600e93 li t4,22
+ 80002148: 01100193 li gp,17
+ 8000214c: 19d49063 bne s1,t4,800022cc <fail>
+
+0000000080002150 <test_18>:
+ 80002150: 44d1 li s1,20
+ 80002152: 4519 li a0,6
+ 80002154: 8ce9 and s1,s1,a0
+ 80002156: 0001 nop
+ 80002158: 00400e93 li t4,4
+ 8000215c: 01200193 li gp,18
+ 80002160: 17d49663 bne s1,t4,800022cc <fail>
+
+0000000080002164 <test_19>:
+ 80002164: 800004b7 lui s1,0x80000
+ 80002168: fff4849b addiw s1,s1,-1
+ 8000216c: 557d li a0,-1
+ 8000216e: 9c89 subw s1,s1,a0
+ 80002170: 80000eb7 lui t4,0x80000
+ 80002174: 01300193 li gp,19
+ 80002178: 15d49a63 bne s1,t4,800022cc <fail>
+
+000000008000217c <test_20>:
+ 8000217c: 800004b7 lui s1,0x80000
+ 80002180: fff4849b addiw s1,s1,-1
+ 80002184: 4505 li a0,1
+ 80002186: 9ca9 addw s1,s1,a0
+ 80002188: 80000eb7 lui t4,0x80000
+ 8000218c: 01400193 li gp,20
+ 80002190: 13d49e63 bne s1,t4,800022cc <fail>
+
+0000000080002194 <test_21>:
+ 80002194: 00001437 lui s0,0x1
+ 80002198: 2344041b addiw s0,s0,564
+ 8000219c: 0412 slli s0,s0,0x4
+ 8000219e: 0001 nop
+ 800021a0: 00012eb7 lui t4,0x12
+ 800021a4: 340e8e9b addiw t4,t4,832
+ 800021a8: 01500193 li gp,21
+ 800021ac: 13d41063 bne s0,t4,800022cc <fail>
+
+00000000800021b0 <test_30>:
+ 800021b0: 4081 li ra,0
+ 800021b2: a011 j 800021b6 <test_30+0x6>
+ 800021b4: a011 j 800021b8 <test_30+0x8>
+ 800021b6: a011 j 800021ba <test_30+0xa>
+ 800021b8: aa11 j 800022cc <fail>
+ 800021ba: 0001 nop
+ 800021bc: 00000e93 li t4,0
+ 800021c0: 01e00193 li gp,30
+ 800021c4: 11d09463 bne ra,t4,800022cc <fail>
+
+00000000800021c8 <test_31>:
+ 800021c8: 4501 li a0,0
+ 800021ca: c111 beqz a0,800021ce <test_31+0x6>
+ 800021cc: a011 j 800021d0 <test_31+0x8>
+ 800021ce: a011 j 800021d2 <test_31+0xa>
+ 800021d0: a8f5 j 800022cc <fail>
+ 800021d2: 0001 nop
+ 800021d4: 00000e93 li t4,0
+ 800021d8: 01f00193 li gp,31
+ 800021dc: 0fd01863 bne zero,t4,800022cc <fail>
+
+00000000800021e0 <test_32>:
+ 800021e0: 4505 li a0,1
+ 800021e2: e111 bnez a0,800021e6 <test_32+0x6>
+ 800021e4: a011 j 800021e8 <test_32+0x8>
+ 800021e6: a011 j 800021ea <test_32+0xa>
+ 800021e8: a0d5 j 800022cc <fail>
+ 800021ea: 0001 nop
+ 800021ec: 00000e93 li t4,0
+ 800021f0: 02000193 li gp,32
+ 800021f4: 0dd01c63 bne zero,t4,800022cc <fail>
+
+00000000800021f8 <test_33>:
+ 800021f8: 4505 li a0,1
+ 800021fa: c111 beqz a0,800021fe <test_33+0x6>
+ 800021fc: a011 j 80002200 <test_33+0x8>
+ 800021fe: a0f9 j 800022cc <fail>
+ 80002200: 00000e93 li t4,0
+ 80002204: 02100193 li gp,33
+ 80002208: 0dd01263 bne zero,t4,800022cc <fail>
+
+000000008000220c <test_34>:
+ 8000220c: 4501 li a0,0
+ 8000220e: e111 bnez a0,80002212 <test_34+0x6>
+ 80002210: a011 j 80002214 <test_34+0x8>
+ 80002212: a86d j 800022cc <fail>
+ 80002214: 00000e93 li t4,0
+ 80002218: 02200193 li gp,34
+ 8000221c: 0bd01863 bne zero,t4,800022cc <fail>
+
+0000000080002220 <test_35>:
+ 80002220: 00000297 auipc t0,0x0
+ 80002224: 00e28293 addi t0,t0,14 # 8000222e <test_35+0xe>
+ 80002228: 4081 li ra,0
+ 8000222a: 8282 jr t0
+ 8000222c: a011 j 80002230 <test_35+0x10>
+ 8000222e: a011 j 80002232 <test_35+0x12>
+ 80002230: a871 j 800022cc <fail>
+ 80002232: 0001 nop
+ 80002234: 00000e93 li t4,0
+ 80002238: 02300193 li gp,35
+ 8000223c: 09d09863 bne ra,t4,800022cc <fail>
+
+0000000080002240 <test_36>:
+ 80002240: 00000297 auipc t0,0x0
+ 80002244: 00e28293 addi t0,t0,14 # 8000224e <test_36+0xe>
+ 80002248: 4081 li ra,0
+ 8000224a: 9282 jalr t0
+ 8000224c: a011 j 80002250 <test_36+0x10>
+ 8000224e: a011 j 80002252 <test_36+0x12>
+ 80002250: a8b5 j 800022cc <fail>
+ 80002252: 405080b3 sub ra,ra,t0
+ 80002256: 0001 nop
+ 80002258: ffe00e93 li t4,-2
+ 8000225c: 02400193 li gp,36
+ 80002260: 07d09663 bne ra,t4,800022cc <fail>
+ 80002264: ffffe117 auipc sp,0xffffe
+ 80002268: ea410113 addi sp,sp,-348 # 80000108 <data>
+
+000000008000226c <test_40>:
+ 8000226c: 4532 lw a0,12(sp)
+ 8000226e: 0505 addi a0,a0,1
+ 80002270: c62a sw a0,12(sp)
+ 80002272: 4632 lw a2,12(sp)
+ 80002274: fedcceb7 lui t4,0xfedcc
+ 80002278: a99e8e9b addiw t4,t4,-1383
+ 8000227c: 02800193 li gp,40
+ 80002280: 05d61663 bne a2,t4,800022cc <fail>
+
+0000000080002284 <test_41>:
+ 80002284: 6522 ld a0,8(sp)
+ 80002286: 0505 addi a0,a0,1
+ 80002288: e42a sd a0,8(sp)
+ 8000228a: 6622 ld a2,8(sp)
+ 8000228c: fff6eeb7 lui t4,0xfff6e
+ 80002290: 5d5e8e9b addiw t4,t4,1493
+ 80002294: 00ce9e93 slli t4,t4,0xc
+ 80002298: cbbe8e93 addi t4,t4,-837 # fffffffffff6dcbb <_end+0xffffffff7ff69cbb>
+ 8000229c: 00de9e93 slli t4,t4,0xd
+ 800022a0: 543e8e93 addi t4,t4,1347
+ 800022a4: 00ce9e93 slli t4,t4,0xc
+ 800022a8: 211e8e93 addi t4,t4,529
+ 800022ac: 02900193 li gp,41
+ 800022b0: 01d61e63 bne a2,t4,800022cc <fail>
+
+00000000800022b4 <test_42>:
+ 800022b4: 12300513 li a0,291
+ 800022b8: 82aa mv t0,a0
+ 800022ba: 92aa add t0,t0,a0
+ 800022bc: 24600e93 li t4,582
+ 800022c0: 02a00193 li gp,42
+ 800022c4: 01d29463 bne t0,t4,800022cc <fail>
+ 800022c8: 00301c63 bne zero,gp,800022e0 <pass>
+
+00000000800022cc <fail>:
+ 800022cc: 0ff0000f fence
+ 800022d0: 00018063 beqz gp,800022d0 <fail+0x4>
+ 800022d4: 00119193 slli gp,gp,0x1
+ 800022d8: 0011e193 ori gp,gp,1
+ 800022dc: 00000073 ecall
+
+00000000800022e0 <pass>:
+ 800022e0: 0ff0000f fence
+ 800022e4: 00100193 li gp,1
+ 800022e8: 00000073 ecall
+ 800022ec: c0001073 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
diff --git a/test/tests/rv64uc-p-rvc.elf b/test/tests/rv64uc-p-rvc.elf
new file mode 100644
index 0000000..3421d31
--- /dev/null
+++ b/test/tests/rv64uc-p-rvc.elf
Binary files differ
diff --git a/test/tests/rv64uc-v-rvc.dump b/test/tests/rv64uc-v-rvc.dump
new file mode 100644
index 0000000..696b038
--- /dev/null
+++ b/test/tests/rv64uc-v-rvc.dump
@@ -0,0 +1,6518 @@
+
+rv64uc-v-rvc: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <handle_reset>:
+ 8000000c: 00000297 auipc t0,0x0
+ 80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+ 80000014: 30529073 csrw mtvec,t0
+ 80000018: 0000c117 auipc sp,0xc
+ 8000001c: 6b810113 addi sp,sp,1720 # 8000c6d0 <_end+0xee0>
+ 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: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00005617 auipc a2,0x5
+ 80002318: cec60613 addi a2,a2,-788 # 80007000 <begin_signature>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00009797 auipc a5,0x9
+ 80002334: 4b878793 addi a5,a5,1208 # 8000b7e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00009717 auipc a4,0x9
+ 80002348: 49c70713 addi a4,a4,1180 # 8000b7e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00009897 auipc a7,0x9
+ 80002354: 48f8bc23 sd a5,1176(a7) # 8000b7e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00009797 auipc a5,0x9
+ 80002384: 07078793 addi a5,a5,112 # 8000b3f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf4810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00009797 auipc a5,0x9
+ 80002448: 3807be23 sd zero,924(a5) # 8000b7e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00004697 auipc a3,0x4
+ 8000245c: b7068693 addi a3,a3,-1168 # 80005fc8 <pass+0xcec>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00004617 auipc a2,0x4
+ 800024b8: ba460613 addi a2,a2,-1116 # 80006058 <pass+0xd7c>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00004617 auipc a2,0x4
+ 80002508: b6c60613 addi a2,a2,-1172 # 80006070 <pass+0xd94>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00004697 auipc a3,0x4
+ 80002558: abc68693 addi a3,a3,-1348 # 80006010 <pass+0xd34>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00004697 auipc a3,0x4
+ 80002674: ad868693 addi a3,a3,-1320 # 80006148 <pass+0xe6c>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00004617 auipc a2,0x4
+ 800026cc: a5860613 addi a2,a2,-1448 # 80006120 <pass+0xe44>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00009d17 auipc s10,0x9
+ 80002720: cd4d0d13 addi s10,s10,-812 # 8000b3f0 <user_mapping>
+ 80002724: 00005b97 auipc s7,0x5
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80007000 <begin_signature>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00009a17 auipc s4,0x9
+ 80002738: 0aca0a13 addi s4,s4,172 # 8000b7e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00009717 auipc a4,0x9
+ 8000274c: 08f73c23 sd a5,152(a4) # 8000b7e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00009717 auipc a4,0x9
+ 800027d4: 00f73823 sd a5,16(a4) # 8000b7e0 <freelist_tail>
+ 800027d8: 00009717 auipc a4,0x9
+ 800027dc: 00f73823 sd a5,16(a4) # 8000b7e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00004697 auipc a3,0x4
+ 800027f0: 98c68693 addi a3,a3,-1652 # 80006178 <pass+0xe9c>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00004697 auipc a3,0x4
+ 80002840: 8ac68693 addi a3,a3,-1876 # 800060e8 <pass+0xe0c>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00004697 auipc a3,0x4
+ 80002878: 83c68693 addi a3,a3,-1988 # 800060b0 <pass+0xdd4>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00005697 auipc a3,0x5
+ 800028e0: 72468693 addi a3,a3,1828 # 80008000 <begin_signature+0x1000>
+ 800028e4: 00006717 auipc a4,0x6
+ 800028e8: 71c70713 addi a4,a4,1820 # 80009000 <begin_signature+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00007797 auipc a5,0x7
+ 800028f8: 70c78793 addi a5,a5,1804 # 8000a000 <begin_signature+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00004897 auipc a7,0x4
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80007000 <begin_signature>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00005697 auipc a3,0x5
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80007ff8 <begin_signature+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00004617 auipc a2,0x4
+ 80002938: 6cc60613 addi a2,a2,1740 # 80007000 <begin_signature>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00007697 auipc a3,0x7
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80009ff8 <begin_signature+0x2ff8>
+ 8000294c: 00005717 auipc a4,0x5
+ 80002950: 6af73a23 sd a5,1716(a4) # 80008000 <begin_signature+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00008697 auipc a3,0x8
+ 800029c0: 64468693 addi a3,a3,1604 # 8000b000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00009617 auipc a2,0x9
+ 800029d0: e0f63e23 sd a5,-484(a2) # 8000b7e8 <freelist_head>
+ 800029d4: 00009797 auipc a5,0x9
+ 800029d8: e0e7b623 sd a4,-500(a5) # 8000b7e0 <freelist_tail>
+ 800029dc: 00009317 auipc t1,0x9
+ 800029e0: a1430313 addi t1,t1,-1516 # 8000b3f0 <user_mapping>
+ 800029e4: 03000793 li a5,48
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00009797 auipc a5,0x9
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 8000b3e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 0db157b7 lui a5,0xdb15
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: 50c78793 addi a5,a5,1292 # db1550c <_start-0x724eaaf4>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+ 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
+ 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
+
+0000000080003000 <userstart>:
+ 80003000: 00200193 li gp,2
+ 80003004: 29a00593 li a1,666
+
+0000000080003008 <test_2>:
+ 80003008: 7f70106f j 80004ffe <data+0x1fee>
+ 8000300c: 00000013 nop
+
+0000000080003010 <data>:
+ 80003010: 3210 fld fa2,32(a2)
+ 80003012: 7654 ld a3,168(a2)
+ 80003014: ba98 fsd fa4,48(a3)
+ 80003016: fedc sd a5,184(a3)
+ 80003018: 3210 fld fa2,32(a2)
+ 8000301a: 7654 ld a3,168(a2)
+ 8000301c: ba98 fsd fa4,48(a3)
+ 8000301e: fedc sd a5,184(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
+ 80005002: 29b00e93 li t4,667
+ 80005006: 00200193 li gp,2
+ 8000500a: 2dd59163 bne a1,t4,800052cc <fail>
+ 8000500e: 00001137 lui sp,0x1
+ 80005012: 2341011b addiw sp,sp,564
+
+0000000080005016 <test_3>:
+ 80005016: 1fe8 addi a0,sp,1020
+ 80005018: 00001eb7 lui t4,0x1
+ 8000501c: 630e8e9b addiw t4,t4,1584
+ 80005020: 00300193 li gp,3
+ 80005024: 2bd51463 bne a0,t4,800052cc <fail>
+
+0000000080005028 <test_4>:
+ 80005028: 617d addi sp,sp,496
+ 8000502a: 0001 nop
+ 8000502c: 00001eb7 lui t4,0x1
+ 80005030: 424e8e9b addiw t4,t4,1060
+ 80005034: 00400193 li gp,4
+ 80005038: 29d11a63 bne sp,t4,800052cc <fail>
+
+000000008000503c <test_5>:
+ 8000503c: 7101 addi sp,sp,-512
+ 8000503e: 0001 nop
+ 80005040: 00001eb7 lui t4,0x1
+ 80005044: 224e8e9b addiw t4,t4,548
+ 80005048: 00500193 li gp,5
+ 8000504c: 29d11063 bne sp,t4,800052cc <fail>
+ 80005050: ffffe597 auipc a1,0xffffe
+ 80005054: fc058593 addi a1,a1,-64 # 80003010 <data>
+
+0000000080005058 <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: a99e8e9b addiw t4,t4,-1383
+ 80005068: 00600193 li gp,6
+ 8000506c: 27d61063 bne a2,t4,800052cc <fail>
+
+0000000080005070 <test_7>:
+ 80005070: 6188 ld a0,0(a1)
+ 80005072: 0505 addi a0,a0,1
+ 80005074: e188 sd a0,0(a1)
+ 80005076: 6190 ld a2,0(a1)
+ 80005078: fff6eeb7 lui t4,0xfff6e
+ 8000507c: 5d5e8e9b addiw t4,t4,1493
+ 80005080: 00ce9e93 slli t4,t4,0xc
+ 80005084: cbbe8e93 addi t4,t4,-837 # fffffffffff6dcbb <_end+0xffffffff7ff624cb>
+ 80005088: 00de9e93 slli t4,t4,0xd
+ 8000508c: 543e8e93 addi t4,t4,1347
+ 80005090: 00ce9e93 slli t4,t4,0xc
+ 80005094: 211e8e93 addi t4,t4,529
+ 80005098: 00700193 li gp,7
+ 8000509c: 23d61863 bne a2,t4,800052cc <fail>
+
+00000000800050a0 <test_8>:
+ 800050a0: 00106513 ori a0,zero,1
+ 800050a4: 1541 addi a0,a0,-16
+ 800050a6: 0001 nop
+ 800050a8: ff100e93 li t4,-15
+ 800050ac: 00800193 li gp,8
+ 800050b0: 21d51e63 bne a0,t4,800052cc <fail>
+
+00000000800050b4 <test_9>:
+ 800050b4: 00106793 ori a5,zero,1
+ 800050b8: 57c1 li a5,-16
+ 800050ba: 0001 nop
+ 800050bc: ff000e93 li t4,-16
+ 800050c0: 00900193 li gp,9
+ 800050c4: 21d79463 bne a5,t4,800052cc <fail>
+
+00000000800050c8 <test_10>:
+ 800050c8: 6188 ld a0,0(a1)
+ 800050ca: 357d addiw a0,a0,-1
+ 800050cc: 76543eb7 lui t4,0x76543
+ 800050d0: 210e8e9b addiw t4,t4,528
+ 800050d4: 00a00193 li gp,10
+ 800050d8: 1fd51a63 bne a0,t4,800052cc <fail>
+
+00000000800050dc <test_11>:
+ 800050dc: 7405 lui s0,0xfffe1
+ 800050de: 8431 srai s0,s0,0xc
+ 800050e0: fe100e93 li t4,-31
+ 800050e4: 00b00193 li gp,11
+ 800050e8: 1fd41263 bne s0,t4,800052cc <fail>
+
+00000000800050ec <test_12>:
+ 800050ec: 7405 lui s0,0xfffe1
+ 800050ee: 8031 srli s0,s0,0xc
+ 800050f0: 00100e9b addiw t4,zero,1
+ 800050f4: 034e9e93 slli t4,t4,0x34
+ 800050f8: fe1e8e93 addi t4,t4,-31 # 76542fe1 <_start-0x9abd01f>
+ 800050fc: 00c00193 li gp,12
+ 80005100: 1dd41663 bne s0,t4,800052cc <fail>
+
+0000000080005104 <test_14>:
+ 80005104: 5479 li s0,-2
+ 80005106: 983d andi s0,s0,-17
+ 80005108: fee00e93 li t4,-18
+ 8000510c: 00e00193 li gp,14
+ 80005110: 1bd41e63 bne s0,t4,800052cc <fail>
+
+0000000080005114 <test_15>:
+ 80005114: 44d1 li s1,20
+ 80005116: 4519 li a0,6
+ 80005118: 8c89 sub s1,s1,a0
+ 8000511a: 0001 nop
+ 8000511c: 00e00e93 li t4,14
+ 80005120: 00f00193 li gp,15
+ 80005124: 1bd49463 bne s1,t4,800052cc <fail>
+
+0000000080005128 <test_16>:
+ 80005128: 44d1 li s1,20
+ 8000512a: 4519 li a0,6
+ 8000512c: 8ca9 xor s1,s1,a0
+ 8000512e: 0001 nop
+ 80005130: 01200e93 li t4,18
+ 80005134: 01000193 li gp,16
+ 80005138: 19d49a63 bne s1,t4,800052cc <fail>
+
+000000008000513c <test_17>:
+ 8000513c: 44d1 li s1,20
+ 8000513e: 4519 li a0,6
+ 80005140: 8cc9 or s1,s1,a0
+ 80005142: 0001 nop
+ 80005144: 01600e93 li t4,22
+ 80005148: 01100193 li gp,17
+ 8000514c: 19d49063 bne s1,t4,800052cc <fail>
+
+0000000080005150 <test_18>:
+ 80005150: 44d1 li s1,20
+ 80005152: 4519 li a0,6
+ 80005154: 8ce9 and s1,s1,a0
+ 80005156: 0001 nop
+ 80005158: 00400e93 li t4,4
+ 8000515c: 01200193 li gp,18
+ 80005160: 17d49663 bne s1,t4,800052cc <fail>
+
+0000000080005164 <test_19>:
+ 80005164: 800004b7 lui s1,0x80000
+ 80005168: fff4849b addiw s1,s1,-1
+ 8000516c: 557d li a0,-1
+ 8000516e: 9c89 subw s1,s1,a0
+ 80005170: 80000eb7 lui t4,0x80000
+ 80005174: 01300193 li gp,19
+ 80005178: 15d49a63 bne s1,t4,800052cc <fail>
+
+000000008000517c <test_20>:
+ 8000517c: 800004b7 lui s1,0x80000
+ 80005180: fff4849b addiw s1,s1,-1
+ 80005184: 4505 li a0,1
+ 80005186: 9ca9 addw s1,s1,a0
+ 80005188: 80000eb7 lui t4,0x80000
+ 8000518c: 01400193 li gp,20
+ 80005190: 13d49e63 bne s1,t4,800052cc <fail>
+
+0000000080005194 <test_21>:
+ 80005194: 00001437 lui s0,0x1
+ 80005198: 2344041b addiw s0,s0,564
+ 8000519c: 0412 slli s0,s0,0x4
+ 8000519e: 0001 nop
+ 800051a0: 00012eb7 lui t4,0x12
+ 800051a4: 340e8e9b addiw t4,t4,832
+ 800051a8: 01500193 li gp,21
+ 800051ac: 13d41063 bne s0,t4,800052cc <fail>
+
+00000000800051b0 <test_30>:
+ 800051b0: 4081 li ra,0
+ 800051b2: a011 j 800051b6 <test_30+0x6>
+ 800051b4: a011 j 800051b8 <test_30+0x8>
+ 800051b6: a011 j 800051ba <test_30+0xa>
+ 800051b8: aa11 j 800052cc <fail>
+ 800051ba: 0001 nop
+ 800051bc: 00000e93 li t4,0
+ 800051c0: 01e00193 li gp,30
+ 800051c4: 11d09463 bne ra,t4,800052cc <fail>
+
+00000000800051c8 <test_31>:
+ 800051c8: 4501 li a0,0
+ 800051ca: c111 beqz a0,800051ce <test_31+0x6>
+ 800051cc: a011 j 800051d0 <test_31+0x8>
+ 800051ce: a011 j 800051d2 <test_31+0xa>
+ 800051d0: a8f5 j 800052cc <fail>
+ 800051d2: 0001 nop
+ 800051d4: 00000e93 li t4,0
+ 800051d8: 01f00193 li gp,31
+ 800051dc: 0fd01863 bne zero,t4,800052cc <fail>
+
+00000000800051e0 <test_32>:
+ 800051e0: 4505 li a0,1
+ 800051e2: e111 bnez a0,800051e6 <test_32+0x6>
+ 800051e4: a011 j 800051e8 <test_32+0x8>
+ 800051e6: a011 j 800051ea <test_32+0xa>
+ 800051e8: a0d5 j 800052cc <fail>
+ 800051ea: 0001 nop
+ 800051ec: 00000e93 li t4,0
+ 800051f0: 02000193 li gp,32
+ 800051f4: 0dd01c63 bne zero,t4,800052cc <fail>
+
+00000000800051f8 <test_33>:
+ 800051f8: 4505 li a0,1
+ 800051fa: c111 beqz a0,800051fe <test_33+0x6>
+ 800051fc: a011 j 80005200 <test_33+0x8>
+ 800051fe: a0f9 j 800052cc <fail>
+ 80005200: 00000e93 li t4,0
+ 80005204: 02100193 li gp,33
+ 80005208: 0dd01263 bne zero,t4,800052cc <fail>
+
+000000008000520c <test_34>:
+ 8000520c: 4501 li a0,0
+ 8000520e: e111 bnez a0,80005212 <test_34+0x6>
+ 80005210: a011 j 80005214 <test_34+0x8>
+ 80005212: a86d j 800052cc <fail>
+ 80005214: 00000e93 li t4,0
+ 80005218: 02200193 li gp,34
+ 8000521c: 0bd01863 bne zero,t4,800052cc <fail>
+
+0000000080005220 <test_35>:
+ 80005220: 00000297 auipc t0,0x0
+ 80005224: 00e28293 addi t0,t0,14 # 8000522e <test_35+0xe>
+ 80005228: 4081 li ra,0
+ 8000522a: 8282 jr t0
+ 8000522c: a011 j 80005230 <test_35+0x10>
+ 8000522e: a011 j 80005232 <test_35+0x12>
+ 80005230: a871 j 800052cc <fail>
+ 80005232: 0001 nop
+ 80005234: 00000e93 li t4,0
+ 80005238: 02300193 li gp,35
+ 8000523c: 09d09863 bne ra,t4,800052cc <fail>
+
+0000000080005240 <test_36>:
+ 80005240: 00000297 auipc t0,0x0
+ 80005244: 00e28293 addi t0,t0,14 # 8000524e <test_36+0xe>
+ 80005248: 4081 li ra,0
+ 8000524a: 9282 jalr t0
+ 8000524c: a011 j 80005250 <test_36+0x10>
+ 8000524e: a011 j 80005252 <test_36+0x12>
+ 80005250: a8b5 j 800052cc <fail>
+ 80005252: 405080b3 sub ra,ra,t0
+ 80005256: 0001 nop
+ 80005258: ffe00e93 li t4,-2
+ 8000525c: 02400193 li gp,36
+ 80005260: 07d09663 bne ra,t4,800052cc <fail>
+ 80005264: ffffe117 auipc sp,0xffffe
+ 80005268: dac10113 addi sp,sp,-596 # 80003010 <data>
+
+000000008000526c <test_40>:
+ 8000526c: 4532 lw a0,12(sp)
+ 8000526e: 0505 addi a0,a0,1
+ 80005270: c62a sw a0,12(sp)
+ 80005272: 4632 lw a2,12(sp)
+ 80005274: fedcceb7 lui t4,0xfedcc
+ 80005278: a99e8e9b addiw t4,t4,-1383
+ 8000527c: 02800193 li gp,40
+ 80005280: 05d61663 bne a2,t4,800052cc <fail>
+
+0000000080005284 <test_41>:
+ 80005284: 6522 ld a0,8(sp)
+ 80005286: 0505 addi a0,a0,1
+ 80005288: e42a sd a0,8(sp)
+ 8000528a: 6622 ld a2,8(sp)
+ 8000528c: fff6eeb7 lui t4,0xfff6e
+ 80005290: 5d5e8e9b addiw t4,t4,1493
+ 80005294: 00ce9e93 slli t4,t4,0xc
+ 80005298: cbbe8e93 addi t4,t4,-837 # fffffffffff6dcbb <_end+0xffffffff7ff624cb>
+ 8000529c: 00de9e93 slli t4,t4,0xd
+ 800052a0: 543e8e93 addi t4,t4,1347
+ 800052a4: 00ce9e93 slli t4,t4,0xc
+ 800052a8: 211e8e93 addi t4,t4,529
+ 800052ac: 02900193 li gp,41
+ 800052b0: 01d61e63 bne a2,t4,800052cc <fail>
+
+00000000800052b4 <test_42>:
+ 800052b4: 12300513 li a0,291
+ 800052b8: 82aa mv t0,a0
+ 800052ba: 92aa add t0,t0,a0
+ 800052bc: 24600e93 li t4,582
+ 800052c0: 02a00193 li gp,42
+ 800052c4: 01d29463 bne t0,t4,800052cc <fail>
+ 800052c8: 00301a63 bne zero,gp,800052dc <pass>
+
+00000000800052cc <fail>:
+ 800052cc: 00119513 slli a0,gp,0x1
+ 800052d0: 00050063 beqz a0,800052d0 <fail+0x4>
+ 800052d4: 00156513 ori a0,a0,1
+ 800052d8: 00000073 ecall
+
+00000000800052dc <pass>:
+ 800052dc: 00100513 li a0,1
+ 800052e0: 00000073 ecall
+ 800052e4: c0001073 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
diff --git a/test/tests/rv64uc-v-rvc.elf b/test/tests/rv64uc-v-rvc.elf
new file mode 100644
index 0000000..89152b9
--- /dev/null
+++ b/test/tests/rv64uc-v-rvc.elf
Binary files differ
diff --git a/test/tests/rv64ui-p-add.dump b/test/tests/rv64ui-p-add.dump
new file mode 100644
index 0000000..83e5ced
--- /dev/null
+++ b/test/tests/rv64ui-p-add.dump
@@ -0,0 +1,506 @@
+
+rv64ui-p-add: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <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: 4fdf1063 bne t5,t4,800005f0 <fail>
+
+0000000080000114 <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: 4ddf1463 bne t5,t4,800005f0 <fail>
+
+000000008000012c <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: 4bdf1863 bne t5,t4,800005f0 <fail>
+
+0000000080000144 <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: 49df1c63 bne t5,t4,800005f0 <fail>
+
+000000008000015c <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: 49df1063 bne t5,t4,800005f0 <fail>
+
+0000000080000174 <test_7>:
+ 80000174: 800000b7 lui ra,0x80000
+ 80000178: ffff8137 lui sp,0xffff8
+ 8000017c: 00208f33 add t5,ra,sp
+ 80000180: ffff0eb7 lui t4,0xffff0
+ 80000184: fffe8e9b addiw t4,t4,-1
+ 80000188: 00fe9e93 slli t4,t4,0xf
+ 8000018c: 00700193 li gp,7
+ 80000190: 47df1063 bne t5,t4,800005f0 <fail>
+
+0000000080000194 <test_8>:
+ 80000194: 00000093 li ra,0
+ 80000198: 00008137 lui sp,0x8
+ 8000019c: fff1011b addiw sp,sp,-1
+ 800001a0: 00208f33 add t5,ra,sp
+ 800001a4: 00008eb7 lui t4,0x8
+ 800001a8: fffe8e9b addiw t4,t4,-1
+ 800001ac: 00800193 li gp,8
+ 800001b0: 45df1063 bne t5,t4,800005f0 <fail>
+
+00000000800001b4 <test_9>:
+ 800001b4: 800000b7 lui ra,0x80000
+ 800001b8: fff0809b addiw ra,ra,-1
+ 800001bc: 00000113 li sp,0
+ 800001c0: 00208f33 add t5,ra,sp
+ 800001c4: 80000eb7 lui t4,0x80000
+ 800001c8: fffe8e9b addiw t4,t4,-1
+ 800001cc: 00900193 li gp,9
+ 800001d0: 43df1063 bne t5,t4,800005f0 <fail>
+
+00000000800001d4 <test_10>:
+ 800001d4: 800000b7 lui ra,0x80000
+ 800001d8: fff0809b addiw ra,ra,-1
+ 800001dc: 00008137 lui sp,0x8
+ 800001e0: fff1011b addiw sp,sp,-1
+ 800001e4: 00208f33 add t5,ra,sp
+ 800001e8: 00010eb7 lui t4,0x10
+ 800001ec: 001e8e9b addiw t4,t4,1
+ 800001f0: 00fe9e93 slli t4,t4,0xf
+ 800001f4: ffee8e93 addi t4,t4,-2 # fffe <_start-0x7fff0002>
+ 800001f8: 00a00193 li gp,10
+ 800001fc: 3fdf1a63 bne t5,t4,800005f0 <fail>
+
+0000000080000200 <test_11>:
+ 80000200: 800000b7 lui ra,0x80000
+ 80000204: 00008137 lui sp,0x8
+ 80000208: fff1011b addiw sp,sp,-1
+ 8000020c: 00208f33 add t5,ra,sp
+ 80000210: 80008eb7 lui t4,0x80008
+ 80000214: fffe8e9b addiw t4,t4,-1
+ 80000218: 00b00193 li gp,11
+ 8000021c: 3ddf1a63 bne t5,t4,800005f0 <fail>
+
+0000000080000220 <test_12>:
+ 80000220: 800000b7 lui ra,0x80000
+ 80000224: fff0809b addiw ra,ra,-1
+ 80000228: ffff8137 lui sp,0xffff8
+ 8000022c: 00208f33 add t5,ra,sp
+ 80000230: 7fff8eb7 lui t4,0x7fff8
+ 80000234: fffe8e9b addiw t4,t4,-1
+ 80000238: 00c00193 li gp,12
+ 8000023c: 3bdf1a63 bne t5,t4,800005f0 <fail>
+
+0000000080000240 <test_13>:
+ 80000240: 00000093 li ra,0
+ 80000244: fff00113 li sp,-1
+ 80000248: 00208f33 add t5,ra,sp
+ 8000024c: fff00e93 li t4,-1
+ 80000250: 00d00193 li gp,13
+ 80000254: 39df1e63 bne t5,t4,800005f0 <fail>
+
+0000000080000258 <test_14>:
+ 80000258: fff00093 li ra,-1
+ 8000025c: 00100113 li sp,1
+ 80000260: 00208f33 add t5,ra,sp
+ 80000264: 00000e93 li t4,0
+ 80000268: 00e00193 li gp,14
+ 8000026c: 39df1263 bne t5,t4,800005f0 <fail>
+
+0000000080000270 <test_15>:
+ 80000270: fff00093 li ra,-1
+ 80000274: fff00113 li sp,-1
+ 80000278: 00208f33 add t5,ra,sp
+ 8000027c: ffe00e93 li t4,-2
+ 80000280: 00f00193 li gp,15
+ 80000284: 37df1663 bne t5,t4,800005f0 <fail>
+
+0000000080000288 <test_16>:
+ 80000288: 00100093 li ra,1
+ 8000028c: 80000137 lui sp,0x80000
+ 80000290: fff1011b addiw sp,sp,-1
+ 80000294: 00208f33 add t5,ra,sp
+ 80000298: 00100e9b addiw t4,zero,1
+ 8000029c: 01fe9e93 slli t4,t4,0x1f
+ 800002a0: 01000193 li gp,16
+ 800002a4: 35df1663 bne t5,t4,800005f0 <fail>
+
+00000000800002a8 <test_17>:
+ 800002a8: 00d00093 li ra,13
+ 800002ac: 00b00113 li sp,11
+ 800002b0: 002080b3 add ra,ra,sp
+ 800002b4: 01800e93 li t4,24
+ 800002b8: 01100193 li gp,17
+ 800002bc: 33d09a63 bne ra,t4,800005f0 <fail>
+
+00000000800002c0 <test_18>:
+ 800002c0: 00e00093 li ra,14
+ 800002c4: 00b00113 li sp,11
+ 800002c8: 00208133 add sp,ra,sp
+ 800002cc: 01900e93 li t4,25
+ 800002d0: 01200193 li gp,18
+ 800002d4: 31d11e63 bne sp,t4,800005f0 <fail>
+
+00000000800002d8 <test_19>:
+ 800002d8: 00d00093 li ra,13
+ 800002dc: 001080b3 add ra,ra,ra
+ 800002e0: 01a00e93 li t4,26
+ 800002e4: 01300193 li gp,19
+ 800002e8: 31d09463 bne ra,t4,800005f0 <fail>
+
+00000000800002ec <test_20>:
+ 800002ec: 00000213 li tp,0
+ 800002f0: 00d00093 li ra,13
+ 800002f4: 00b00113 li sp,11
+ 800002f8: 00208f33 add t5,ra,sp
+ 800002fc: 000f0313 mv t1,t5
+ 80000300: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000304: 00200293 li t0,2
+ 80000308: fe5214e3 bne tp,t0,800002f0 <test_20+0x4>
+ 8000030c: 01800e93 li t4,24
+ 80000310: 01400193 li gp,20
+ 80000314: 2dd31e63 bne t1,t4,800005f0 <fail>
+
+0000000080000318 <test_21>:
+ 80000318: 00000213 li tp,0
+ 8000031c: 00e00093 li ra,14
+ 80000320: 00b00113 li sp,11
+ 80000324: 00208f33 add t5,ra,sp
+ 80000328: 00000013 nop
+ 8000032c: 000f0313 mv t1,t5
+ 80000330: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000334: 00200293 li t0,2
+ 80000338: fe5212e3 bne tp,t0,8000031c <test_21+0x4>
+ 8000033c: 01900e93 li t4,25
+ 80000340: 01500193 li gp,21
+ 80000344: 2bd31663 bne t1,t4,800005f0 <fail>
+
+0000000080000348 <test_22>:
+ 80000348: 00000213 li tp,0
+ 8000034c: 00f00093 li ra,15
+ 80000350: 00b00113 li sp,11
+ 80000354: 00208f33 add t5,ra,sp
+ 80000358: 00000013 nop
+ 8000035c: 00000013 nop
+ 80000360: 000f0313 mv t1,t5
+ 80000364: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000368: 00200293 li t0,2
+ 8000036c: fe5210e3 bne tp,t0,8000034c <test_22+0x4>
+ 80000370: 01a00e93 li t4,26
+ 80000374: 01600193 li gp,22
+ 80000378: 27d31c63 bne t1,t4,800005f0 <fail>
+
+000000008000037c <test_23>:
+ 8000037c: 00000213 li tp,0
+ 80000380: 00d00093 li ra,13
+ 80000384: 00b00113 li sp,11
+ 80000388: 00208f33 add t5,ra,sp
+ 8000038c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000390: 00200293 li t0,2
+ 80000394: fe5216e3 bne tp,t0,80000380 <test_23+0x4>
+ 80000398: 01800e93 li t4,24
+ 8000039c: 01700193 li gp,23
+ 800003a0: 25df1863 bne t5,t4,800005f0 <fail>
+
+00000000800003a4 <test_24>:
+ 800003a4: 00000213 li tp,0
+ 800003a8: 00e00093 li ra,14
+ 800003ac: 00b00113 li sp,11
+ 800003b0: 00000013 nop
+ 800003b4: 00208f33 add t5,ra,sp
+ 800003b8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800003bc: 00200293 li t0,2
+ 800003c0: fe5214e3 bne tp,t0,800003a8 <test_24+0x4>
+ 800003c4: 01900e93 li t4,25
+ 800003c8: 01800193 li gp,24
+ 800003cc: 23df1263 bne t5,t4,800005f0 <fail>
+
+00000000800003d0 <test_25>:
+ 800003d0: 00000213 li tp,0
+ 800003d4: 00f00093 li ra,15
+ 800003d8: 00b00113 li sp,11
+ 800003dc: 00000013 nop
+ 800003e0: 00000013 nop
+ 800003e4: 00208f33 add t5,ra,sp
+ 800003e8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800003ec: 00200293 li t0,2
+ 800003f0: fe5212e3 bne tp,t0,800003d4 <test_25+0x4>
+ 800003f4: 01a00e93 li t4,26
+ 800003f8: 01900193 li gp,25
+ 800003fc: 1fdf1a63 bne t5,t4,800005f0 <fail>
+
+0000000080000400 <test_26>:
+ 80000400: 00000213 li tp,0
+ 80000404: 00d00093 li ra,13
+ 80000408: 00000013 nop
+ 8000040c: 00b00113 li sp,11
+ 80000410: 00208f33 add t5,ra,sp
+ 80000414: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000418: 00200293 li t0,2
+ 8000041c: fe5214e3 bne tp,t0,80000404 <test_26+0x4>
+ 80000420: 01800e93 li t4,24
+ 80000424: 01a00193 li gp,26
+ 80000428: 1ddf1463 bne t5,t4,800005f0 <fail>
+
+000000008000042c <test_27>:
+ 8000042c: 00000213 li tp,0
+ 80000430: 00e00093 li ra,14
+ 80000434: 00000013 nop
+ 80000438: 00b00113 li sp,11
+ 8000043c: 00000013 nop
+ 80000440: 00208f33 add t5,ra,sp
+ 80000444: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000448: 00200293 li t0,2
+ 8000044c: fe5212e3 bne tp,t0,80000430 <test_27+0x4>
+ 80000450: 01900e93 li t4,25
+ 80000454: 01b00193 li gp,27
+ 80000458: 19df1c63 bne t5,t4,800005f0 <fail>
+
+000000008000045c <test_28>:
+ 8000045c: 00000213 li tp,0
+ 80000460: 00f00093 li ra,15
+ 80000464: 00000013 nop
+ 80000468: 00000013 nop
+ 8000046c: 00b00113 li sp,11
+ 80000470: 00208f33 add t5,ra,sp
+ 80000474: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000478: 00200293 li t0,2
+ 8000047c: fe5212e3 bne tp,t0,80000460 <test_28+0x4>
+ 80000480: 01a00e93 li t4,26
+ 80000484: 01c00193 li gp,28
+ 80000488: 17df1463 bne t5,t4,800005f0 <fail>
+
+000000008000048c <test_29>:
+ 8000048c: 00000213 li tp,0
+ 80000490: 00b00113 li sp,11
+ 80000494: 00d00093 li ra,13
+ 80000498: 00208f33 add t5,ra,sp
+ 8000049c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800004a0: 00200293 li t0,2
+ 800004a4: fe5216e3 bne tp,t0,80000490 <test_29+0x4>
+ 800004a8: 01800e93 li t4,24
+ 800004ac: 01d00193 li gp,29
+ 800004b0: 15df1063 bne t5,t4,800005f0 <fail>
+
+00000000800004b4 <test_30>:
+ 800004b4: 00000213 li tp,0
+ 800004b8: 00b00113 li sp,11
+ 800004bc: 00e00093 li ra,14
+ 800004c0: 00000013 nop
+ 800004c4: 00208f33 add t5,ra,sp
+ 800004c8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800004cc: 00200293 li t0,2
+ 800004d0: fe5214e3 bne tp,t0,800004b8 <test_30+0x4>
+ 800004d4: 01900e93 li t4,25
+ 800004d8: 01e00193 li gp,30
+ 800004dc: 11df1a63 bne t5,t4,800005f0 <fail>
+
+00000000800004e0 <test_31>:
+ 800004e0: 00000213 li tp,0
+ 800004e4: 00b00113 li sp,11
+ 800004e8: 00f00093 li ra,15
+ 800004ec: 00000013 nop
+ 800004f0: 00000013 nop
+ 800004f4: 00208f33 add t5,ra,sp
+ 800004f8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800004fc: 00200293 li t0,2
+ 80000500: fe5212e3 bne tp,t0,800004e4 <test_31+0x4>
+ 80000504: 01a00e93 li t4,26
+ 80000508: 01f00193 li gp,31
+ 8000050c: 0fdf1263 bne t5,t4,800005f0 <fail>
+
+0000000080000510 <test_32>:
+ 80000510: 00000213 li tp,0
+ 80000514: 00b00113 li sp,11
+ 80000518: 00000013 nop
+ 8000051c: 00d00093 li ra,13
+ 80000520: 00208f33 add t5,ra,sp
+ 80000524: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000528: 00200293 li t0,2
+ 8000052c: fe5214e3 bne tp,t0,80000514 <test_32+0x4>
+ 80000530: 01800e93 li t4,24
+ 80000534: 02000193 li gp,32
+ 80000538: 0bdf1c63 bne t5,t4,800005f0 <fail>
+
+000000008000053c <test_33>:
+ 8000053c: 00000213 li tp,0
+ 80000540: 00b00113 li sp,11
+ 80000544: 00000013 nop
+ 80000548: 00e00093 li ra,14
+ 8000054c: 00000013 nop
+ 80000550: 00208f33 add t5,ra,sp
+ 80000554: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000558: 00200293 li t0,2
+ 8000055c: fe5212e3 bne tp,t0,80000540 <test_33+0x4>
+ 80000560: 01900e93 li t4,25
+ 80000564: 02100193 li gp,33
+ 80000568: 09df1463 bne t5,t4,800005f0 <fail>
+
+000000008000056c <test_34>:
+ 8000056c: 00000213 li tp,0
+ 80000570: 00b00113 li sp,11
+ 80000574: 00000013 nop
+ 80000578: 00000013 nop
+ 8000057c: 00f00093 li ra,15
+ 80000580: 00208f33 add t5,ra,sp
+ 80000584: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000588: 00200293 li t0,2
+ 8000058c: fe5212e3 bne tp,t0,80000570 <test_34+0x4>
+ 80000590: 01a00e93 li t4,26
+ 80000594: 02200193 li gp,34
+ 80000598: 05df1c63 bne t5,t4,800005f0 <fail>
+
+000000008000059c <test_35>:
+ 8000059c: 00f00093 li ra,15
+ 800005a0: 00100133 add sp,zero,ra
+ 800005a4: 00f00e93 li t4,15
+ 800005a8: 02300193 li gp,35
+ 800005ac: 05d11263 bne sp,t4,800005f0 <fail>
+
+00000000800005b0 <test_36>:
+ 800005b0: 02000093 li ra,32
+ 800005b4: 00008133 add sp,ra,zero
+ 800005b8: 02000e93 li t4,32
+ 800005bc: 02400193 li gp,36
+ 800005c0: 03d11863 bne sp,t4,800005f0 <fail>
+
+00000000800005c4 <test_37>:
+ 800005c4: 000000b3 add ra,zero,zero
+ 800005c8: 00000e93 li t4,0
+ 800005cc: 02500193 li gp,37
+ 800005d0: 03d09063 bne ra,t4,800005f0 <fail>
+
+00000000800005d4 <test_38>:
+ 800005d4: 01000093 li ra,16
+ 800005d8: 01e00113 li sp,30
+ 800005dc: 00208033 add zero,ra,sp
+ 800005e0: 00000e93 li t4,0
+ 800005e4: 02600193 li gp,38
+ 800005e8: 01d01463 bne zero,t4,800005f0 <fail>
+ 800005ec: 00301c63 bne zero,gp,80000604 <pass>
+
+00000000800005f0 <fail>:
+ 800005f0: 0ff0000f fence
+ 800005f4: 00018063 beqz gp,800005f4 <fail+0x4>
+ 800005f8: 00119193 slli gp,gp,0x1
+ 800005fc: 0011e193 ori gp,gp,1
+ 80000600: 00000073 ecall
+
+0000000080000604 <pass>:
+ 80000604: 0ff0000f fence
+ 80000608: 00100193 li gp,1
+ 8000060c: 00000073 ecall
+ 80000610: c0001073 unimp
+ 80000614: 0000 unimp
+ 80000616: 0000 unimp
+ 80000618: 0000 unimp
+ 8000061a: 0000 unimp
+ 8000061c: 0000 unimp
+ 8000061e: 0000 unimp
+ 80000620: 0000 unimp
+ 80000622: 0000 unimp
+ 80000624: 0000 unimp
+ 80000626: 0000 unimp
+ 80000628: 0000 unimp
+ 8000062a: 0000 unimp
+ 8000062c: 0000 unimp
+ 8000062e: 0000 unimp
+ 80000630: 0000 unimp
+ 80000632: 0000 unimp
+ 80000634: 0000 unimp
+ 80000636: 0000 unimp
+ 80000638: 0000 unimp
+ 8000063a: 0000 unimp
+ 8000063c: 0000 unimp
+ 8000063e: 0000 unimp
+ 80000640: 0000 unimp
+ 80000642: 0000 unimp
diff --git a/test/tests/rv64ui-p-add.elf b/test/tests/rv64ui-p-add.elf
new file mode 100644
index 0000000..711d4fc
--- /dev/null
+++ b/test/tests/rv64ui-p-add.elf
Binary files differ
diff --git a/test/tests/rv64ui-p-addi.dump b/test/tests/rv64ui-p-addi.dump
new file mode 100644
index 0000000..dc5acc0
--- /dev/null
+++ b/test/tests/rv64ui-p-addi.dump
@@ -0,0 +1,312 @@
+
+rv64ui-p-addi: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <test_2>:
+ 800000fc: 00000093 li ra,0
+ 80000100: 00008f13 mv t5,ra
+ 80000104: 00000e93 li t4,0
+ 80000108: 00200193 li gp,2
+ 8000010c: 29df1263 bne t5,t4,80000390 <fail>
+
+0000000080000110 <test_3>:
+ 80000110: 00100093 li ra,1
+ 80000114: 00108f13 addi t5,ra,1
+ 80000118: 00200e93 li t4,2
+ 8000011c: 00300193 li gp,3
+ 80000120: 27df1863 bne t5,t4,80000390 <fail>
+
+0000000080000124 <test_4>:
+ 80000124: 00300093 li ra,3
+ 80000128: 00708f13 addi t5,ra,7
+ 8000012c: 00a00e93 li t4,10
+ 80000130: 00400193 li gp,4
+ 80000134: 25df1e63 bne t5,t4,80000390 <fail>
+
+0000000080000138 <test_5>:
+ 80000138: 00000093 li ra,0
+ 8000013c: 80008f13 addi t5,ra,-2048
+ 80000140: 80000e93 li t4,-2048
+ 80000144: 00500193 li gp,5
+ 80000148: 25df1463 bne t5,t4,80000390 <fail>
+
+000000008000014c <test_6>:
+ 8000014c: 800000b7 lui ra,0x80000
+ 80000150: 00008f13 mv t5,ra
+ 80000154: 80000eb7 lui t4,0x80000
+ 80000158: 00600193 li gp,6
+ 8000015c: 23df1a63 bne t5,t4,80000390 <fail>
+
+0000000080000160 <test_7>:
+ 80000160: 800000b7 lui ra,0x80000
+ 80000164: 80008f13 addi t5,ra,-2048 # ffffffff7ffff800 <_end+0xfffffffeffffd800>
+ 80000168: fff00e9b addiw t4,zero,-1
+ 8000016c: 01fe9e93 slli t4,t4,0x1f
+ 80000170: 800e8e93 addi t4,t4,-2048 # ffffffff7ffff800 <_end+0xfffffffeffffd800>
+ 80000174: 00700193 li gp,7
+ 80000178: 21df1c63 bne t5,t4,80000390 <fail>
+
+000000008000017c <test_8>:
+ 8000017c: 00000093 li ra,0
+ 80000180: 7ff08f13 addi t5,ra,2047
+ 80000184: 7ff00e93 li t4,2047
+ 80000188: 00800193 li gp,8
+ 8000018c: 21df1263 bne t5,t4,80000390 <fail>
+
+0000000080000190 <test_9>:
+ 80000190: 800000b7 lui ra,0x80000
+ 80000194: fff0809b addiw ra,ra,-1
+ 80000198: 00008f13 mv t5,ra
+ 8000019c: 80000eb7 lui t4,0x80000
+ 800001a0: fffe8e9b addiw t4,t4,-1
+ 800001a4: 00900193 li gp,9
+ 800001a8: 1fdf1463 bne t5,t4,80000390 <fail>
+
+00000000800001ac <test_10>:
+ 800001ac: 800000b7 lui ra,0x80000
+ 800001b0: fff0809b addiw ra,ra,-1
+ 800001b4: 7ff08f13 addi t5,ra,2047 # ffffffff800007ff <_end+0xfffffffeffffe7ff>
+ 800001b8: 00100e9b addiw t4,zero,1
+ 800001bc: 01fe9e93 slli t4,t4,0x1f
+ 800001c0: 7fee8e93 addi t4,t4,2046 # ffffffff800007fe <_end+0xfffffffeffffe7fe>
+ 800001c4: 00a00193 li gp,10
+ 800001c8: 1ddf1463 bne t5,t4,80000390 <fail>
+
+00000000800001cc <test_11>:
+ 800001cc: 800000b7 lui ra,0x80000
+ 800001d0: 7ff08f13 addi t5,ra,2047 # ffffffff800007ff <_end+0xfffffffeffffe7ff>
+ 800001d4: 80000eb7 lui t4,0x80000
+ 800001d8: 7ffe8e9b addiw t4,t4,2047
+ 800001dc: 00b00193 li gp,11
+ 800001e0: 1bdf1863 bne t5,t4,80000390 <fail>
+
+00000000800001e4 <test_12>:
+ 800001e4: 800000b7 lui ra,0x80000
+ 800001e8: fff0809b addiw ra,ra,-1
+ 800001ec: 80008f13 addi t5,ra,-2048 # ffffffff7ffff800 <_end+0xfffffffeffffd800>
+ 800001f0: 7ffffeb7 lui t4,0x7ffff
+ 800001f4: 7ffe8e9b addiw t4,t4,2047
+ 800001f8: 00c00193 li gp,12
+ 800001fc: 19df1a63 bne t5,t4,80000390 <fail>
+
+0000000080000200 <test_13>:
+ 80000200: 00000093 li ra,0
+ 80000204: fff08f13 addi t5,ra,-1
+ 80000208: fff00e93 li t4,-1
+ 8000020c: 00d00193 li gp,13
+ 80000210: 19df1063 bne t5,t4,80000390 <fail>
+
+0000000080000214 <test_14>:
+ 80000214: fff00093 li ra,-1
+ 80000218: 00108f13 addi t5,ra,1
+ 8000021c: 00000e93 li t4,0
+ 80000220: 00e00193 li gp,14
+ 80000224: 17df1663 bne t5,t4,80000390 <fail>
+
+0000000080000228 <test_15>:
+ 80000228: fff00093 li ra,-1
+ 8000022c: fff08f13 addi t5,ra,-1
+ 80000230: ffe00e93 li t4,-2
+ 80000234: 00f00193 li gp,15
+ 80000238: 15df1c63 bne t5,t4,80000390 <fail>
+
+000000008000023c <test_16>:
+ 8000023c: 800000b7 lui ra,0x80000
+ 80000240: fff0809b addiw ra,ra,-1
+ 80000244: 00108f13 addi t5,ra,1 # ffffffff80000001 <_end+0xfffffffeffffe001>
+ 80000248: 00100e9b addiw t4,zero,1
+ 8000024c: 01fe9e93 slli t4,t4,0x1f
+ 80000250: 01000193 li gp,16
+ 80000254: 13df1e63 bne t5,t4,80000390 <fail>
+
+0000000080000258 <test_17>:
+ 80000258: 00d00093 li ra,13
+ 8000025c: 00b08093 addi ra,ra,11
+ 80000260: 01800e93 li t4,24
+ 80000264: 01100193 li gp,17
+ 80000268: 13d09463 bne ra,t4,80000390 <fail>
+
+000000008000026c <test_18>:
+ 8000026c: 00000213 li tp,0
+ 80000270: 00d00093 li ra,13
+ 80000274: 00b08f13 addi t5,ra,11
+ 80000278: 000f0313 mv t1,t5
+ 8000027c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000280: 00200293 li t0,2
+ 80000284: fe5216e3 bne tp,t0,80000270 <test_18+0x4>
+ 80000288: 01800e93 li t4,24
+ 8000028c: 01200193 li gp,18
+ 80000290: 11d31063 bne t1,t4,80000390 <fail>
+
+0000000080000294 <test_19>:
+ 80000294: 00000213 li tp,0
+ 80000298: 00d00093 li ra,13
+ 8000029c: 00a08f13 addi t5,ra,10
+ 800002a0: 00000013 nop
+ 800002a4: 000f0313 mv t1,t5
+ 800002a8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800002ac: 00200293 li t0,2
+ 800002b0: fe5214e3 bne tp,t0,80000298 <test_19+0x4>
+ 800002b4: 01700e93 li t4,23
+ 800002b8: 01300193 li gp,19
+ 800002bc: 0dd31a63 bne t1,t4,80000390 <fail>
+
+00000000800002c0 <test_20>:
+ 800002c0: 00000213 li tp,0
+ 800002c4: 00d00093 li ra,13
+ 800002c8: 00908f13 addi t5,ra,9
+ 800002cc: 00000013 nop
+ 800002d0: 00000013 nop
+ 800002d4: 000f0313 mv t1,t5
+ 800002d8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800002dc: 00200293 li t0,2
+ 800002e0: fe5212e3 bne tp,t0,800002c4 <test_20+0x4>
+ 800002e4: 01600e93 li t4,22
+ 800002e8: 01400193 li gp,20
+ 800002ec: 0bd31263 bne t1,t4,80000390 <fail>
+
+00000000800002f0 <test_21>:
+ 800002f0: 00000213 li tp,0
+ 800002f4: 00d00093 li ra,13
+ 800002f8: 00b08f13 addi t5,ra,11
+ 800002fc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000300: 00200293 li t0,2
+ 80000304: fe5218e3 bne tp,t0,800002f4 <test_21+0x4>
+ 80000308: 01800e93 li t4,24
+ 8000030c: 01500193 li gp,21
+ 80000310: 09df1063 bne t5,t4,80000390 <fail>
+
+0000000080000314 <test_22>:
+ 80000314: 00000213 li tp,0
+ 80000318: 00d00093 li ra,13
+ 8000031c: 00000013 nop
+ 80000320: 00a08f13 addi t5,ra,10
+ 80000324: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000328: 00200293 li t0,2
+ 8000032c: fe5216e3 bne tp,t0,80000318 <test_22+0x4>
+ 80000330: 01700e93 li t4,23
+ 80000334: 01600193 li gp,22
+ 80000338: 05df1c63 bne t5,t4,80000390 <fail>
+
+000000008000033c <test_23>:
+ 8000033c: 00000213 li tp,0
+ 80000340: 00d00093 li ra,13
+ 80000344: 00000013 nop
+ 80000348: 00000013 nop
+ 8000034c: 00908f13 addi t5,ra,9
+ 80000350: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000354: 00200293 li t0,2
+ 80000358: fe5214e3 bne tp,t0,80000340 <test_23+0x4>
+ 8000035c: 01600e93 li t4,22
+ 80000360: 01700193 li gp,23
+ 80000364: 03df1663 bne t5,t4,80000390 <fail>
+
+0000000080000368 <test_24>:
+ 80000368: 02000093 li ra,32
+ 8000036c: 02000e93 li t4,32
+ 80000370: 01800193 li gp,24
+ 80000374: 01d09e63 bne ra,t4,80000390 <fail>
+
+0000000080000378 <test_25>:
+ 80000378: 02100093 li ra,33
+ 8000037c: 03208013 addi zero,ra,50
+ 80000380: 00000e93 li t4,0
+ 80000384: 01900193 li gp,25
+ 80000388: 01d01463 bne zero,t4,80000390 <fail>
+ 8000038c: 00301c63 bne zero,gp,800003a4 <pass>
+
+0000000080000390 <fail>:
+ 80000390: 0ff0000f fence
+ 80000394: 00018063 beqz gp,80000394 <fail+0x4>
+ 80000398: 00119193 slli gp,gp,0x1
+ 8000039c: 0011e193 ori gp,gp,1
+ 800003a0: 00000073 ecall
+
+00000000800003a4 <pass>:
+ 800003a4: 0ff0000f fence
+ 800003a8: 00100193 li gp,1
+ 800003ac: 00000073 ecall
+ 800003b0: c0001073 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/tests/rv64ui-p-addi.elf b/test/tests/rv64ui-p-addi.elf
new file mode 100644
index 0000000..511253a
--- /dev/null
+++ b/test/tests/rv64ui-p-addi.elf
Binary files differ
diff --git a/test/tests/rv64ui-p-addiw.dump b/test/tests/rv64ui-p-addiw.dump
new file mode 100644
index 0000000..a84bd35
--- /dev/null
+++ b/test/tests/rv64ui-p-addiw.dump
@@ -0,0 +1,315 @@
+
+rv64ui-p-addiw: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <test_2>:
+ 800000fc: 00000093 li ra,0
+ 80000100: 00008f1b sext.w t5,ra
+ 80000104: 00000e93 li t4,0
+ 80000108: 00200193 li gp,2
+ 8000010c: 27df1c63 bne t5,t4,80000384 <fail>
+
+0000000080000110 <test_3>:
+ 80000110: 00100093 li ra,1
+ 80000114: 00108f1b addiw t5,ra,1
+ 80000118: 00200e93 li t4,2
+ 8000011c: 00300193 li gp,3
+ 80000120: 27df1263 bne t5,t4,80000384 <fail>
+
+0000000080000124 <test_4>:
+ 80000124: 00300093 li ra,3
+ 80000128: 00708f1b addiw t5,ra,7
+ 8000012c: 00a00e93 li t4,10
+ 80000130: 00400193 li gp,4
+ 80000134: 25df1863 bne t5,t4,80000384 <fail>
+
+0000000080000138 <test_5>:
+ 80000138: 00000093 li ra,0
+ 8000013c: 80008f1b addiw t5,ra,-2048
+ 80000140: 80000e93 li t4,-2048
+ 80000144: 00500193 li gp,5
+ 80000148: 23df1e63 bne t5,t4,80000384 <fail>
+
+000000008000014c <test_6>:
+ 8000014c: 800000b7 lui ra,0x80000
+ 80000150: 00008f1b sext.w t5,ra
+ 80000154: 80000eb7 lui t4,0x80000
+ 80000158: 00600193 li gp,6
+ 8000015c: 23df1463 bne t5,t4,80000384 <fail>
+
+0000000080000160 <test_7>:
+ 80000160: 800000b7 lui ra,0x80000
+ 80000164: 80008f1b addiw t5,ra,-2048
+ 80000168: 80000eb7 lui t4,0x80000
+ 8000016c: 800e8e9b addiw t4,t4,-2048
+ 80000170: 00700193 li gp,7
+ 80000174: 21df1863 bne t5,t4,80000384 <fail>
+
+0000000080000178 <test_8>:
+ 80000178: 00000093 li ra,0
+ 8000017c: 7ff08f1b addiw t5,ra,2047
+ 80000180: 7ff00e93 li t4,2047
+ 80000184: 00800193 li gp,8
+ 80000188: 1fdf1e63 bne t5,t4,80000384 <fail>
+
+000000008000018c <test_9>:
+ 8000018c: 800000b7 lui ra,0x80000
+ 80000190: fff0809b addiw ra,ra,-1
+ 80000194: 00008f1b sext.w t5,ra
+ 80000198: 80000eb7 lui t4,0x80000
+ 8000019c: fffe8e9b addiw t4,t4,-1
+ 800001a0: 00900193 li gp,9
+ 800001a4: 1fdf1063 bne t5,t4,80000384 <fail>
+
+00000000800001a8 <test_10>:
+ 800001a8: 800000b7 lui ra,0x80000
+ 800001ac: fff0809b addiw ra,ra,-1
+ 800001b0: 7ff08f1b addiw t5,ra,2047
+ 800001b4: 80000eb7 lui t4,0x80000
+ 800001b8: 7fee8e9b addiw t4,t4,2046
+ 800001bc: 00a00193 li gp,10
+ 800001c0: 1ddf1263 bne t5,t4,80000384 <fail>
+
+00000000800001c4 <test_11>:
+ 800001c4: 800000b7 lui ra,0x80000
+ 800001c8: 7ff08f1b addiw t5,ra,2047
+ 800001cc: 80000eb7 lui t4,0x80000
+ 800001d0: 7ffe8e9b addiw t4,t4,2047
+ 800001d4: 00b00193 li gp,11
+ 800001d8: 1bdf1663 bne t5,t4,80000384 <fail>
+
+00000000800001dc <test_12>:
+ 800001dc: 800000b7 lui ra,0x80000
+ 800001e0: fff0809b addiw ra,ra,-1
+ 800001e4: 80008f1b addiw t5,ra,-2048
+ 800001e8: 7ffffeb7 lui t4,0x7ffff
+ 800001ec: 7ffe8e9b addiw t4,t4,2047
+ 800001f0: 00c00193 li gp,12
+ 800001f4: 19df1863 bne t5,t4,80000384 <fail>
+
+00000000800001f8 <test_13>:
+ 800001f8: 00000093 li ra,0
+ 800001fc: fff08f1b addiw t5,ra,-1
+ 80000200: fff00e93 li t4,-1
+ 80000204: 00d00193 li gp,13
+ 80000208: 17df1e63 bne t5,t4,80000384 <fail>
+
+000000008000020c <test_14>:
+ 8000020c: fff00093 li ra,-1
+ 80000210: 00108f1b addiw t5,ra,1
+ 80000214: 00000e93 li t4,0
+ 80000218: 00e00193 li gp,14
+ 8000021c: 17df1463 bne t5,t4,80000384 <fail>
+
+0000000080000220 <test_15>:
+ 80000220: fff00093 li ra,-1
+ 80000224: fff08f1b addiw t5,ra,-1
+ 80000228: ffe00e93 li t4,-2
+ 8000022c: 00f00193 li gp,15
+ 80000230: 15df1a63 bne t5,t4,80000384 <fail>
+
+0000000080000234 <test_16>:
+ 80000234: 800000b7 lui ra,0x80000
+ 80000238: fff0809b addiw ra,ra,-1
+ 8000023c: 00108f1b addiw t5,ra,1
+ 80000240: 80000eb7 lui t4,0x80000
+ 80000244: 01000193 li gp,16
+ 80000248: 13df1e63 bne t5,t4,80000384 <fail>
+
+000000008000024c <test_17>:
+ 8000024c: 00d00093 li ra,13
+ 80000250: 00b0809b addiw ra,ra,11
+ 80000254: 01800e93 li t4,24
+ 80000258: 01100193 li gp,17
+ 8000025c: 13d09463 bne ra,t4,80000384 <fail>
+
+0000000080000260 <test_18>:
+ 80000260: 00000213 li tp,0
+ 80000264: 00d00093 li ra,13
+ 80000268: 00b08f1b addiw 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>
+
+0000000080000288 <test_19>:
+ 80000288: 00000213 li tp,0
+ 8000028c: 00d00093 li ra,13
+ 80000290: 00a08f1b addiw 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>
+
+00000000800002b4 <test_20>:
+ 800002b4: 00000213 li tp,0
+ 800002b8: 00d00093 li ra,13
+ 800002bc: 00908f1b addiw 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>
+
+00000000800002e4 <test_21>:
+ 800002e4: 00000213 li tp,0
+ 800002e8: 00d00093 li ra,13
+ 800002ec: 00b08f1b addiw 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>
+
+0000000080000308 <test_22>:
+ 80000308: 00000213 li tp,0
+ 8000030c: 00d00093 li ra,13
+ 80000310: 00000013 nop
+ 80000314: 00a08f1b addiw 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>
+
+0000000080000330 <test_23>:
+ 80000330: 00000213 li tp,0
+ 80000334: 00d00093 li ra,13
+ 80000338: 00000013 nop
+ 8000033c: 00000013 nop
+ 80000340: 00908f1b addiw 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>
+
+000000008000035c <test_24>:
+ 8000035c: 0200009b addiw ra,zero,32
+ 80000360: 02000e93 li t4,32
+ 80000364: 01800193 li gp,24
+ 80000368: 01d09e63 bne ra,t4,80000384 <fail>
+
+000000008000036c <test_25>:
+ 8000036c: 02100093 li ra,33
+ 80000370: 0320801b addiw 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>
+
+0000000080000384 <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
+
+0000000080000398 <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/tests/rv64ui-p-addiw.elf b/test/tests/rv64ui-p-addiw.elf
new file mode 100644
index 0000000..c58d521
--- /dev/null
+++ b/test/tests/rv64ui-p-addiw.elf
Binary files differ
diff --git a/test/tests/rv64ui-p-addw.dump b/test/tests/rv64ui-p-addw.dump
new file mode 100644
index 0000000..626af6d
--- /dev/null
+++ b/test/tests/rv64ui-p-addw.dump
@@ -0,0 +1,479 @@
+
+rv64ui-p-addw: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <test_2>:
+ 800000fc: 00000093 li ra,0
+ 80000100: 00000113 li sp,0
+ 80000104: 00208f3b addw t5,ra,sp
+ 80000108: 00000e93 li t4,0
+ 8000010c: 00200193 li gp,2
+ 80000110: 4ddf1663 bne t5,t4,800005dc <fail>
+
+0000000080000114 <test_3>:
+ 80000114: 00100093 li ra,1
+ 80000118: 00100113 li sp,1
+ 8000011c: 00208f3b addw t5,ra,sp
+ 80000120: 00200e93 li t4,2
+ 80000124: 00300193 li gp,3
+ 80000128: 4bdf1a63 bne t5,t4,800005dc <fail>
+
+000000008000012c <test_4>:
+ 8000012c: 00300093 li ra,3
+ 80000130: 00700113 li sp,7
+ 80000134: 00208f3b addw t5,ra,sp
+ 80000138: 00a00e93 li t4,10
+ 8000013c: 00400193 li gp,4
+ 80000140: 49df1e63 bne t5,t4,800005dc <fail>
+
+0000000080000144 <test_5>:
+ 80000144: 00000093 li ra,0
+ 80000148: ffff8137 lui sp,0xffff8
+ 8000014c: 00208f3b addw t5,ra,sp
+ 80000150: ffff8eb7 lui t4,0xffff8
+ 80000154: 00500193 li gp,5
+ 80000158: 49df1263 bne t5,t4,800005dc <fail>
+
+000000008000015c <test_6>:
+ 8000015c: 800000b7 lui ra,0x80000
+ 80000160: 00000113 li sp,0
+ 80000164: 00208f3b addw t5,ra,sp
+ 80000168: 80000eb7 lui t4,0x80000
+ 8000016c: 00600193 li gp,6
+ 80000170: 47df1663 bne t5,t4,800005dc <fail>
+
+0000000080000174 <test_7>:
+ 80000174: 800000b7 lui ra,0x80000
+ 80000178: ffff8137 lui sp,0xffff8
+ 8000017c: 00208f3b addw t5,ra,sp
+ 80000180: 7fff8eb7 lui t4,0x7fff8
+ 80000184: 00700193 li gp,7
+ 80000188: 45df1a63 bne t5,t4,800005dc <fail>
+
+000000008000018c <test_8>:
+ 8000018c: 00000093 li ra,0
+ 80000190: 00008137 lui sp,0x8
+ 80000194: fff1011b addiw sp,sp,-1
+ 80000198: 00208f3b addw t5,ra,sp
+ 8000019c: 00008eb7 lui t4,0x8
+ 800001a0: fffe8e9b addiw t4,t4,-1
+ 800001a4: 00800193 li gp,8
+ 800001a8: 43df1a63 bne t5,t4,800005dc <fail>
+
+00000000800001ac <test_9>:
+ 800001ac: 800000b7 lui ra,0x80000
+ 800001b0: fff0809b addiw ra,ra,-1
+ 800001b4: 00000113 li sp,0
+ 800001b8: 00208f3b addw t5,ra,sp
+ 800001bc: 80000eb7 lui t4,0x80000
+ 800001c0: fffe8e9b addiw t4,t4,-1
+ 800001c4: 00900193 li gp,9
+ 800001c8: 41df1a63 bne t5,t4,800005dc <fail>
+
+00000000800001cc <test_10>:
+ 800001cc: 800000b7 lui ra,0x80000
+ 800001d0: fff0809b addiw ra,ra,-1
+ 800001d4: 00008137 lui sp,0x8
+ 800001d8: fff1011b addiw sp,sp,-1
+ 800001dc: 00208f3b addw t5,ra,sp
+ 800001e0: 80008eb7 lui t4,0x80008
+ 800001e4: ffee8e9b addiw t4,t4,-2
+ 800001e8: 00a00193 li gp,10
+ 800001ec: 3fdf1863 bne t5,t4,800005dc <fail>
+
+00000000800001f0 <test_11>:
+ 800001f0: 800000b7 lui ra,0x80000
+ 800001f4: 00008137 lui sp,0x8
+ 800001f8: fff1011b addiw sp,sp,-1
+ 800001fc: 00208f3b addw t5,ra,sp
+ 80000200: 80008eb7 lui t4,0x80008
+ 80000204: fffe8e9b addiw t4,t4,-1
+ 80000208: 00b00193 li gp,11
+ 8000020c: 3ddf1863 bne t5,t4,800005dc <fail>
+
+0000000080000210 <test_12>:
+ 80000210: 800000b7 lui ra,0x80000
+ 80000214: fff0809b addiw ra,ra,-1
+ 80000218: ffff8137 lui sp,0xffff8
+ 8000021c: 00208f3b addw t5,ra,sp
+ 80000220: 7fff8eb7 lui t4,0x7fff8
+ 80000224: fffe8e9b addiw t4,t4,-1
+ 80000228: 00c00193 li gp,12
+ 8000022c: 3bdf1863 bne t5,t4,800005dc <fail>
+
+0000000080000230 <test_13>:
+ 80000230: 00000093 li ra,0
+ 80000234: fff00113 li sp,-1
+ 80000238: 00208f3b addw t5,ra,sp
+ 8000023c: fff00e93 li t4,-1
+ 80000240: 00d00193 li gp,13
+ 80000244: 39df1c63 bne t5,t4,800005dc <fail>
+
+0000000080000248 <test_14>:
+ 80000248: fff00093 li ra,-1
+ 8000024c: 00100113 li sp,1
+ 80000250: 00208f3b addw t5,ra,sp
+ 80000254: 00000e93 li t4,0
+ 80000258: 00e00193 li gp,14
+ 8000025c: 39df1063 bne t5,t4,800005dc <fail>
+
+0000000080000260 <test_15>:
+ 80000260: fff00093 li ra,-1
+ 80000264: fff00113 li sp,-1
+ 80000268: 00208f3b addw t5,ra,sp
+ 8000026c: ffe00e93 li t4,-2
+ 80000270: 00f00193 li gp,15
+ 80000274: 37df1463 bne t5,t4,800005dc <fail>
+
+0000000080000278 <test_16>:
+ 80000278: 00100093 li ra,1
+ 8000027c: 80000137 lui sp,0x80000
+ 80000280: fff1011b addiw sp,sp,-1
+ 80000284: 00208f3b addw t5,ra,sp
+ 80000288: 80000eb7 lui t4,0x80000
+ 8000028c: 01000193 li gp,16
+ 80000290: 35df1663 bne t5,t4,800005dc <fail>
+
+0000000080000294 <test_17>:
+ 80000294: 00d00093 li ra,13
+ 80000298: 00b00113 li sp,11
+ 8000029c: 002080bb addw ra,ra,sp
+ 800002a0: 01800e93 li t4,24
+ 800002a4: 01100193 li gp,17
+ 800002a8: 33d09a63 bne ra,t4,800005dc <fail>
+
+00000000800002ac <test_18>:
+ 800002ac: 00e00093 li ra,14
+ 800002b0: 00b00113 li sp,11
+ 800002b4: 0020813b addw sp,ra,sp
+ 800002b8: 01900e93 li t4,25
+ 800002bc: 01200193 li gp,18
+ 800002c0: 31d11e63 bne sp,t4,800005dc <fail>
+
+00000000800002c4 <test_19>:
+ 800002c4: 00d00093 li ra,13
+ 800002c8: 001080bb addw ra,ra,ra
+ 800002cc: 01a00e93 li t4,26
+ 800002d0: 01300193 li gp,19
+ 800002d4: 31d09463 bne ra,t4,800005dc <fail>
+
+00000000800002d8 <test_20>:
+ 800002d8: 00000213 li tp,0
+ 800002dc: 00d00093 li ra,13
+ 800002e0: 00b00113 li sp,11
+ 800002e4: 00208f3b addw 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>
+
+0000000080000304 <test_21>:
+ 80000304: 00000213 li tp,0
+ 80000308: 00e00093 li ra,14
+ 8000030c: 00b00113 li sp,11
+ 80000310: 00208f3b addw 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>
+
+0000000080000334 <test_22>:
+ 80000334: 00000213 li tp,0
+ 80000338: 00f00093 li ra,15
+ 8000033c: 00b00113 li sp,11
+ 80000340: 00208f3b addw 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>
+
+0000000080000368 <test_23>:
+ 80000368: 00000213 li tp,0
+ 8000036c: 00d00093 li ra,13
+ 80000370: 00b00113 li sp,11
+ 80000374: 00208f3b addw 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>
+
+0000000080000390 <test_24>:
+ 80000390: 00000213 li tp,0
+ 80000394: 00e00093 li ra,14
+ 80000398: 00b00113 li sp,11
+ 8000039c: 00000013 nop
+ 800003a0: 00208f3b addw 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>
+
+00000000800003bc <test_25>:
+ 800003bc: 00000213 li tp,0
+ 800003c0: 00f00093 li ra,15
+ 800003c4: 00b00113 li sp,11
+ 800003c8: 00000013 nop
+ 800003cc: 00000013 nop
+ 800003d0: 00208f3b addw 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>
+
+00000000800003ec <test_26>:
+ 800003ec: 00000213 li tp,0
+ 800003f0: 00d00093 li ra,13
+ 800003f4: 00000013 nop
+ 800003f8: 00b00113 li sp,11
+ 800003fc: 00208f3b addw 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>
+
+0000000080000418 <test_27>:
+ 80000418: 00000213 li tp,0
+ 8000041c: 00e00093 li ra,14
+ 80000420: 00000013 nop
+ 80000424: 00b00113 li sp,11
+ 80000428: 00000013 nop
+ 8000042c: 00208f3b addw 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>
+
+0000000080000448 <test_28>:
+ 80000448: 00000213 li tp,0
+ 8000044c: 00f00093 li ra,15
+ 80000450: 00000013 nop
+ 80000454: 00000013 nop
+ 80000458: 00b00113 li sp,11
+ 8000045c: 00208f3b addw 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>
+
+0000000080000478 <test_29>:
+ 80000478: 00000213 li tp,0
+ 8000047c: 00b00113 li sp,11
+ 80000480: 00d00093 li ra,13
+ 80000484: 00208f3b addw 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>
+
+00000000800004a0 <test_30>:
+ 800004a0: 00000213 li tp,0
+ 800004a4: 00b00113 li sp,11
+ 800004a8: 00e00093 li ra,14
+ 800004ac: 00000013 nop
+ 800004b0: 00208f3b addw 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>
+
+00000000800004cc <test_31>:
+ 800004cc: 00000213 li tp,0
+ 800004d0: 00b00113 li sp,11
+ 800004d4: 00f00093 li ra,15
+ 800004d8: 00000013 nop
+ 800004dc: 00000013 nop
+ 800004e0: 00208f3b addw 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>
+
+00000000800004fc <test_32>:
+ 800004fc: 00000213 li tp,0
+ 80000500: 00b00113 li sp,11
+ 80000504: 00000013 nop
+ 80000508: 00d00093 li ra,13
+ 8000050c: 00208f3b addw 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>
+
+0000000080000528 <test_33>:
+ 80000528: 00000213 li tp,0
+ 8000052c: 00b00113 li sp,11
+ 80000530: 00000013 nop
+ 80000534: 00e00093 li ra,14
+ 80000538: 00000013 nop
+ 8000053c: 00208f3b addw 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>
+
+0000000080000558 <test_34>:
+ 80000558: 00000213 li tp,0
+ 8000055c: 00b00113 li sp,11
+ 80000560: 00000013 nop
+ 80000564: 00000013 nop
+ 80000568: 00f00093 li ra,15
+ 8000056c: 00208f3b addw 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>
+
+0000000080000588 <test_35>:
+ 80000588: 00f00093 li ra,15
+ 8000058c: 0010013b addw sp,zero,ra
+ 80000590: 00f00e93 li t4,15
+ 80000594: 02300193 li gp,35
+ 80000598: 05d11263 bne sp,t4,800005dc <fail>
+
+000000008000059c <test_36>:
+ 8000059c: 02000093 li ra,32
+ 800005a0: 0000813b addw sp,ra,zero
+ 800005a4: 02000e93 li t4,32
+ 800005a8: 02400193 li gp,36
+ 800005ac: 03d11863 bne sp,t4,800005dc <fail>
+
+00000000800005b0 <test_37>:
+ 800005b0: 000000bb addw ra,zero,zero
+ 800005b4: 00000e93 li t4,0
+ 800005b8: 02500193 li gp,37
+ 800005bc: 03d09063 bne ra,t4,800005dc <fail>
+
+00000000800005c0 <test_38>:
+ 800005c0: 01000093 li ra,16
+ 800005c4: 01e00113 li sp,30
+ 800005c8: 0020803b addw 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>
+
+00000000800005dc <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
+
+00000000800005f0 <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/tests/rv64ui-p-addw.elf b/test/tests/rv64ui-p-addw.elf
new file mode 100644
index 0000000..b4cc491
--- /dev/null
+++ b/test/tests/rv64ui-p-addw.elf
Binary files differ
diff --git a/test/tests/rv64ui-p-and.dump b/test/tests/rv64ui-p-and.dump
new file mode 100644
index 0000000..5851df8
--- /dev/null
+++ b/test/tests/rv64ui-p-and.dump
@@ -0,0 +1,491 @@
+
+rv64ui-p-and: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <test_2>:
+ 800000fc: 000100b7 lui ra,0x10
+ 80000100: f010809b addiw ra,ra,-255
+ 80000104: 01009093 slli ra,ra,0x10
+ 80000108: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 8000010c: 0f0f1137 lui sp,0xf0f1
+ 80000110: f0f1011b addiw sp,sp,-241
+ 80000114: 0020ff33 and t5,ra,sp
+ 80000118: 0f001eb7 lui t4,0xf001
+ 8000011c: f00e8e9b addiw t4,t4,-256
+ 80000120: 00200193 li gp,2
+ 80000124: 53df1863 bne t5,t4,80000654 <fail>
+
+0000000080000128 <test_3>:
+ 80000128: 0ff010b7 lui ra,0xff01
+ 8000012c: ff00809b addiw ra,ra,-16
+ 80000130: 000f1137 lui sp,0xf1
+ 80000134: f0f1011b addiw sp,sp,-241
+ 80000138: 00c11113 slli sp,sp,0xc
+ 8000013c: 0f010113 addi sp,sp,240 # f10f0 <_start-0x7ff0ef10>
+ 80000140: 0020ff33 and t5,ra,sp
+ 80000144: 00f00eb7 lui t4,0xf00
+ 80000148: 0f0e8e9b addiw t4,t4,240
+ 8000014c: 00300193 li gp,3
+ 80000150: 51df1263 bne t5,t4,80000654 <fail>
+
+0000000080000154 <test_4>:
+ 80000154: 00ff00b7 lui ra,0xff0
+ 80000158: 0ff0809b addiw ra,ra,255
+ 8000015c: 0f0f1137 lui sp,0xf0f1
+ 80000160: f0f1011b addiw sp,sp,-241
+ 80000164: 0020ff33 and t5,ra,sp
+ 80000168: 000f0eb7 lui t4,0xf0
+ 8000016c: 00fe8e9b addiw t4,t4,15
+ 80000170: 00400193 li gp,4
+ 80000174: 4fdf1063 bne t5,t4,80000654 <fail>
+
+0000000080000178 <test_5>:
+ 80000178: 000f00b7 lui ra,0xf0
+ 8000017c: 0ff0809b addiw ra,ra,255
+ 80000180: 00c09093 slli ra,ra,0xc
+ 80000184: 00f08093 addi ra,ra,15 # f000f <_start-0x7ff0fff1>
+ 80000188: 000f1137 lui sp,0xf1
+ 8000018c: f0f1011b addiw sp,sp,-241
+ 80000190: 00c11113 slli sp,sp,0xc
+ 80000194: 0f010113 addi sp,sp,240 # f10f0 <_start-0x7ff0ef10>
+ 80000198: 0020ff33 and t5,ra,sp
+ 8000019c: 000f0eb7 lui t4,0xf0
+ 800001a0: 00fe8e9b addiw t4,t4,15
+ 800001a4: 00ce9e93 slli t4,t4,0xc
+ 800001a8: 00500193 li gp,5
+ 800001ac: 4bdf1463 bne t5,t4,80000654 <fail>
+
+00000000800001b0 <test_6>:
+ 800001b0: 000100b7 lui ra,0x10
+ 800001b4: f010809b addiw ra,ra,-255
+ 800001b8: 01009093 slli ra,ra,0x10
+ 800001bc: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 800001c0: 0f0f1137 lui sp,0xf0f1
+ 800001c4: f0f1011b addiw sp,sp,-241
+ 800001c8: 0020f0b3 and ra,ra,sp
+ 800001cc: 0f001eb7 lui t4,0xf001
+ 800001d0: f00e8e9b addiw t4,t4,-256
+ 800001d4: 00600193 li gp,6
+ 800001d8: 47d09e63 bne ra,t4,80000654 <fail>
+
+00000000800001dc <test_7>:
+ 800001dc: 0ff010b7 lui ra,0xff01
+ 800001e0: ff00809b addiw ra,ra,-16
+ 800001e4: 000f1137 lui sp,0xf1
+ 800001e8: f0f1011b addiw sp,sp,-241
+ 800001ec: 00c11113 slli sp,sp,0xc
+ 800001f0: 0f010113 addi sp,sp,240 # f10f0 <_start-0x7ff0ef10>
+ 800001f4: 0020f133 and sp,ra,sp
+ 800001f8: 00f00eb7 lui t4,0xf00
+ 800001fc: 0f0e8e9b addiw t4,t4,240
+ 80000200: 00700193 li gp,7
+ 80000204: 45d11863 bne sp,t4,80000654 <fail>
+
+0000000080000208 <test_8>:
+ 80000208: 000100b7 lui ra,0x10
+ 8000020c: f010809b addiw ra,ra,-255
+ 80000210: 01009093 slli ra,ra,0x10
+ 80000214: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 80000218: 0010f0b3 and ra,ra,ra
+ 8000021c: 00010eb7 lui t4,0x10
+ 80000220: f01e8e9b addiw t4,t4,-255
+ 80000224: 010e9e93 slli t4,t4,0x10
+ 80000228: f00e8e93 addi t4,t4,-256 # ff00 <_start-0x7fff0100>
+ 8000022c: 00800193 li gp,8
+ 80000230: 43d09263 bne ra,t4,80000654 <fail>
+
+0000000080000234 <test_9>:
+ 80000234: 00000213 li tp,0
+ 80000238: 000100b7 lui ra,0x10
+ 8000023c: f010809b addiw ra,ra,-255
+ 80000240: 01009093 slli ra,ra,0x10
+ 80000244: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 80000248: 0f0f1137 lui sp,0xf0f1
+ 8000024c: f0f1011b addiw sp,sp,-241
+ 80000250: 0020ff33 and t5,ra,sp
+ 80000254: 000f0313 mv t1,t5
+ 80000258: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 8000025c: 00200293 li t0,2
+ 80000260: fc521ce3 bne tp,t0,80000238 <test_9+0x4>
+ 80000264: 0f001eb7 lui t4,0xf001
+ 80000268: f00e8e9b addiw t4,t4,-256
+ 8000026c: 00900193 li gp,9
+ 80000270: 3fd31263 bne t1,t4,80000654 <fail>
+
+0000000080000274 <test_10>:
+ 80000274: 00000213 li tp,0
+ 80000278: 0ff010b7 lui ra,0xff01
+ 8000027c: ff00809b addiw ra,ra,-16
+ 80000280: 000f1137 lui sp,0xf1
+ 80000284: f0f1011b addiw sp,sp,-241
+ 80000288: 00c11113 slli sp,sp,0xc
+ 8000028c: 0f010113 addi sp,sp,240 # f10f0 <_start-0x7ff0ef10>
+ 80000290: 0020ff33 and t5,ra,sp
+ 80000294: 00000013 nop
+ 80000298: 000f0313 mv t1,t5
+ 8000029c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800002a0: 00200293 li t0,2
+ 800002a4: fc521ae3 bne tp,t0,80000278 <test_10+0x4>
+ 800002a8: 00f00eb7 lui t4,0xf00
+ 800002ac: 0f0e8e9b addiw t4,t4,240
+ 800002b0: 00a00193 li gp,10
+ 800002b4: 3bd31063 bne t1,t4,80000654 <fail>
+
+00000000800002b8 <test_11>:
+ 800002b8: 00000213 li tp,0
+ 800002bc: 00ff00b7 lui ra,0xff0
+ 800002c0: 0ff0809b addiw ra,ra,255
+ 800002c4: 0f0f1137 lui sp,0xf0f1
+ 800002c8: f0f1011b addiw sp,sp,-241
+ 800002cc: 0020ff33 and t5,ra,sp
+ 800002d0: 00000013 nop
+ 800002d4: 00000013 nop
+ 800002d8: 000f0313 mv t1,t5
+ 800002dc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800002e0: 00200293 li t0,2
+ 800002e4: fc521ce3 bne tp,t0,800002bc <test_11+0x4>
+ 800002e8: 000f0eb7 lui t4,0xf0
+ 800002ec: 00fe8e9b addiw t4,t4,15
+ 800002f0: 00b00193 li gp,11
+ 800002f4: 37d31063 bne t1,t4,80000654 <fail>
+
+00000000800002f8 <test_12>:
+ 800002f8: 00000213 li tp,0
+ 800002fc: 000100b7 lui ra,0x10
+ 80000300: f010809b addiw ra,ra,-255
+ 80000304: 01009093 slli ra,ra,0x10
+ 80000308: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 8000030c: 0f0f1137 lui sp,0xf0f1
+ 80000310: f0f1011b addiw sp,sp,-241
+ 80000314: 0020ff33 and t5,ra,sp
+ 80000318: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 8000031c: 00200293 li t0,2
+ 80000320: fc521ee3 bne tp,t0,800002fc <test_12+0x4>
+ 80000324: 0f001eb7 lui t4,0xf001
+ 80000328: f00e8e9b addiw t4,t4,-256
+ 8000032c: 00c00193 li gp,12
+ 80000330: 33df1263 bne t5,t4,80000654 <fail>
+
+0000000080000334 <test_13>:
+ 80000334: 00000213 li tp,0
+ 80000338: 0ff010b7 lui ra,0xff01
+ 8000033c: ff00809b addiw ra,ra,-16
+ 80000340: 000f1137 lui sp,0xf1
+ 80000344: f0f1011b addiw sp,sp,-241
+ 80000348: 00c11113 slli sp,sp,0xc
+ 8000034c: 0f010113 addi sp,sp,240 # f10f0 <_start-0x7ff0ef10>
+ 80000350: 00000013 nop
+ 80000354: 0020ff33 and t5,ra,sp
+ 80000358: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 8000035c: 00200293 li t0,2
+ 80000360: fc521ce3 bne tp,t0,80000338 <test_13+0x4>
+ 80000364: 00f00eb7 lui t4,0xf00
+ 80000368: 0f0e8e9b addiw t4,t4,240
+ 8000036c: 00d00193 li gp,13
+ 80000370: 2fdf1263 bne t5,t4,80000654 <fail>
+
+0000000080000374 <test_14>:
+ 80000374: 00000213 li tp,0
+ 80000378: 00ff00b7 lui ra,0xff0
+ 8000037c: 0ff0809b addiw ra,ra,255
+ 80000380: 0f0f1137 lui sp,0xf0f1
+ 80000384: f0f1011b addiw sp,sp,-241
+ 80000388: 00000013 nop
+ 8000038c: 00000013 nop
+ 80000390: 0020ff33 and t5,ra,sp
+ 80000394: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000398: 00200293 li t0,2
+ 8000039c: fc521ee3 bne tp,t0,80000378 <test_14+0x4>
+ 800003a0: 000f0eb7 lui t4,0xf0
+ 800003a4: 00fe8e9b addiw t4,t4,15
+ 800003a8: 00e00193 li gp,14
+ 800003ac: 2bdf1463 bne t5,t4,80000654 <fail>
+
+00000000800003b0 <test_15>:
+ 800003b0: 00000213 li tp,0
+ 800003b4: 000100b7 lui ra,0x10
+ 800003b8: f010809b addiw ra,ra,-255
+ 800003bc: 01009093 slli ra,ra,0x10
+ 800003c0: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 800003c4: 00000013 nop
+ 800003c8: 0f0f1137 lui sp,0xf0f1
+ 800003cc: f0f1011b addiw sp,sp,-241
+ 800003d0: 0020ff33 and t5,ra,sp
+ 800003d4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800003d8: 00200293 li t0,2
+ 800003dc: fc521ce3 bne tp,t0,800003b4 <test_15+0x4>
+ 800003e0: 0f001eb7 lui t4,0xf001
+ 800003e4: f00e8e9b addiw t4,t4,-256
+ 800003e8: 00f00193 li gp,15
+ 800003ec: 27df1463 bne t5,t4,80000654 <fail>
+
+00000000800003f0 <test_16>:
+ 800003f0: 00000213 li tp,0
+ 800003f4: 0ff010b7 lui ra,0xff01
+ 800003f8: ff00809b addiw ra,ra,-16
+ 800003fc: 00000013 nop
+ 80000400: 000f1137 lui sp,0xf1
+ 80000404: f0f1011b addiw sp,sp,-241
+ 80000408: 00c11113 slli sp,sp,0xc
+ 8000040c: 0f010113 addi sp,sp,240 # f10f0 <_start-0x7ff0ef10>
+ 80000410: 00000013 nop
+ 80000414: 0020ff33 and t5,ra,sp
+ 80000418: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 8000041c: 00200293 li t0,2
+ 80000420: fc521ae3 bne tp,t0,800003f4 <test_16+0x4>
+ 80000424: 00f00eb7 lui t4,0xf00
+ 80000428: 0f0e8e9b addiw t4,t4,240
+ 8000042c: 01000193 li gp,16
+ 80000430: 23df1263 bne t5,t4,80000654 <fail>
+
+0000000080000434 <test_17>:
+ 80000434: 00000213 li tp,0
+ 80000438: 00ff00b7 lui ra,0xff0
+ 8000043c: 0ff0809b addiw ra,ra,255
+ 80000440: 00000013 nop
+ 80000444: 00000013 nop
+ 80000448: 0f0f1137 lui sp,0xf0f1
+ 8000044c: f0f1011b addiw sp,sp,-241
+ 80000450: 0020ff33 and t5,ra,sp
+ 80000454: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000458: 00200293 li t0,2
+ 8000045c: fc521ee3 bne tp,t0,80000438 <test_17+0x4>
+ 80000460: 000f0eb7 lui t4,0xf0
+ 80000464: 00fe8e9b addiw t4,t4,15
+ 80000468: 01100193 li gp,17
+ 8000046c: 1fdf1463 bne t5,t4,80000654 <fail>
+
+0000000080000470 <test_18>:
+ 80000470: 00000213 li tp,0
+ 80000474: 0f0f1137 lui sp,0xf0f1
+ 80000478: f0f1011b addiw sp,sp,-241
+ 8000047c: 000100b7 lui ra,0x10
+ 80000480: f010809b addiw ra,ra,-255
+ 80000484: 01009093 slli ra,ra,0x10
+ 80000488: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 8000048c: 0020ff33 and t5,ra,sp
+ 80000490: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000494: 00200293 li t0,2
+ 80000498: fc521ee3 bne tp,t0,80000474 <test_18+0x4>
+ 8000049c: 0f001eb7 lui t4,0xf001
+ 800004a0: f00e8e9b addiw t4,t4,-256
+ 800004a4: 01200193 li gp,18
+ 800004a8: 1bdf1663 bne t5,t4,80000654 <fail>
+
+00000000800004ac <test_19>:
+ 800004ac: 00000213 li tp,0
+ 800004b0: 000f1137 lui sp,0xf1
+ 800004b4: f0f1011b addiw sp,sp,-241
+ 800004b8: 00c11113 slli sp,sp,0xc
+ 800004bc: 0f010113 addi sp,sp,240 # f10f0 <_start-0x7ff0ef10>
+ 800004c0: 0ff010b7 lui ra,0xff01
+ 800004c4: ff00809b addiw ra,ra,-16
+ 800004c8: 00000013 nop
+ 800004cc: 0020ff33 and t5,ra,sp
+ 800004d0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800004d4: 00200293 li t0,2
+ 800004d8: fc521ce3 bne tp,t0,800004b0 <test_19+0x4>
+ 800004dc: 00f00eb7 lui t4,0xf00
+ 800004e0: 0f0e8e9b addiw t4,t4,240
+ 800004e4: 01300193 li gp,19
+ 800004e8: 17df1663 bne t5,t4,80000654 <fail>
+
+00000000800004ec <test_20>:
+ 800004ec: 00000213 li tp,0
+ 800004f0: 0f0f1137 lui sp,0xf0f1
+ 800004f4: f0f1011b addiw sp,sp,-241
+ 800004f8: 00ff00b7 lui ra,0xff0
+ 800004fc: 0ff0809b addiw ra,ra,255
+ 80000500: 00000013 nop
+ 80000504: 00000013 nop
+ 80000508: 0020ff33 and t5,ra,sp
+ 8000050c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000510: 00200293 li t0,2
+ 80000514: fc521ee3 bne tp,t0,800004f0 <test_20+0x4>
+ 80000518: 000f0eb7 lui t4,0xf0
+ 8000051c: 00fe8e9b addiw t4,t4,15
+ 80000520: 01400193 li gp,20
+ 80000524: 13df1863 bne t5,t4,80000654 <fail>
+
+0000000080000528 <test_21>:
+ 80000528: 00000213 li tp,0
+ 8000052c: 0f0f1137 lui sp,0xf0f1
+ 80000530: f0f1011b addiw sp,sp,-241
+ 80000534: 00000013 nop
+ 80000538: 000100b7 lui ra,0x10
+ 8000053c: f010809b addiw ra,ra,-255
+ 80000540: 01009093 slli ra,ra,0x10
+ 80000544: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 80000548: 0020ff33 and t5,ra,sp
+ 8000054c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000550: 00200293 li t0,2
+ 80000554: fc521ce3 bne tp,t0,8000052c <test_21+0x4>
+ 80000558: 0f001eb7 lui t4,0xf001
+ 8000055c: f00e8e9b addiw t4,t4,-256
+ 80000560: 01500193 li gp,21
+ 80000564: 0fdf1863 bne t5,t4,80000654 <fail>
+
+0000000080000568 <test_22>:
+ 80000568: 00000213 li tp,0
+ 8000056c: 000f1137 lui sp,0xf1
+ 80000570: f0f1011b addiw sp,sp,-241
+ 80000574: 00c11113 slli sp,sp,0xc
+ 80000578: 0f010113 addi sp,sp,240 # f10f0 <_start-0x7ff0ef10>
+ 8000057c: 00000013 nop
+ 80000580: 0ff010b7 lui ra,0xff01
+ 80000584: ff00809b addiw ra,ra,-16
+ 80000588: 00000013 nop
+ 8000058c: 0020ff33 and t5,ra,sp
+ 80000590: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000594: 00200293 li t0,2
+ 80000598: fc521ae3 bne tp,t0,8000056c <test_22+0x4>
+ 8000059c: 00f00eb7 lui t4,0xf00
+ 800005a0: 0f0e8e9b addiw t4,t4,240
+ 800005a4: 01600193 li gp,22
+ 800005a8: 0bdf1663 bne t5,t4,80000654 <fail>
+
+00000000800005ac <test_23>:
+ 800005ac: 00000213 li tp,0
+ 800005b0: 0f0f1137 lui sp,0xf0f1
+ 800005b4: f0f1011b addiw sp,sp,-241
+ 800005b8: 00000013 nop
+ 800005bc: 00000013 nop
+ 800005c0: 00ff00b7 lui ra,0xff0
+ 800005c4: 0ff0809b addiw ra,ra,255
+ 800005c8: 0020ff33 and t5,ra,sp
+ 800005cc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800005d0: 00200293 li t0,2
+ 800005d4: fc521ee3 bne tp,t0,800005b0 <test_23+0x4>
+ 800005d8: 000f0eb7 lui t4,0xf0
+ 800005dc: 00fe8e9b addiw t4,t4,15
+ 800005e0: 01700193 li gp,23
+ 800005e4: 07df1863 bne t5,t4,80000654 <fail>
+
+00000000800005e8 <test_24>:
+ 800005e8: 000100b7 lui ra,0x10
+ 800005ec: f010809b addiw ra,ra,-255
+ 800005f0: 01009093 slli ra,ra,0x10
+ 800005f4: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 800005f8: 00107133 and sp,zero,ra
+ 800005fc: 00000e93 li t4,0
+ 80000600: 01800193 li gp,24
+ 80000604: 05d11863 bne sp,t4,80000654 <fail>
+
+0000000080000608 <test_25>:
+ 80000608: 00ff00b7 lui ra,0xff0
+ 8000060c: 0ff0809b addiw ra,ra,255
+ 80000610: 0000f133 and sp,ra,zero
+ 80000614: 00000e93 li t4,0
+ 80000618: 01900193 li gp,25
+ 8000061c: 03d11c63 bne sp,t4,80000654 <fail>
+
+0000000080000620 <test_26>:
+ 80000620: 000070b3 and ra,zero,zero
+ 80000624: 00000e93 li t4,0
+ 80000628: 01a00193 li gp,26
+ 8000062c: 03d09463 bne ra,t4,80000654 <fail>
+
+0000000080000630 <test_27>:
+ 80000630: 111110b7 lui ra,0x11111
+ 80000634: 1110809b addiw ra,ra,273
+ 80000638: 22222137 lui sp,0x22222
+ 8000063c: 2221011b addiw sp,sp,546
+ 80000640: 0020f033 and zero,ra,sp
+ 80000644: 00000e93 li t4,0
+ 80000648: 01b00193 li gp,27
+ 8000064c: 01d01463 bne zero,t4,80000654 <fail>
+ 80000650: 00301c63 bne zero,gp,80000668 <pass>
+
+0000000080000654 <fail>:
+ 80000654: 0ff0000f fence
+ 80000658: 00018063 beqz gp,80000658 <fail+0x4>
+ 8000065c: 00119193 slli gp,gp,0x1
+ 80000660: 0011e193 ori gp,gp,1
+ 80000664: 00000073 ecall
+
+0000000080000668 <pass>:
+ 80000668: 0ff0000f fence
+ 8000066c: 00100193 li gp,1
+ 80000670: 00000073 ecall
+ 80000674: c0001073 unimp
+ 80000678: 0000 unimp
+ 8000067a: 0000 unimp
+ 8000067c: 0000 unimp
+ 8000067e: 0000 unimp
+ 80000680: 0000 unimp
+ 80000682: 0000 unimp
diff --git a/test/tests/rv64ui-p-and.elf b/test/tests/rv64ui-p-and.elf
new file mode 100644
index 0000000..6450bbc
--- /dev/null
+++ b/test/tests/rv64ui-p-and.elf
Binary files differ
diff --git a/test/tests/rv64ui-p-andi.dump b/test/tests/rv64ui-p-andi.dump
new file mode 100644
index 0000000..2349dd1
--- /dev/null
+++ b/test/tests/rv64ui-p-andi.dump
@@ -0,0 +1,265 @@
+
+rv64ui-p-andi: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <test_2>:
+ 800000fc: 000100b7 lui ra,0x10
+ 80000100: f010809b addiw ra,ra,-255
+ 80000104: 01009093 slli ra,ra,0x10
+ 80000108: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 8000010c: f0f0ff13 andi t5,ra,-241
+ 80000110: 00010eb7 lui t4,0x10
+ 80000114: f01e8e9b addiw t4,t4,-255
+ 80000118: 010e9e93 slli t4,t4,0x10
+ 8000011c: f00e8e93 addi t4,t4,-256 # ff00 <_start-0x7fff0100>
+ 80000120: 00200193 li gp,2
+ 80000124: 1ddf1863 bne t5,t4,800002f4 <fail>
+
+0000000080000128 <test_3>:
+ 80000128: 0ff010b7 lui ra,0xff01
+ 8000012c: ff00809b addiw ra,ra,-16
+ 80000130: 0f00ff13 andi t5,ra,240
+ 80000134: 0f000e93 li t4,240
+ 80000138: 00300193 li gp,3
+ 8000013c: 1bdf1c63 bne t5,t4,800002f4 <fail>
+
+0000000080000140 <test_4>:
+ 80000140: 00ff00b7 lui ra,0xff0
+ 80000144: 0ff0809b addiw ra,ra,255
+ 80000148: 70f0ff13 andi t5,ra,1807
+ 8000014c: 00f00e93 li t4,15
+ 80000150: 00400193 li gp,4
+ 80000154: 1bdf1063 bne t5,t4,800002f4 <fail>
+
+0000000080000158 <test_5>:
+ 80000158: 000f00b7 lui ra,0xf0
+ 8000015c: 0ff0809b addiw ra,ra,255
+ 80000160: 00c09093 slli ra,ra,0xc
+ 80000164: 00f08093 addi ra,ra,15 # f000f <_start-0x7ff0fff1>
+ 80000168: 0f00ff13 andi t5,ra,240
+ 8000016c: 00000e93 li t4,0
+ 80000170: 00500193 li gp,5
+ 80000174: 19df1063 bne t5,t4,800002f4 <fail>
+
+0000000080000178 <test_6>:
+ 80000178: 000100b7 lui ra,0x10
+ 8000017c: f010809b addiw ra,ra,-255
+ 80000180: 01009093 slli ra,ra,0x10
+ 80000184: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 80000188: 0f00f093 andi ra,ra,240
+ 8000018c: 00000e93 li t4,0
+ 80000190: 00600193 li gp,6
+ 80000194: 17d09063 bne ra,t4,800002f4 <fail>
+
+0000000080000198 <test_7>:
+ 80000198: 00000213 li tp,0
+ 8000019c: 0ff010b7 lui ra,0xff01
+ 800001a0: ff00809b addiw ra,ra,-16
+ 800001a4: 70f0ff13 andi t5,ra,1807
+ 800001a8: 000f0313 mv t1,t5
+ 800001ac: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800001b0: 00200293 li t0,2
+ 800001b4: fe5214e3 bne tp,t0,8000019c <test_7+0x4>
+ 800001b8: 70000e93 li t4,1792
+ 800001bc: 00700193 li gp,7
+ 800001c0: 13d31a63 bne t1,t4,800002f4 <fail>
+
+00000000800001c4 <test_8>:
+ 800001c4: 00000213 li tp,0
+ 800001c8: 00ff00b7 lui ra,0xff0
+ 800001cc: 0ff0809b addiw ra,ra,255
+ 800001d0: 0f00ff13 andi t5,ra,240
+ 800001d4: 00000013 nop
+ 800001d8: 000f0313 mv t1,t5
+ 800001dc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800001e0: 00200293 li t0,2
+ 800001e4: fe5212e3 bne tp,t0,800001c8 <test_8+0x4>
+ 800001e8: 0f000e93 li t4,240
+ 800001ec: 00800193 li gp,8
+ 800001f0: 11d31263 bne t1,t4,800002f4 <fail>
+
+00000000800001f4 <test_9>:
+ 800001f4: 00000213 li tp,0
+ 800001f8: 000f00b7 lui ra,0xf0
+ 800001fc: 0ff0809b addiw ra,ra,255
+ 80000200: 00c09093 slli ra,ra,0xc
+ 80000204: 00f08093 addi ra,ra,15 # f000f <_start-0x7ff0fff1>
+ 80000208: f0f0ff13 andi t5,ra,-241
+ 8000020c: 00000013 nop
+ 80000210: 00000013 nop
+ 80000214: 000f0313 mv t1,t5
+ 80000218: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 8000021c: 00200293 li t0,2
+ 80000220: fc521ce3 bne tp,t0,800001f8 <test_9+0x4>
+ 80000224: 000f0eb7 lui t4,0xf0
+ 80000228: 0ffe8e9b addiw t4,t4,255
+ 8000022c: 00ce9e93 slli t4,t4,0xc
+ 80000230: 00fe8e93 addi t4,t4,15 # f000f <_start-0x7ff0fff1>
+ 80000234: 00900193 li gp,9
+ 80000238: 0bd31e63 bne t1,t4,800002f4 <fail>
+
+000000008000023c <test_10>:
+ 8000023c: 00000213 li tp,0
+ 80000240: 0ff010b7 lui ra,0xff01
+ 80000244: ff00809b addiw ra,ra,-16
+ 80000248: 70f0ff13 andi t5,ra,1807
+ 8000024c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000250: 00200293 li t0,2
+ 80000254: fe5216e3 bne tp,t0,80000240 <test_10+0x4>
+ 80000258: 70000e93 li t4,1792
+ 8000025c: 00a00193 li gp,10
+ 80000260: 09df1a63 bne t5,t4,800002f4 <fail>
+
+0000000080000264 <test_11>:
+ 80000264: 00000213 li tp,0
+ 80000268: 00ff00b7 lui ra,0xff0
+ 8000026c: 0ff0809b addiw ra,ra,255
+ 80000270: 00000013 nop
+ 80000274: 0f00ff13 andi t5,ra,240
+ 80000278: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 8000027c: 00200293 li t0,2
+ 80000280: fe5214e3 bne tp,t0,80000268 <test_11+0x4>
+ 80000284: 0f000e93 li t4,240
+ 80000288: 00b00193 li gp,11
+ 8000028c: 07df1463 bne t5,t4,800002f4 <fail>
+
+0000000080000290 <test_12>:
+ 80000290: 00000213 li tp,0
+ 80000294: 000f00b7 lui ra,0xf0
+ 80000298: 0ff0809b addiw ra,ra,255
+ 8000029c: 00c09093 slli ra,ra,0xc
+ 800002a0: 00f08093 addi ra,ra,15 # f000f <_start-0x7ff0fff1>
+ 800002a4: 00000013 nop
+ 800002a8: 00000013 nop
+ 800002ac: 70f0ff13 andi t5,ra,1807
+ 800002b0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800002b4: 00200293 li t0,2
+ 800002b8: fc521ee3 bne tp,t0,80000294 <test_12+0x4>
+ 800002bc: 00f00e93 li t4,15
+ 800002c0: 00c00193 li gp,12
+ 800002c4: 03df1863 bne t5,t4,800002f4 <fail>
+
+00000000800002c8 <test_13>:
+ 800002c8: 0f007093 andi ra,zero,240
+ 800002cc: 00000e93 li t4,0
+ 800002d0: 00d00193 li gp,13
+ 800002d4: 03d09063 bne ra,t4,800002f4 <fail>
+
+00000000800002d8 <test_14>:
+ 800002d8: 00ff00b7 lui ra,0xff0
+ 800002dc: 0ff0809b addiw ra,ra,255
+ 800002e0: 70f0f013 andi zero,ra,1807
+ 800002e4: 00000e93 li t4,0
+ 800002e8: 00e00193 li gp,14
+ 800002ec: 01d01463 bne zero,t4,800002f4 <fail>
+ 800002f0: 00301c63 bne zero,gp,80000308 <pass>
+
+00000000800002f4 <fail>:
+ 800002f4: 0ff0000f fence
+ 800002f8: 00018063 beqz gp,800002f8 <fail+0x4>
+ 800002fc: 00119193 slli gp,gp,0x1
+ 80000300: 0011e193 ori gp,gp,1
+ 80000304: 00000073 ecall
+
+0000000080000308 <pass>:
+ 80000308: 0ff0000f fence
+ 8000030c: 00100193 li gp,1
+ 80000310: 00000073 ecall
+ 80000314: c0001073 unimp
+ 80000318: 0000 unimp
+ 8000031a: 0000 unimp
+ 8000031c: 0000 unimp
+ 8000031e: 0000 unimp
+ 80000320: 0000 unimp
+ 80000322: 0000 unimp
+ 80000324: 0000 unimp
+ 80000326: 0000 unimp
+ 80000328: 0000 unimp
+ 8000032a: 0000 unimp
+ 8000032c: 0000 unimp
+ 8000032e: 0000 unimp
+ 80000330: 0000 unimp
+ 80000332: 0000 unimp
+ 80000334: 0000 unimp
+ 80000336: 0000 unimp
+ 80000338: 0000 unimp
+ 8000033a: 0000 unimp
+ 8000033c: 0000 unimp
+ 8000033e: 0000 unimp
+ 80000340: 0000 unimp
+ 80000342: 0000 unimp
diff --git a/test/tests/rv64ui-p-andi.elf b/test/tests/rv64ui-p-andi.elf
new file mode 100644
index 0000000..26396d9
--- /dev/null
+++ b/test/tests/rv64ui-p-andi.elf
Binary files differ
diff --git a/test/tests/rv64ui-p-auipc.dump b/test/tests/rv64ui-p-auipc.dump
new file mode 100644
index 0000000..0302a06
--- /dev/null
+++ b/test/tests/rv64ui-p-auipc.dump
@@ -0,0 +1,125 @@
+
+rv64ui-p-auipc: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <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: 710e8e9b addiw t4,t4,1808
+ 80000118: 00200193 li gp,2
+ 8000011c: 03d51463 bne a0,t4,80000144 <fail>
+
+0000000080000120 <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: 8f0e8e9b addiw t4,t4,-1808
+ 80000138: 00300193 li gp,3
+ 8000013c: 01d51463 bne a0,t4,80000144 <fail>
+ 80000140: 00301c63 bne zero,gp,80000158 <pass>
+
+0000000080000144 <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
+
+0000000080000158 <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/tests/rv64ui-p-auipc.elf b/test/tests/rv64ui-p-auipc.elf
new file mode 100644
index 0000000..841136e
--- /dev/null
+++ b/test/tests/rv64ui-p-auipc.elf
Binary files differ
diff --git a/test/tests/rv64ui-p-beq.dump b/test/tests/rv64ui-p-beq.dump
new file mode 100644
index 0000000..d09e175
--- /dev/null
+++ b/test/tests/rv64ui-p-beq.dump
@@ -0,0 +1,325 @@
+
+rv64ui-p-beq: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <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>
+
+000000008000011c <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>
+
+000000008000013c <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>
+
+000000008000015c <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>
+
+0000000080000178 <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>
+
+0000000080000194 <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>
+
+00000000800001b0 <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>
+
+00000000800001cc <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>
+
+00000000800001ec <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>
+
+0000000080000210 <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>
+
+0000000080000238 <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>
+
+000000008000025c <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>
+
+0000000080000284 <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>
+
+00000000800002ac <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>
+
+00000000800002cc <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>
+
+00000000800002f0 <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>
+
+0000000080000318 <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>
+
+000000008000033c <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>
+
+0000000080000364 <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>
+
+000000008000038c <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>
+
+00000000800003bc <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
+
+00000000800003d0 <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/tests/rv64ui-p-beq.elf b/test/tests/rv64ui-p-beq.elf
new file mode 100644
index 0000000..74d6392
--- /dev/null
+++ b/test/tests/rv64ui-p-beq.elf
Binary files differ
diff --git a/test/tests/rv64ui-p-bge.dump b/test/tests/rv64ui-p-bge.dump
new file mode 100644
index 0000000..bd863ee
--- /dev/null
+++ b/test/tests/rv64ui-p-bge.dump
@@ -0,0 +1,339 @@
+
+rv64ui-p-bge: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <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>
+
+000000008000011c <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>
+
+000000008000013c <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>
+
+000000008000015c <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>
+
+000000008000017c <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>
+
+000000008000019c <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>
+
+00000000800001bc <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>
+
+00000000800001d8 <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>
+
+00000000800001f4 <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>
+
+0000000080000210 <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>
+
+000000008000022c <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>
+
+000000008000024c <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>
+
+0000000080000270 <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>
+
+0000000080000298 <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>
+
+00000000800002bc <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>
+
+00000000800002e4 <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>
+
+000000008000030c <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>
+
+000000008000032c <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>
+
+0000000080000350 <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>
+
+0000000080000378 <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>
+
+000000008000039c <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>
+
+00000000800003c4 <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>
+
+00000000800003ec <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>
+
+000000008000041c <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
+
+0000000080000430 <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/tests/rv64ui-p-bge.elf b/test/tests/rv64ui-p-bge.elf
new file mode 100644
index 0000000..6a5c2ef
--- /dev/null
+++ b/test/tests/rv64ui-p-bge.elf
Binary files differ
diff --git a/test/tests/rv64ui-p-bgeu.dump b/test/tests/rv64ui-p-bgeu.dump
new file mode 100644
index 0000000..c773c7d
--- /dev/null
+++ b/test/tests/rv64ui-p-bgeu.dump
@@ -0,0 +1,413 @@
+
+rv64ui-p-bgeu: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <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: 3e301463 bne zero,gp,800004f4 <fail>
+ 80000110: 00301663 bne zero,gp,8000011c <test_3>
+ 80000114: fe20fee3 bleu sp,ra,80000110 <test_2+0x14>
+ 80000118: 3c301e63 bne zero,gp,800004f4 <fail>
+
+000000008000011c <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: 3c301463 bne zero,gp,800004f4 <fail>
+ 80000130: 00301663 bne zero,gp,8000013c <test_4>
+ 80000134: fe20fee3 bleu sp,ra,80000130 <test_3+0x14>
+ 80000138: 3a301e63 bne zero,gp,800004f4 <fail>
+
+000000008000013c <test_4>:
+ 8000013c: 00400193 li gp,4
+ 80000140: 0010009b addiw ra,zero,1
+ 80000144: 02009093 slli ra,ra,0x20
+ 80000148: fff08093 addi ra,ra,-1
+ 8000014c: 0010011b addiw sp,zero,1
+ 80000150: 02011113 slli sp,sp,0x20
+ 80000154: fff10113 addi sp,sp,-1
+ 80000158: 0020f663 bleu sp,ra,80000164 <test_4+0x28>
+ 8000015c: 38301c63 bne zero,gp,800004f4 <fail>
+ 80000160: 00301663 bne zero,gp,8000016c <test_5>
+ 80000164: fe20fee3 bleu sp,ra,80000160 <test_4+0x24>
+ 80000168: 38301663 bne zero,gp,800004f4 <fail>
+
+000000008000016c <test_5>:
+ 8000016c: 00500193 li gp,5
+ 80000170: 00100093 li ra,1
+ 80000174: 00000113 li sp,0
+ 80000178: 0020f663 bleu sp,ra,80000184 <test_5+0x18>
+ 8000017c: 36301c63 bne zero,gp,800004f4 <fail>
+ 80000180: 00301663 bne zero,gp,8000018c <test_6>
+ 80000184: fe20fee3 bleu sp,ra,80000180 <test_5+0x14>
+ 80000188: 36301663 bne zero,gp,800004f4 <fail>
+
+000000008000018c <test_6>:
+ 8000018c: 00600193 li gp,6
+ 80000190: 0010009b addiw ra,zero,1
+ 80000194: 02009093 slli ra,ra,0x20
+ 80000198: fff08093 addi ra,ra,-1
+ 8000019c: 0010011b addiw sp,zero,1
+ 800001a0: 02011113 slli sp,sp,0x20
+ 800001a4: ffe10113 addi sp,sp,-2
+ 800001a8: 0020f663 bleu sp,ra,800001b4 <test_6+0x28>
+ 800001ac: 34301463 bne zero,gp,800004f4 <fail>
+ 800001b0: 00301663 bne zero,gp,800001bc <test_7>
+ 800001b4: fe20fee3 bleu sp,ra,800001b0 <test_6+0x24>
+ 800001b8: 32301e63 bne zero,gp,800004f4 <fail>
+
+00000000800001bc <test_7>:
+ 800001bc: 00700193 li gp,7
+ 800001c0: 0010009b addiw ra,zero,1
+ 800001c4: 02009093 slli ra,ra,0x20
+ 800001c8: fff08093 addi ra,ra,-1
+ 800001cc: 00000113 li sp,0
+ 800001d0: 0020f663 bleu sp,ra,800001dc <test_7+0x20>
+ 800001d4: 32301063 bne zero,gp,800004f4 <fail>
+ 800001d8: 00301663 bne zero,gp,800001e4 <test_8>
+ 800001dc: fe20fee3 bleu sp,ra,800001d8 <test_7+0x1c>
+ 800001e0: 30301a63 bne zero,gp,800004f4 <fail>
+
+00000000800001e4 <test_8>:
+ 800001e4: 00800193 li gp,8
+ 800001e8: 00000093 li ra,0
+ 800001ec: 00100113 li sp,1
+ 800001f0: 0020f463 bleu sp,ra,800001f8 <test_8+0x14>
+ 800001f4: 00301463 bne zero,gp,800001fc <test_8+0x18>
+ 800001f8: 2e301e63 bne zero,gp,800004f4 <fail>
+ 800001fc: fe20fee3 bleu sp,ra,800001f8 <test_8+0x14>
+
+0000000080000200 <test_9>:
+ 80000200: 00900193 li gp,9
+ 80000204: 0010009b addiw ra,zero,1
+ 80000208: 02009093 slli ra,ra,0x20
+ 8000020c: ffe08093 addi ra,ra,-2
+ 80000210: 0010011b addiw sp,zero,1
+ 80000214: 02011113 slli sp,sp,0x20
+ 80000218: fff10113 addi sp,sp,-1
+ 8000021c: 0020f463 bleu sp,ra,80000224 <test_9+0x24>
+ 80000220: 00301463 bne zero,gp,80000228 <test_9+0x28>
+ 80000224: 2c301863 bne zero,gp,800004f4 <fail>
+ 80000228: fe20fee3 bleu sp,ra,80000224 <test_9+0x24>
+
+000000008000022c <test_10>:
+ 8000022c: 00a00193 li gp,10
+ 80000230: 00000093 li ra,0
+ 80000234: 0010011b addiw sp,zero,1
+ 80000238: 02011113 slli sp,sp,0x20
+ 8000023c: fff10113 addi sp,sp,-1
+ 80000240: 0020f463 bleu sp,ra,80000248 <test_10+0x1c>
+ 80000244: 00301463 bne zero,gp,8000024c <test_10+0x20>
+ 80000248: 2a301663 bne zero,gp,800004f4 <fail>
+ 8000024c: fe20fee3 bleu sp,ra,80000248 <test_10+0x1c>
+
+0000000080000250 <test_11>:
+ 80000250: 00b00193 li gp,11
+ 80000254: 800000b7 lui ra,0x80000
+ 80000258: fff0809b addiw ra,ra,-1
+ 8000025c: 0010011b addiw sp,zero,1
+ 80000260: 01f11113 slli sp,sp,0x1f
+ 80000264: 0020f463 bleu sp,ra,8000026c <test_11+0x1c>
+ 80000268: 00301463 bne zero,gp,80000270 <test_11+0x20>
+ 8000026c: 28301463 bne zero,gp,800004f4 <fail>
+ 80000270: fe20fee3 bleu sp,ra,8000026c <test_11+0x1c>
+
+0000000080000274 <test_12>:
+ 80000274: 00c00193 li gp,12
+ 80000278: 00000213 li tp,0
+ 8000027c: 00f0009b addiw ra,zero,15
+ 80000280: 01c09093 slli ra,ra,0x1c
+ 80000284: fff08093 addi ra,ra,-1 # ffffffff7fffffff <_end+0xfffffffeffffdfff>
+ 80000288: 00f0011b addiw sp,zero,15
+ 8000028c: 01c11113 slli sp,sp,0x1c
+ 80000290: 2620f263 bleu sp,ra,800004f4 <fail>
+ 80000294: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000298: 00200293 li t0,2
+ 8000029c: fe5210e3 bne tp,t0,8000027c <test_12+0x8>
+
+00000000800002a0 <test_13>:
+ 800002a0: 00d00193 li gp,13
+ 800002a4: 00000213 li tp,0
+ 800002a8: 00f0009b addiw ra,zero,15
+ 800002ac: 01c09093 slli ra,ra,0x1c
+ 800002b0: fff08093 addi ra,ra,-1
+ 800002b4: 00f0011b addiw sp,zero,15
+ 800002b8: 01c11113 slli sp,sp,0x1c
+ 800002bc: 00000013 nop
+ 800002c0: 2220fa63 bleu sp,ra,800004f4 <fail>
+ 800002c4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800002c8: 00200293 li t0,2
+ 800002cc: fc521ee3 bne tp,t0,800002a8 <test_13+0x8>
+
+00000000800002d0 <test_14>:
+ 800002d0: 00e00193 li gp,14
+ 800002d4: 00000213 li tp,0
+ 800002d8: 00f0009b addiw ra,zero,15
+ 800002dc: 01c09093 slli ra,ra,0x1c
+ 800002e0: fff08093 addi ra,ra,-1
+ 800002e4: 00f0011b addiw sp,zero,15
+ 800002e8: 01c11113 slli sp,sp,0x1c
+ 800002ec: 00000013 nop
+ 800002f0: 00000013 nop
+ 800002f4: 2020f063 bleu sp,ra,800004f4 <fail>
+ 800002f8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800002fc: 00200293 li t0,2
+ 80000300: fc521ce3 bne tp,t0,800002d8 <test_14+0x8>
+
+0000000080000304 <test_15>:
+ 80000304: 00f00193 li gp,15
+ 80000308: 00000213 li tp,0
+ 8000030c: 00f0009b addiw ra,zero,15
+ 80000310: 01c09093 slli ra,ra,0x1c
+ 80000314: fff08093 addi ra,ra,-1
+ 80000318: 00000013 nop
+ 8000031c: 00f0011b addiw sp,zero,15
+ 80000320: 01c11113 slli sp,sp,0x1c
+ 80000324: 1c20f863 bleu sp,ra,800004f4 <fail>
+ 80000328: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 8000032c: 00200293 li t0,2
+ 80000330: fc521ee3 bne tp,t0,8000030c <test_15+0x8>
+
+0000000080000334 <test_16>:
+ 80000334: 01000193 li gp,16
+ 80000338: 00000213 li tp,0
+ 8000033c: 00f0009b addiw ra,zero,15
+ 80000340: 01c09093 slli ra,ra,0x1c
+ 80000344: fff08093 addi ra,ra,-1
+ 80000348: 00000013 nop
+ 8000034c: 00f0011b addiw sp,zero,15
+ 80000350: 01c11113 slli sp,sp,0x1c
+ 80000354: 00000013 nop
+ 80000358: 1820fe63 bleu sp,ra,800004f4 <fail>
+ 8000035c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000360: 00200293 li t0,2
+ 80000364: fc521ce3 bne tp,t0,8000033c <test_16+0x8>
+
+0000000080000368 <test_17>:
+ 80000368: 01100193 li gp,17
+ 8000036c: 00000213 li tp,0
+ 80000370: 00f0009b addiw ra,zero,15
+ 80000374: 01c09093 slli ra,ra,0x1c
+ 80000378: fff08093 addi ra,ra,-1
+ 8000037c: 00000013 nop
+ 80000380: 00000013 nop
+ 80000384: 00f0011b addiw sp,zero,15
+ 80000388: 01c11113 slli sp,sp,0x1c
+ 8000038c: 1620f463 bleu sp,ra,800004f4 <fail>
+ 80000390: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000394: 00200293 li t0,2
+ 80000398: fc521ce3 bne tp,t0,80000370 <test_17+0x8>
+
+000000008000039c <test_18>:
+ 8000039c: 01200193 li gp,18
+ 800003a0: 00000213 li tp,0
+ 800003a4: 00f0009b addiw ra,zero,15
+ 800003a8: 01c09093 slli ra,ra,0x1c
+ 800003ac: fff08093 addi ra,ra,-1
+ 800003b0: 00f0011b addiw sp,zero,15
+ 800003b4: 01c11113 slli sp,sp,0x1c
+ 800003b8: 1220fe63 bleu sp,ra,800004f4 <fail>
+ 800003bc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800003c0: 00200293 li t0,2
+ 800003c4: fe5210e3 bne tp,t0,800003a4 <test_18+0x8>
+
+00000000800003c8 <test_19>:
+ 800003c8: 01300193 li gp,19
+ 800003cc: 00000213 li tp,0
+ 800003d0: 00f0009b addiw ra,zero,15
+ 800003d4: 01c09093 slli ra,ra,0x1c
+ 800003d8: fff08093 addi ra,ra,-1
+ 800003dc: 00f0011b addiw sp,zero,15
+ 800003e0: 01c11113 slli sp,sp,0x1c
+ 800003e4: 00000013 nop
+ 800003e8: 1020f663 bleu sp,ra,800004f4 <fail>
+ 800003ec: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800003f0: 00200293 li t0,2
+ 800003f4: fc521ee3 bne tp,t0,800003d0 <test_19+0x8>
+
+00000000800003f8 <test_20>:
+ 800003f8: 01400193 li gp,20
+ 800003fc: 00000213 li tp,0
+ 80000400: 00f0009b addiw ra,zero,15
+ 80000404: 01c09093 slli ra,ra,0x1c
+ 80000408: fff08093 addi ra,ra,-1
+ 8000040c: 00f0011b addiw sp,zero,15
+ 80000410: 01c11113 slli sp,sp,0x1c
+ 80000414: 00000013 nop
+ 80000418: 00000013 nop
+ 8000041c: 0c20fc63 bleu sp,ra,800004f4 <fail>
+ 80000420: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000424: 00200293 li t0,2
+ 80000428: fc521ce3 bne tp,t0,80000400 <test_20+0x8>
+
+000000008000042c <test_21>:
+ 8000042c: 01500193 li gp,21
+ 80000430: 00000213 li tp,0
+ 80000434: 00f0009b addiw ra,zero,15
+ 80000438: 01c09093 slli ra,ra,0x1c
+ 8000043c: fff08093 addi ra,ra,-1
+ 80000440: 00000013 nop
+ 80000444: 00f0011b addiw sp,zero,15
+ 80000448: 01c11113 slli sp,sp,0x1c
+ 8000044c: 0a20f463 bleu sp,ra,800004f4 <fail>
+ 80000450: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000454: 00200293 li t0,2
+ 80000458: fc521ee3 bne tp,t0,80000434 <test_21+0x8>
+
+000000008000045c <test_22>:
+ 8000045c: 01600193 li gp,22
+ 80000460: 00000213 li tp,0
+ 80000464: 00f0009b addiw ra,zero,15
+ 80000468: 01c09093 slli ra,ra,0x1c
+ 8000046c: fff08093 addi ra,ra,-1
+ 80000470: 00000013 nop
+ 80000474: 00f0011b addiw sp,zero,15
+ 80000478: 01c11113 slli sp,sp,0x1c
+ 8000047c: 00000013 nop
+ 80000480: 0620fa63 bleu sp,ra,800004f4 <fail>
+ 80000484: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000488: 00200293 li t0,2
+ 8000048c: fc521ce3 bne tp,t0,80000464 <test_22+0x8>
+
+0000000080000490 <test_23>:
+ 80000490: 01700193 li gp,23
+ 80000494: 00000213 li tp,0
+ 80000498: 00f0009b addiw ra,zero,15
+ 8000049c: 01c09093 slli ra,ra,0x1c
+ 800004a0: fff08093 addi ra,ra,-1
+ 800004a4: 00000013 nop
+ 800004a8: 00000013 nop
+ 800004ac: 00f0011b addiw sp,zero,15
+ 800004b0: 01c11113 slli sp,sp,0x1c
+ 800004b4: 0420f063 bleu sp,ra,800004f4 <fail>
+ 800004b8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800004bc: 00200293 li t0,2
+ 800004c0: fc521ce3 bne tp,t0,80000498 <test_23+0x8>
+
+00000000800004c4 <test_24>:
+ 800004c4: 00100093 li ra,1
+ 800004c8: 0000fa63 bleu zero,ra,800004dc <test_24+0x18>
+ 800004cc: 00108093 addi ra,ra,1
+ 800004d0: 00108093 addi ra,ra,1
+ 800004d4: 00108093 addi ra,ra,1
+ 800004d8: 00108093 addi ra,ra,1
+ 800004dc: 00108093 addi ra,ra,1
+ 800004e0: 00108093 addi ra,ra,1
+ 800004e4: 00300e93 li t4,3
+ 800004e8: 01800193 li gp,24
+ 800004ec: 01d09463 bne ra,t4,800004f4 <fail>
+ 800004f0: 00301c63 bne zero,gp,80000508 <pass>
+
+00000000800004f4 <fail>:
+ 800004f4: 0ff0000f fence
+ 800004f8: 00018063 beqz gp,800004f8 <fail+0x4>
+ 800004fc: 00119193 slli gp,gp,0x1
+ 80000500: 0011e193 ori gp,gp,1
+ 80000504: 00000073 ecall
+
+0000000080000508 <pass>:
+ 80000508: 0ff0000f fence
+ 8000050c: 00100193 li gp,1
+ 80000510: 00000073 ecall
+ 80000514: c0001073 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
diff --git a/test/tests/rv64ui-p-bgeu.elf b/test/tests/rv64ui-p-bgeu.elf
new file mode 100644
index 0000000..a1ae7fe
--- /dev/null
+++ b/test/tests/rv64ui-p-bgeu.elf
Binary files differ
diff --git a/test/tests/rv64ui-p-blt.dump b/test/tests/rv64ui-p-blt.dump
new file mode 100644
index 0000000..3e6b518
--- /dev/null
+++ b/test/tests/rv64ui-p-blt.dump
@@ -0,0 +1,325 @@
+
+rv64ui-p-blt: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <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>
+
+000000008000011c <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>
+
+000000008000013c <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>
+
+000000008000015c <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>
+
+0000000080000178 <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>
+
+0000000080000194 <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>
+
+00000000800001b0 <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>
+
+00000000800001cc <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>
+
+00000000800001ec <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>
+
+0000000080000210 <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>
+
+0000000080000238 <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>
+
+000000008000025c <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>
+
+0000000080000284 <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>
+
+00000000800002ac <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>
+
+00000000800002cc <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>
+
+00000000800002f0 <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>
+
+0000000080000318 <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>
+
+000000008000033c <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>
+
+0000000080000364 <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>
+
+000000008000038c <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>
+
+00000000800003bc <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
+
+00000000800003d0 <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/tests/rv64ui-p-blt.elf b/test/tests/rv64ui-p-blt.elf
new file mode 100644
index 0000000..53f06fa
--- /dev/null
+++ b/test/tests/rv64ui-p-blt.elf
Binary files differ
diff --git a/test/tests/rv64ui-p-bltu.dump b/test/tests/rv64ui-p-bltu.dump
new file mode 100644
index 0000000..ec34421
--- /dev/null
+++ b/test/tests/rv64ui-p-bltu.dump
@@ -0,0 +1,371 @@
+
+rv64ui-p-bltu: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <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: 36301c63 bne zero,gp,80000484 <fail>
+ 80000110: 00301663 bne zero,gp,8000011c <test_3>
+ 80000114: fe20eee3 bltu ra,sp,80000110 <test_2+0x14>
+ 80000118: 36301663 bne zero,gp,80000484 <fail>
+
+000000008000011c <test_3>:
+ 8000011c: 00300193 li gp,3
+ 80000120: 0010009b addiw ra,zero,1
+ 80000124: 02009093 slli ra,ra,0x20
+ 80000128: ffe08093 addi ra,ra,-2
+ 8000012c: 0010011b addiw sp,zero,1
+ 80000130: 02011113 slli sp,sp,0x20
+ 80000134: fff10113 addi sp,sp,-1
+ 80000138: 0020e663 bltu ra,sp,80000144 <test_3+0x28>
+ 8000013c: 34301463 bne zero,gp,80000484 <fail>
+ 80000140: 00301663 bne zero,gp,8000014c <test_4>
+ 80000144: fe20eee3 bltu ra,sp,80000140 <test_3+0x24>
+ 80000148: 32301e63 bne zero,gp,80000484 <fail>
+
+000000008000014c <test_4>:
+ 8000014c: 00400193 li gp,4
+ 80000150: 00000093 li ra,0
+ 80000154: 0010011b addiw sp,zero,1
+ 80000158: 02011113 slli sp,sp,0x20
+ 8000015c: fff10113 addi sp,sp,-1
+ 80000160: 0020e663 bltu ra,sp,8000016c <test_4+0x20>
+ 80000164: 32301063 bne zero,gp,80000484 <fail>
+ 80000168: 00301663 bne zero,gp,80000174 <test_5>
+ 8000016c: fe20eee3 bltu ra,sp,80000168 <test_4+0x1c>
+ 80000170: 30301a63 bne zero,gp,80000484 <fail>
+
+0000000080000174 <test_5>:
+ 80000174: 00500193 li gp,5
+ 80000178: 00100093 li ra,1
+ 8000017c: 00000113 li sp,0
+ 80000180: 0020e463 bltu ra,sp,80000188 <test_5+0x14>
+ 80000184: 00301463 bne zero,gp,8000018c <test_5+0x18>
+ 80000188: 2e301e63 bne zero,gp,80000484 <fail>
+ 8000018c: fe20eee3 bltu ra,sp,80000188 <test_5+0x14>
+
+0000000080000190 <test_6>:
+ 80000190: 00600193 li gp,6
+ 80000194: 0010009b addiw ra,zero,1
+ 80000198: 02009093 slli ra,ra,0x20
+ 8000019c: fff08093 addi ra,ra,-1
+ 800001a0: 0010011b addiw sp,zero,1
+ 800001a4: 02011113 slli sp,sp,0x20
+ 800001a8: ffe10113 addi sp,sp,-2
+ 800001ac: 0020e463 bltu ra,sp,800001b4 <test_6+0x24>
+ 800001b0: 00301463 bne zero,gp,800001b8 <test_6+0x28>
+ 800001b4: 2c301863 bne zero,gp,80000484 <fail>
+ 800001b8: fe20eee3 bltu ra,sp,800001b4 <test_6+0x24>
+
+00000000800001bc <test_7>:
+ 800001bc: 00700193 li gp,7
+ 800001c0: 0010009b addiw ra,zero,1
+ 800001c4: 02009093 slli ra,ra,0x20
+ 800001c8: fff08093 addi ra,ra,-1
+ 800001cc: 00000113 li sp,0
+ 800001d0: 0020e463 bltu ra,sp,800001d8 <test_7+0x1c>
+ 800001d4: 00301463 bne zero,gp,800001dc <test_7+0x20>
+ 800001d8: 2a301663 bne zero,gp,80000484 <fail>
+ 800001dc: fe20eee3 bltu ra,sp,800001d8 <test_7+0x1c>
+
+00000000800001e0 <test_8>:
+ 800001e0: 00800193 li gp,8
+ 800001e4: 0010009b addiw ra,zero,1
+ 800001e8: 01f09093 slli ra,ra,0x1f
+ 800001ec: 80000137 lui sp,0x80000
+ 800001f0: fff1011b addiw sp,sp,-1
+ 800001f4: 0020e463 bltu ra,sp,800001fc <test_8+0x1c>
+ 800001f8: 00301463 bne zero,gp,80000200 <test_8+0x20>
+ 800001fc: 28301463 bne zero,gp,80000484 <fail>
+ 80000200: fe20eee3 bltu ra,sp,800001fc <test_8+0x1c>
+
+0000000080000204 <test_9>:
+ 80000204: 00900193 li gp,9
+ 80000208: 00000213 li tp,0
+ 8000020c: 00f0009b addiw ra,zero,15
+ 80000210: 01c09093 slli ra,ra,0x1c
+ 80000214: 00f0011b addiw sp,zero,15
+ 80000218: 01c11113 slli sp,sp,0x1c
+ 8000021c: fff10113 addi sp,sp,-1 # ffffffff7fffffff <_end+0xfffffffeffffdfff>
+ 80000220: 2620e263 bltu ra,sp,80000484 <fail>
+ 80000224: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000228: 00200293 li t0,2
+ 8000022c: fe5210e3 bne tp,t0,8000020c <test_9+0x8>
+
+0000000080000230 <test_10>:
+ 80000230: 00a00193 li gp,10
+ 80000234: 00000213 li tp,0
+ 80000238: 00f0009b addiw ra,zero,15
+ 8000023c: 01c09093 slli ra,ra,0x1c
+ 80000240: 00f0011b addiw sp,zero,15
+ 80000244: 01c11113 slli sp,sp,0x1c
+ 80000248: fff10113 addi sp,sp,-1
+ 8000024c: 00000013 nop
+ 80000250: 2220ea63 bltu ra,sp,80000484 <fail>
+ 80000254: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000258: 00200293 li t0,2
+ 8000025c: fc521ee3 bne tp,t0,80000238 <test_10+0x8>
+
+0000000080000260 <test_11>:
+ 80000260: 00b00193 li gp,11
+ 80000264: 00000213 li tp,0
+ 80000268: 00f0009b addiw ra,zero,15
+ 8000026c: 01c09093 slli ra,ra,0x1c
+ 80000270: 00f0011b addiw sp,zero,15
+ 80000274: 01c11113 slli sp,sp,0x1c
+ 80000278: fff10113 addi sp,sp,-1
+ 8000027c: 00000013 nop
+ 80000280: 00000013 nop
+ 80000284: 2020e063 bltu ra,sp,80000484 <fail>
+ 80000288: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 8000028c: 00200293 li t0,2
+ 80000290: fc521ce3 bne tp,t0,80000268 <test_11+0x8>
+
+0000000080000294 <test_12>:
+ 80000294: 00c00193 li gp,12
+ 80000298: 00000213 li tp,0
+ 8000029c: 00f0009b addiw ra,zero,15
+ 800002a0: 01c09093 slli ra,ra,0x1c
+ 800002a4: 00000013 nop
+ 800002a8: 00f0011b addiw sp,zero,15
+ 800002ac: 01c11113 slli sp,sp,0x1c
+ 800002b0: fff10113 addi sp,sp,-1
+ 800002b4: 1c20e863 bltu ra,sp,80000484 <fail>
+ 800002b8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800002bc: 00200293 li t0,2
+ 800002c0: fc521ee3 bne tp,t0,8000029c <test_12+0x8>
+
+00000000800002c4 <test_13>:
+ 800002c4: 00d00193 li gp,13
+ 800002c8: 00000213 li tp,0
+ 800002cc: 00f0009b addiw ra,zero,15
+ 800002d0: 01c09093 slli ra,ra,0x1c
+ 800002d4: 00000013 nop
+ 800002d8: 00f0011b addiw sp,zero,15
+ 800002dc: 01c11113 slli sp,sp,0x1c
+ 800002e0: fff10113 addi sp,sp,-1
+ 800002e4: 00000013 nop
+ 800002e8: 1820ee63 bltu ra,sp,80000484 <fail>
+ 800002ec: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800002f0: 00200293 li t0,2
+ 800002f4: fc521ce3 bne tp,t0,800002cc <test_13+0x8>
+
+00000000800002f8 <test_14>:
+ 800002f8: 00e00193 li gp,14
+ 800002fc: 00000213 li tp,0
+ 80000300: 00f0009b addiw ra,zero,15
+ 80000304: 01c09093 slli ra,ra,0x1c
+ 80000308: 00000013 nop
+ 8000030c: 00000013 nop
+ 80000310: 00f0011b addiw sp,zero,15
+ 80000314: 01c11113 slli sp,sp,0x1c
+ 80000318: fff10113 addi sp,sp,-1
+ 8000031c: 1620e463 bltu ra,sp,80000484 <fail>
+ 80000320: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000324: 00200293 li t0,2
+ 80000328: fc521ce3 bne tp,t0,80000300 <test_14+0x8>
+
+000000008000032c <test_15>:
+ 8000032c: 00f00193 li gp,15
+ 80000330: 00000213 li tp,0
+ 80000334: 00f0009b addiw ra,zero,15
+ 80000338: 01c09093 slli ra,ra,0x1c
+ 8000033c: 00f0011b addiw sp,zero,15
+ 80000340: 01c11113 slli sp,sp,0x1c
+ 80000344: fff10113 addi sp,sp,-1
+ 80000348: 1220ee63 bltu ra,sp,80000484 <fail>
+ 8000034c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000350: 00200293 li t0,2
+ 80000354: fe5210e3 bne tp,t0,80000334 <test_15+0x8>
+
+0000000080000358 <test_16>:
+ 80000358: 01000193 li gp,16
+ 8000035c: 00000213 li tp,0
+ 80000360: 00f0009b addiw ra,zero,15
+ 80000364: 01c09093 slli ra,ra,0x1c
+ 80000368: 00f0011b addiw sp,zero,15
+ 8000036c: 01c11113 slli sp,sp,0x1c
+ 80000370: fff10113 addi sp,sp,-1
+ 80000374: 00000013 nop
+ 80000378: 1020e663 bltu ra,sp,80000484 <fail>
+ 8000037c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000380: 00200293 li t0,2
+ 80000384: fc521ee3 bne tp,t0,80000360 <test_16+0x8>
+
+0000000080000388 <test_17>:
+ 80000388: 01100193 li gp,17
+ 8000038c: 00000213 li tp,0
+ 80000390: 00f0009b addiw ra,zero,15
+ 80000394: 01c09093 slli ra,ra,0x1c
+ 80000398: 00f0011b addiw sp,zero,15
+ 8000039c: 01c11113 slli sp,sp,0x1c
+ 800003a0: fff10113 addi sp,sp,-1
+ 800003a4: 00000013 nop
+ 800003a8: 00000013 nop
+ 800003ac: 0c20ec63 bltu ra,sp,80000484 <fail>
+ 800003b0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800003b4: 00200293 li t0,2
+ 800003b8: fc521ce3 bne tp,t0,80000390 <test_17+0x8>
+
+00000000800003bc <test_18>:
+ 800003bc: 01200193 li gp,18
+ 800003c0: 00000213 li tp,0
+ 800003c4: 00f0009b addiw ra,zero,15
+ 800003c8: 01c09093 slli ra,ra,0x1c
+ 800003cc: 00000013 nop
+ 800003d0: 00f0011b addiw sp,zero,15
+ 800003d4: 01c11113 slli sp,sp,0x1c
+ 800003d8: fff10113 addi sp,sp,-1
+ 800003dc: 0a20e463 bltu ra,sp,80000484 <fail>
+ 800003e0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800003e4: 00200293 li t0,2
+ 800003e8: fc521ee3 bne tp,t0,800003c4 <test_18+0x8>
+
+00000000800003ec <test_19>:
+ 800003ec: 01300193 li gp,19
+ 800003f0: 00000213 li tp,0
+ 800003f4: 00f0009b addiw ra,zero,15
+ 800003f8: 01c09093 slli ra,ra,0x1c
+ 800003fc: 00000013 nop
+ 80000400: 00f0011b addiw sp,zero,15
+ 80000404: 01c11113 slli sp,sp,0x1c
+ 80000408: fff10113 addi sp,sp,-1
+ 8000040c: 00000013 nop
+ 80000410: 0620ea63 bltu ra,sp,80000484 <fail>
+ 80000414: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000418: 00200293 li t0,2
+ 8000041c: fc521ce3 bne tp,t0,800003f4 <test_19+0x8>
+
+0000000080000420 <test_20>:
+ 80000420: 01400193 li gp,20
+ 80000424: 00000213 li tp,0
+ 80000428: 00f0009b addiw ra,zero,15
+ 8000042c: 01c09093 slli ra,ra,0x1c
+ 80000430: 00000013 nop
+ 80000434: 00000013 nop
+ 80000438: 00f0011b addiw sp,zero,15
+ 8000043c: 01c11113 slli sp,sp,0x1c
+ 80000440: fff10113 addi sp,sp,-1
+ 80000444: 0420e063 bltu ra,sp,80000484 <fail>
+ 80000448: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 8000044c: 00200293 li t0,2
+ 80000450: fc521ce3 bne tp,t0,80000428 <test_20+0x8>
+
+0000000080000454 <test_21>:
+ 80000454: 00100093 li ra,1
+ 80000458: 00106a63 bltu zero,ra,8000046c <test_21+0x18>
+ 8000045c: 00108093 addi ra,ra,1
+ 80000460: 00108093 addi ra,ra,1
+ 80000464: 00108093 addi ra,ra,1
+ 80000468: 00108093 addi ra,ra,1
+ 8000046c: 00108093 addi ra,ra,1
+ 80000470: 00108093 addi ra,ra,1
+ 80000474: 00300e93 li t4,3
+ 80000478: 01500193 li gp,21
+ 8000047c: 01d09463 bne ra,t4,80000484 <fail>
+ 80000480: 00301c63 bne zero,gp,80000498 <pass>
+
+0000000080000484 <fail>:
+ 80000484: 0ff0000f fence
+ 80000488: 00018063 beqz gp,80000488 <fail+0x4>
+ 8000048c: 00119193 slli gp,gp,0x1
+ 80000490: 0011e193 ori gp,gp,1
+ 80000494: 00000073 ecall
+
+0000000080000498 <pass>:
+ 80000498: 0ff0000f fence
+ 8000049c: 00100193 li gp,1
+ 800004a0: 00000073 ecall
+ 800004a4: c0001073 unimp
+ 800004a8: 0000 unimp
+ 800004aa: 0000 unimp
+ 800004ac: 0000 unimp
+ 800004ae: 0000 unimp
+ 800004b0: 0000 unimp
+ 800004b2: 0000 unimp
+ 800004b4: 0000 unimp
+ 800004b6: 0000 unimp
+ 800004b8: 0000 unimp
+ 800004ba: 0000 unimp
+ 800004bc: 0000 unimp
+ 800004be: 0000 unimp
+ 800004c0: 0000 unimp
+ 800004c2: 0000 unimp
diff --git a/test/tests/rv64ui-p-bltu.elf b/test/tests/rv64ui-p-bltu.elf
new file mode 100644
index 0000000..a5d0639
--- /dev/null
+++ b/test/tests/rv64ui-p-bltu.elf
Binary files differ
diff --git a/test/tests/rv64ui-p-bne.dump b/test/tests/rv64ui-p-bne.dump
new file mode 100644
index 0000000..42f4613
--- /dev/null
+++ b/test/tests/rv64ui-p-bne.dump
@@ -0,0 +1,324 @@
+
+rv64ui-p-bne: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <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>
+
+000000008000011c <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>
+
+000000008000013c <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>
+
+000000008000015c <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>
+
+000000008000017c <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>
+
+0000000080000198 <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>
+
+00000000800001b4 <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>
+
+00000000800001d0 <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>
+
+00000000800001f0 <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>
+
+0000000080000214 <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>
+
+000000008000023c <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>
+
+0000000080000260 <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>
+
+0000000080000288 <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>
+
+00000000800002b0 <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>
+
+00000000800002d0 <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>
+
+00000000800002f4 <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>
+
+000000008000031c <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>
+
+0000000080000340 <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>
+
+0000000080000368 <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>
+
+0000000080000390 <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>
+
+00000000800003c0 <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
+
+00000000800003d4 <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/tests/rv64ui-p-bne.elf b/test/tests/rv64ui-p-bne.elf
new file mode 100644
index 0000000..9a83bec
--- /dev/null
+++ b/test/tests/rv64ui-p-bne.elf
Binary files differ
diff --git a/test/tests/rv64ui-p-fence_i.dump b/test/tests/rv64ui-p-fence_i.dump
new file mode 100644
index 0000000..8bbfcfd
--- /dev/null
+++ b/test/tests/rv64ui-p-fence_i.dump
@@ -0,0 +1,189 @@
+
+rv64ui-p-fence_i: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+0000000080000158 <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
+
+00000000800001c4 <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>
+
+00000000800001d8 <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
+
+00000000800001ec <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:
+
+0000000080002000 <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/tests/rv64ui-p-fence_i.elf b/test/tests/rv64ui-p-fence_i.elf
new file mode 100644
index 0000000..9f8d772
--- /dev/null
+++ b/test/tests/rv64ui-p-fence_i.elf
Binary files differ
diff --git a/test/tests/rv64ui-p-jal.dump b/test/tests/rv64ui-p-jal.dump
new file mode 100644
index 0000000..2a86bb8
--- /dev/null
+++ b/test/tests/rv64ui-p-jal.dump
@@ -0,0 +1,128 @@
+
+rv64ui-p-jal: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <test_2>:
+ 800000fc: 00200193 li gp,2
+ 80000100: 00000093 li ra,0
+ 80000104: 0100026f jal tp,80000114 <target_2>
+
+0000000080000108 <linkaddr_2>:
+ 80000108: 00000013 nop
+ 8000010c: 00000013 nop
+ 80000110: 0400006f j 80000150 <fail>
+
+0000000080000114 <target_2>:
+ 80000114: 00000117 auipc sp,0x0
+ 80000118: ff410113 addi sp,sp,-12 # 80000108 <linkaddr_2>
+ 8000011c: 02411a63 bne sp,tp,80000150 <fail>
+
+0000000080000120 <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>
+
+0000000080000150 <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
+
+0000000080000164 <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/tests/rv64ui-p-jal.elf b/test/tests/rv64ui-p-jal.elf
new file mode 100644
index 0000000..3741bbb
--- /dev/null
+++ b/test/tests/rv64ui-p-jal.elf
Binary files differ
diff --git a/test/tests/rv64ui-p-jalr.dump b/test/tests/rv64ui-p-jalr.dump
new file mode 100644
index 0000000..029a692
--- /dev/null
+++ b/test/tests/rv64ui-p-jalr.dump
@@ -0,0 +1,166 @@
+
+rv64ui-p-jalr: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <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
+
+0000000080000110 <linkaddr_2>:
+ 80000110: 0c00006f j 800001d0 <fail>
+
+0000000080000114 <target_2>:
+ 80000114: 00000317 auipc t1,0x0
+ 80000118: ffc30313 addi t1,t1,-4 # 80000110 <linkaddr_2>
+ 8000011c: 0a629a63 bne t0,t1,800001d0 <fail>
+
+0000000080000120 <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>
+
+0000000080000144 <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>
+
+000000008000016c <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>
+
+0000000080000198 <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>
+
+00000000800001d0 <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
+
+00000000800001e4 <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/tests/rv64ui-p-jalr.elf b/test/tests/rv64ui-p-jalr.elf
new file mode 100644
index 0000000..9682d86
--- /dev/null
+++ b/test/tests/rv64ui-p-jalr.elf
Binary files differ
diff --git a/test/tests/rv64ui-p-lb.dump b/test/tests/rv64ui-p-lb.dump
new file mode 100644
index 0000000..dbf78e7
--- /dev/null
+++ b/test/tests/rv64ui-p-lb.dump
@@ -0,0 +1,306 @@
+
+rv64ui-p-lb: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <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>
+
+0000000080000114 <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>
+
+000000008000012c <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>
+
+0000000080000144 <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>
+
+000000008000015c <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>
+
+0000000080000174 <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>
+
+000000008000018c <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>
+
+00000000800001a4 <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>
+
+00000000800001bc <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>
+
+00000000800001d8 <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>
+
+00000000800001f4 <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>
+
+0000000080000220 <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>
+
+0000000080000250 <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>
+
+0000000080000284 <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>
+
+00000000800002ac <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>
+
+00000000800002d8 <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>
+
+0000000080000308 <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>
+
+0000000080000324 <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>
+
+0000000080000348 <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
+
+000000008000035c <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:
+
+0000000080002000 <begin_signature>:
+ 80002000: 0xff
+
+0000000080002001 <tdat2>:
+ 80002001: sd s0,32(s0)
+
+0000000080002002 <tdat3>:
+ 80002002: addi a2,sp,988
+
+0000000080002003 <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/tests/rv64ui-p-lb.elf b/test/tests/rv64ui-p-lb.elf
new file mode 100644
index 0000000..7e0a8a4
--- /dev/null
+++ b/test/tests/rv64ui-p-lb.elf
Binary files differ
diff --git a/test/tests/rv64ui-p-lbu.dump b/test/tests/rv64ui-p-lbu.dump
new file mode 100644
index 0000000..4365b07
--- /dev/null
+++ b/test/tests/rv64ui-p-lbu.dump
@@ -0,0 +1,306 @@
+
+rv64ui-p-lbu: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <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>
+
+0000000080000114 <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>
+
+000000008000012c <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>
+
+0000000080000144 <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>
+
+000000008000015c <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>
+
+0000000080000174 <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>
+
+000000008000018c <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>
+
+00000000800001a4 <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>
+
+00000000800001bc <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>
+
+00000000800001d8 <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>
+
+00000000800001f4 <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>
+
+0000000080000220 <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>
+
+0000000080000250 <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>
+
+0000000080000284 <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>
+
+00000000800002ac <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>
+
+00000000800002d8 <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>
+
+0000000080000308 <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>
+
+0000000080000324 <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>
+
+0000000080000348 <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
+
+000000008000035c <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:
+
+0000000080002000 <begin_signature>:
+ 80002000: 0xff
+
+0000000080002001 <tdat2>:
+ 80002001: sd s0,32(s0)
+
+0000000080002002 <tdat3>:
+ 80002002: addi a2,sp,988
+
+0000000080002003 <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/tests/rv64ui-p-lbu.elf b/test/tests/rv64ui-p-lbu.elf
new file mode 100644
index 0000000..14f1586
--- /dev/null
+++ b/test/tests/rv64ui-p-lbu.elf
Binary files differ
diff --git a/test/tests/rv64ui-p-ld.dump b/test/tests/rv64ui-p-ld.dump
new file mode 100644
index 0000000..dcebe2d
--- /dev/null
+++ b/test/tests/rv64ui-p-ld.dump
@@ -0,0 +1,406 @@
+
+rv64ui-p-ld: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <test_2>:
+ 800000fc: 00002097 auipc ra,0x2
+ 80000100: f0408093 addi ra,ra,-252 # 80002000 <begin_signature>
+ 80000104: 0000bf03 ld t5,0(ra)
+ 80000108: 00ff0eb7 lui t4,0xff0
+ 8000010c: 0ffe8e9b addiw t4,t4,255
+ 80000110: 010e9e93 slli t4,t4,0x10
+ 80000114: 0ffe8e93 addi t4,t4,255 # ff00ff <_start-0x7f00ff01>
+ 80000118: 010e9e93 slli t4,t4,0x10
+ 8000011c: 0ffe8e93 addi t4,t4,255
+ 80000120: 00200193 li gp,2
+ 80000124: 3bdf1263 bne t5,t4,800004c8 <fail>
+
+0000000080000128 <test_3>:
+ 80000128: 00002097 auipc ra,0x2
+ 8000012c: ed808093 addi ra,ra,-296 # 80002000 <begin_signature>
+ 80000130: 0080bf03 ld t5,8(ra)
+ 80000134: ff010eb7 lui t4,0xff010
+ 80000138: f01e8e9b addiw t4,t4,-255
+ 8000013c: 010e9e93 slli t4,t4,0x10
+ 80000140: f01e8e93 addi t4,t4,-255 # ffffffffff00ff01 <_end+0xffffffff7f00dee1>
+ 80000144: 010e9e93 slli t4,t4,0x10
+ 80000148: f00e8e93 addi t4,t4,-256
+ 8000014c: 00300193 li gp,3
+ 80000150: 37df1c63 bne t5,t4,800004c8 <fail>
+
+0000000080000154 <test_4>:
+ 80000154: 00002097 auipc ra,0x2
+ 80000158: eac08093 addi ra,ra,-340 # 80002000 <begin_signature>
+ 8000015c: 0100bf03 ld t5,16(ra)
+ 80000160: 00010eb7 lui t4,0x10
+ 80000164: f01e8e9b addiw t4,t4,-255
+ 80000168: 010e9e93 slli t4,t4,0x10
+ 8000016c: f01e8e93 addi t4,t4,-255 # ff01 <_start-0x7fff00ff>
+ 80000170: 010e9e93 slli t4,t4,0x10
+ 80000174: f01e8e93 addi t4,t4,-255
+ 80000178: 00ce9e93 slli t4,t4,0xc
+ 8000017c: ff0e8e93 addi t4,t4,-16
+ 80000180: 00400193 li gp,4
+ 80000184: 35df1263 bne t5,t4,800004c8 <fail>
+
+0000000080000188 <test_5>:
+ 80000188: 00002097 auipc ra,0x2
+ 8000018c: e7808093 addi ra,ra,-392 # 80002000 <begin_signature>
+ 80000190: 0180bf03 ld t5,24(ra)
+ 80000194: ffff0eb7 lui t4,0xffff0
+ 80000198: 0ffe8e9b addiw t4,t4,255
+ 8000019c: 010e9e93 slli t4,t4,0x10
+ 800001a0: 0ffe8e93 addi t4,t4,255 # ffffffffffff00ff <_end+0xffffffff7ffee0df>
+ 800001a4: 010e9e93 slli t4,t4,0x10
+ 800001a8: 0ffe8e93 addi t4,t4,255
+ 800001ac: 00ce9e93 slli t4,t4,0xc
+ 800001b0: 00fe8e93 addi t4,t4,15
+ 800001b4: 00500193 li gp,5
+ 800001b8: 31df1863 bne t5,t4,800004c8 <fail>
+
+00000000800001bc <test_6>:
+ 800001bc: 00002097 auipc ra,0x2
+ 800001c0: e5c08093 addi ra,ra,-420 # 80002018 <tdat4>
+ 800001c4: fe80bf03 ld t5,-24(ra)
+ 800001c8: 00ff0eb7 lui t4,0xff0
+ 800001cc: 0ffe8e9b addiw t4,t4,255
+ 800001d0: 010e9e93 slli t4,t4,0x10
+ 800001d4: 0ffe8e93 addi t4,t4,255 # ff00ff <_start-0x7f00ff01>
+ 800001d8: 010e9e93 slli t4,t4,0x10
+ 800001dc: 0ffe8e93 addi t4,t4,255
+ 800001e0: 00600193 li gp,6
+ 800001e4: 2fdf1263 bne t5,t4,800004c8 <fail>
+
+00000000800001e8 <test_7>:
+ 800001e8: 00002097 auipc ra,0x2
+ 800001ec: e3008093 addi ra,ra,-464 # 80002018 <tdat4>
+ 800001f0: ff00bf03 ld t5,-16(ra)
+ 800001f4: ff010eb7 lui t4,0xff010
+ 800001f8: f01e8e9b addiw t4,t4,-255
+ 800001fc: 010e9e93 slli t4,t4,0x10
+ 80000200: f01e8e93 addi t4,t4,-255 # ffffffffff00ff01 <_end+0xffffffff7f00dee1>
+ 80000204: 010e9e93 slli t4,t4,0x10
+ 80000208: f00e8e93 addi t4,t4,-256
+ 8000020c: 00700193 li gp,7
+ 80000210: 2bdf1c63 bne t5,t4,800004c8 <fail>
+
+0000000080000214 <test_8>:
+ 80000214: 00002097 auipc ra,0x2
+ 80000218: e0408093 addi ra,ra,-508 # 80002018 <tdat4>
+ 8000021c: ff80bf03 ld t5,-8(ra)
+ 80000220: 00010eb7 lui t4,0x10
+ 80000224: f01e8e9b addiw t4,t4,-255
+ 80000228: 010e9e93 slli t4,t4,0x10
+ 8000022c: f01e8e93 addi t4,t4,-255 # ff01 <_start-0x7fff00ff>
+ 80000230: 010e9e93 slli t4,t4,0x10
+ 80000234: f01e8e93 addi t4,t4,-255
+ 80000238: 00ce9e93 slli t4,t4,0xc
+ 8000023c: ff0e8e93 addi t4,t4,-16
+ 80000240: 00800193 li gp,8
+ 80000244: 29df1263 bne t5,t4,800004c8 <fail>
+
+0000000080000248 <test_9>:
+ 80000248: 00002097 auipc ra,0x2
+ 8000024c: dd008093 addi ra,ra,-560 # 80002018 <tdat4>
+ 80000250: 0000bf03 ld t5,0(ra)
+ 80000254: ffff0eb7 lui t4,0xffff0
+ 80000258: 0ffe8e9b addiw t4,t4,255
+ 8000025c: 010e9e93 slli t4,t4,0x10
+ 80000260: 0ffe8e93 addi t4,t4,255 # ffffffffffff00ff <_end+0xffffffff7ffee0df>
+ 80000264: 010e9e93 slli t4,t4,0x10
+ 80000268: 0ffe8e93 addi t4,t4,255
+ 8000026c: 00ce9e93 slli t4,t4,0xc
+ 80000270: 00fe8e93 addi t4,t4,15
+ 80000274: 00900193 li gp,9
+ 80000278: 25df1863 bne t5,t4,800004c8 <fail>
+
+000000008000027c <test_10>:
+ 8000027c: 00002097 auipc ra,0x2
+ 80000280: d8408093 addi ra,ra,-636 # 80002000 <begin_signature>
+ 80000284: fe008093 addi ra,ra,-32
+ 80000288: 0200b283 ld t0,32(ra)
+ 8000028c: 00ff0eb7 lui t4,0xff0
+ 80000290: 0ffe8e9b addiw t4,t4,255
+ 80000294: 010e9e93 slli t4,t4,0x10
+ 80000298: 0ffe8e93 addi t4,t4,255 # ff00ff <_start-0x7f00ff01>
+ 8000029c: 010e9e93 slli t4,t4,0x10
+ 800002a0: 0ffe8e93 addi t4,t4,255
+ 800002a4: 00a00193 li gp,10
+ 800002a8: 23d29063 bne t0,t4,800004c8 <fail>
+
+00000000800002ac <test_11>:
+ 800002ac: 00002097 auipc ra,0x2
+ 800002b0: d5408093 addi ra,ra,-684 # 80002000 <begin_signature>
+ 800002b4: ffd08093 addi ra,ra,-3
+ 800002b8: 00b0b283 ld t0,11(ra)
+ 800002bc: ff010eb7 lui t4,0xff010
+ 800002c0: f01e8e9b addiw t4,t4,-255
+ 800002c4: 010e9e93 slli t4,t4,0x10
+ 800002c8: f01e8e93 addi t4,t4,-255 # ffffffffff00ff01 <_end+0xffffffff7f00dee1>
+ 800002cc: 010e9e93 slli t4,t4,0x10
+ 800002d0: f00e8e93 addi t4,t4,-256
+ 800002d4: 00b00193 li gp,11
+ 800002d8: 1fd29863 bne t0,t4,800004c8 <fail>
+
+00000000800002dc <test_12>:
+ 800002dc: 00c00193 li gp,12
+ 800002e0: 00000213 li tp,0
+ 800002e4: 00002097 auipc ra,0x2
+ 800002e8: d2408093 addi ra,ra,-732 # 80002008 <tdat2>
+ 800002ec: 0080bf03 ld t5,8(ra)
+ 800002f0: 000f0313 mv t1,t5
+ 800002f4: 00010eb7 lui t4,0x10
+ 800002f8: f01e8e9b addiw t4,t4,-255
+ 800002fc: 010e9e93 slli t4,t4,0x10
+ 80000300: f01e8e93 addi t4,t4,-255 # ff01 <_start-0x7fff00ff>
+ 80000304: 010e9e93 slli t4,t4,0x10
+ 80000308: f01e8e93 addi t4,t4,-255
+ 8000030c: 00ce9e93 slli t4,t4,0xc
+ 80000310: ff0e8e93 addi t4,t4,-16
+ 80000314: 1bd31a63 bne t1,t4,800004c8 <fail>
+ 80000318: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 8000031c: 00200293 li t0,2
+ 80000320: fc5212e3 bne tp,t0,800002e4 <test_12+0x8>
+
+0000000080000324 <test_13>:
+ 80000324: 00d00193 li gp,13
+ 80000328: 00000213 li tp,0
+ 8000032c: 00002097 auipc ra,0x2
+ 80000330: ce408093 addi ra,ra,-796 # 80002010 <tdat3>
+ 80000334: 0080bf03 ld t5,8(ra)
+ 80000338: 00000013 nop
+ 8000033c: 000f0313 mv t1,t5
+ 80000340: ffff0eb7 lui t4,0xffff0
+ 80000344: 0ffe8e9b addiw t4,t4,255
+ 80000348: 010e9e93 slli t4,t4,0x10
+ 8000034c: 0ffe8e93 addi t4,t4,255 # ffffffffffff00ff <_end+0xffffffff7ffee0df>
+ 80000350: 010e9e93 slli t4,t4,0x10
+ 80000354: 0ffe8e93 addi t4,t4,255
+ 80000358: 00ce9e93 slli t4,t4,0xc
+ 8000035c: 00fe8e93 addi t4,t4,15
+ 80000360: 17d31463 bne t1,t4,800004c8 <fail>
+ 80000364: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000368: 00200293 li t0,2
+ 8000036c: fc5210e3 bne tp,t0,8000032c <test_13+0x8>
+
+0000000080000370 <test_14>:
+ 80000370: 00e00193 li gp,14
+ 80000374: 00000213 li tp,0
+ 80000378: 00002097 auipc ra,0x2
+ 8000037c: c8808093 addi ra,ra,-888 # 80002000 <begin_signature>
+ 80000380: 0080bf03 ld t5,8(ra)
+ 80000384: 00000013 nop
+ 80000388: 00000013 nop
+ 8000038c: 000f0313 mv t1,t5
+ 80000390: ff010eb7 lui t4,0xff010
+ 80000394: f01e8e9b addiw t4,t4,-255
+ 80000398: 010e9e93 slli t4,t4,0x10
+ 8000039c: f01e8e93 addi t4,t4,-255 # ffffffffff00ff01 <_end+0xffffffff7f00dee1>
+ 800003a0: 010e9e93 slli t4,t4,0x10
+ 800003a4: f00e8e93 addi t4,t4,-256
+ 800003a8: 13d31063 bne t1,t4,800004c8 <fail>
+ 800003ac: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800003b0: 00200293 li t0,2
+ 800003b4: fc5212e3 bne tp,t0,80000378 <test_14+0x8>
+
+00000000800003b8 <test_15>:
+ 800003b8: 00f00193 li gp,15
+ 800003bc: 00000213 li tp,0
+ 800003c0: 00002097 auipc ra,0x2
+ 800003c4: c4808093 addi ra,ra,-952 # 80002008 <tdat2>
+ 800003c8: 0080bf03 ld t5,8(ra)
+ 800003cc: 00010eb7 lui t4,0x10
+ 800003d0: f01e8e9b addiw t4,t4,-255
+ 800003d4: 010e9e93 slli t4,t4,0x10
+ 800003d8: f01e8e93 addi t4,t4,-255 # ff01 <_start-0x7fff00ff>
+ 800003dc: 010e9e93 slli t4,t4,0x10
+ 800003e0: f01e8e93 addi t4,t4,-255
+ 800003e4: 00ce9e93 slli t4,t4,0xc
+ 800003e8: ff0e8e93 addi t4,t4,-16
+ 800003ec: 0ddf1e63 bne t5,t4,800004c8 <fail>
+ 800003f0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800003f4: 00200293 li t0,2
+ 800003f8: fc5214e3 bne tp,t0,800003c0 <test_15+0x8>
+
+00000000800003fc <test_16>:
+ 800003fc: 01000193 li gp,16
+ 80000400: 00000213 li tp,0
+ 80000404: 00002097 auipc ra,0x2
+ 80000408: c0c08093 addi ra,ra,-1012 # 80002010 <tdat3>
+ 8000040c: 00000013 nop
+ 80000410: 0080bf03 ld t5,8(ra)
+ 80000414: ffff0eb7 lui t4,0xffff0
+ 80000418: 0ffe8e9b addiw t4,t4,255
+ 8000041c: 010e9e93 slli t4,t4,0x10
+ 80000420: 0ffe8e93 addi t4,t4,255 # ffffffffffff00ff <_end+0xffffffff7ffee0df>
+ 80000424: 010e9e93 slli t4,t4,0x10
+ 80000428: 0ffe8e93 addi t4,t4,255
+ 8000042c: 00ce9e93 slli t4,t4,0xc
+ 80000430: 00fe8e93 addi t4,t4,15
+ 80000434: 09df1a63 bne t5,t4,800004c8 <fail>
+ 80000438: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 8000043c: 00200293 li t0,2
+ 80000440: fc5212e3 bne tp,t0,80000404 <test_16+0x8>
+
+0000000080000444 <test_17>:
+ 80000444: 01100193 li gp,17
+ 80000448: 00000213 li tp,0
+ 8000044c: 00002097 auipc ra,0x2
+ 80000450: bb408093 addi ra,ra,-1100 # 80002000 <begin_signature>
+ 80000454: 00000013 nop
+ 80000458: 00000013 nop
+ 8000045c: 0080bf03 ld t5,8(ra)
+ 80000460: ff010eb7 lui t4,0xff010
+ 80000464: f01e8e9b addiw t4,t4,-255
+ 80000468: 010e9e93 slli t4,t4,0x10
+ 8000046c: f01e8e93 addi t4,t4,-255 # ffffffffff00ff01 <_end+0xffffffff7f00dee1>
+ 80000470: 010e9e93 slli t4,t4,0x10
+ 80000474: f00e8e93 addi t4,t4,-256
+ 80000478: 05df1863 bne t5,t4,800004c8 <fail>
+ 8000047c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000480: 00200293 li t0,2
+ 80000484: fc5214e3 bne tp,t0,8000044c <test_17+0x8>
+
+0000000080000488 <test_18>:
+ 80000488: 00002297 auipc t0,0x2
+ 8000048c: b7828293 addi t0,t0,-1160 # 80002000 <begin_signature>
+ 80000490: 0002b103 ld sp,0(t0)
+ 80000494: 00200113 li sp,2
+ 80000498: 00200e93 li t4,2
+ 8000049c: 01200193 li gp,18
+ 800004a0: 03d11463 bne sp,t4,800004c8 <fail>
+
+00000000800004a4 <test_19>:
+ 800004a4: 00002297 auipc t0,0x2
+ 800004a8: b5c28293 addi t0,t0,-1188 # 80002000 <begin_signature>
+ 800004ac: 0002b103 ld sp,0(t0)
+ 800004b0: 00000013 nop
+ 800004b4: 00200113 li sp,2
+ 800004b8: 00200e93 li t4,2
+ 800004bc: 01300193 li gp,19
+ 800004c0: 01d11463 bne sp,t4,800004c8 <fail>
+ 800004c4: 00301c63 bne zero,gp,800004dc <pass>
+
+00000000800004c8 <fail>:
+ 800004c8: 0ff0000f fence
+ 800004cc: 00018063 beqz gp,800004cc <fail+0x4>
+ 800004d0: 00119193 slli gp,gp,0x1
+ 800004d4: 0011e193 ori gp,gp,1
+ 800004d8: 00000073 ecall
+
+00000000800004dc <pass>:
+ 800004dc: 0ff0000f fence
+ 800004e0: 00100193 li gp,1
+ 800004e4: 00000073 ecall
+ 800004e8: c0001073 unimp
+ 800004ec: 0000 unimp
+ 800004ee: 0000 unimp
+ 800004f0: 0000 unimp
+ 800004f2: 0000 unimp
+ 800004f4: 0000 unimp
+ 800004f6: 0000 unimp
+ 800004f8: 0000 unimp
+ 800004fa: 0000 unimp
+ 800004fc: 0000 unimp
+ 800004fe: 0000 unimp
+ 80000500: 0000 unimp
+ 80000502: 0000 unimp
+
+Disassembly of section .data:
+
+0000000080002000 <begin_signature>:
+ 80002000: 00ff 0xff
+ 80002002: 00ff 0xff
+ 80002004: 00ff 0xff
+ 80002006: 00ff 0xff
+
+0000000080002008 <tdat2>:
+ 80002008: ff00 sd s0,56(a4)
+ 8000200a: ff00 sd s0,56(a4)
+ 8000200c: ff00 sd s0,56(a4)
+ 8000200e: ff00 sd s0,56(a4)
+
+0000000080002010 <tdat3>:
+ 80002010: 0ff0 addi a2,sp,988
+ 80002012: 0ff0 addi a2,sp,988
+ 80002014: 0ff0 addi a2,sp,988
+ 80002016: 0ff0 addi a2,sp,988
+
+0000000080002018 <tdat4>:
+ 80002018: f00ff00f 0xf00ff00f
+ 8000201c: f00ff00f 0xf00ff00f
diff --git a/test/tests/rv64ui-p-ld.elf b/test/tests/rv64ui-p-ld.elf
new file mode 100644
index 0000000..df2a734
--- /dev/null
+++ b/test/tests/rv64ui-p-ld.elf
Binary files differ
diff --git a/test/tests/rv64ui-p-lh.dump b/test/tests/rv64ui-p-lh.dump
new file mode 100644
index 0000000..214e5b0
--- /dev/null
+++ b/test/tests/rv64ui-p-lh.dump
@@ -0,0 +1,327 @@
+
+rv64ui-p-lh: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <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>
+
+0000000080000114 <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>
+
+000000008000012c <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: ff0e8e9b addiw t4,t4,-16
+ 80000140: 00400193 li gp,4
+ 80000144: 23df1263 bne t5,t4,80000368 <fail>
+
+0000000080000148 <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: 00fe8e9b addiw t4,t4,15
+ 8000015c: 00500193 li gp,5
+ 80000160: 21df1463 bne t5,t4,80000368 <fail>
+
+0000000080000164 <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>
+
+000000008000017c <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>
+
+0000000080000194 <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: ff0e8e9b addiw t4,t4,-16
+ 800001a8: 00800193 li gp,8
+ 800001ac: 1bdf1e63 bne t5,t4,80000368 <fail>
+
+00000000800001b0 <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: 00fe8e9b addiw t4,t4,15
+ 800001c4: 00900193 li gp,9
+ 800001c8: 1bdf1063 bne t5,t4,80000368 <fail>
+
+00000000800001cc <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>
+
+00000000800001e8 <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>
+
+0000000080000204 <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: ff0e8e9b addiw t4,t4,-16
+ 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>
+
+0000000080000234 <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: 00fe8e9b addiw t4,t4,15
+ 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>
+
+0000000080000268 <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>
+
+000000008000029c <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: ff0e8e9b addiw t4,t4,-16
+ 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>
+
+00000000800002c8 <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: 00fe8e9b addiw t4,t4,15
+ 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>
+
+00000000800002f8 <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>
+
+0000000080000328 <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>
+
+0000000080000344 <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>
+
+0000000080000368 <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
+
+000000008000037c <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:
+
+0000000080002000 <begin_signature>:
+ 80002000: 00ff 0xff
+
+0000000080002002 <tdat2>:
+ 80002002: ff00 sd s0,56(a4)
+
+0000000080002004 <tdat3>:
+ 80002004: 0ff0 addi a2,sp,988
+
+0000000080002006 <tdat4>:
+ 80002006: 0000f00f 0xf00f
+ 8000200a: 0000 unimp
+ 8000200c: 0000 unimp
+ 8000200e: 0000 unimp
diff --git a/test/tests/rv64ui-p-lh.elf b/test/tests/rv64ui-p-lh.elf
new file mode 100644
index 0000000..fcff462
--- /dev/null
+++ b/test/tests/rv64ui-p-lh.elf
Binary files differ
diff --git a/test/tests/rv64ui-p-lhu.dump b/test/tests/rv64ui-p-lhu.dump
new file mode 100644
index 0000000..6cc3def
--- /dev/null
+++ b/test/tests/rv64ui-p-lhu.dump
@@ -0,0 +1,322 @@
+
+rv64ui-p-lhu: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <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>
+
+0000000080000114 <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: f00e8e9b addiw t4,t4,-256
+ 80000128: 00300193 li gp,3
+ 8000012c: 25df1863 bne t5,t4,8000037c <fail>
+
+0000000080000130 <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: ff0e8e9b addiw t4,t4,-16
+ 80000144: 00400193 li gp,4
+ 80000148: 23df1a63 bne t5,t4,8000037c <fail>
+
+000000008000014c <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: 00fe8e9b addiw t4,t4,15
+ 80000160: 00500193 li gp,5
+ 80000164: 21df1c63 bne t5,t4,8000037c <fail>
+
+0000000080000168 <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>
+
+0000000080000180 <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: f00e8e9b addiw t4,t4,-256
+ 80000194: 00700193 li gp,7
+ 80000198: 1fdf1263 bne t5,t4,8000037c <fail>
+
+000000008000019c <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: ff0e8e9b addiw t4,t4,-16
+ 800001b0: 00800193 li gp,8
+ 800001b4: 1ddf1463 bne t5,t4,8000037c <fail>
+
+00000000800001b8 <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: 00fe8e9b addiw t4,t4,15
+ 800001cc: 00900193 li gp,9
+ 800001d0: 1bdf1663 bne t5,t4,8000037c <fail>
+
+00000000800001d4 <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>
+
+00000000800001f0 <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: f00e8e9b addiw t4,t4,-256
+ 80000208: 00b00193 li gp,11
+ 8000020c: 17d29863 bne t0,t4,8000037c <fail>
+
+0000000080000210 <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: ff0e8e9b addiw t4,t4,-16
+ 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>
+
+0000000080000240 <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: 00fe8e9b addiw t4,t4,15
+ 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>
+
+0000000080000274 <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: f00e8e9b addiw t4,t4,-256
+ 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>
+
+00000000800002ac <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: ff0e8e9b addiw t4,t4,-16
+ 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>
+
+00000000800002d8 <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: 00fe8e9b addiw t4,t4,15
+ 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>
+
+0000000080000308 <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: f00e8e9b addiw t4,t4,-256
+ 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>
+
+000000008000033c <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>
+
+0000000080000358 <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>
+
+000000008000037c <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
+
+0000000080000390 <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:
+
+0000000080002000 <begin_signature>:
+ 80002000: 00ff 0xff
+
+0000000080002002 <tdat2>:
+ 80002002: ff00 sd s0,56(a4)
+
+0000000080002004 <tdat3>:
+ 80002004: 0ff0 addi a2,sp,988
+
+0000000080002006 <tdat4>:
+ 80002006: 0000f00f 0xf00f
+ 8000200a: 0000 unimp
+ 8000200c: 0000 unimp
+ 8000200e: 0000 unimp
diff --git a/test/tests/rv64ui-p-lhu.elf b/test/tests/rv64ui-p-lhu.elf
new file mode 100644
index 0000000..78bb0e9
--- /dev/null
+++ b/test/tests/rv64ui-p-lhu.elf
Binary files differ
diff --git a/test/tests/rv64ui-p-lui.dump b/test/tests/rv64ui-p-lui.dump
new file mode 100644
index 0000000..329a3c5
--- /dev/null
+++ b/test/tests/rv64ui-p-lui.dump
@@ -0,0 +1,127 @@
+
+rv64ui-p-lui: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <test_2>:
+ 800000fc: 000000b7 lui ra,0x0
+ 80000100: 00000e93 li t4,0
+ 80000104: 00200193 li gp,2
+ 80000108: 05d09a63 bne ra,t4,8000015c <fail>
+
+000000008000010c <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>
+
+0000000080000120 <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>
+
+0000000080000134 <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>
+
+0000000080000148 <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>
+
+000000008000015c <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
+
+0000000080000170 <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/tests/rv64ui-p-lui.elf b/test/tests/rv64ui-p-lui.elf
new file mode 100644
index 0000000..67dfe10
--- /dev/null
+++ b/test/tests/rv64ui-p-lui.elf
Binary files differ
diff --git a/test/tests/rv64ui-p-lw.dump b/test/tests/rv64ui-p-lw.dump
new file mode 100644
index 0000000..889c452
--- /dev/null
+++ b/test/tests/rv64ui-p-lw.dump
@@ -0,0 +1,319 @@
+
+rv64ui-p-lw: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <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: 0ffe8e9b addiw t4,t4,255
+ 80000110: 00200193 li gp,2
+ 80000114: 27df1a63 bne t5,t4,80000388 <fail>
+
+0000000080000118 <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: f00e8e9b addiw t4,t4,-256
+ 8000012c: 00300193 li gp,3
+ 80000130: 25df1c63 bne t5,t4,80000388 <fail>
+
+0000000080000134 <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: ff0e8e9b addiw t4,t4,-16
+ 80000148: 00400193 li gp,4
+ 8000014c: 23df1e63 bne t5,t4,80000388 <fail>
+
+0000000080000150 <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: 00fe8e9b addiw t4,t4,15
+ 80000164: 00500193 li gp,5
+ 80000168: 23df1063 bne t5,t4,80000388 <fail>
+
+000000008000016c <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: 0ffe8e9b addiw t4,t4,255
+ 80000180: 00600193 li gp,6
+ 80000184: 21df1263 bne t5,t4,80000388 <fail>
+
+0000000080000188 <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: f00e8e9b addiw t4,t4,-256
+ 8000019c: 00700193 li gp,7
+ 800001a0: 1fdf1463 bne t5,t4,80000388 <fail>
+
+00000000800001a4 <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: ff0e8e9b addiw t4,t4,-16
+ 800001b8: 00800193 li gp,8
+ 800001bc: 1ddf1663 bne t5,t4,80000388 <fail>
+
+00000000800001c0 <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: 00fe8e9b addiw t4,t4,15
+ 800001d4: 00900193 li gp,9
+ 800001d8: 1bdf1863 bne t5,t4,80000388 <fail>
+
+00000000800001dc <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: 0ffe8e9b addiw t4,t4,255
+ 800001f4: 00a00193 li gp,10
+ 800001f8: 19d29863 bne t0,t4,80000388 <fail>
+
+00000000800001fc <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: f00e8e9b addiw t4,t4,-256
+ 80000214: 00b00193 li gp,11
+ 80000218: 17d29863 bne t0,t4,80000388 <fail>
+
+000000008000021c <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: ff0e8e9b addiw t4,t4,-16
+ 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>
+
+000000008000024c <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: 00fe8e9b addiw t4,t4,15
+ 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>
+
+0000000080000280 <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: f00e8e9b addiw t4,t4,-256
+ 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>
+
+00000000800002b8 <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: ff0e8e9b addiw t4,t4,-16
+ 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>
+
+00000000800002e4 <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: 00fe8e9b addiw t4,t4,15
+ 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>
+
+0000000080000314 <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: f00e8e9b addiw t4,t4,-256
+ 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>
+
+0000000080000348 <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>
+
+0000000080000364 <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>
+
+0000000080000388 <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
+
+000000008000039c <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:
+
+0000000080002000 <begin_signature>:
+ 80002000: 00ff 0xff
+ 80002002: 00ff 0xff
+
+0000000080002004 <tdat2>:
+ 80002004: ff00 sd s0,56(a4)
+ 80002006: ff00 sd s0,56(a4)
+
+0000000080002008 <tdat3>:
+ 80002008: 0ff0 addi a2,sp,988
+ 8000200a: 0ff0 addi a2,sp,988
+
+000000008000200c <tdat4>:
+ 8000200c: f00ff00f 0xf00ff00f
diff --git a/test/tests/rv64ui-p-lw.elf b/test/tests/rv64ui-p-lw.elf
new file mode 100644
index 0000000..714ae85
--- /dev/null
+++ b/test/tests/rv64ui-p-lw.elf
Binary files differ
diff --git a/test/tests/rv64ui-p-lwu.dump b/test/tests/rv64ui-p-lwu.dump
new file mode 100644
index 0000000..21f50ee
--- /dev/null
+++ b/test/tests/rv64ui-p-lwu.dump
@@ -0,0 +1,333 @@
+
+rv64ui-p-lwu: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <test_2>:
+ 800000fc: 00002097 auipc ra,0x2
+ 80000100: f0408093 addi ra,ra,-252 # 80002000 <begin_signature>
+ 80000104: 0000ef03 lwu t5,0(ra)
+ 80000108: 00ff0eb7 lui t4,0xff0
+ 8000010c: 0ffe8e9b addiw t4,t4,255
+ 80000110: 00200193 li gp,2
+ 80000114: 2bdf1e63 bne t5,t4,800003d0 <fail>
+
+0000000080000118 <test_3>:
+ 80000118: 00002097 auipc ra,0x2
+ 8000011c: ee808093 addi ra,ra,-280 # 80002000 <begin_signature>
+ 80000120: 0040ef03 lwu t5,4(ra)
+ 80000124: 00010eb7 lui t4,0x10
+ 80000128: f01e8e9b addiw t4,t4,-255
+ 8000012c: 010e9e93 slli t4,t4,0x10
+ 80000130: f00e8e93 addi t4,t4,-256 # ff00 <_start-0x7fff0100>
+ 80000134: 00300193 li gp,3
+ 80000138: 29df1c63 bne t5,t4,800003d0 <fail>
+
+000000008000013c <test_4>:
+ 8000013c: 00002097 auipc ra,0x2
+ 80000140: ec408093 addi ra,ra,-316 # 80002000 <begin_signature>
+ 80000144: 0080ef03 lwu t5,8(ra)
+ 80000148: 0ff01eb7 lui t4,0xff01
+ 8000014c: ff0e8e9b addiw t4,t4,-16
+ 80000150: 00400193 li gp,4
+ 80000154: 27df1e63 bne t5,t4,800003d0 <fail>
+
+0000000080000158 <test_5>:
+ 80000158: 00002097 auipc ra,0x2
+ 8000015c: ea808093 addi ra,ra,-344 # 80002000 <begin_signature>
+ 80000160: 00c0ef03 lwu t5,12(ra)
+ 80000164: 000f0eb7 lui t4,0xf0
+ 80000168: 0ffe8e9b addiw t4,t4,255
+ 8000016c: 00ce9e93 slli t4,t4,0xc
+ 80000170: 00fe8e93 addi t4,t4,15 # f000f <_start-0x7ff0fff1>
+ 80000174: 00500193 li gp,5
+ 80000178: 25df1c63 bne t5,t4,800003d0 <fail>
+
+000000008000017c <test_6>:
+ 8000017c: 00002097 auipc ra,0x2
+ 80000180: e9008093 addi ra,ra,-368 # 8000200c <tdat4>
+ 80000184: ff40ef03 lwu t5,-12(ra)
+ 80000188: 00ff0eb7 lui t4,0xff0
+ 8000018c: 0ffe8e9b addiw t4,t4,255
+ 80000190: 00600193 li gp,6
+ 80000194: 23df1e63 bne t5,t4,800003d0 <fail>
+
+0000000080000198 <test_7>:
+ 80000198: 00002097 auipc ra,0x2
+ 8000019c: e7408093 addi ra,ra,-396 # 8000200c <tdat4>
+ 800001a0: ff80ef03 lwu t5,-8(ra)
+ 800001a4: 00010eb7 lui t4,0x10
+ 800001a8: f01e8e9b addiw t4,t4,-255
+ 800001ac: 010e9e93 slli t4,t4,0x10
+ 800001b0: f00e8e93 addi t4,t4,-256 # ff00 <_start-0x7fff0100>
+ 800001b4: 00700193 li gp,7
+ 800001b8: 21df1c63 bne t5,t4,800003d0 <fail>
+
+00000000800001bc <test_8>:
+ 800001bc: 00002097 auipc ra,0x2
+ 800001c0: e5008093 addi ra,ra,-432 # 8000200c <tdat4>
+ 800001c4: ffc0ef03 lwu t5,-4(ra)
+ 800001c8: 0ff01eb7 lui t4,0xff01
+ 800001cc: ff0e8e9b addiw t4,t4,-16
+ 800001d0: 00800193 li gp,8
+ 800001d4: 1fdf1e63 bne t5,t4,800003d0 <fail>
+
+00000000800001d8 <test_9>:
+ 800001d8: 00002097 auipc ra,0x2
+ 800001dc: e3408093 addi ra,ra,-460 # 8000200c <tdat4>
+ 800001e0: 0000ef03 lwu t5,0(ra)
+ 800001e4: 000f0eb7 lui t4,0xf0
+ 800001e8: 0ffe8e9b addiw t4,t4,255
+ 800001ec: 00ce9e93 slli t4,t4,0xc
+ 800001f0: 00fe8e93 addi t4,t4,15 # f000f <_start-0x7ff0fff1>
+ 800001f4: 00900193 li gp,9
+ 800001f8: 1ddf1c63 bne t5,t4,800003d0 <fail>
+
+00000000800001fc <test_10>:
+ 800001fc: 00002097 auipc ra,0x2
+ 80000200: e0408093 addi ra,ra,-508 # 80002000 <begin_signature>
+ 80000204: fe008093 addi ra,ra,-32
+ 80000208: 0200e283 lwu t0,32(ra)
+ 8000020c: 00ff0eb7 lui t4,0xff0
+ 80000210: 0ffe8e9b addiw t4,t4,255
+ 80000214: 00a00193 li gp,10
+ 80000218: 1bd29c63 bne t0,t4,800003d0 <fail>
+
+000000008000021c <test_11>:
+ 8000021c: 00002097 auipc ra,0x2
+ 80000220: de408093 addi ra,ra,-540 # 80002000 <begin_signature>
+ 80000224: ffd08093 addi ra,ra,-3
+ 80000228: 0070e283 lwu t0,7(ra)
+ 8000022c: 00010eb7 lui t4,0x10
+ 80000230: f01e8e9b addiw t4,t4,-255
+ 80000234: 010e9e93 slli t4,t4,0x10
+ 80000238: f00e8e93 addi t4,t4,-256 # ff00 <_start-0x7fff0100>
+ 8000023c: 00b00193 li gp,11
+ 80000240: 19d29863 bne t0,t4,800003d0 <fail>
+
+0000000080000244 <test_12>:
+ 80000244: 00c00193 li gp,12
+ 80000248: 00000213 li tp,0
+ 8000024c: 00002097 auipc ra,0x2
+ 80000250: db808093 addi ra,ra,-584 # 80002004 <tdat2>
+ 80000254: 0040ef03 lwu t5,4(ra)
+ 80000258: 000f0313 mv t1,t5
+ 8000025c: 0ff01eb7 lui t4,0xff01
+ 80000260: ff0e8e9b addiw t4,t4,-16
+ 80000264: 17d31663 bne t1,t4,800003d0 <fail>
+ 80000268: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 8000026c: 00200293 li t0,2
+ 80000270: fc521ee3 bne tp,t0,8000024c <test_12+0x8>
+
+0000000080000274 <test_13>:
+ 80000274: 00d00193 li gp,13
+ 80000278: 00000213 li tp,0
+ 8000027c: 00002097 auipc ra,0x2
+ 80000280: d8c08093 addi ra,ra,-628 # 80002008 <tdat3>
+ 80000284: 0040ef03 lwu t5,4(ra)
+ 80000288: 00000013 nop
+ 8000028c: 000f0313 mv t1,t5
+ 80000290: 000f0eb7 lui t4,0xf0
+ 80000294: 0ffe8e9b addiw t4,t4,255
+ 80000298: 00ce9e93 slli t4,t4,0xc
+ 8000029c: 00fe8e93 addi t4,t4,15 # f000f <_start-0x7ff0fff1>
+ 800002a0: 13d31863 bne t1,t4,800003d0 <fail>
+ 800002a4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800002a8: 00200293 li t0,2
+ 800002ac: fc5218e3 bne tp,t0,8000027c <test_13+0x8>
+
+00000000800002b0 <test_14>:
+ 800002b0: 00e00193 li gp,14
+ 800002b4: 00000213 li tp,0
+ 800002b8: 00002097 auipc ra,0x2
+ 800002bc: d4808093 addi ra,ra,-696 # 80002000 <begin_signature>
+ 800002c0: 0040ef03 lwu t5,4(ra)
+ 800002c4: 00000013 nop
+ 800002c8: 00000013 nop
+ 800002cc: 000f0313 mv t1,t5
+ 800002d0: 00010eb7 lui t4,0x10
+ 800002d4: f01e8e9b addiw t4,t4,-255
+ 800002d8: 010e9e93 slli t4,t4,0x10
+ 800002dc: f00e8e93 addi t4,t4,-256 # ff00 <_start-0x7fff0100>
+ 800002e0: 0fd31863 bne t1,t4,800003d0 <fail>
+ 800002e4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800002e8: 00200293 li t0,2
+ 800002ec: fc5216e3 bne tp,t0,800002b8 <test_14+0x8>
+
+00000000800002f0 <test_15>:
+ 800002f0: 00f00193 li gp,15
+ 800002f4: 00000213 li tp,0
+ 800002f8: 00002097 auipc ra,0x2
+ 800002fc: d0c08093 addi ra,ra,-756 # 80002004 <tdat2>
+ 80000300: 0040ef03 lwu t5,4(ra)
+ 80000304: 0ff01eb7 lui t4,0xff01
+ 80000308: ff0e8e9b addiw t4,t4,-16
+ 8000030c: 0ddf1263 bne t5,t4,800003d0 <fail>
+ 80000310: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000314: 00200293 li t0,2
+ 80000318: fe5210e3 bne tp,t0,800002f8 <test_15+0x8>
+
+000000008000031c <test_16>:
+ 8000031c: 01000193 li gp,16
+ 80000320: 00000213 li tp,0
+ 80000324: 00002097 auipc ra,0x2
+ 80000328: ce408093 addi ra,ra,-796 # 80002008 <tdat3>
+ 8000032c: 00000013 nop
+ 80000330: 0040ef03 lwu t5,4(ra)
+ 80000334: 000f0eb7 lui t4,0xf0
+ 80000338: 0ffe8e9b addiw t4,t4,255
+ 8000033c: 00ce9e93 slli t4,t4,0xc
+ 80000340: 00fe8e93 addi t4,t4,15 # f000f <_start-0x7ff0fff1>
+ 80000344: 09df1663 bne t5,t4,800003d0 <fail>
+ 80000348: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 8000034c: 00200293 li t0,2
+ 80000350: fc521ae3 bne tp,t0,80000324 <test_16+0x8>
+
+0000000080000354 <test_17>:
+ 80000354: 01100193 li gp,17
+ 80000358: 00000213 li tp,0
+ 8000035c: 00002097 auipc ra,0x2
+ 80000360: ca408093 addi ra,ra,-860 # 80002000 <begin_signature>
+ 80000364: 00000013 nop
+ 80000368: 00000013 nop
+ 8000036c: 0040ef03 lwu t5,4(ra)
+ 80000370: 00010eb7 lui t4,0x10
+ 80000374: f01e8e9b addiw t4,t4,-255
+ 80000378: 010e9e93 slli t4,t4,0x10
+ 8000037c: f00e8e93 addi t4,t4,-256 # ff00 <_start-0x7fff0100>
+ 80000380: 05df1863 bne t5,t4,800003d0 <fail>
+ 80000384: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000388: 00200293 li t0,2
+ 8000038c: fc5218e3 bne tp,t0,8000035c <test_17+0x8>
+
+0000000080000390 <test_18>:
+ 80000390: 00002297 auipc t0,0x2
+ 80000394: c7028293 addi t0,t0,-912 # 80002000 <begin_signature>
+ 80000398: 0002e103 lwu sp,0(t0)
+ 8000039c: 00200113 li sp,2
+ 800003a0: 00200e93 li t4,2
+ 800003a4: 01200193 li gp,18
+ 800003a8: 03d11463 bne sp,t4,800003d0 <fail>
+
+00000000800003ac <test_19>:
+ 800003ac: 00002297 auipc t0,0x2
+ 800003b0: c5428293 addi t0,t0,-940 # 80002000 <begin_signature>
+ 800003b4: 0002e103 lwu sp,0(t0)
+ 800003b8: 00000013 nop
+ 800003bc: 00200113 li sp,2
+ 800003c0: 00200e93 li t4,2
+ 800003c4: 01300193 li gp,19
+ 800003c8: 01d11463 bne sp,t4,800003d0 <fail>
+ 800003cc: 00301c63 bne zero,gp,800003e4 <pass>
+
+00000000800003d0 <fail>:
+ 800003d0: 0ff0000f fence
+ 800003d4: 00018063 beqz gp,800003d4 <fail+0x4>
+ 800003d8: 00119193 slli gp,gp,0x1
+ 800003dc: 0011e193 ori gp,gp,1
+ 800003e0: 00000073 ecall
+
+00000000800003e4 <pass>:
+ 800003e4: 0ff0000f fence
+ 800003e8: 00100193 li gp,1
+ 800003ec: 00000073 ecall
+ 800003f0: c0001073 unimp
+ 800003f4: 0000 unimp
+ 800003f6: 0000 unimp
+ 800003f8: 0000 unimp
+ 800003fa: 0000 unimp
+ 800003fc: 0000 unimp
+ 800003fe: 0000 unimp
+ 80000400: 0000 unimp
+ 80000402: 0000 unimp
+
+Disassembly of section .data:
+
+0000000080002000 <begin_signature>:
+ 80002000: 00ff 0xff
+ 80002002: 00ff 0xff
+
+0000000080002004 <tdat2>:
+ 80002004: ff00 sd s0,56(a4)
+ 80002006: ff00 sd s0,56(a4)
+
+0000000080002008 <tdat3>:
+ 80002008: 0ff0 addi a2,sp,988
+ 8000200a: 0ff0 addi a2,sp,988
+
+000000008000200c <tdat4>:
+ 8000200c: f00ff00f 0xf00ff00f
diff --git a/test/tests/rv64ui-p-lwu.elf b/test/tests/rv64ui-p-lwu.elf
new file mode 100644
index 0000000..de88bd2
--- /dev/null
+++ b/test/tests/rv64ui-p-lwu.elf
Binary files differ
diff --git a/test/tests/rv64ui-p-or.dump b/test/tests/rv64ui-p-or.dump
new file mode 100644
index 0000000..4ca0b79
--- /dev/null
+++ b/test/tests/rv64ui-p-or.dump
@@ -0,0 +1,522 @@
+
+rv64ui-p-or: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <test_2>:
+ 800000fc: 000100b7 lui ra,0x10
+ 80000100: f010809b addiw ra,ra,-255
+ 80000104: 01009093 slli ra,ra,0x10
+ 80000108: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 8000010c: 0f0f1137 lui sp,0xf0f1
+ 80000110: f0f1011b addiw sp,sp,-241
+ 80000114: 0020ef33 or t5,ra,sp
+ 80000118: 00001eb7 lui t4,0x1
+ 8000011c: ff1e8e9b addiw t4,t4,-15
+ 80000120: 014e9e93 slli t4,t4,0x14
+ 80000124: f0fe8e93 addi t4,t4,-241 # f0f <_start-0x7ffff0f1>
+ 80000128: 00200193 li gp,2
+ 8000012c: 5bdf1663 bne t5,t4,800006d8 <fail>
+
+0000000080000130 <test_3>:
+ 80000130: 0ff010b7 lui ra,0xff01
+ 80000134: ff00809b addiw ra,ra,-16
+ 80000138: 000f1137 lui sp,0xf1
+ 8000013c: f0f1011b addiw sp,sp,-241
+ 80000140: 00c11113 slli sp,sp,0xc
+ 80000144: 0f010113 addi sp,sp,240 # f10f0 <_start-0x7ff0ef10>
+ 80000148: 0020ef33 or t5,ra,sp
+ 8000014c: 00010eb7 lui t4,0x10
+ 80000150: ff1e8e9b addiw t4,t4,-15
+ 80000154: 010e9e93 slli t4,t4,0x10
+ 80000158: ff0e8e93 addi t4,t4,-16 # fff0 <_start-0x7fff0010>
+ 8000015c: 00300193 li gp,3
+ 80000160: 57df1c63 bne t5,t4,800006d8 <fail>
+
+0000000080000164 <test_4>:
+ 80000164: 00ff00b7 lui ra,0xff0
+ 80000168: 0ff0809b addiw ra,ra,255
+ 8000016c: 0f0f1137 lui sp,0xf0f1
+ 80000170: f0f1011b addiw sp,sp,-241
+ 80000174: 0020ef33 or t5,ra,sp
+ 80000178: 0fff1eb7 lui t4,0xfff1
+ 8000017c: fffe8e9b addiw t4,t4,-1
+ 80000180: 00400193 li gp,4
+ 80000184: 55df1a63 bne t5,t4,800006d8 <fail>
+
+0000000080000188 <test_5>:
+ 80000188: 000f00b7 lui ra,0xf0
+ 8000018c: 0ff0809b addiw ra,ra,255
+ 80000190: 00c09093 slli ra,ra,0xc
+ 80000194: 00f08093 addi ra,ra,15 # f000f <_start-0x7ff0fff1>
+ 80000198: 000f1137 lui sp,0xf1
+ 8000019c: f0f1011b addiw sp,sp,-241
+ 800001a0: 00c11113 slli sp,sp,0xc
+ 800001a4: 0f010113 addi sp,sp,240 # f10f0 <_start-0x7ff0ef10>
+ 800001a8: 0020ef33 or t5,ra,sp
+ 800001ac: 000f1eb7 lui t4,0xf1
+ 800001b0: fffe8e9b addiw t4,t4,-1
+ 800001b4: 00ce9e93 slli t4,t4,0xc
+ 800001b8: 0ffe8e93 addi t4,t4,255 # f10ff <_start-0x7ff0ef01>
+ 800001bc: 00500193 li gp,5
+ 800001c0: 51df1c63 bne t5,t4,800006d8 <fail>
+
+00000000800001c4 <test_6>:
+ 800001c4: 000100b7 lui ra,0x10
+ 800001c8: f010809b addiw ra,ra,-255
+ 800001cc: 01009093 slli ra,ra,0x10
+ 800001d0: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 800001d4: 0f0f1137 lui sp,0xf0f1
+ 800001d8: f0f1011b addiw sp,sp,-241
+ 800001dc: 0020e0b3 or ra,ra,sp
+ 800001e0: 00001eb7 lui t4,0x1
+ 800001e4: ff1e8e9b addiw t4,t4,-15
+ 800001e8: 014e9e93 slli t4,t4,0x14
+ 800001ec: f0fe8e93 addi t4,t4,-241 # f0f <_start-0x7ffff0f1>
+ 800001f0: 00600193 li gp,6
+ 800001f4: 4fd09263 bne ra,t4,800006d8 <fail>
+
+00000000800001f8 <test_7>:
+ 800001f8: 000100b7 lui ra,0x10
+ 800001fc: f010809b addiw ra,ra,-255
+ 80000200: 01009093 slli ra,ra,0x10
+ 80000204: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 80000208: 0f0f1137 lui sp,0xf0f1
+ 8000020c: f0f1011b addiw sp,sp,-241
+ 80000210: 0020e133 or sp,ra,sp
+ 80000214: 00001eb7 lui t4,0x1
+ 80000218: ff1e8e9b addiw t4,t4,-15
+ 8000021c: 014e9e93 slli t4,t4,0x14
+ 80000220: f0fe8e93 addi t4,t4,-241 # f0f <_start-0x7ffff0f1>
+ 80000224: 00700193 li gp,7
+ 80000228: 4bd11863 bne sp,t4,800006d8 <fail>
+
+000000008000022c <test_8>:
+ 8000022c: 000100b7 lui ra,0x10
+ 80000230: f010809b addiw ra,ra,-255
+ 80000234: 01009093 slli ra,ra,0x10
+ 80000238: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 8000023c: 0010e0b3 or ra,ra,ra
+ 80000240: 00010eb7 lui t4,0x10
+ 80000244: f01e8e9b addiw t4,t4,-255
+ 80000248: 010e9e93 slli t4,t4,0x10
+ 8000024c: f00e8e93 addi t4,t4,-256 # ff00 <_start-0x7fff0100>
+ 80000250: 00800193 li gp,8
+ 80000254: 49d09263 bne ra,t4,800006d8 <fail>
+
+0000000080000258 <test_9>:
+ 80000258: 00000213 li tp,0
+ 8000025c: 000100b7 lui ra,0x10
+ 80000260: f010809b addiw ra,ra,-255
+ 80000264: 01009093 slli ra,ra,0x10
+ 80000268: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 8000026c: 0f0f1137 lui sp,0xf0f1
+ 80000270: f0f1011b addiw sp,sp,-241
+ 80000274: 0020ef33 or t5,ra,sp
+ 80000278: 000f0313 mv t1,t5
+ 8000027c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000280: 00200293 li t0,2
+ 80000284: fc521ce3 bne tp,t0,8000025c <test_9+0x4>
+ 80000288: 00001eb7 lui t4,0x1
+ 8000028c: ff1e8e9b addiw t4,t4,-15
+ 80000290: 014e9e93 slli t4,t4,0x14
+ 80000294: f0fe8e93 addi t4,t4,-241 # f0f <_start-0x7ffff0f1>
+ 80000298: 00900193 li gp,9
+ 8000029c: 43d31e63 bne t1,t4,800006d8 <fail>
+
+00000000800002a0 <test_10>:
+ 800002a0: 00000213 li tp,0
+ 800002a4: 0ff010b7 lui ra,0xff01
+ 800002a8: ff00809b addiw ra,ra,-16
+ 800002ac: 000f1137 lui sp,0xf1
+ 800002b0: f0f1011b addiw sp,sp,-241
+ 800002b4: 00c11113 slli sp,sp,0xc
+ 800002b8: 0f010113 addi sp,sp,240 # f10f0 <_start-0x7ff0ef10>
+ 800002bc: 0020ef33 or t5,ra,sp
+ 800002c0: 00000013 nop
+ 800002c4: 000f0313 mv t1,t5
+ 800002c8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800002cc: 00200293 li t0,2
+ 800002d0: fc521ae3 bne tp,t0,800002a4 <test_10+0x4>
+ 800002d4: 00010eb7 lui t4,0x10
+ 800002d8: ff1e8e9b addiw t4,t4,-15
+ 800002dc: 010e9e93 slli t4,t4,0x10
+ 800002e0: ff0e8e93 addi t4,t4,-16 # fff0 <_start-0x7fff0010>
+ 800002e4: 00a00193 li gp,10
+ 800002e8: 3fd31863 bne t1,t4,800006d8 <fail>
+
+00000000800002ec <test_11>:
+ 800002ec: 00000213 li tp,0
+ 800002f0: 00ff00b7 lui ra,0xff0
+ 800002f4: 0ff0809b addiw ra,ra,255
+ 800002f8: 0f0f1137 lui sp,0xf0f1
+ 800002fc: f0f1011b addiw sp,sp,-241
+ 80000300: 0020ef33 or t5,ra,sp
+ 80000304: 00000013 nop
+ 80000308: 00000013 nop
+ 8000030c: 000f0313 mv t1,t5
+ 80000310: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000314: 00200293 li t0,2
+ 80000318: fc521ce3 bne tp,t0,800002f0 <test_11+0x4>
+ 8000031c: 0fff1eb7 lui t4,0xfff1
+ 80000320: fffe8e9b addiw t4,t4,-1
+ 80000324: 00b00193 li gp,11
+ 80000328: 3bd31863 bne t1,t4,800006d8 <fail>
+
+000000008000032c <test_12>:
+ 8000032c: 00000213 li tp,0
+ 80000330: 000100b7 lui ra,0x10
+ 80000334: f010809b addiw ra,ra,-255
+ 80000338: 01009093 slli ra,ra,0x10
+ 8000033c: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 80000340: 0f0f1137 lui sp,0xf0f1
+ 80000344: f0f1011b addiw sp,sp,-241
+ 80000348: 0020ef33 or t5,ra,sp
+ 8000034c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000350: 00200293 li t0,2
+ 80000354: fc521ee3 bne tp,t0,80000330 <test_12+0x4>
+ 80000358: 00001eb7 lui t4,0x1
+ 8000035c: ff1e8e9b addiw t4,t4,-15
+ 80000360: 014e9e93 slli t4,t4,0x14
+ 80000364: f0fe8e93 addi t4,t4,-241 # f0f <_start-0x7ffff0f1>
+ 80000368: 00c00193 li gp,12
+ 8000036c: 37df1663 bne t5,t4,800006d8 <fail>
+
+0000000080000370 <test_13>:
+ 80000370: 00000213 li tp,0
+ 80000374: 0ff010b7 lui ra,0xff01
+ 80000378: ff00809b addiw ra,ra,-16
+ 8000037c: 000f1137 lui sp,0xf1
+ 80000380: f0f1011b addiw sp,sp,-241
+ 80000384: 00c11113 slli sp,sp,0xc
+ 80000388: 0f010113 addi sp,sp,240 # f10f0 <_start-0x7ff0ef10>
+ 8000038c: 00000013 nop
+ 80000390: 0020ef33 or t5,ra,sp
+ 80000394: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000398: 00200293 li t0,2
+ 8000039c: fc521ce3 bne tp,t0,80000374 <test_13+0x4>
+ 800003a0: 00010eb7 lui t4,0x10
+ 800003a4: ff1e8e9b addiw t4,t4,-15
+ 800003a8: 010e9e93 slli t4,t4,0x10
+ 800003ac: ff0e8e93 addi t4,t4,-16 # fff0 <_start-0x7fff0010>
+ 800003b0: 00d00193 li gp,13
+ 800003b4: 33df1263 bne t5,t4,800006d8 <fail>
+
+00000000800003b8 <test_14>:
+ 800003b8: 00000213 li tp,0
+ 800003bc: 00ff00b7 lui ra,0xff0
+ 800003c0: 0ff0809b addiw ra,ra,255
+ 800003c4: 0f0f1137 lui sp,0xf0f1
+ 800003c8: f0f1011b addiw sp,sp,-241
+ 800003cc: 00000013 nop
+ 800003d0: 00000013 nop
+ 800003d4: 0020ef33 or t5,ra,sp
+ 800003d8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800003dc: 00200293 li t0,2
+ 800003e0: fc521ee3 bne tp,t0,800003bc <test_14+0x4>
+ 800003e4: 0fff1eb7 lui t4,0xfff1
+ 800003e8: fffe8e9b addiw t4,t4,-1
+ 800003ec: 00e00193 li gp,14
+ 800003f0: 2fdf1463 bne t5,t4,800006d8 <fail>
+
+00000000800003f4 <test_15>:
+ 800003f4: 00000213 li tp,0
+ 800003f8: 000100b7 lui ra,0x10
+ 800003fc: f010809b addiw ra,ra,-255
+ 80000400: 01009093 slli ra,ra,0x10
+ 80000404: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 80000408: 00000013 nop
+ 8000040c: 0f0f1137 lui sp,0xf0f1
+ 80000410: f0f1011b addiw sp,sp,-241
+ 80000414: 0020ef33 or t5,ra,sp
+ 80000418: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 8000041c: 00200293 li t0,2
+ 80000420: fc521ce3 bne tp,t0,800003f8 <test_15+0x4>
+ 80000424: 00001eb7 lui t4,0x1
+ 80000428: ff1e8e9b addiw t4,t4,-15
+ 8000042c: 014e9e93 slli t4,t4,0x14
+ 80000430: f0fe8e93 addi t4,t4,-241 # f0f <_start-0x7ffff0f1>
+ 80000434: 00f00193 li gp,15
+ 80000438: 2bdf1063 bne t5,t4,800006d8 <fail>
+
+000000008000043c <test_16>:
+ 8000043c: 00000213 li tp,0
+ 80000440: 0ff010b7 lui ra,0xff01
+ 80000444: ff00809b addiw ra,ra,-16
+ 80000448: 00000013 nop
+ 8000044c: 000f1137 lui sp,0xf1
+ 80000450: f0f1011b addiw sp,sp,-241
+ 80000454: 00c11113 slli sp,sp,0xc
+ 80000458: 0f010113 addi sp,sp,240 # f10f0 <_start-0x7ff0ef10>
+ 8000045c: 00000013 nop
+ 80000460: 0020ef33 or t5,ra,sp
+ 80000464: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000468: 00200293 li t0,2
+ 8000046c: fc521ae3 bne tp,t0,80000440 <test_16+0x4>
+ 80000470: 00010eb7 lui t4,0x10
+ 80000474: ff1e8e9b addiw t4,t4,-15
+ 80000478: 010e9e93 slli t4,t4,0x10
+ 8000047c: ff0e8e93 addi t4,t4,-16 # fff0 <_start-0x7fff0010>
+ 80000480: 01000193 li gp,16
+ 80000484: 25df1a63 bne t5,t4,800006d8 <fail>
+
+0000000080000488 <test_17>:
+ 80000488: 00000213 li tp,0
+ 8000048c: 00ff00b7 lui ra,0xff0
+ 80000490: 0ff0809b addiw ra,ra,255
+ 80000494: 00000013 nop
+ 80000498: 00000013 nop
+ 8000049c: 0f0f1137 lui sp,0xf0f1
+ 800004a0: f0f1011b addiw sp,sp,-241
+ 800004a4: 0020ef33 or t5,ra,sp
+ 800004a8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800004ac: 00200293 li t0,2
+ 800004b0: fc521ee3 bne tp,t0,8000048c <test_17+0x4>
+ 800004b4: 0fff1eb7 lui t4,0xfff1
+ 800004b8: fffe8e9b addiw t4,t4,-1
+ 800004bc: 01100193 li gp,17
+ 800004c0: 21df1c63 bne t5,t4,800006d8 <fail>
+
+00000000800004c4 <test_18>:
+ 800004c4: 00000213 li tp,0
+ 800004c8: 0f0f1137 lui sp,0xf0f1
+ 800004cc: f0f1011b addiw sp,sp,-241
+ 800004d0: 000100b7 lui ra,0x10
+ 800004d4: f010809b addiw ra,ra,-255
+ 800004d8: 01009093 slli ra,ra,0x10
+ 800004dc: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 800004e0: 0020ef33 or t5,ra,sp
+ 800004e4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800004e8: 00200293 li t0,2
+ 800004ec: fc521ee3 bne tp,t0,800004c8 <test_18+0x4>
+ 800004f0: 00001eb7 lui t4,0x1
+ 800004f4: ff1e8e9b addiw t4,t4,-15
+ 800004f8: 014e9e93 slli t4,t4,0x14
+ 800004fc: f0fe8e93 addi t4,t4,-241 # f0f <_start-0x7ffff0f1>
+ 80000500: 01200193 li gp,18
+ 80000504: 1ddf1a63 bne t5,t4,800006d8 <fail>
+
+0000000080000508 <test_19>:
+ 80000508: 00000213 li tp,0
+ 8000050c: 000f1137 lui sp,0xf1
+ 80000510: f0f1011b addiw sp,sp,-241
+ 80000514: 00c11113 slli sp,sp,0xc
+ 80000518: 0f010113 addi sp,sp,240 # f10f0 <_start-0x7ff0ef10>
+ 8000051c: 0ff010b7 lui ra,0xff01
+ 80000520: ff00809b addiw ra,ra,-16
+ 80000524: 00000013 nop
+ 80000528: 0020ef33 or t5,ra,sp
+ 8000052c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000530: 00200293 li t0,2
+ 80000534: fc521ce3 bne tp,t0,8000050c <test_19+0x4>
+ 80000538: 00010eb7 lui t4,0x10
+ 8000053c: ff1e8e9b addiw t4,t4,-15
+ 80000540: 010e9e93 slli t4,t4,0x10
+ 80000544: ff0e8e93 addi t4,t4,-16 # fff0 <_start-0x7fff0010>
+ 80000548: 01300193 li gp,19
+ 8000054c: 19df1663 bne t5,t4,800006d8 <fail>
+
+0000000080000550 <test_20>:
+ 80000550: 00000213 li tp,0
+ 80000554: 0f0f1137 lui sp,0xf0f1
+ 80000558: f0f1011b addiw sp,sp,-241
+ 8000055c: 00ff00b7 lui ra,0xff0
+ 80000560: 0ff0809b addiw ra,ra,255
+ 80000564: 00000013 nop
+ 80000568: 00000013 nop
+ 8000056c: 0020ef33 or t5,ra,sp
+ 80000570: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000574: 00200293 li t0,2
+ 80000578: fc521ee3 bne tp,t0,80000554 <test_20+0x4>
+ 8000057c: 0fff1eb7 lui t4,0xfff1
+ 80000580: fffe8e9b addiw t4,t4,-1
+ 80000584: 01400193 li gp,20
+ 80000588: 15df1863 bne t5,t4,800006d8 <fail>
+
+000000008000058c <test_21>:
+ 8000058c: 00000213 li tp,0
+ 80000590: 0f0f1137 lui sp,0xf0f1
+ 80000594: f0f1011b addiw sp,sp,-241
+ 80000598: 00000013 nop
+ 8000059c: 000100b7 lui ra,0x10
+ 800005a0: f010809b addiw ra,ra,-255
+ 800005a4: 01009093 slli ra,ra,0x10
+ 800005a8: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 800005ac: 0020ef33 or t5,ra,sp
+ 800005b0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800005b4: 00200293 li t0,2
+ 800005b8: fc521ce3 bne tp,t0,80000590 <test_21+0x4>
+ 800005bc: 00001eb7 lui t4,0x1
+ 800005c0: ff1e8e9b addiw t4,t4,-15
+ 800005c4: 014e9e93 slli t4,t4,0x14
+ 800005c8: f0fe8e93 addi t4,t4,-241 # f0f <_start-0x7ffff0f1>
+ 800005cc: 01500193 li gp,21
+ 800005d0: 11df1463 bne t5,t4,800006d8 <fail>
+
+00000000800005d4 <test_22>:
+ 800005d4: 00000213 li tp,0
+ 800005d8: 000f1137 lui sp,0xf1
+ 800005dc: f0f1011b addiw sp,sp,-241
+ 800005e0: 00c11113 slli sp,sp,0xc
+ 800005e4: 0f010113 addi sp,sp,240 # f10f0 <_start-0x7ff0ef10>
+ 800005e8: 00000013 nop
+ 800005ec: 0ff010b7 lui ra,0xff01
+ 800005f0: ff00809b addiw ra,ra,-16
+ 800005f4: 00000013 nop
+ 800005f8: 0020ef33 or t5,ra,sp
+ 800005fc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000600: 00200293 li t0,2
+ 80000604: fc521ae3 bne tp,t0,800005d8 <test_22+0x4>
+ 80000608: 00010eb7 lui t4,0x10
+ 8000060c: ff1e8e9b addiw t4,t4,-15
+ 80000610: 010e9e93 slli t4,t4,0x10
+ 80000614: ff0e8e93 addi t4,t4,-16 # fff0 <_start-0x7fff0010>
+ 80000618: 01600193 li gp,22
+ 8000061c: 0bdf1e63 bne t5,t4,800006d8 <fail>
+
+0000000080000620 <test_23>:
+ 80000620: 00000213 li tp,0
+ 80000624: 0f0f1137 lui sp,0xf0f1
+ 80000628: f0f1011b addiw sp,sp,-241
+ 8000062c: 00000013 nop
+ 80000630: 00000013 nop
+ 80000634: 00ff00b7 lui ra,0xff0
+ 80000638: 0ff0809b addiw ra,ra,255
+ 8000063c: 0020ef33 or t5,ra,sp
+ 80000640: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000644: 00200293 li t0,2
+ 80000648: fc521ee3 bne tp,t0,80000624 <test_23+0x4>
+ 8000064c: 0fff1eb7 lui t4,0xfff1
+ 80000650: fffe8e9b addiw t4,t4,-1
+ 80000654: 01700193 li gp,23
+ 80000658: 09df1063 bne t5,t4,800006d8 <fail>
+
+000000008000065c <test_24>:
+ 8000065c: 000100b7 lui ra,0x10
+ 80000660: f010809b addiw ra,ra,-255
+ 80000664: 01009093 slli ra,ra,0x10
+ 80000668: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 8000066c: 00106133 or sp,zero,ra
+ 80000670: 00010eb7 lui t4,0x10
+ 80000674: f01e8e9b addiw t4,t4,-255
+ 80000678: 010e9e93 slli t4,t4,0x10
+ 8000067c: f00e8e93 addi t4,t4,-256 # ff00 <_start-0x7fff0100>
+ 80000680: 01800193 li gp,24
+ 80000684: 05d11a63 bne sp,t4,800006d8 <fail>
+
+0000000080000688 <test_25>:
+ 80000688: 00ff00b7 lui ra,0xff0
+ 8000068c: 0ff0809b addiw ra,ra,255
+ 80000690: 0000e133 or sp,ra,zero
+ 80000694: 00ff0eb7 lui t4,0xff0
+ 80000698: 0ffe8e9b addiw t4,t4,255
+ 8000069c: 01900193 li gp,25
+ 800006a0: 03d11c63 bne sp,t4,800006d8 <fail>
+
+00000000800006a4 <test_26>:
+ 800006a4: 000060b3 or ra,zero,zero
+ 800006a8: 00000e93 li t4,0
+ 800006ac: 01a00193 li gp,26
+ 800006b0: 03d09463 bne ra,t4,800006d8 <fail>
+
+00000000800006b4 <test_27>:
+ 800006b4: 111110b7 lui ra,0x11111
+ 800006b8: 1110809b addiw ra,ra,273
+ 800006bc: 22222137 lui sp,0x22222
+ 800006c0: 2221011b addiw sp,sp,546
+ 800006c4: 0020e033 or zero,ra,sp
+ 800006c8: 00000e93 li t4,0
+ 800006cc: 01b00193 li gp,27
+ 800006d0: 01d01463 bne zero,t4,800006d8 <fail>
+ 800006d4: 00301c63 bne zero,gp,800006ec <pass>
+
+00000000800006d8 <fail>:
+ 800006d8: 0ff0000f fence
+ 800006dc: 00018063 beqz gp,800006dc <fail+0x4>
+ 800006e0: 00119193 slli gp,gp,0x1
+ 800006e4: 0011e193 ori gp,gp,1
+ 800006e8: 00000073 ecall
+
+00000000800006ec <pass>:
+ 800006ec: 0ff0000f fence
+ 800006f0: 00100193 li gp,1
+ 800006f4: 00000073 ecall
+ 800006f8: c0001073 unimp
+ 800006fc: 0000 unimp
+ 800006fe: 0000 unimp
+ 80000700: 0000 unimp
+ 80000702: 0000 unimp
diff --git a/test/tests/rv64ui-p-or.elf b/test/tests/rv64ui-p-or.elf
new file mode 100644
index 0000000..fbd5299
--- /dev/null
+++ b/test/tests/rv64ui-p-or.elf
Binary files differ
diff --git a/test/tests/rv64ui-p-ori.dump b/test/tests/rv64ui-p-ori.dump
new file mode 100644
index 0000000..c49630b
--- /dev/null
+++ b/test/tests/rv64ui-p-ori.dump
@@ -0,0 +1,268 @@
+
+rv64ui-p-ori: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <test_2>:
+ 800000fc: ff0100b7 lui ra,0xff010
+ 80000100: f000809b addiw ra,ra,-256
+ 80000104: f0f0ef13 ori t5,ra,-241
+ 80000108: f0f00e93 li t4,-241
+ 8000010c: 00200193 li gp,2
+ 80000110: 1ddf1c63 bne t5,t4,800002e8 <fail>
+
+0000000080000114 <test_3>:
+ 80000114: 0ff010b7 lui ra,0xff01
+ 80000118: ff00809b addiw ra,ra,-16
+ 8000011c: 0f00ef13 ori t5,ra,240
+ 80000120: 0ff01eb7 lui t4,0xff01
+ 80000124: ff0e8e9b addiw t4,t4,-16
+ 80000128: 00300193 li gp,3
+ 8000012c: 1bdf1e63 bne t5,t4,800002e8 <fail>
+
+0000000080000130 <test_4>:
+ 80000130: 00ff00b7 lui ra,0xff0
+ 80000134: 0ff0809b addiw ra,ra,255
+ 80000138: 70f0ef13 ori t5,ra,1807
+ 8000013c: 00ff0eb7 lui t4,0xff0
+ 80000140: 7ffe8e9b addiw t4,t4,2047
+ 80000144: 00400193 li gp,4
+ 80000148: 1bdf1063 bne t5,t4,800002e8 <fail>
+
+000000008000014c <test_5>:
+ 8000014c: f00ff0b7 lui ra,0xf00ff
+ 80000150: 00f0809b addiw ra,ra,15
+ 80000154: 0f00ef13 ori t5,ra,240
+ 80000158: f00ffeb7 lui t4,0xf00ff
+ 8000015c: 0ffe8e9b addiw t4,t4,255
+ 80000160: 00500193 li gp,5
+ 80000164: 19df1263 bne t5,t4,800002e8 <fail>
+
+0000000080000168 <test_6>:
+ 80000168: 000100b7 lui ra,0x10
+ 8000016c: f010809b addiw ra,ra,-255
+ 80000170: 01009093 slli ra,ra,0x10
+ 80000174: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 80000178: 0f00e093 ori ra,ra,240
+ 8000017c: 00010eb7 lui t4,0x10
+ 80000180: f01e8e9b addiw t4,t4,-255
+ 80000184: 010e9e93 slli t4,t4,0x10
+ 80000188: ff0e8e93 addi t4,t4,-16 # fff0 <_start-0x7fff0010>
+ 8000018c: 00600193 li gp,6
+ 80000190: 15d09c63 bne ra,t4,800002e8 <fail>
+
+0000000080000194 <test_7>:
+ 80000194: 00000213 li tp,0
+ 80000198: 0ff010b7 lui ra,0xff01
+ 8000019c: ff00809b addiw ra,ra,-16
+ 800001a0: 0f00ef13 ori t5,ra,240
+ 800001a4: 000f0313 mv t1,t5
+ 800001a8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800001ac: 00200293 li t0,2
+ 800001b0: fe5214e3 bne tp,t0,80000198 <test_7+0x4>
+ 800001b4: 0ff01eb7 lui t4,0xff01
+ 800001b8: ff0e8e9b addiw t4,t4,-16
+ 800001bc: 00700193 li gp,7
+ 800001c0: 13d31463 bne t1,t4,800002e8 <fail>
+
+00000000800001c4 <test_8>:
+ 800001c4: 00000213 li tp,0
+ 800001c8: 00ff00b7 lui ra,0xff0
+ 800001cc: 0ff0809b addiw ra,ra,255
+ 800001d0: 70f0ef13 ori t5,ra,1807
+ 800001d4: 00000013 nop
+ 800001d8: 000f0313 mv t1,t5
+ 800001dc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800001e0: 00200293 li t0,2
+ 800001e4: fe5212e3 bne tp,t0,800001c8 <test_8+0x4>
+ 800001e8: 00ff0eb7 lui t4,0xff0
+ 800001ec: 7ffe8e9b addiw t4,t4,2047
+ 800001f0: 00800193 li gp,8
+ 800001f4: 0fd31a63 bne t1,t4,800002e8 <fail>
+
+00000000800001f8 <test_9>:
+ 800001f8: 00000213 li tp,0
+ 800001fc: f00ff0b7 lui ra,0xf00ff
+ 80000200: 00f0809b addiw ra,ra,15
+ 80000204: 0f00ef13 ori t5,ra,240
+ 80000208: 00000013 nop
+ 8000020c: 00000013 nop
+ 80000210: 000f0313 mv t1,t5
+ 80000214: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000218: 00200293 li t0,2
+ 8000021c: fe5210e3 bne tp,t0,800001fc <test_9+0x4>
+ 80000220: f00ffeb7 lui t4,0xf00ff
+ 80000224: 0ffe8e9b addiw t4,t4,255
+ 80000228: 00900193 li gp,9
+ 8000022c: 0bd31e63 bne t1,t4,800002e8 <fail>
+
+0000000080000230 <test_10>:
+ 80000230: 00000213 li tp,0
+ 80000234: 0ff010b7 lui ra,0xff01
+ 80000238: ff00809b addiw ra,ra,-16
+ 8000023c: 0f00ef13 ori t5,ra,240
+ 80000240: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000244: 00200293 li t0,2
+ 80000248: fe5216e3 bne tp,t0,80000234 <test_10+0x4>
+ 8000024c: 0ff01eb7 lui t4,0xff01
+ 80000250: ff0e8e9b addiw t4,t4,-16
+ 80000254: 00a00193 li gp,10
+ 80000258: 09df1863 bne t5,t4,800002e8 <fail>
+
+000000008000025c <test_11>:
+ 8000025c: 00000213 li tp,0
+ 80000260: 00ff00b7 lui ra,0xff0
+ 80000264: 0ff0809b addiw ra,ra,255
+ 80000268: 00000013 nop
+ 8000026c: f0f0ef13 ori t5,ra,-241
+ 80000270: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000274: 00200293 li t0,2
+ 80000278: fe5214e3 bne tp,t0,80000260 <test_11+0x4>
+ 8000027c: fff00e93 li t4,-1
+ 80000280: 00b00193 li gp,11
+ 80000284: 07df1263 bne t5,t4,800002e8 <fail>
+
+0000000080000288 <test_12>:
+ 80000288: 00000213 li tp,0
+ 8000028c: f00ff0b7 lui ra,0xf00ff
+ 80000290: 00f0809b addiw ra,ra,15
+ 80000294: 00000013 nop
+ 80000298: 00000013 nop
+ 8000029c: 0f00ef13 ori t5,ra,240
+ 800002a0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800002a4: 00200293 li t0,2
+ 800002a8: fe5212e3 bne tp,t0,8000028c <test_12+0x4>
+ 800002ac: f00ffeb7 lui t4,0xf00ff
+ 800002b0: 0ffe8e9b addiw t4,t4,255
+ 800002b4: 00c00193 li gp,12
+ 800002b8: 03df1863 bne t5,t4,800002e8 <fail>
+
+00000000800002bc <test_13>:
+ 800002bc: 0f006093 ori ra,zero,240
+ 800002c0: 0f000e93 li t4,240
+ 800002c4: 00d00193 li gp,13
+ 800002c8: 03d09063 bne ra,t4,800002e8 <fail>
+
+00000000800002cc <test_14>:
+ 800002cc: 00ff00b7 lui ra,0xff0
+ 800002d0: 0ff0809b addiw ra,ra,255
+ 800002d4: 70f0e013 ori zero,ra,1807
+ 800002d8: 00000e93 li t4,0
+ 800002dc: 00e00193 li gp,14
+ 800002e0: 01d01463 bne zero,t4,800002e8 <fail>
+ 800002e4: 00301c63 bne zero,gp,800002fc <pass>
+
+00000000800002e8 <fail>:
+ 800002e8: 0ff0000f fence
+ 800002ec: 00018063 beqz gp,800002ec <fail+0x4>
+ 800002f0: 00119193 slli gp,gp,0x1
+ 800002f4: 0011e193 ori gp,gp,1
+ 800002f8: 00000073 ecall
+
+00000000800002fc <pass>:
+ 800002fc: 0ff0000f fence
+ 80000300: 00100193 li gp,1
+ 80000304: 00000073 ecall
+ 80000308: c0001073 unimp
+ 8000030c: 0000 unimp
+ 8000030e: 0000 unimp
+ 80000310: 0000 unimp
+ 80000312: 0000 unimp
+ 80000314: 0000 unimp
+ 80000316: 0000 unimp
+ 80000318: 0000 unimp
+ 8000031a: 0000 unimp
+ 8000031c: 0000 unimp
+ 8000031e: 0000 unimp
+ 80000320: 0000 unimp
+ 80000322: 0000 unimp
+ 80000324: 0000 unimp
+ 80000326: 0000 unimp
+ 80000328: 0000 unimp
+ 8000032a: 0000 unimp
+ 8000032c: 0000 unimp
+ 8000032e: 0000 unimp
+ 80000330: 0000 unimp
+ 80000332: 0000 unimp
+ 80000334: 0000 unimp
+ 80000336: 0000 unimp
+ 80000338: 0000 unimp
+ 8000033a: 0000 unimp
+ 8000033c: 0000 unimp
+ 8000033e: 0000 unimp
+ 80000340: 0000 unimp
+ 80000342: 0000 unimp
diff --git a/test/tests/rv64ui-p-ori.elf b/test/tests/rv64ui-p-ori.elf
new file mode 100644
index 0000000..81868c2
--- /dev/null
+++ b/test/tests/rv64ui-p-ori.elf
Binary files differ
diff --git a/test/tests/rv64ui-p-sb.dump b/test/tests/rv64ui-p-sb.dump
new file mode 100644
index 0000000..5bf111f
--- /dev/null
+++ b/test/tests/rv64ui-p-sb.dump
@@ -0,0 +1,447 @@
+
+rv64ui-p-sb: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <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>
+
+000000008000011c <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>
+
+000000008000013c <test_4>:
+ 8000013c: 00002097 auipc ra,0x2
+ 80000140: ec408093 addi ra,ra,-316 # 80002000 <begin_signature>
+ 80000144: fffff137 lui sp,0xfffff
+ 80000148: fa01011b addiw sp,sp,-96
+ 8000014c: 00208123 sb sp,2(ra)
+ 80000150: 00209f03 lh t5,2(ra)
+ 80000154: fffffeb7 lui t4,0xfffff
+ 80000158: fa0e8e9b addiw t4,t4,-96
+ 8000015c: 00400193 li gp,4
+ 80000160: 39df1863 bne t5,t4,800004f0 <fail>
+
+0000000080000164 <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>
+
+0000000080000184 <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>
+
+00000000800001a4 <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>
+
+00000000800001c4 <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>
+
+00000000800001e4 <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>
+
+0000000080000204 <test_10>:
+ 80000204: 00002097 auipc ra,0x2
+ 80000208: e0408093 addi ra,ra,-508 # 80002008 <tdat9>
+ 8000020c: 12345137 lui sp,0x12345
+ 80000210: 6781011b addiw sp,sp,1656
+ 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>
+
+000000008000022c <test_11>:
+ 8000022c: 00002097 auipc ra,0x2
+ 80000230: ddc08093 addi ra,ra,-548 # 80002008 <tdat9>
+ 80000234: 00003137 lui sp,0x3
+ 80000238: 0981011b addiw sp,sp,152
+ 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>
+
+000000008000025c <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>
+
+000000008000028c <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>
+
+00000000800002c0 <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>
+
+00000000800002f8 <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>
+
+000000008000032c <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>
+
+0000000080000364 <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>
+
+000000008000039c <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>
+
+00000000800003cc <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>
+
+0000000080000400 <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>
+
+0000000080000438 <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>
+
+000000008000046c <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>
+
+00000000800004a4 <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>
+
+00000000800004f0 <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
+
+0000000080000504 <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:
+
+0000000080002000 <begin_signature>:
+ 80002000: jal t6,800006fe <pass+0x1fa>
+
+0000000080002001 <tdat2>:
+ 80002001: jal t6,800006ff <pass+0x1fb>
+
+0000000080002002 <tdat3>:
+ 80002002: jal t6,80000700 <pass+0x1fc>
+
+0000000080002003 <tdat4>:
+ 80002003: jal t6,80000701 <pass+0x1fd>
+
+0000000080002004 <tdat5>:
+ 80002004: jal t6,80000702 <pass+0x1fe>
+
+0000000080002005 <tdat6>:
+ 80002005: jal t6,80000703 <pass+0x1ff>
+
+0000000080002006 <tdat7>:
+ 80002006: jal t6,80000704 <pass+0x200>
+
+0000000080002007 <tdat8>:
+ 80002007: jal t6,80100015 <_end+0xfe005>
+
+0000000080002008 <tdat9>:
+ 80002008: jal t6,80010008 <_end+0xdff8>
+
+0000000080002009 <tdat10>:
+ 80002009: 000000ef jal ra,80002009 <tdat10>
+ 8000200d: 0000 unimp
+ 8000200f: 00 Address 0x000000008000200f is out of bounds.
+
diff --git a/test/tests/rv64ui-p-sb.elf b/test/tests/rv64ui-p-sb.elf
new file mode 100644
index 0000000..0f672c3
--- /dev/null
+++ b/test/tests/rv64ui-p-sb.elf
Binary files differ
diff --git a/test/tests/rv64ui-p-sd.dump b/test/tests/rv64ui-p-sd.dump
new file mode 100644
index 0000000..56249fa
--- /dev/null
+++ b/test/tests/rv64ui-p-sd.dump
@@ -0,0 +1,594 @@
+
+rv64ui-p-sd: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <test_2>:
+ 800000fc: 00002097 auipc ra,0x2
+ 80000100: f0408093 addi ra,ra,-252 # 80002000 <begin_signature>
+ 80000104: 00550137 lui sp,0x550
+ 80000108: 0551011b addiw sp,sp,85
+ 8000010c: 01011113 slli sp,sp,0x10
+ 80000110: 05510113 addi sp,sp,85 # 550055 <_start-0x7faaffab>
+ 80000114: 01111113 slli sp,sp,0x11
+ 80000118: 0aa10113 addi sp,sp,170
+ 8000011c: 0020b023 sd sp,0(ra)
+ 80000120: 0000bf03 ld t5,0(ra)
+ 80000124: 00550eb7 lui t4,0x550
+ 80000128: 055e8e9b addiw t4,t4,85
+ 8000012c: 010e9e93 slli t4,t4,0x10
+ 80000130: 055e8e93 addi t4,t4,85 # 550055 <_start-0x7faaffab>
+ 80000134: 011e9e93 slli t4,t4,0x11
+ 80000138: 0aae8e93 addi t4,t4,170
+ 8000013c: 00200193 li gp,2
+ 80000140: 61df1063 bne t5,t4,80000740 <fail>
+
+0000000080000144 <test_3>:
+ 80000144: 00002097 auipc ra,0x2
+ 80000148: ebc08093 addi ra,ra,-324 # 80002000 <begin_signature>
+ 8000014c: ffd50137 lui sp,0xffd50
+ 80000150: 0551011b addiw sp,sp,85
+ 80000154: 01011113 slli sp,sp,0x10
+ 80000158: 05510113 addi sp,sp,85 # ffffffffffd50055 <_end+0xffffffff7fd4e005>
+ 8000015c: 00d11113 slli sp,sp,0xd
+ 80000160: 00b10113 addi sp,sp,11
+ 80000164: 00c11113 slli sp,sp,0xc
+ 80000168: a0010113 addi sp,sp,-1536
+ 8000016c: 0020b423 sd sp,8(ra)
+ 80000170: 0080bf03 ld t5,8(ra)
+ 80000174: ffd50eb7 lui t4,0xffd50
+ 80000178: 055e8e9b addiw t4,t4,85
+ 8000017c: 010e9e93 slli t4,t4,0x10
+ 80000180: 055e8e93 addi t4,t4,85 # ffffffffffd50055 <_end+0xffffffff7fd4e005>
+ 80000184: 00de9e93 slli t4,t4,0xd
+ 80000188: 00be8e93 addi t4,t4,11
+ 8000018c: 00ce9e93 slli t4,t4,0xc
+ 80000190: a00e8e93 addi t4,t4,-1536
+ 80000194: 00300193 li gp,3
+ 80000198: 5bdf1463 bne t5,t4,80000740 <fail>
+
+000000008000019c <test_4>:
+ 8000019c: 00002097 auipc ra,0x2
+ 800001a0: e6408093 addi ra,ra,-412 # 80002000 <begin_signature>
+ 800001a4: 00550137 lui sp,0x550
+ 800001a8: 0551011b addiw sp,sp,85
+ 800001ac: 00d11113 slli sp,sp,0xd
+ 800001b0: 00b10113 addi sp,sp,11 # 55000b <_start-0x7faafff5>
+ 800001b4: 00c11113 slli sp,sp,0xc
+ 800001b8: a0110113 addi sp,sp,-1535
+ 800001bc: 00c11113 slli sp,sp,0xc
+ 800001c0: aa010113 addi sp,sp,-1376
+ 800001c4: 0020b823 sd sp,16(ra)
+ 800001c8: 0100bf03 ld t5,16(ra)
+ 800001cc: 00550eb7 lui t4,0x550
+ 800001d0: 055e8e9b addiw t4,t4,85
+ 800001d4: 00de9e93 slli t4,t4,0xd
+ 800001d8: 00be8e93 addi t4,t4,11 # 55000b <_start-0x7faafff5>
+ 800001dc: 00ce9e93 slli t4,t4,0xc
+ 800001e0: a01e8e93 addi t4,t4,-1535
+ 800001e4: 00ce9e93 slli t4,t4,0xc
+ 800001e8: aa0e8e93 addi t4,t4,-1376
+ 800001ec: 00400193 li gp,4
+ 800001f0: 55df1863 bne t5,t4,80000740 <fail>
+
+00000000800001f4 <test_5>:
+ 800001f4: 00002097 auipc ra,0x2
+ 800001f8: e0c08093 addi ra,ra,-500 # 80002000 <begin_signature>
+ 800001fc: fffd0137 lui sp,0xfffd0
+ 80000200: 0551011b addiw sp,sp,85
+ 80000204: 01011113 slli sp,sp,0x10
+ 80000208: 05510113 addi sp,sp,85 # fffffffffffd0055 <_end+0xffffffff7ffce005>
+ 8000020c: 01011113 slli sp,sp,0x10
+ 80000210: 05510113 addi sp,sp,85
+ 80000214: 00d11113 slli sp,sp,0xd
+ 80000218: 00a10113 addi sp,sp,10
+ 8000021c: 0020bc23 sd sp,24(ra)
+ 80000220: 0180bf03 ld t5,24(ra)
+ 80000224: fffd0eb7 lui t4,0xfffd0
+ 80000228: 055e8e9b addiw t4,t4,85
+ 8000022c: 010e9e93 slli t4,t4,0x10
+ 80000230: 055e8e93 addi t4,t4,85 # fffffffffffd0055 <_end+0xffffffff7ffce005>
+ 80000234: 010e9e93 slli t4,t4,0x10
+ 80000238: 055e8e93 addi t4,t4,85
+ 8000023c: 00de9e93 slli t4,t4,0xd
+ 80000240: 00ae8e93 addi t4,t4,10
+ 80000244: 00500193 li gp,5
+ 80000248: 4fdf1c63 bne t5,t4,80000740 <fail>
+
+000000008000024c <test_6>:
+ 8000024c: 00002097 auipc ra,0x2
+ 80000250: dec08093 addi ra,ra,-532 # 80002038 <tdat8>
+ 80000254: 00550137 lui sp,0x550
+ 80000258: 0551011b addiw sp,sp,85
+ 8000025c: 01011113 slli sp,sp,0x10
+ 80000260: 05510113 addi sp,sp,85 # 550055 <_start-0x7faaffab>
+ 80000264: 01111113 slli sp,sp,0x11
+ 80000268: 0aa10113 addi sp,sp,170
+ 8000026c: fe20b423 sd sp,-24(ra)
+ 80000270: fe80bf03 ld t5,-24(ra)
+ 80000274: 00550eb7 lui t4,0x550
+ 80000278: 055e8e9b addiw t4,t4,85
+ 8000027c: 010e9e93 slli t4,t4,0x10
+ 80000280: 055e8e93 addi t4,t4,85 # 550055 <_start-0x7faaffab>
+ 80000284: 011e9e93 slli t4,t4,0x11
+ 80000288: 0aae8e93 addi t4,t4,170
+ 8000028c: 00600193 li gp,6
+ 80000290: 4bdf1863 bne t5,t4,80000740 <fail>
+
+0000000080000294 <test_7>:
+ 80000294: 00002097 auipc ra,0x2
+ 80000298: da408093 addi ra,ra,-604 # 80002038 <tdat8>
+ 8000029c: ffd50137 lui sp,0xffd50
+ 800002a0: 0551011b addiw sp,sp,85
+ 800002a4: 01011113 slli sp,sp,0x10
+ 800002a8: 05510113 addi sp,sp,85 # ffffffffffd50055 <_end+0xffffffff7fd4e005>
+ 800002ac: 00d11113 slli sp,sp,0xd
+ 800002b0: 00b10113 addi sp,sp,11
+ 800002b4: 00c11113 slli sp,sp,0xc
+ 800002b8: a0010113 addi sp,sp,-1536
+ 800002bc: fe20b823 sd sp,-16(ra)
+ 800002c0: ff00bf03 ld t5,-16(ra)
+ 800002c4: ffd50eb7 lui t4,0xffd50
+ 800002c8: 055e8e9b addiw t4,t4,85
+ 800002cc: 010e9e93 slli t4,t4,0x10
+ 800002d0: 055e8e93 addi t4,t4,85 # ffffffffffd50055 <_end+0xffffffff7fd4e005>
+ 800002d4: 00de9e93 slli t4,t4,0xd
+ 800002d8: 00be8e93 addi t4,t4,11
+ 800002dc: 00ce9e93 slli t4,t4,0xc
+ 800002e0: a00e8e93 addi t4,t4,-1536
+ 800002e4: 00700193 li gp,7
+ 800002e8: 45df1c63 bne t5,t4,80000740 <fail>
+
+00000000800002ec <test_8>:
+ 800002ec: 00002097 auipc ra,0x2
+ 800002f0: d4c08093 addi ra,ra,-692 # 80002038 <tdat8>
+ 800002f4: 00550137 lui sp,0x550
+ 800002f8: 0551011b addiw sp,sp,85
+ 800002fc: 00d11113 slli sp,sp,0xd
+ 80000300: 00b10113 addi sp,sp,11 # 55000b <_start-0x7faafff5>
+ 80000304: 00c11113 slli sp,sp,0xc
+ 80000308: a0110113 addi sp,sp,-1535
+ 8000030c: 00c11113 slli sp,sp,0xc
+ 80000310: aa010113 addi sp,sp,-1376
+ 80000314: fe20bc23 sd sp,-8(ra)
+ 80000318: ff80bf03 ld t5,-8(ra)
+ 8000031c: 00550eb7 lui t4,0x550
+ 80000320: 055e8e9b addiw t4,t4,85
+ 80000324: 00de9e93 slli t4,t4,0xd
+ 80000328: 00be8e93 addi t4,t4,11 # 55000b <_start-0x7faafff5>
+ 8000032c: 00ce9e93 slli t4,t4,0xc
+ 80000330: a01e8e93 addi t4,t4,-1535
+ 80000334: 00ce9e93 slli t4,t4,0xc
+ 80000338: aa0e8e93 addi t4,t4,-1376
+ 8000033c: 00800193 li gp,8
+ 80000340: 41df1063 bne t5,t4,80000740 <fail>
+
+0000000080000344 <test_9>:
+ 80000344: 00002097 auipc ra,0x2
+ 80000348: cf408093 addi ra,ra,-780 # 80002038 <tdat8>
+ 8000034c: fffd0137 lui sp,0xfffd0
+ 80000350: 0551011b addiw sp,sp,85
+ 80000354: 01011113 slli sp,sp,0x10
+ 80000358: 05510113 addi sp,sp,85 # fffffffffffd0055 <_end+0xffffffff7ffce005>
+ 8000035c: 01011113 slli sp,sp,0x10
+ 80000360: 05510113 addi sp,sp,85
+ 80000364: 00d11113 slli sp,sp,0xd
+ 80000368: 00a10113 addi sp,sp,10
+ 8000036c: 0020b023 sd sp,0(ra)
+ 80000370: 0000bf03 ld t5,0(ra)
+ 80000374: fffd0eb7 lui t4,0xfffd0
+ 80000378: 055e8e9b addiw t4,t4,85
+ 8000037c: 010e9e93 slli t4,t4,0x10
+ 80000380: 055e8e93 addi t4,t4,85 # fffffffffffd0055 <_end+0xffffffff7ffce005>
+ 80000384: 010e9e93 slli t4,t4,0x10
+ 80000388: 055e8e93 addi t4,t4,85
+ 8000038c: 00de9e93 slli t4,t4,0xd
+ 80000390: 00ae8e93 addi t4,t4,10
+ 80000394: 00900193 li gp,9
+ 80000398: 3bdf1463 bne t5,t4,80000740 <fail>
+
+000000008000039c <test_10>:
+ 8000039c: 00002097 auipc ra,0x2
+ 800003a0: ca408093 addi ra,ra,-860 # 80002040 <tdat9>
+ 800003a4: 00247137 lui sp,0x247
+ 800003a8: 8ad1011b addiw sp,sp,-1875
+ 800003ac: 00e11113 slli sp,sp,0xe
+ 800003b0: c0910113 addi sp,sp,-1015 # 246c09 <_start-0x7fdb93f7>
+ 800003b4: 00d11113 slli sp,sp,0xd
+ 800003b8: 34510113 addi sp,sp,837
+ 800003bc: 00c11113 slli sp,sp,0xc
+ 800003c0: 67810113 addi sp,sp,1656
+ 800003c4: fe008213 addi tp,ra,-32
+ 800003c8: 02223023 sd sp,32(tp) # 20 <_start-0x7fffffe0>
+ 800003cc: 0000b283 ld t0,0(ra)
+ 800003d0: 00247eb7 lui t4,0x247
+ 800003d4: 8ade8e9b addiw t4,t4,-1875
+ 800003d8: 00ee9e93 slli t4,t4,0xe
+ 800003dc: c09e8e93 addi t4,t4,-1015 # 246c09 <_start-0x7fdb93f7>
+ 800003e0: 00de9e93 slli t4,t4,0xd
+ 800003e4: 345e8e93 addi t4,t4,837
+ 800003e8: 00ce9e93 slli t4,t4,0xc
+ 800003ec: 678e8e93 addi t4,t4,1656
+ 800003f0: 00a00193 li gp,10
+ 800003f4: 35d29663 bne t0,t4,80000740 <fail>
+
+00000000800003f8 <test_11>:
+ 800003f8: 00002097 auipc ra,0x2
+ 800003fc: c4808093 addi ra,ra,-952 # 80002040 <tdat9>
+ 80000400: 00b04137 lui sp,0xb04
+ 80000404: 2611011b addiw sp,sp,609
+ 80000408: 00c11113 slli sp,sp,0xc
+ 8000040c: 30b10113 addi sp,sp,779 # b0430b <_start-0x7f4fbcf5>
+ 80000410: 00f11113 slli sp,sp,0xf
+ 80000414: 21310113 addi sp,sp,531
+ 80000418: 00c11113 slli sp,sp,0xc
+ 8000041c: 09810113 addi sp,sp,152
+ 80000420: ffd08093 addi ra,ra,-3
+ 80000424: 0020b5a3 sd sp,11(ra)
+ 80000428: 00002217 auipc tp,0x2
+ 8000042c: c2020213 addi tp,tp,-992 # 80002048 <tdat10>
+ 80000430: 00023283 ld t0,0(tp) # 0 <_start-0x80000000>
+ 80000434: 00b04eb7 lui t4,0xb04
+ 80000438: 261e8e9b addiw t4,t4,609
+ 8000043c: 00ce9e93 slli t4,t4,0xc
+ 80000440: 30be8e93 addi t4,t4,779 # b0430b <_start-0x7f4fbcf5>
+ 80000444: 00fe9e93 slli t4,t4,0xf
+ 80000448: 213e8e93 addi t4,t4,531
+ 8000044c: 00ce9e93 slli t4,t4,0xc
+ 80000450: 098e8e93 addi t4,t4,152
+ 80000454: 00b00193 li gp,11
+ 80000458: 2fd29463 bne t0,t4,80000740 <fail>
+
+000000008000045c <test_12>:
+ 8000045c: 00c00193 li gp,12
+ 80000460: 00000213 li tp,0
+ 80000464: 0abbd0b7 lui ra,0xabbd
+ 80000468: cdd0809b addiw ra,ra,-803
+ 8000046c: 00002117 auipc sp,0x2
+ 80000470: b9410113 addi sp,sp,-1132 # 80002000 <begin_signature>
+ 80000474: 00113023 sd ra,0(sp)
+ 80000478: 00013f03 ld t5,0(sp)
+ 8000047c: 0abbdeb7 lui t4,0xabbd
+ 80000480: cdde8e9b addiw t4,t4,-803
+ 80000484: 2bdf1e63 bne t5,t4,80000740 <fail>
+ 80000488: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 8000048c: 00200293 li t0,2
+ 80000490: fc521ae3 bne tp,t0,80000464 <test_12+0x8>
+
+0000000080000494 <test_13>:
+ 80000494: 00d00193 li gp,13
+ 80000498: 00000213 li tp,0
+ 8000049c: 0aabc0b7 lui ra,0xaabc
+ 800004a0: ccd0809b addiw ra,ra,-819
+ 800004a4: 00002117 auipc sp,0x2
+ 800004a8: b5c10113 addi sp,sp,-1188 # 80002000 <begin_signature>
+ 800004ac: 00000013 nop
+ 800004b0: 00113423 sd ra,8(sp)
+ 800004b4: 00813f03 ld t5,8(sp)
+ 800004b8: 0aabceb7 lui t4,0xaabc
+ 800004bc: ccde8e9b addiw t4,t4,-819
+ 800004c0: 29df1063 bne t5,t4,80000740 <fail>
+ 800004c4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800004c8: 00200293 li t0,2
+ 800004cc: fc5218e3 bne tp,t0,8000049c <test_13+0x8>
+
+00000000800004d0 <test_14>:
+ 800004d0: 00e00193 li gp,14
+ 800004d4: 00000213 li tp,0
+ 800004d8: 0daac0b7 lui ra,0xdaac
+ 800004dc: bcc0809b addiw ra,ra,-1076
+ 800004e0: 00002117 auipc sp,0x2
+ 800004e4: b2010113 addi sp,sp,-1248 # 80002000 <begin_signature>
+ 800004e8: 00000013 nop
+ 800004ec: 00000013 nop
+ 800004f0: 00113823 sd ra,16(sp)
+ 800004f4: 01013f03 ld t5,16(sp)
+ 800004f8: 0daaceb7 lui t4,0xdaac
+ 800004fc: bcce8e9b addiw t4,t4,-1076
+ 80000500: 25df1063 bne t5,t4,80000740 <fail>
+ 80000504: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000508: 00200293 li t0,2
+ 8000050c: fc5216e3 bne tp,t0,800004d8 <test_14+0x8>
+
+0000000080000510 <test_15>:
+ 80000510: 00f00193 li gp,15
+ 80000514: 00000213 li tp,0
+ 80000518: 0ddab0b7 lui ra,0xddab
+ 8000051c: bbc0809b addiw ra,ra,-1092
+ 80000520: 00000013 nop
+ 80000524: 00002117 auipc sp,0x2
+ 80000528: adc10113 addi sp,sp,-1316 # 80002000 <begin_signature>
+ 8000052c: 00113c23 sd ra,24(sp)
+ 80000530: 01813f03 ld t5,24(sp)
+ 80000534: 0ddabeb7 lui t4,0xddab
+ 80000538: bbce8e9b addiw t4,t4,-1092
+ 8000053c: 21df1263 bne t5,t4,80000740 <fail>
+ 80000540: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000544: 00200293 li t0,2
+ 80000548: fc5218e3 bne tp,t0,80000518 <test_15+0x8>
+
+000000008000054c <test_16>:
+ 8000054c: 01000193 li gp,16
+ 80000550: 00000213 li tp,0
+ 80000554: 0cddb0b7 lui ra,0xcddb
+ 80000558: abb0809b addiw ra,ra,-1349
+ 8000055c: 00000013 nop
+ 80000560: 00002117 auipc sp,0x2
+ 80000564: aa010113 addi sp,sp,-1376 # 80002000 <begin_signature>
+ 80000568: 00000013 nop
+ 8000056c: 02113023 sd ra,32(sp)
+ 80000570: 02013f03 ld t5,32(sp)
+ 80000574: 0cddbeb7 lui t4,0xcddb
+ 80000578: abbe8e9b addiw t4,t4,-1349
+ 8000057c: 1ddf1263 bne t5,t4,80000740 <fail>
+ 80000580: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000584: 00200293 li t0,2
+ 80000588: fc5216e3 bne tp,t0,80000554 <test_16+0x8>
+
+000000008000058c <test_17>:
+ 8000058c: 01100193 li gp,17
+ 80000590: 00000213 li tp,0
+ 80000594: 0ccde0b7 lui ra,0xccde
+ 80000598: aab0809b addiw ra,ra,-1365
+ 8000059c: 00000013 nop
+ 800005a0: 00000013 nop
+ 800005a4: 00002117 auipc sp,0x2
+ 800005a8: a5c10113 addi sp,sp,-1444 # 80002000 <begin_signature>
+ 800005ac: 02113423 sd ra,40(sp)
+ 800005b0: 02813f03 ld t5,40(sp)
+ 800005b4: 0ccdeeb7 lui t4,0xccde
+ 800005b8: aabe8e9b addiw t4,t4,-1365
+ 800005bc: 19df1263 bne t5,t4,80000740 <fail>
+ 800005c0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800005c4: 00200293 li t0,2
+ 800005c8: fc5216e3 bne tp,t0,80000594 <test_17+0x8>
+
+00000000800005cc <test_18>:
+ 800005cc: 01200193 li gp,18
+ 800005d0: 00000213 li tp,0
+ 800005d4: 00002117 auipc sp,0x2
+ 800005d8: a2c10113 addi sp,sp,-1492 # 80002000 <begin_signature>
+ 800005dc: 001120b7 lui ra,0x112
+ 800005e0: 2330809b addiw ra,ra,563
+ 800005e4: 00113023 sd ra,0(sp)
+ 800005e8: 00013f03 ld t5,0(sp)
+ 800005ec: 00112eb7 lui t4,0x112
+ 800005f0: 233e8e9b addiw t4,t4,563
+ 800005f4: 15df1663 bne t5,t4,80000740 <fail>
+ 800005f8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800005fc: 00200293 li t0,2
+ 80000600: fc521ae3 bne tp,t0,800005d4 <test_18+0x8>
+
+0000000080000604 <test_19>:
+ 80000604: 01300193 li gp,19
+ 80000608: 00000213 li tp,0
+ 8000060c: 00002117 auipc sp,0x2
+ 80000610: 9f410113 addi sp,sp,-1548 # 80002000 <begin_signature>
+ 80000614: 300110b7 lui ra,0x30011
+ 80000618: 2230809b addiw ra,ra,547
+ 8000061c: 00000013 nop
+ 80000620: 00113423 sd ra,8(sp)
+ 80000624: 00813f03 ld t5,8(sp)
+ 80000628: 30011eb7 lui t4,0x30011
+ 8000062c: 223e8e9b addiw t4,t4,547
+ 80000630: 11df1863 bne t5,t4,80000740 <fail>
+ 80000634: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000638: 00200293 li t0,2
+ 8000063c: fc5218e3 bne tp,t0,8000060c <test_19+0x8>
+
+0000000080000640 <test_20>:
+ 80000640: 01400193 li gp,20
+ 80000644: 00000213 li tp,0
+ 80000648: 00002117 auipc sp,0x2
+ 8000064c: 9b810113 addi sp,sp,-1608 # 80002000 <begin_signature>
+ 80000650: 330010b7 lui ra,0x33001
+ 80000654: 1220809b addiw ra,ra,290
+ 80000658: 00000013 nop
+ 8000065c: 00000013 nop
+ 80000660: 00113823 sd ra,16(sp)
+ 80000664: 01013f03 ld t5,16(sp)
+ 80000668: 33001eb7 lui t4,0x33001
+ 8000066c: 122e8e9b addiw t4,t4,290
+ 80000670: 0ddf1863 bne t5,t4,80000740 <fail>
+ 80000674: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000678: 00200293 li t0,2
+ 8000067c: fc5216e3 bne tp,t0,80000648 <test_20+0x8>
+
+0000000080000680 <test_21>:
+ 80000680: 01500193 li gp,21
+ 80000684: 00000213 li tp,0
+ 80000688: 00002117 auipc sp,0x2
+ 8000068c: 97810113 addi sp,sp,-1672 # 80002000 <begin_signature>
+ 80000690: 00000013 nop
+ 80000694: 233000b7 lui ra,0x23300
+ 80000698: 1120809b addiw ra,ra,274
+ 8000069c: 00113c23 sd ra,24(sp)
+ 800006a0: 01813f03 ld t5,24(sp)
+ 800006a4: 23300eb7 lui t4,0x23300
+ 800006a8: 112e8e9b addiw t4,t4,274
+ 800006ac: 09df1a63 bne t5,t4,80000740 <fail>
+ 800006b0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800006b4: 00200293 li t0,2
+ 800006b8: fc5218e3 bne tp,t0,80000688 <test_21+0x8>
+
+00000000800006bc <test_22>:
+ 800006bc: 01600193 li gp,22
+ 800006c0: 00000213 li tp,0
+ 800006c4: 00002117 auipc sp,0x2
+ 800006c8: 93c10113 addi sp,sp,-1732 # 80002000 <begin_signature>
+ 800006cc: 00000013 nop
+ 800006d0: 223300b7 lui ra,0x22330
+ 800006d4: 0110809b addiw ra,ra,17
+ 800006d8: 00000013 nop
+ 800006dc: 02113023 sd ra,32(sp)
+ 800006e0: 02013f03 ld t5,32(sp)
+ 800006e4: 22330eb7 lui t4,0x22330
+ 800006e8: 011e8e9b addiw t4,t4,17
+ 800006ec: 05df1a63 bne t5,t4,80000740 <fail>
+ 800006f0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800006f4: 00200293 li t0,2
+ 800006f8: fc5216e3 bne tp,t0,800006c4 <test_22+0x8>
+
+00000000800006fc <test_23>:
+ 800006fc: 01700193 li gp,23
+ 80000700: 00000213 li tp,0
+ 80000704: 00002117 auipc sp,0x2
+ 80000708: 8fc10113 addi sp,sp,-1796 # 80002000 <begin_signature>
+ 8000070c: 00000013 nop
+ 80000710: 00000013 nop
+ 80000714: 122330b7 lui ra,0x12233
+ 80000718: 0010809b addiw ra,ra,1
+ 8000071c: 02113423 sd ra,40(sp)
+ 80000720: 02813f03 ld t5,40(sp)
+ 80000724: 12233eb7 lui t4,0x12233
+ 80000728: 001e8e9b addiw t4,t4,1
+ 8000072c: 01df1a63 bne t5,t4,80000740 <fail>
+ 80000730: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000734: 00200293 li t0,2
+ 80000738: fc5216e3 bne tp,t0,80000704 <test_23+0x8>
+ 8000073c: 00301c63 bne zero,gp,80000754 <pass>
+
+0000000080000740 <fail>:
+ 80000740: 0ff0000f fence
+ 80000744: 00018063 beqz gp,80000744 <fail+0x4>
+ 80000748: 00119193 slli gp,gp,0x1
+ 8000074c: 0011e193 ori gp,gp,1
+ 80000750: 00000073 ecall
+
+0000000080000754 <pass>:
+ 80000754: 0ff0000f fence
+ 80000758: 00100193 li gp,1
+ 8000075c: 00000073 ecall
+ 80000760: c0001073 unimp
+ 80000764: 0000 unimp
+ 80000766: 0000 unimp
+ 80000768: 0000 unimp
+ 8000076a: 0000 unimp
+ 8000076c: 0000 unimp
+ 8000076e: 0000 unimp
+ 80000770: 0000 unimp
+ 80000772: 0000 unimp
+ 80000774: 0000 unimp
+ 80000776: 0000 unimp
+ 80000778: 0000 unimp
+ 8000077a: 0000 unimp
+ 8000077c: 0000 unimp
+ 8000077e: 0000 unimp
+ 80000780: 0000 unimp
+ 80000782: 0000 unimp
+
+Disassembly of section .data:
+
+0000000080002000 <begin_signature>:
+ 80002000: deadbeef jal t4,7ffdd5ea <_start-0x22a16>
+ 80002004: deadbeef jal t4,7ffdd5ee <_start-0x22a12>
+
+0000000080002008 <tdat2>:
+ 80002008: deadbeef jal t4,7ffdd5f2 <_start-0x22a0e>
+ 8000200c: deadbeef jal t4,7ffdd5f6 <_start-0x22a0a>
+
+0000000080002010 <tdat3>:
+ 80002010: deadbeef jal t4,7ffdd5fa <_start-0x22a06>
+ 80002014: deadbeef jal t4,7ffdd5fe <_start-0x22a02>
+
+0000000080002018 <tdat4>:
+ 80002018: deadbeef jal t4,7ffdd602 <_start-0x229fe>
+ 8000201c: deadbeef jal t4,7ffdd606 <_start-0x229fa>
+
+0000000080002020 <tdat5>:
+ 80002020: deadbeef jal t4,7ffdd60a <_start-0x229f6>
+ 80002024: deadbeef jal t4,7ffdd60e <_start-0x229f2>
+
+0000000080002028 <tdat6>:
+ 80002028: deadbeef jal t4,7ffdd612 <_start-0x229ee>
+ 8000202c: deadbeef jal t4,7ffdd616 <_start-0x229ea>
+
+0000000080002030 <tdat7>:
+ 80002030: deadbeef jal t4,7ffdd61a <_start-0x229e6>
+ 80002034: deadbeef jal t4,7ffdd61e <_start-0x229e2>
+
+0000000080002038 <tdat8>:
+ 80002038: deadbeef jal t4,7ffdd622 <_start-0x229de>
+ 8000203c: deadbeef jal t4,7ffdd626 <_start-0x229da>
+
+0000000080002040 <tdat9>:
+ 80002040: deadbeef jal t4,7ffdd62a <_start-0x229d6>
+ 80002044: deadbeef jal t4,7ffdd62e <_start-0x229d2>
+
+0000000080002048 <tdat10>:
+ 80002048: deadbeef jal t4,7ffdd632 <_start-0x229ce>
+ 8000204c: deadbeef jal t4,7ffdd636 <_start-0x229ca>
diff --git a/test/tests/rv64ui-p-sd.elf b/test/tests/rv64ui-p-sd.elf
new file mode 100644
index 0000000..8ebb0db
--- /dev/null
+++ b/test/tests/rv64ui-p-sd.elf
Binary files differ
diff --git a/test/tests/rv64ui-p-sh.dump b/test/tests/rv64ui-p-sh.dump
new file mode 100644
index 0000000..dc11b44
--- /dev/null
+++ b/test/tests/rv64ui-p-sh.dump
@@ -0,0 +1,480 @@
+
+rv64ui-p-sh: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <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>
+
+000000008000011c <test_3>:
+ 8000011c: 00002097 auipc ra,0x2
+ 80000120: ee408093 addi ra,ra,-284 # 80002000 <begin_signature>
+ 80000124: ffffb137 lui sp,0xffffb
+ 80000128: a001011b addiw sp,sp,-1536
+ 8000012c: 00209123 sh sp,2(ra)
+ 80000130: 00209f03 lh t5,2(ra)
+ 80000134: ffffbeb7 lui t4,0xffffb
+ 80000138: a00e8e9b addiw t4,t4,-1536
+ 8000013c: 00300193 li gp,3
+ 80000140: 43df1a63 bne t5,t4,80000574 <fail>
+
+0000000080000144 <test_4>:
+ 80000144: 00002097 auipc ra,0x2
+ 80000148: ebc08093 addi ra,ra,-324 # 80002000 <begin_signature>
+ 8000014c: beef1137 lui sp,0xbeef1
+ 80000150: aa01011b addiw sp,sp,-1376
+ 80000154: 00209223 sh sp,4(ra)
+ 80000158: 0040af03 lw t5,4(ra)
+ 8000015c: beef1eb7 lui t4,0xbeef1
+ 80000160: aa0e8e9b addiw t4,t4,-1376
+ 80000164: 00400193 li gp,4
+ 80000168: 41df1663 bne t5,t4,80000574 <fail>
+
+000000008000016c <test_5>:
+ 8000016c: 00002097 auipc ra,0x2
+ 80000170: e9408093 addi ra,ra,-364 # 80002000 <begin_signature>
+ 80000174: ffffa137 lui sp,0xffffa
+ 80000178: 00a1011b addiw sp,sp,10
+ 8000017c: 00209323 sh sp,6(ra)
+ 80000180: 00609f03 lh t5,6(ra)
+ 80000184: ffffaeb7 lui t4,0xffffa
+ 80000188: 00ae8e9b addiw t4,t4,10
+ 8000018c: 00500193 li gp,5
+ 80000190: 3fdf1263 bne t5,t4,80000574 <fail>
+
+0000000080000194 <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>
+
+00000000800001b4 <test_7>:
+ 800001b4: 00002097 auipc ra,0x2
+ 800001b8: e5a08093 addi ra,ra,-422 # 8000200e <tdat8>
+ 800001bc: ffffb137 lui sp,0xffffb
+ 800001c0: a001011b addiw sp,sp,-1536
+ 800001c4: fe209e23 sh sp,-4(ra)
+ 800001c8: ffc09f03 lh t5,-4(ra)
+ 800001cc: ffffbeb7 lui t4,0xffffb
+ 800001d0: a00e8e9b addiw t4,t4,-1536
+ 800001d4: 00700193 li gp,7
+ 800001d8: 39df1e63 bne t5,t4,80000574 <fail>
+
+00000000800001dc <test_8>:
+ 800001dc: 00002097 auipc ra,0x2
+ 800001e0: e3208093 addi ra,ra,-462 # 8000200e <tdat8>
+ 800001e4: 00001137 lui sp,0x1
+ 800001e8: aa01011b addiw sp,sp,-1376
+ 800001ec: fe209f23 sh sp,-2(ra)
+ 800001f0: ffe09f03 lh t5,-2(ra)
+ 800001f4: 00001eb7 lui t4,0x1
+ 800001f8: aa0e8e9b addiw t4,t4,-1376
+ 800001fc: 00800193 li gp,8
+ 80000200: 37df1a63 bne t5,t4,80000574 <fail>
+
+0000000080000204 <test_9>:
+ 80000204: 00002097 auipc ra,0x2
+ 80000208: e0a08093 addi ra,ra,-502 # 8000200e <tdat8>
+ 8000020c: ffffa137 lui sp,0xffffa
+ 80000210: 00a1011b addiw sp,sp,10
+ 80000214: 00209023 sh sp,0(ra)
+ 80000218: 00009f03 lh t5,0(ra)
+ 8000021c: ffffaeb7 lui t4,0xffffa
+ 80000220: 00ae8e9b addiw t4,t4,10
+ 80000224: 00900193 li gp,9
+ 80000228: 35df1663 bne t5,t4,80000574 <fail>
+
+000000008000022c <test_10>:
+ 8000022c: 00002097 auipc ra,0x2
+ 80000230: de408093 addi ra,ra,-540 # 80002010 <tdat9>
+ 80000234: 12345137 lui sp,0x12345
+ 80000238: 6781011b addiw sp,sp,1656
+ 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: 678e8e9b addiw t4,t4,1656
+ 80000250: 00a00193 li gp,10
+ 80000254: 33d29063 bne t0,t4,80000574 <fail>
+
+0000000080000258 <test_11>:
+ 80000258: 00002097 auipc ra,0x2
+ 8000025c: db808093 addi ra,ra,-584 # 80002010 <tdat9>
+ 80000260: 00003137 lui sp,0x3
+ 80000264: 0981011b addiw sp,sp,152
+ 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: 098e8e9b addiw t4,t4,152
+ 80000284: 00b00193 li gp,11
+ 80000288: 2fd29663 bne t0,t4,80000574 <fail>
+
+000000008000028c <test_12>:
+ 8000028c: 00c00193 li gp,12
+ 80000290: 00000213 li tp,0
+ 80000294: ffffd0b7 lui ra,0xffffd
+ 80000298: cdd0809b addiw ra,ra,-803
+ 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: cdde8e9b addiw t4,t4,-803
+ 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>
+
+00000000800002c4 <test_13>:
+ 800002c4: 00d00193 li gp,13
+ 800002c8: 00000213 li tp,0
+ 800002cc: ffffc0b7 lui ra,0xffffc
+ 800002d0: ccd0809b addiw ra,ra,-819
+ 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: ccde8e9b addiw t4,t4,-819
+ 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>
+
+0000000080000300 <test_14>:
+ 80000300: 00e00193 li gp,14
+ 80000304: 00000213 li tp,0
+ 80000308: ffffc0b7 lui ra,0xffffc
+ 8000030c: bcc0809b addiw ra,ra,-1076
+ 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: bcce8e9b addiw t4,t4,-1076
+ 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>
+
+0000000080000340 <test_15>:
+ 80000340: 00f00193 li gp,15
+ 80000344: 00000213 li tp,0
+ 80000348: ffffb0b7 lui ra,0xffffb
+ 8000034c: bbc0809b addiw ra,ra,-1092
+ 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: bbce8e9b addiw t4,t4,-1092
+ 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>
+
+000000008000037c <test_16>:
+ 8000037c: 01000193 li gp,16
+ 80000380: 00000213 li tp,0
+ 80000384: ffffb0b7 lui ra,0xffffb
+ 80000388: abb0809b addiw ra,ra,-1349
+ 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: abbe8e9b addiw t4,t4,-1349
+ 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>
+
+00000000800003bc <test_17>:
+ 800003bc: 01100193 li gp,17
+ 800003c0: 00000213 li tp,0
+ 800003c4: ffffe0b7 lui ra,0xffffe
+ 800003c8: aab0809b addiw ra,ra,-1365
+ 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: aabe8e9b addiw t4,t4,-1365
+ 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>
+
+00000000800003fc <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: 2330809b addiw ra,ra,563
+ 80000414: 00111023 sh ra,0(sp)
+ 80000418: 00011f03 lh t5,0(sp)
+ 8000041c: 00002eb7 lui t4,0x2
+ 80000420: 233e8e9b addiw t4,t4,563
+ 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>
+
+0000000080000434 <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: 2230809b addiw ra,ra,547
+ 8000044c: 00000013 nop
+ 80000450: 00111123 sh ra,2(sp)
+ 80000454: 00211f03 lh t5,2(sp)
+ 80000458: 00001eb7 lui t4,0x1
+ 8000045c: 223e8e9b addiw t4,t4,547
+ 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>
+
+0000000080000470 <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: 1220809b addiw ra,ra,290
+ 80000488: 00000013 nop
+ 8000048c: 00000013 nop
+ 80000490: 00111223 sh ra,4(sp)
+ 80000494: 00411f03 lh t5,4(sp)
+ 80000498: 00001eb7 lui t4,0x1
+ 8000049c: 122e8e9b addiw t4,t4,290
+ 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>
+
+00000000800004b0 <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>
+
+00000000800004e4 <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>
+
+000000008000051c <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: 0010809b addiw ra,ra,1
+ 8000053c: 00111523 sh ra,10(sp)
+ 80000540: 00a11f03 lh t5,10(sp)
+ 80000544: 00003eb7 lui t4,0x3
+ 80000548: 001e8e9b addiw t4,t4,1
+ 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: eef5051b addiw a0,a0,-273
+ 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>
+
+0000000080000574 <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
+
+0000000080000588 <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:
+
+0000000080002000 <begin_signature>:
+ 80002000: jal t4,7fffd3ee <_start-0x2c12>
+
+0000000080002002 <tdat2>:
+ 80002002: jal t4,7fffd3f0 <_start-0x2c10>
+
+0000000080002004 <tdat3>:
+ 80002004: jal t4,7fffd3f2 <_start-0x2c0e>
+
+0000000080002006 <tdat4>:
+ 80002006: jal t4,7fffd3f4 <_start-0x2c0c>
+
+0000000080002008 <tdat5>:
+ 80002008: jal t4,7fffd3f6 <_start-0x2c0a>
+
+000000008000200a <tdat6>:
+ 8000200a: jal t4,7fffd3f8 <_start-0x2c08>
+
+000000008000200c <tdat7>:
+ 8000200c: jal t4,7fffd3fa <_start-0x2c06>
+
+000000008000200e <tdat8>:
+ 8000200e: jal t4,7fffd3fc <_start-0x2c04>
+
+0000000080002010 <tdat9>:
+ 80002010: jal t4,7fffd3fe <_start-0x2c02>
+
+0000000080002012 <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/tests/rv64ui-p-sh.elf b/test/tests/rv64ui-p-sh.elf
new file mode 100644
index 0000000..5ba031e
--- /dev/null
+++ b/test/tests/rv64ui-p-sh.elf
Binary files differ
diff --git a/test/tests/rv64ui-p-simple.dump b/test/tests/rv64ui-p-simple.dump
new file mode 100644
index 0000000..7a05fb7
--- /dev/null
+++ b/test/tests/rv64ui-p-simple.dump
@@ -0,0 +1,110 @@
+
+rv64ui-p-simple: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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/tests/rv64ui-p-simple.elf b/test/tests/rv64ui-p-simple.elf
new file mode 100644
index 0000000..bc8cb92
--- /dev/null
+++ b/test/tests/rv64ui-p-simple.elf
Binary files differ
diff --git a/test/tests/rv64ui-p-sll.dump b/test/tests/rv64ui-p-sll.dump
new file mode 100644
index 0000000..c2ac48f
--- /dev/null
+++ b/test/tests/rv64ui-p-sll.dump
@@ -0,0 +1,580 @@
+
+rv64ui-p-sll: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <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: 5fdf1c63 bne t5,t4,80000708 <fail>
+
+0000000080000114 <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: 5fdf1063 bne t5,t4,80000708 <fail>
+
+000000008000012c <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: 5ddf1463 bne t5,t4,80000708 <fail>
+
+0000000080000144 <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: 5bdf1863 bne t5,t4,80000708 <fail>
+
+000000008000015c <test_6>:
+ 8000015c: 00100093 li ra,1
+ 80000160: 01f00113 li sp,31
+ 80000164: 00209f33 sll t5,ra,sp
+ 80000168: 00100e9b addiw t4,zero,1
+ 8000016c: 01fe9e93 slli t4,t4,0x1f
+ 80000170: 00600193 li gp,6
+ 80000174: 59df1a63 bne t5,t4,80000708 <fail>
+
+0000000080000178 <test_7>:
+ 80000178: fff00093 li ra,-1
+ 8000017c: 00000113 li sp,0
+ 80000180: 00209f33 sll t5,ra,sp
+ 80000184: fff00e93 li t4,-1
+ 80000188: 00700193 li gp,7
+ 8000018c: 57df1e63 bne t5,t4,80000708 <fail>
+
+0000000080000190 <test_8>:
+ 80000190: fff00093 li ra,-1
+ 80000194: 00100113 li sp,1
+ 80000198: 00209f33 sll t5,ra,sp
+ 8000019c: ffe00e93 li t4,-2
+ 800001a0: 00800193 li gp,8
+ 800001a4: 57df1263 bne t5,t4,80000708 <fail>
+
+00000000800001a8 <test_9>:
+ 800001a8: fff00093 li ra,-1
+ 800001ac: 00700113 li sp,7
+ 800001b0: 00209f33 sll t5,ra,sp
+ 800001b4: f8000e93 li t4,-128
+ 800001b8: 00900193 li gp,9
+ 800001bc: 55df1663 bne t5,t4,80000708 <fail>
+
+00000000800001c0 <test_10>:
+ 800001c0: fff00093 li ra,-1
+ 800001c4: 00e00113 li sp,14
+ 800001c8: 00209f33 sll t5,ra,sp
+ 800001cc: ffffceb7 lui t4,0xffffc
+ 800001d0: 00a00193 li gp,10
+ 800001d4: 53df1a63 bne t5,t4,80000708 <fail>
+
+00000000800001d8 <test_11>:
+ 800001d8: fff00093 li ra,-1
+ 800001dc: 01f00113 li sp,31
+ 800001e0: 00209f33 sll t5,ra,sp
+ 800001e4: 80000eb7 lui t4,0x80000
+ 800001e8: 00b00193 li gp,11
+ 800001ec: 51df1e63 bne t5,t4,80000708 <fail>
+
+00000000800001f0 <test_12>:
+ 800001f0: 212120b7 lui ra,0x21212
+ 800001f4: 1210809b addiw ra,ra,289
+ 800001f8: 00000113 li sp,0
+ 800001fc: 00209f33 sll t5,ra,sp
+ 80000200: 21212eb7 lui t4,0x21212
+ 80000204: 121e8e9b addiw t4,t4,289
+ 80000208: 00c00193 li gp,12
+ 8000020c: 4fdf1e63 bne t5,t4,80000708 <fail>
+
+0000000080000210 <test_13>:
+ 80000210: 212120b7 lui ra,0x21212
+ 80000214: 1210809b addiw ra,ra,289
+ 80000218: 00100113 li sp,1
+ 8000021c: 00209f33 sll t5,ra,sp
+ 80000220: 42424eb7 lui t4,0x42424
+ 80000224: 242e8e9b addiw t4,t4,578
+ 80000228: 00d00193 li gp,13
+ 8000022c: 4ddf1e63 bne t5,t4,80000708 <fail>
+
+0000000080000230 <test_14>:
+ 80000230: 212120b7 lui ra,0x21212
+ 80000234: 1210809b addiw ra,ra,289
+ 80000238: 00700113 li sp,7
+ 8000023c: 00209f33 sll t5,ra,sp
+ 80000240: 01091eb7 lui t4,0x1091
+ 80000244: 909e8e9b addiw t4,t4,-1783
+ 80000248: 00ce9e93 slli t4,t4,0xc
+ 8000024c: 080e8e93 addi t4,t4,128 # 1091080 <_start-0x7ef6ef80>
+ 80000250: 00e00193 li gp,14
+ 80000254: 4bdf1a63 bne t5,t4,80000708 <fail>
+
+0000000080000258 <test_15>:
+ 80000258: 212120b7 lui ra,0x21212
+ 8000025c: 1210809b addiw ra,ra,289
+ 80000260: 00e00113 li sp,14
+ 80000264: 00209f33 sll t5,ra,sp
+ 80000268: 21212eb7 lui t4,0x21212
+ 8000026c: 121e8e9b addiw t4,t4,289
+ 80000270: 00ee9e93 slli t4,t4,0xe
+ 80000274: 00f00193 li gp,15
+ 80000278: 49df1863 bne t5,t4,80000708 <fail>
+
+000000008000027c <test_16>:
+ 8000027c: 212120b7 lui ra,0x21212
+ 80000280: 1210809b addiw ra,ra,289
+ 80000284: 01f00113 li sp,31
+ 80000288: 00209f33 sll t5,ra,sp
+ 8000028c: 21212eb7 lui t4,0x21212
+ 80000290: 121e8e9b addiw t4,t4,289
+ 80000294: 01fe9e93 slli t4,t4,0x1f
+ 80000298: 01000193 li gp,16
+ 8000029c: 47df1663 bne t5,t4,80000708 <fail>
+
+00000000800002a0 <test_17>:
+ 800002a0: 212120b7 lui ra,0x21212
+ 800002a4: 1210809b addiw ra,ra,289
+ 800002a8: fc000113 li sp,-64
+ 800002ac: 00209f33 sll t5,ra,sp
+ 800002b0: 21212eb7 lui t4,0x21212
+ 800002b4: 121e8e9b addiw t4,t4,289
+ 800002b8: 01100193 li gp,17
+ 800002bc: 45df1663 bne t5,t4,80000708 <fail>
+
+00000000800002c0 <test_18>:
+ 800002c0: 212120b7 lui ra,0x21212
+ 800002c4: 1210809b addiw ra,ra,289
+ 800002c8: fc100113 li sp,-63
+ 800002cc: 00209f33 sll t5,ra,sp
+ 800002d0: 42424eb7 lui t4,0x42424
+ 800002d4: 242e8e9b addiw t4,t4,578
+ 800002d8: 01200193 li gp,18
+ 800002dc: 43df1663 bne t5,t4,80000708 <fail>
+
+00000000800002e0 <test_19>:
+ 800002e0: 212120b7 lui ra,0x21212
+ 800002e4: 1210809b addiw ra,ra,289
+ 800002e8: fc700113 li sp,-57
+ 800002ec: 00209f33 sll t5,ra,sp
+ 800002f0: 01091eb7 lui t4,0x1091
+ 800002f4: 909e8e9b addiw t4,t4,-1783
+ 800002f8: 00ce9e93 slli t4,t4,0xc
+ 800002fc: 080e8e93 addi t4,t4,128 # 1091080 <_start-0x7ef6ef80>
+ 80000300: 01300193 li gp,19
+ 80000304: 41df1263 bne t5,t4,80000708 <fail>
+
+0000000080000308 <test_20>:
+ 80000308: 212120b7 lui ra,0x21212
+ 8000030c: 1210809b addiw ra,ra,289
+ 80000310: fce00113 li sp,-50
+ 80000314: 00209f33 sll t5,ra,sp
+ 80000318: 21212eb7 lui t4,0x21212
+ 8000031c: 121e8e9b addiw t4,t4,289
+ 80000320: 00ee9e93 slli t4,t4,0xe
+ 80000324: 01400193 li gp,20
+ 80000328: 3fdf1063 bne t5,t4,80000708 <fail>
+
+000000008000032c <test_21>:
+ 8000032c: 212120b7 lui ra,0x21212
+ 80000330: 1210809b addiw ra,ra,289
+ 80000334: fff00113 li sp,-1
+ 80000338: 00209f33 sll t5,ra,sp
+ 8000033c: fff00e9b addiw t4,zero,-1
+ 80000340: 03fe9e93 slli t4,t4,0x3f
+ 80000344: 01500193 li gp,21
+ 80000348: 3ddf1063 bne t5,t4,80000708 <fail>
+
+000000008000034c <test_50>:
+ 8000034c: 00100093 li ra,1
+ 80000350: 03f00113 li sp,63
+ 80000354: 00209f33 sll t5,ra,sp
+ 80000358: fff00e9b addiw t4,zero,-1
+ 8000035c: 03fe9e93 slli t4,t4,0x3f
+ 80000360: 03200193 li gp,50
+ 80000364: 3bdf1263 bne t5,t4,80000708 <fail>
+
+0000000080000368 <test_51>:
+ 80000368: fff00093 li ra,-1
+ 8000036c: 02700113 li sp,39
+ 80000370: 00209f33 sll t5,ra,sp
+ 80000374: fff00e9b addiw t4,zero,-1
+ 80000378: 027e9e93 slli t4,t4,0x27
+ 8000037c: 03300193 li gp,51
+ 80000380: 39df1463 bne t5,t4,80000708 <fail>
+
+0000000080000384 <test_52>:
+ 80000384: 212120b7 lui ra,0x21212
+ 80000388: 1210809b addiw ra,ra,289
+ 8000038c: 02b00113 li sp,43
+ 80000390: 00209f33 sll t5,ra,sp
+ 80000394: 00012eb7 lui t4,0x12
+ 80000398: 121e8e9b addiw t4,t4,289
+ 8000039c: 02be9e93 slli t4,t4,0x2b
+ 800003a0: 03400193 li gp,52
+ 800003a4: 37df1263 bne t5,t4,80000708 <fail>
+
+00000000800003a8 <test_22>:
+ 800003a8: 00100093 li ra,1
+ 800003ac: 00700113 li sp,7
+ 800003b0: 002090b3 sll ra,ra,sp
+ 800003b4: 08000e93 li t4,128
+ 800003b8: 01600193 li gp,22
+ 800003bc: 35d09663 bne ra,t4,80000708 <fail>
+
+00000000800003c0 <test_23>:
+ 800003c0: 00100093 li ra,1
+ 800003c4: 00e00113 li sp,14
+ 800003c8: 00209133 sll sp,ra,sp
+ 800003cc: 00004eb7 lui t4,0x4
+ 800003d0: 01700193 li gp,23
+ 800003d4: 33d11a63 bne sp,t4,80000708 <fail>
+
+00000000800003d8 <test_24>:
+ 800003d8: 00300093 li ra,3
+ 800003dc: 001090b3 sll ra,ra,ra
+ 800003e0: 01800e93 li t4,24
+ 800003e4: 01800193 li gp,24
+ 800003e8: 33d09063 bne ra,t4,80000708 <fail>
+
+00000000800003ec <test_25>:
+ 800003ec: 00000213 li tp,0
+ 800003f0: 00100093 li ra,1
+ 800003f4: 00700113 li sp,7
+ 800003f8: 00209f33 sll t5,ra,sp
+ 800003fc: 000f0313 mv t1,t5
+ 80000400: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000404: 00200293 li t0,2
+ 80000408: fe5214e3 bne tp,t0,800003f0 <test_25+0x4>
+ 8000040c: 08000e93 li t4,128
+ 80000410: 01900193 li gp,25
+ 80000414: 2fd31a63 bne t1,t4,80000708 <fail>
+
+0000000080000418 <test_26>:
+ 80000418: 00000213 li tp,0
+ 8000041c: 00100093 li ra,1
+ 80000420: 00e00113 li sp,14
+ 80000424: 00209f33 sll t5,ra,sp
+ 80000428: 00000013 nop
+ 8000042c: 000f0313 mv t1,t5
+ 80000430: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000434: 00200293 li t0,2
+ 80000438: fe5212e3 bne tp,t0,8000041c <test_26+0x4>
+ 8000043c: 00004eb7 lui t4,0x4
+ 80000440: 01a00193 li gp,26
+ 80000444: 2dd31263 bne t1,t4,80000708 <fail>
+
+0000000080000448 <test_27>:
+ 80000448: 00000213 li tp,0
+ 8000044c: 00100093 li ra,1
+ 80000450: 01f00113 li sp,31
+ 80000454: 00209f33 sll t5,ra,sp
+ 80000458: 00000013 nop
+ 8000045c: 00000013 nop
+ 80000460: 000f0313 mv t1,t5
+ 80000464: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000468: 00200293 li t0,2
+ 8000046c: fe5210e3 bne tp,t0,8000044c <test_27+0x4>
+ 80000470: 00100e9b addiw t4,zero,1
+ 80000474: 01fe9e93 slli t4,t4,0x1f
+ 80000478: 01b00193 li gp,27
+ 8000047c: 29d31663 bne t1,t4,80000708 <fail>
+
+0000000080000480 <test_28>:
+ 80000480: 00000213 li tp,0
+ 80000484: 00100093 li ra,1
+ 80000488: 00700113 li sp,7
+ 8000048c: 00209f33 sll t5,ra,sp
+ 80000490: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000494: 00200293 li t0,2
+ 80000498: fe5216e3 bne tp,t0,80000484 <test_28+0x4>
+ 8000049c: 08000e93 li t4,128
+ 800004a0: 01c00193 li gp,28
+ 800004a4: 27df1263 bne t5,t4,80000708 <fail>
+
+00000000800004a8 <test_29>:
+ 800004a8: 00000213 li tp,0
+ 800004ac: 00100093 li ra,1
+ 800004b0: 00e00113 li sp,14
+ 800004b4: 00000013 nop
+ 800004b8: 00209f33 sll t5,ra,sp
+ 800004bc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800004c0: 00200293 li t0,2
+ 800004c4: fe5214e3 bne tp,t0,800004ac <test_29+0x4>
+ 800004c8: 00004eb7 lui t4,0x4
+ 800004cc: 01d00193 li gp,29
+ 800004d0: 23df1c63 bne t5,t4,80000708 <fail>
+
+00000000800004d4 <test_30>:
+ 800004d4: 00000213 li tp,0
+ 800004d8: 00100093 li ra,1
+ 800004dc: 01f00113 li sp,31
+ 800004e0: 00000013 nop
+ 800004e4: 00000013 nop
+ 800004e8: 00209f33 sll t5,ra,sp
+ 800004ec: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800004f0: 00200293 li t0,2
+ 800004f4: fe5212e3 bne tp,t0,800004d8 <test_30+0x4>
+ 800004f8: 00100e9b addiw t4,zero,1
+ 800004fc: 01fe9e93 slli t4,t4,0x1f
+ 80000500: 01e00193 li gp,30
+ 80000504: 21df1263 bne t5,t4,80000708 <fail>
+
+0000000080000508 <test_31>:
+ 80000508: 00000213 li tp,0
+ 8000050c: 00100093 li ra,1
+ 80000510: 00000013 nop
+ 80000514: 00700113 li sp,7
+ 80000518: 00209f33 sll t5,ra,sp
+ 8000051c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000520: 00200293 li t0,2
+ 80000524: fe5214e3 bne tp,t0,8000050c <test_31+0x4>
+ 80000528: 08000e93 li t4,128
+ 8000052c: 01f00193 li gp,31
+ 80000530: 1ddf1c63 bne t5,t4,80000708 <fail>
+
+0000000080000534 <test_32>:
+ 80000534: 00000213 li tp,0
+ 80000538: 00100093 li ra,1
+ 8000053c: 00000013 nop
+ 80000540: 00e00113 li sp,14
+ 80000544: 00000013 nop
+ 80000548: 00209f33 sll t5,ra,sp
+ 8000054c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000550: 00200293 li t0,2
+ 80000554: fe5212e3 bne tp,t0,80000538 <test_32+0x4>
+ 80000558: 00004eb7 lui t4,0x4
+ 8000055c: 02000193 li gp,32
+ 80000560: 1bdf1463 bne t5,t4,80000708 <fail>
+
+0000000080000564 <test_33>:
+ 80000564: 00000213 li tp,0
+ 80000568: 00100093 li ra,1
+ 8000056c: 00000013 nop
+ 80000570: 00000013 nop
+ 80000574: 01f00113 li sp,31
+ 80000578: 00209f33 sll t5,ra,sp
+ 8000057c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000580: 00200293 li t0,2
+ 80000584: fe5212e3 bne tp,t0,80000568 <test_33+0x4>
+ 80000588: 00100e9b addiw t4,zero,1
+ 8000058c: 01fe9e93 slli t4,t4,0x1f
+ 80000590: 02100193 li gp,33
+ 80000594: 17df1a63 bne t5,t4,80000708 <fail>
+
+0000000080000598 <test_34>:
+ 80000598: 00000213 li tp,0
+ 8000059c: 00700113 li sp,7
+ 800005a0: 00100093 li ra,1
+ 800005a4: 00209f33 sll t5,ra,sp
+ 800005a8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800005ac: 00200293 li t0,2
+ 800005b0: fe5216e3 bne tp,t0,8000059c <test_34+0x4>
+ 800005b4: 08000e93 li t4,128
+ 800005b8: 02200193 li gp,34
+ 800005bc: 15df1663 bne t5,t4,80000708 <fail>
+
+00000000800005c0 <test_35>:
+ 800005c0: 00000213 li tp,0
+ 800005c4: 00e00113 li sp,14
+ 800005c8: 00100093 li ra,1
+ 800005cc: 00000013 nop
+ 800005d0: 00209f33 sll t5,ra,sp
+ 800005d4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800005d8: 00200293 li t0,2
+ 800005dc: fe5214e3 bne tp,t0,800005c4 <test_35+0x4>
+ 800005e0: 00004eb7 lui t4,0x4
+ 800005e4: 02300193 li gp,35
+ 800005e8: 13df1063 bne t5,t4,80000708 <fail>
+
+00000000800005ec <test_36>:
+ 800005ec: 00000213 li tp,0
+ 800005f0: 01f00113 li sp,31
+ 800005f4: 00100093 li ra,1
+ 800005f8: 00000013 nop
+ 800005fc: 00000013 nop
+ 80000600: 00209f33 sll t5,ra,sp
+ 80000604: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000608: 00200293 li t0,2
+ 8000060c: fe5212e3 bne tp,t0,800005f0 <test_36+0x4>
+ 80000610: 00100e9b addiw t4,zero,1
+ 80000614: 01fe9e93 slli t4,t4,0x1f
+ 80000618: 02400193 li gp,36
+ 8000061c: 0fdf1663 bne t5,t4,80000708 <fail>
+
+0000000080000620 <test_37>:
+ 80000620: 00000213 li tp,0
+ 80000624: 00700113 li sp,7
+ 80000628: 00000013 nop
+ 8000062c: 00100093 li ra,1
+ 80000630: 00209f33 sll t5,ra,sp
+ 80000634: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000638: 00200293 li t0,2
+ 8000063c: fe5214e3 bne tp,t0,80000624 <test_37+0x4>
+ 80000640: 08000e93 li t4,128
+ 80000644: 02500193 li gp,37
+ 80000648: 0ddf1063 bne t5,t4,80000708 <fail>
+
+000000008000064c <test_38>:
+ 8000064c: 00000213 li tp,0
+ 80000650: 00e00113 li sp,14
+ 80000654: 00000013 nop
+ 80000658: 00100093 li ra,1
+ 8000065c: 00000013 nop
+ 80000660: 00209f33 sll t5,ra,sp
+ 80000664: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000668: 00200293 li t0,2
+ 8000066c: fe5212e3 bne tp,t0,80000650 <test_38+0x4>
+ 80000670: 00004eb7 lui t4,0x4
+ 80000674: 02600193 li gp,38
+ 80000678: 09df1863 bne t5,t4,80000708 <fail>
+
+000000008000067c <test_39>:
+ 8000067c: 00000213 li tp,0
+ 80000680: 01f00113 li sp,31
+ 80000684: 00000013 nop
+ 80000688: 00000013 nop
+ 8000068c: 00100093 li ra,1
+ 80000690: 00209f33 sll t5,ra,sp
+ 80000694: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000698: 00200293 li t0,2
+ 8000069c: fe5212e3 bne tp,t0,80000680 <test_39+0x4>
+ 800006a0: 00100e9b addiw t4,zero,1
+ 800006a4: 01fe9e93 slli t4,t4,0x1f
+ 800006a8: 02700193 li gp,39
+ 800006ac: 05df1e63 bne t5,t4,80000708 <fail>
+
+00000000800006b0 <test_40>:
+ 800006b0: 00f00093 li ra,15
+ 800006b4: 00101133 sll sp,zero,ra
+ 800006b8: 00000e93 li t4,0
+ 800006bc: 02800193 li gp,40
+ 800006c0: 05d11463 bne sp,t4,80000708 <fail>
+
+00000000800006c4 <test_41>:
+ 800006c4: 02000093 li ra,32
+ 800006c8: 00009133 sll sp,ra,zero
+ 800006cc: 02000e93 li t4,32
+ 800006d0: 02900193 li gp,41
+ 800006d4: 03d11a63 bne sp,t4,80000708 <fail>
+
+00000000800006d8 <test_42>:
+ 800006d8: 000010b3 sll ra,zero,zero
+ 800006dc: 00000e93 li t4,0
+ 800006e0: 02a00193 li gp,42
+ 800006e4: 03d09263 bne ra,t4,80000708 <fail>
+
+00000000800006e8 <test_43>:
+ 800006e8: 40000093 li ra,1024
+ 800006ec: 00001137 lui sp,0x1
+ 800006f0: 8001011b addiw sp,sp,-2048
+ 800006f4: 00209033 sll zero,ra,sp
+ 800006f8: 00000e93 li t4,0
+ 800006fc: 02b00193 li gp,43
+ 80000700: 01d01463 bne zero,t4,80000708 <fail>
+ 80000704: 00301c63 bne zero,gp,8000071c <pass>
+
+0000000080000708 <fail>:
+ 80000708: 0ff0000f fence
+ 8000070c: 00018063 beqz gp,8000070c <fail+0x4>
+ 80000710: 00119193 slli gp,gp,0x1
+ 80000714: 0011e193 ori gp,gp,1
+ 80000718: 00000073 ecall
+
+000000008000071c <pass>:
+ 8000071c: 0ff0000f fence
+ 80000720: 00100193 li gp,1
+ 80000724: 00000073 ecall
+ 80000728: c0001073 unimp
+ 8000072c: 0000 unimp
+ 8000072e: 0000 unimp
+ 80000730: 0000 unimp
+ 80000732: 0000 unimp
+ 80000734: 0000 unimp
+ 80000736: 0000 unimp
+ 80000738: 0000 unimp
+ 8000073a: 0000 unimp
+ 8000073c: 0000 unimp
+ 8000073e: 0000 unimp
+ 80000740: 0000 unimp
+ 80000742: 0000 unimp
diff --git a/test/tests/rv64ui-p-sll.elf b/test/tests/rv64ui-p-sll.elf
new file mode 100644
index 0000000..75144ab
--- /dev/null
+++ b/test/tests/rv64ui-p-sll.elf
Binary files differ
diff --git a/test/tests/rv64ui-p-slli.dump b/test/tests/rv64ui-p-slli.dump
new file mode 100644
index 0000000..f04acaa
--- /dev/null
+++ b/test/tests/rv64ui-p-slli.dump
@@ -0,0 +1,357 @@
+
+rv64ui-p-slli: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <test_2>:
+ 800000fc: 00100093 li ra,1
+ 80000100: 00009f13 slli t5,ra,0x0
+ 80000104: 00100e93 li t4,1
+ 80000108: 00200193 li gp,2
+ 8000010c: 2fdf1463 bne t5,t4,800003f4 <fail>
+
+0000000080000110 <test_3>:
+ 80000110: 00100093 li ra,1
+ 80000114: 00109f13 slli t5,ra,0x1
+ 80000118: 00200e93 li t4,2
+ 8000011c: 00300193 li gp,3
+ 80000120: 2ddf1a63 bne t5,t4,800003f4 <fail>
+
+0000000080000124 <test_4>:
+ 80000124: 00100093 li ra,1
+ 80000128: 00709f13 slli t5,ra,0x7
+ 8000012c: 08000e93 li t4,128
+ 80000130: 00400193 li gp,4
+ 80000134: 2ddf1063 bne t5,t4,800003f4 <fail>
+
+0000000080000138 <test_5>:
+ 80000138: 00100093 li ra,1
+ 8000013c: 00e09f13 slli t5,ra,0xe
+ 80000140: 00004eb7 lui t4,0x4
+ 80000144: 00500193 li gp,5
+ 80000148: 2bdf1663 bne t5,t4,800003f4 <fail>
+
+000000008000014c <test_6>:
+ 8000014c: 00100093 li ra,1
+ 80000150: 01f09f13 slli t5,ra,0x1f
+ 80000154: 00100e9b addiw t4,zero,1
+ 80000158: 01fe9e93 slli t4,t4,0x1f
+ 8000015c: 00600193 li gp,6
+ 80000160: 29df1a63 bne t5,t4,800003f4 <fail>
+
+0000000080000164 <test_7>:
+ 80000164: fff00093 li ra,-1
+ 80000168: 00009f13 slli t5,ra,0x0
+ 8000016c: fff00e93 li t4,-1
+ 80000170: 00700193 li gp,7
+ 80000174: 29df1063 bne t5,t4,800003f4 <fail>
+
+0000000080000178 <test_8>:
+ 80000178: fff00093 li ra,-1
+ 8000017c: 00109f13 slli t5,ra,0x1
+ 80000180: ffe00e93 li t4,-2
+ 80000184: 00800193 li gp,8
+ 80000188: 27df1663 bne t5,t4,800003f4 <fail>
+
+000000008000018c <test_9>:
+ 8000018c: fff00093 li ra,-1
+ 80000190: 00709f13 slli t5,ra,0x7
+ 80000194: f8000e93 li t4,-128
+ 80000198: 00900193 li gp,9
+ 8000019c: 25df1c63 bne t5,t4,800003f4 <fail>
+
+00000000800001a0 <test_10>:
+ 800001a0: fff00093 li ra,-1
+ 800001a4: 00e09f13 slli t5,ra,0xe
+ 800001a8: ffffceb7 lui t4,0xffffc
+ 800001ac: 00a00193 li gp,10
+ 800001b0: 25df1263 bne t5,t4,800003f4 <fail>
+
+00000000800001b4 <test_11>:
+ 800001b4: fff00093 li ra,-1
+ 800001b8: 01f09f13 slli t5,ra,0x1f
+ 800001bc: 80000eb7 lui t4,0x80000
+ 800001c0: 00b00193 li gp,11
+ 800001c4: 23df1863 bne t5,t4,800003f4 <fail>
+
+00000000800001c8 <test_12>:
+ 800001c8: 212120b7 lui ra,0x21212
+ 800001cc: 1210809b addiw ra,ra,289
+ 800001d0: 00009f13 slli t5,ra,0x0
+ 800001d4: 21212eb7 lui t4,0x21212
+ 800001d8: 121e8e9b addiw t4,t4,289
+ 800001dc: 00c00193 li gp,12
+ 800001e0: 21df1a63 bne t5,t4,800003f4 <fail>
+
+00000000800001e4 <test_13>:
+ 800001e4: 212120b7 lui ra,0x21212
+ 800001e8: 1210809b addiw ra,ra,289
+ 800001ec: 00109f13 slli t5,ra,0x1
+ 800001f0: 42424eb7 lui t4,0x42424
+ 800001f4: 242e8e9b addiw t4,t4,578
+ 800001f8: 00d00193 li gp,13
+ 800001fc: 1fdf1c63 bne t5,t4,800003f4 <fail>
+
+0000000080000200 <test_14>:
+ 80000200: 212120b7 lui ra,0x21212
+ 80000204: 1210809b addiw ra,ra,289
+ 80000208: 00709f13 slli t5,ra,0x7
+ 8000020c: 01091eb7 lui t4,0x1091
+ 80000210: 909e8e9b addiw t4,t4,-1783
+ 80000214: 00ce9e93 slli t4,t4,0xc
+ 80000218: 080e8e93 addi t4,t4,128 # 1091080 <_start-0x7ef6ef80>
+ 8000021c: 00e00193 li gp,14
+ 80000220: 1ddf1a63 bne t5,t4,800003f4 <fail>
+
+0000000080000224 <test_15>:
+ 80000224: 212120b7 lui ra,0x21212
+ 80000228: 1210809b addiw ra,ra,289
+ 8000022c: 00e09f13 slli t5,ra,0xe
+ 80000230: 21212eb7 lui t4,0x21212
+ 80000234: 121e8e9b addiw t4,t4,289
+ 80000238: 00ee9e93 slli t4,t4,0xe
+ 8000023c: 00f00193 li gp,15
+ 80000240: 1bdf1a63 bne t5,t4,800003f4 <fail>
+
+0000000080000244 <test_16>:
+ 80000244: 212120b7 lui ra,0x21212
+ 80000248: 1210809b addiw ra,ra,289
+ 8000024c: 01f09f13 slli t5,ra,0x1f
+ 80000250: 21212eb7 lui t4,0x21212
+ 80000254: 121e8e9b addiw t4,t4,289
+ 80000258: 01fe9e93 slli t4,t4,0x1f
+ 8000025c: 01000193 li gp,16
+ 80000260: 19df1a63 bne t5,t4,800003f4 <fail>
+
+0000000080000264 <test_50>:
+ 80000264: 00100093 li ra,1
+ 80000268: 03f09f13 slli t5,ra,0x3f
+ 8000026c: fff00e9b addiw t4,zero,-1
+ 80000270: 03fe9e93 slli t4,t4,0x3f
+ 80000274: 03200193 li gp,50
+ 80000278: 17df1e63 bne t5,t4,800003f4 <fail>
+
+000000008000027c <test_51>:
+ 8000027c: fff00093 li ra,-1
+ 80000280: 02709f13 slli t5,ra,0x27
+ 80000284: fff00e9b addiw t4,zero,-1
+ 80000288: 027e9e93 slli t4,t4,0x27
+ 8000028c: 03300193 li gp,51
+ 80000290: 17df1263 bne t5,t4,800003f4 <fail>
+
+0000000080000294 <test_52>:
+ 80000294: 212120b7 lui ra,0x21212
+ 80000298: 1210809b addiw ra,ra,289
+ 8000029c: 02b09f13 slli t5,ra,0x2b
+ 800002a0: 00012eb7 lui t4,0x12
+ 800002a4: 121e8e9b addiw t4,t4,289
+ 800002a8: 02be9e93 slli t4,t4,0x2b
+ 800002ac: 03400193 li gp,52
+ 800002b0: 15df1263 bne t5,t4,800003f4 <fail>
+
+00000000800002b4 <test_17>:
+ 800002b4: 00100093 li ra,1
+ 800002b8: 00709093 slli ra,ra,0x7
+ 800002bc: 08000e93 li t4,128
+ 800002c0: 01100193 li gp,17
+ 800002c4: 13d09863 bne ra,t4,800003f4 <fail>
+
+00000000800002c8 <test_18>:
+ 800002c8: 00000213 li tp,0
+ 800002cc: 00100093 li ra,1
+ 800002d0: 00709f13 slli t5,ra,0x7
+ 800002d4: 000f0313 mv t1,t5
+ 800002d8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800002dc: 00200293 li t0,2
+ 800002e0: fe5216e3 bne tp,t0,800002cc <test_18+0x4>
+ 800002e4: 08000e93 li t4,128
+ 800002e8: 01200193 li gp,18
+ 800002ec: 11d31463 bne t1,t4,800003f4 <fail>
+
+00000000800002f0 <test_19>:
+ 800002f0: 00000213 li tp,0
+ 800002f4: 00100093 li ra,1
+ 800002f8: 00e09f13 slli t5,ra,0xe
+ 800002fc: 00000013 nop
+ 80000300: 000f0313 mv t1,t5
+ 80000304: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000308: 00200293 li t0,2
+ 8000030c: fe5214e3 bne tp,t0,800002f4 <test_19+0x4>
+ 80000310: 00004eb7 lui t4,0x4
+ 80000314: 01300193 li gp,19
+ 80000318: 0dd31e63 bne t1,t4,800003f4 <fail>
+
+000000008000031c <test_20>:
+ 8000031c: 00000213 li tp,0
+ 80000320: 00100093 li ra,1
+ 80000324: 01f09f13 slli t5,ra,0x1f
+ 80000328: 00000013 nop
+ 8000032c: 00000013 nop
+ 80000330: 000f0313 mv t1,t5
+ 80000334: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000338: 00200293 li t0,2
+ 8000033c: fe5212e3 bne tp,t0,80000320 <test_20+0x4>
+ 80000340: 00100e9b addiw t4,zero,1
+ 80000344: 01fe9e93 slli t4,t4,0x1f
+ 80000348: 01400193 li gp,20
+ 8000034c: 0bd31463 bne t1,t4,800003f4 <fail>
+
+0000000080000350 <test_21>:
+ 80000350: 00000213 li tp,0
+ 80000354: 00100093 li ra,1
+ 80000358: 00709f13 slli t5,ra,0x7
+ 8000035c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000360: 00200293 li t0,2
+ 80000364: fe5218e3 bne tp,t0,80000354 <test_21+0x4>
+ 80000368: 08000e93 li t4,128
+ 8000036c: 01500193 li gp,21
+ 80000370: 09df1263 bne t5,t4,800003f4 <fail>
+
+0000000080000374 <test_22>:
+ 80000374: 00000213 li tp,0
+ 80000378: 00100093 li ra,1
+ 8000037c: 00000013 nop
+ 80000380: 00e09f13 slli t5,ra,0xe
+ 80000384: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000388: 00200293 li t0,2
+ 8000038c: fe5216e3 bne tp,t0,80000378 <test_22+0x4>
+ 80000390: 00004eb7 lui t4,0x4
+ 80000394: 01600193 li gp,22
+ 80000398: 05df1e63 bne t5,t4,800003f4 <fail>
+
+000000008000039c <test_23>:
+ 8000039c: 00000213 li tp,0
+ 800003a0: 00100093 li ra,1
+ 800003a4: 00000013 nop
+ 800003a8: 00000013 nop
+ 800003ac: 01f09f13 slli t5,ra,0x1f
+ 800003b0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800003b4: 00200293 li t0,2
+ 800003b8: fe5214e3 bne tp,t0,800003a0 <test_23+0x4>
+ 800003bc: 00100e9b addiw t4,zero,1
+ 800003c0: 01fe9e93 slli t4,t4,0x1f
+ 800003c4: 01700193 li gp,23
+ 800003c8: 03df1663 bne t5,t4,800003f4 <fail>
+
+00000000800003cc <test_24>:
+ 800003cc: 01f01093 slli ra,zero,0x1f
+ 800003d0: 00000e93 li t4,0
+ 800003d4: 01800193 li gp,24
+ 800003d8: 01d09e63 bne ra,t4,800003f4 <fail>
+
+00000000800003dc <test_25>:
+ 800003dc: 02100093 li ra,33
+ 800003e0: 01409013 slli zero,ra,0x14
+ 800003e4: 00000e93 li t4,0
+ 800003e8: 01900193 li gp,25
+ 800003ec: 01d01463 bne zero,t4,800003f4 <fail>
+ 800003f0: 00301c63 bne zero,gp,80000408 <pass>
+
+00000000800003f4 <fail>:
+ 800003f4: 0ff0000f fence
+ 800003f8: 00018063 beqz gp,800003f8 <fail+0x4>
+ 800003fc: 00119193 slli gp,gp,0x1
+ 80000400: 0011e193 ori gp,gp,1
+ 80000404: 00000073 ecall
+
+0000000080000408 <pass>:
+ 80000408: 0ff0000f fence
+ 8000040c: 00100193 li gp,1
+ 80000410: 00000073 ecall
+ 80000414: c0001073 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/tests/rv64ui-p-slli.elf b/test/tests/rv64ui-p-slli.elf
new file mode 100644
index 0000000..5214f29
--- /dev/null
+++ b/test/tests/rv64ui-p-slli.elf
Binary files differ
diff --git a/test/tests/rv64ui-p-slliw.dump b/test/tests/rv64ui-p-slliw.dump
new file mode 100644
index 0000000..b821b9f
--- /dev/null
+++ b/test/tests/rv64ui-p-slliw.dump
@@ -0,0 +1,316 @@
+
+rv64ui-p-slliw: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <test_2>:
+ 800000fc: 00100093 li ra,1
+ 80000100: 00009f1b slliw t5,ra,0x0
+ 80000104: 00100e93 li t4,1
+ 80000108: 00200193 li gp,2
+ 8000010c: 27df1a63 bne t5,t4,80000380 <fail>
+
+0000000080000110 <test_3>:
+ 80000110: 00100093 li ra,1
+ 80000114: 00109f1b slliw t5,ra,0x1
+ 80000118: 00200e93 li t4,2
+ 8000011c: 00300193 li gp,3
+ 80000120: 27df1063 bne t5,t4,80000380 <fail>
+
+0000000080000124 <test_4>:
+ 80000124: 00100093 li ra,1
+ 80000128: 00709f1b slliw t5,ra,0x7
+ 8000012c: 08000e93 li t4,128
+ 80000130: 00400193 li gp,4
+ 80000134: 25df1663 bne t5,t4,80000380 <fail>
+
+0000000080000138 <test_5>:
+ 80000138: 00100093 li ra,1
+ 8000013c: 00e09f1b slliw t5,ra,0xe
+ 80000140: 00004eb7 lui t4,0x4
+ 80000144: 00500193 li gp,5
+ 80000148: 23df1c63 bne t5,t4,80000380 <fail>
+
+000000008000014c <test_6>:
+ 8000014c: 00100093 li ra,1
+ 80000150: 01f09f1b slliw t5,ra,0x1f
+ 80000154: 80000eb7 lui t4,0x80000
+ 80000158: 00600193 li gp,6
+ 8000015c: 23df1263 bne t5,t4,80000380 <fail>
+
+0000000080000160 <test_7>:
+ 80000160: fff00093 li ra,-1
+ 80000164: 00009f1b slliw t5,ra,0x0
+ 80000168: fff00e93 li t4,-1
+ 8000016c: 00700193 li gp,7
+ 80000170: 21df1863 bne t5,t4,80000380 <fail>
+
+0000000080000174 <test_8>:
+ 80000174: fff00093 li ra,-1
+ 80000178: 00109f1b slliw t5,ra,0x1
+ 8000017c: ffe00e93 li t4,-2
+ 80000180: 00800193 li gp,8
+ 80000184: 1fdf1e63 bne t5,t4,80000380 <fail>
+
+0000000080000188 <test_9>:
+ 80000188: fff00093 li ra,-1
+ 8000018c: 00709f1b slliw t5,ra,0x7
+ 80000190: f8000e93 li t4,-128
+ 80000194: 00900193 li gp,9
+ 80000198: 1fdf1463 bne t5,t4,80000380 <fail>
+
+000000008000019c <test_10>:
+ 8000019c: fff00093 li ra,-1
+ 800001a0: 00e09f1b slliw t5,ra,0xe
+ 800001a4: ffffceb7 lui t4,0xffffc
+ 800001a8: 00a00193 li gp,10
+ 800001ac: 1ddf1a63 bne t5,t4,80000380 <fail>
+
+00000000800001b0 <test_11>:
+ 800001b0: fff00093 li ra,-1
+ 800001b4: 01f09f1b slliw t5,ra,0x1f
+ 800001b8: 80000eb7 lui t4,0x80000
+ 800001bc: 00b00193 li gp,11
+ 800001c0: 1ddf1063 bne t5,t4,80000380 <fail>
+
+00000000800001c4 <test_12>:
+ 800001c4: 212120b7 lui ra,0x21212
+ 800001c8: 1210809b addiw ra,ra,289
+ 800001cc: 00009f1b slliw t5,ra,0x0
+ 800001d0: 21212eb7 lui t4,0x21212
+ 800001d4: 121e8e9b addiw t4,t4,289
+ 800001d8: 00c00193 li gp,12
+ 800001dc: 1bdf1263 bne t5,t4,80000380 <fail>
+
+00000000800001e0 <test_13>:
+ 800001e0: 212120b7 lui ra,0x21212
+ 800001e4: 1210809b addiw ra,ra,289
+ 800001e8: 00109f1b slliw t5,ra,0x1
+ 800001ec: 42424eb7 lui t4,0x42424
+ 800001f0: 242e8e9b addiw t4,t4,578
+ 800001f4: 00d00193 li gp,13
+ 800001f8: 19df1463 bne t5,t4,80000380 <fail>
+
+00000000800001fc <test_14>:
+ 800001fc: 212120b7 lui ra,0x21212
+ 80000200: 1210809b addiw ra,ra,289
+ 80000204: 00709f1b slliw t5,ra,0x7
+ 80000208: 90909eb7 lui t4,0x90909
+ 8000020c: 080e8e9b addiw t4,t4,128
+ 80000210: 00e00193 li gp,14
+ 80000214: 17df1663 bne t5,t4,80000380 <fail>
+
+0000000080000218 <test_15>:
+ 80000218: 212120b7 lui ra,0x21212
+ 8000021c: 1210809b addiw ra,ra,289
+ 80000220: 00e09f1b slliw t5,ra,0xe
+ 80000224: 48484eb7 lui t4,0x48484
+ 80000228: 00f00193 li gp,15
+ 8000022c: 15df1a63 bne t5,t4,80000380 <fail>
+
+0000000080000230 <test_16>:
+ 80000230: 212120b7 lui ra,0x21212
+ 80000234: 1210809b addiw ra,ra,289
+ 80000238: 01f09f1b slliw t5,ra,0x1f
+ 8000023c: 80000eb7 lui t4,0x80000
+ 80000240: 01000193 li gp,16
+ 80000244: 13df1e63 bne t5,t4,80000380 <fail>
+
+0000000080000248 <test_17>:
+ 80000248: 00100093 li ra,1
+ 8000024c: 0070909b slliw ra,ra,0x7
+ 80000250: 08000e93 li t4,128
+ 80000254: 01100193 li gp,17
+ 80000258: 13d09463 bne ra,t4,80000380 <fail>
+
+000000008000025c <test_18>:
+ 8000025c: 00000213 li tp,0
+ 80000260: 00100093 li ra,1
+ 80000264: 00709f1b slliw 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>
+
+0000000080000284 <test_19>:
+ 80000284: 00000213 li tp,0
+ 80000288: 00100093 li ra,1
+ 8000028c: 00e09f1b slliw 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>
+
+00000000800002b0 <test_20>:
+ 800002b0: 00000213 li tp,0
+ 800002b4: 00100093 li ra,1
+ 800002b8: 01f09f1b slliw 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>
+
+00000000800002e0 <test_21>:
+ 800002e0: 00000213 li tp,0
+ 800002e4: 00100093 li ra,1
+ 800002e8: 00709f1b slliw 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>
+
+0000000080000304 <test_22>:
+ 80000304: 00000213 li tp,0
+ 80000308: 00100093 li ra,1
+ 8000030c: 00000013 nop
+ 80000310: 00e09f1b slliw 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>
+
+000000008000032c <test_23>:
+ 8000032c: 00000213 li tp,0
+ 80000330: 00100093 li ra,1
+ 80000334: 00000013 nop
+ 80000338: 00000013 nop
+ 8000033c: 01f09f1b slliw 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>
+
+0000000080000358 <test_24>:
+ 80000358: 01f0109b slliw ra,zero,0x1f
+ 8000035c: 00000e93 li t4,0
+ 80000360: 01800193 li gp,24
+ 80000364: 01d09e63 bne ra,t4,80000380 <fail>
+
+0000000080000368 <test_25>:
+ 80000368: 01f00093 li ra,31
+ 8000036c: 01c0901b slliw zero,ra,0x1c
+ 80000370: 00000e93 li t4,0
+ 80000374: 01900193 li gp,25
+ 80000378: 01d01463 bne zero,t4,80000380 <fail>
+ 8000037c: 00301c63 bne zero,gp,80000394 <pass>
+
+0000000080000380 <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
+
+0000000080000394 <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/tests/rv64ui-p-slliw.elf b/test/tests/rv64ui-p-slliw.elf
new file mode 100644
index 0000000..556a77e
--- /dev/null
+++ b/test/tests/rv64ui-p-slliw.elf
Binary files differ
diff --git a/test/tests/rv64ui-p-sllw.dump b/test/tests/rv64ui-p-sllw.dump
new file mode 100644
index 0000000..45f030a
--- /dev/null
+++ b/test/tests/rv64ui-p-sllw.dump
@@ -0,0 +1,550 @@
+
+rv64ui-p-sllw: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <test_2>:
+ 800000fc: 00100093 li ra,1
+ 80000100: 00000113 li sp,0
+ 80000104: 00209f3b sllw t5,ra,sp
+ 80000108: 00100e93 li t4,1
+ 8000010c: 00200193 li gp,2
+ 80000110: 55df1c63 bne t5,t4,80000668 <fail>
+
+0000000080000114 <test_3>:
+ 80000114: 00100093 li ra,1
+ 80000118: 00100113 li sp,1
+ 8000011c: 00209f3b sllw t5,ra,sp
+ 80000120: 00200e93 li t4,2
+ 80000124: 00300193 li gp,3
+ 80000128: 55df1063 bne t5,t4,80000668 <fail>
+
+000000008000012c <test_4>:
+ 8000012c: 00100093 li ra,1
+ 80000130: 00700113 li sp,7
+ 80000134: 00209f3b sllw t5,ra,sp
+ 80000138: 08000e93 li t4,128
+ 8000013c: 00400193 li gp,4
+ 80000140: 53df1463 bne t5,t4,80000668 <fail>
+
+0000000080000144 <test_5>:
+ 80000144: 00100093 li ra,1
+ 80000148: 00e00113 li sp,14
+ 8000014c: 00209f3b sllw t5,ra,sp
+ 80000150: 00004eb7 lui t4,0x4
+ 80000154: 00500193 li gp,5
+ 80000158: 51df1863 bne t5,t4,80000668 <fail>
+
+000000008000015c <test_6>:
+ 8000015c: 00100093 li ra,1
+ 80000160: 01f00113 li sp,31
+ 80000164: 00209f3b sllw t5,ra,sp
+ 80000168: 80000eb7 lui t4,0x80000
+ 8000016c: 00600193 li gp,6
+ 80000170: 4fdf1c63 bne t5,t4,80000668 <fail>
+
+0000000080000174 <test_7>:
+ 80000174: fff00093 li ra,-1
+ 80000178: 00000113 li sp,0
+ 8000017c: 00209f3b sllw t5,ra,sp
+ 80000180: fff00e93 li t4,-1
+ 80000184: 00700193 li gp,7
+ 80000188: 4fdf1063 bne t5,t4,80000668 <fail>
+
+000000008000018c <test_8>:
+ 8000018c: fff00093 li ra,-1
+ 80000190: 00100113 li sp,1
+ 80000194: 00209f3b sllw t5,ra,sp
+ 80000198: ffe00e93 li t4,-2
+ 8000019c: 00800193 li gp,8
+ 800001a0: 4ddf1463 bne t5,t4,80000668 <fail>
+
+00000000800001a4 <test_9>:
+ 800001a4: fff00093 li ra,-1
+ 800001a8: 00700113 li sp,7
+ 800001ac: 00209f3b sllw t5,ra,sp
+ 800001b0: f8000e93 li t4,-128
+ 800001b4: 00900193 li gp,9
+ 800001b8: 4bdf1863 bne t5,t4,80000668 <fail>
+
+00000000800001bc <test_10>:
+ 800001bc: fff00093 li ra,-1
+ 800001c0: 00e00113 li sp,14
+ 800001c4: 00209f3b sllw t5,ra,sp
+ 800001c8: ffffceb7 lui t4,0xffffc
+ 800001cc: 00a00193 li gp,10
+ 800001d0: 49df1c63 bne t5,t4,80000668 <fail>
+
+00000000800001d4 <test_11>:
+ 800001d4: fff00093 li ra,-1
+ 800001d8: 01f00113 li sp,31
+ 800001dc: 00209f3b sllw t5,ra,sp
+ 800001e0: 80000eb7 lui t4,0x80000
+ 800001e4: 00b00193 li gp,11
+ 800001e8: 49df1063 bne t5,t4,80000668 <fail>
+
+00000000800001ec <test_12>:
+ 800001ec: 212120b7 lui ra,0x21212
+ 800001f0: 1210809b addiw ra,ra,289
+ 800001f4: 00000113 li sp,0
+ 800001f8: 00209f3b sllw t5,ra,sp
+ 800001fc: 21212eb7 lui t4,0x21212
+ 80000200: 121e8e9b addiw t4,t4,289
+ 80000204: 00c00193 li gp,12
+ 80000208: 47df1063 bne t5,t4,80000668 <fail>
+
+000000008000020c <test_13>:
+ 8000020c: 212120b7 lui ra,0x21212
+ 80000210: 1210809b addiw ra,ra,289
+ 80000214: 00100113 li sp,1
+ 80000218: 00209f3b sllw t5,ra,sp
+ 8000021c: 42424eb7 lui t4,0x42424
+ 80000220: 242e8e9b addiw t4,t4,578
+ 80000224: 00d00193 li gp,13
+ 80000228: 45df1063 bne t5,t4,80000668 <fail>
+
+000000008000022c <test_14>:
+ 8000022c: 212120b7 lui ra,0x21212
+ 80000230: 1210809b addiw ra,ra,289
+ 80000234: 00700113 li sp,7
+ 80000238: 00209f3b sllw t5,ra,sp
+ 8000023c: 90909eb7 lui t4,0x90909
+ 80000240: 080e8e9b addiw t4,t4,128
+ 80000244: 00e00193 li gp,14
+ 80000248: 43df1063 bne t5,t4,80000668 <fail>
+
+000000008000024c <test_15>:
+ 8000024c: 212120b7 lui ra,0x21212
+ 80000250: 1210809b addiw ra,ra,289
+ 80000254: 00e00113 li sp,14
+ 80000258: 00209f3b sllw t5,ra,sp
+ 8000025c: 48484eb7 lui t4,0x48484
+ 80000260: 00f00193 li gp,15
+ 80000264: 41df1263 bne t5,t4,80000668 <fail>
+
+0000000080000268 <test_16>:
+ 80000268: 212120b7 lui ra,0x21212
+ 8000026c: 1210809b addiw ra,ra,289
+ 80000270: 01f00113 li sp,31
+ 80000274: 00209f3b sllw t5,ra,sp
+ 80000278: 80000eb7 lui t4,0x80000
+ 8000027c: 01000193 li gp,16
+ 80000280: 3fdf1463 bne t5,t4,80000668 <fail>
+
+0000000080000284 <test_17>:
+ 80000284: 212120b7 lui ra,0x21212
+ 80000288: 1210809b addiw ra,ra,289
+ 8000028c: fe000113 li sp,-32
+ 80000290: 00209f3b sllw t5,ra,sp
+ 80000294: 21212eb7 lui t4,0x21212
+ 80000298: 121e8e9b addiw t4,t4,289
+ 8000029c: 01100193 li gp,17
+ 800002a0: 3ddf1463 bne t5,t4,80000668 <fail>
+
+00000000800002a4 <test_18>:
+ 800002a4: 212120b7 lui ra,0x21212
+ 800002a8: 1210809b addiw ra,ra,289
+ 800002ac: fe100113 li sp,-31
+ 800002b0: 00209f3b sllw t5,ra,sp
+ 800002b4: 42424eb7 lui t4,0x42424
+ 800002b8: 242e8e9b addiw t4,t4,578
+ 800002bc: 01200193 li gp,18
+ 800002c0: 3bdf1463 bne t5,t4,80000668 <fail>
+
+00000000800002c4 <test_19>:
+ 800002c4: 212120b7 lui ra,0x21212
+ 800002c8: 1210809b addiw ra,ra,289
+ 800002cc: fe700113 li sp,-25
+ 800002d0: 00209f3b sllw t5,ra,sp
+ 800002d4: 90909eb7 lui t4,0x90909
+ 800002d8: 080e8e9b addiw t4,t4,128
+ 800002dc: 01300193 li gp,19
+ 800002e0: 39df1463 bne t5,t4,80000668 <fail>
+
+00000000800002e4 <test_20>:
+ 800002e4: 212120b7 lui ra,0x21212
+ 800002e8: 1210809b addiw ra,ra,289
+ 800002ec: fee00113 li sp,-18
+ 800002f0: 00209f3b sllw t5,ra,sp
+ 800002f4: 48484eb7 lui t4,0x48484
+ 800002f8: 01400193 li gp,20
+ 800002fc: 37df1663 bne t5,t4,80000668 <fail>
+
+0000000080000300 <test_21>:
+ 80000300: 212120b7 lui ra,0x21212
+ 80000304: 1210809b addiw ra,ra,289
+ 80000308: fff00113 li sp,-1
+ 8000030c: 00209f3b sllw t5,ra,sp
+ 80000310: 80000eb7 lui t4,0x80000
+ 80000314: 01500193 li gp,21
+ 80000318: 35df1863 bne t5,t4,80000668 <fail>
+
+000000008000031c <test_22>:
+ 8000031c: 00100093 li ra,1
+ 80000320: 00700113 li sp,7
+ 80000324: 002090bb sllw ra,ra,sp
+ 80000328: 08000e93 li t4,128
+ 8000032c: 01600193 li gp,22
+ 80000330: 33d09c63 bne ra,t4,80000668 <fail>
+
+0000000080000334 <test_23>:
+ 80000334: 00100093 li ra,1
+ 80000338: 00e00113 li sp,14
+ 8000033c: 0020913b sllw sp,ra,sp
+ 80000340: 00004eb7 lui t4,0x4
+ 80000344: 01700193 li gp,23
+ 80000348: 33d11063 bne sp,t4,80000668 <fail>
+
+000000008000034c <test_24>:
+ 8000034c: 00300093 li ra,3
+ 80000350: 001090bb sllw ra,ra,ra
+ 80000354: 01800e93 li t4,24
+ 80000358: 01800193 li gp,24
+ 8000035c: 31d09663 bne ra,t4,80000668 <fail>
+
+0000000080000360 <test_25>:
+ 80000360: 00000213 li tp,0
+ 80000364: 00100093 li ra,1
+ 80000368: 00700113 li sp,7
+ 8000036c: 00209f3b sllw t5,ra,sp
+ 80000370: 000f0313 mv t1,t5
+ 80000374: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000378: 00200293 li t0,2
+ 8000037c: fe5214e3 bne tp,t0,80000364 <test_25+0x4>
+ 80000380: 08000e93 li t4,128
+ 80000384: 01900193 li gp,25
+ 80000388: 2fd31063 bne t1,t4,80000668 <fail>
+
+000000008000038c <test_26>:
+ 8000038c: 00000213 li tp,0
+ 80000390: 00100093 li ra,1
+ 80000394: 00e00113 li sp,14
+ 80000398: 00209f3b sllw t5,ra,sp
+ 8000039c: 00000013 nop
+ 800003a0: 000f0313 mv t1,t5
+ 800003a4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800003a8: 00200293 li t0,2
+ 800003ac: fe5212e3 bne tp,t0,80000390 <test_26+0x4>
+ 800003b0: 00004eb7 lui t4,0x4
+ 800003b4: 01a00193 li gp,26
+ 800003b8: 2bd31863 bne t1,t4,80000668 <fail>
+
+00000000800003bc <test_27>:
+ 800003bc: 00000213 li tp,0
+ 800003c0: 00100093 li ra,1
+ 800003c4: 01f00113 li sp,31
+ 800003c8: 00209f3b sllw t5,ra,sp
+ 800003cc: 00000013 nop
+ 800003d0: 00000013 nop
+ 800003d4: 000f0313 mv t1,t5
+ 800003d8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800003dc: 00200293 li t0,2
+ 800003e0: fe5210e3 bne tp,t0,800003c0 <test_27+0x4>
+ 800003e4: 80000eb7 lui t4,0x80000
+ 800003e8: 01b00193 li gp,27
+ 800003ec: 27d31e63 bne t1,t4,80000668 <fail>
+
+00000000800003f0 <test_28>:
+ 800003f0: 00000213 li tp,0
+ 800003f4: 00100093 li ra,1
+ 800003f8: 00700113 li sp,7
+ 800003fc: 00209f3b sllw t5,ra,sp
+ 80000400: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000404: 00200293 li t0,2
+ 80000408: fe5216e3 bne tp,t0,800003f4 <test_28+0x4>
+ 8000040c: 08000e93 li t4,128
+ 80000410: 01c00193 li gp,28
+ 80000414: 25df1a63 bne t5,t4,80000668 <fail>
+
+0000000080000418 <test_29>:
+ 80000418: 00000213 li tp,0
+ 8000041c: 00100093 li ra,1
+ 80000420: 00e00113 li sp,14
+ 80000424: 00000013 nop
+ 80000428: 00209f3b sllw t5,ra,sp
+ 8000042c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000430: 00200293 li t0,2
+ 80000434: fe5214e3 bne tp,t0,8000041c <test_29+0x4>
+ 80000438: 00004eb7 lui t4,0x4
+ 8000043c: 01d00193 li gp,29
+ 80000440: 23df1463 bne t5,t4,80000668 <fail>
+
+0000000080000444 <test_30>:
+ 80000444: 00000213 li tp,0
+ 80000448: 00100093 li ra,1
+ 8000044c: 01f00113 li sp,31
+ 80000450: 00000013 nop
+ 80000454: 00000013 nop
+ 80000458: 00209f3b sllw t5,ra,sp
+ 8000045c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000460: 00200293 li t0,2
+ 80000464: fe5212e3 bne tp,t0,80000448 <test_30+0x4>
+ 80000468: 80000eb7 lui t4,0x80000
+ 8000046c: 01e00193 li gp,30
+ 80000470: 1fdf1c63 bne t5,t4,80000668 <fail>
+
+0000000080000474 <test_31>:
+ 80000474: 00000213 li tp,0
+ 80000478: 00100093 li ra,1
+ 8000047c: 00000013 nop
+ 80000480: 00700113 li sp,7
+ 80000484: 00209f3b sllw t5,ra,sp
+ 80000488: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 8000048c: 00200293 li t0,2
+ 80000490: fe5214e3 bne tp,t0,80000478 <test_31+0x4>
+ 80000494: 08000e93 li t4,128
+ 80000498: 01f00193 li gp,31
+ 8000049c: 1ddf1663 bne t5,t4,80000668 <fail>
+
+00000000800004a0 <test_32>:
+ 800004a0: 00000213 li tp,0
+ 800004a4: 00100093 li ra,1
+ 800004a8: 00000013 nop
+ 800004ac: 00e00113 li sp,14
+ 800004b0: 00000013 nop
+ 800004b4: 00209f3b sllw t5,ra,sp
+ 800004b8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800004bc: 00200293 li t0,2
+ 800004c0: fe5212e3 bne tp,t0,800004a4 <test_32+0x4>
+ 800004c4: 00004eb7 lui t4,0x4
+ 800004c8: 02000193 li gp,32
+ 800004cc: 19df1e63 bne t5,t4,80000668 <fail>
+
+00000000800004d0 <test_33>:
+ 800004d0: 00000213 li tp,0
+ 800004d4: 00100093 li ra,1
+ 800004d8: 00000013 nop
+ 800004dc: 00000013 nop
+ 800004e0: 01f00113 li sp,31
+ 800004e4: 00209f3b sllw t5,ra,sp
+ 800004e8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800004ec: 00200293 li t0,2
+ 800004f0: fe5212e3 bne tp,t0,800004d4 <test_33+0x4>
+ 800004f4: 80000eb7 lui t4,0x80000
+ 800004f8: 02100193 li gp,33
+ 800004fc: 17df1663 bne t5,t4,80000668 <fail>
+
+0000000080000500 <test_34>:
+ 80000500: 00000213 li tp,0
+ 80000504: 00700113 li sp,7
+ 80000508: 00100093 li ra,1
+ 8000050c: 00209f3b sllw t5,ra,sp
+ 80000510: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000514: 00200293 li t0,2
+ 80000518: fe5216e3 bne tp,t0,80000504 <test_34+0x4>
+ 8000051c: 08000e93 li t4,128
+ 80000520: 02200193 li gp,34
+ 80000524: 15df1263 bne t5,t4,80000668 <fail>
+
+0000000080000528 <test_35>:
+ 80000528: 00000213 li tp,0
+ 8000052c: 00e00113 li sp,14
+ 80000530: 00100093 li ra,1
+ 80000534: 00000013 nop
+ 80000538: 00209f3b sllw t5,ra,sp
+ 8000053c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000540: 00200293 li t0,2
+ 80000544: fe5214e3 bne tp,t0,8000052c <test_35+0x4>
+ 80000548: 00004eb7 lui t4,0x4
+ 8000054c: 02300193 li gp,35
+ 80000550: 11df1c63 bne t5,t4,80000668 <fail>
+
+0000000080000554 <test_36>:
+ 80000554: 00000213 li tp,0
+ 80000558: 01f00113 li sp,31
+ 8000055c: 00100093 li ra,1
+ 80000560: 00000013 nop
+ 80000564: 00000013 nop
+ 80000568: 00209f3b sllw t5,ra,sp
+ 8000056c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000570: 00200293 li t0,2
+ 80000574: fe5212e3 bne tp,t0,80000558 <test_36+0x4>
+ 80000578: 80000eb7 lui t4,0x80000
+ 8000057c: 02400193 li gp,36
+ 80000580: 0fdf1463 bne t5,t4,80000668 <fail>
+
+0000000080000584 <test_37>:
+ 80000584: 00000213 li tp,0
+ 80000588: 00700113 li sp,7
+ 8000058c: 00000013 nop
+ 80000590: 00100093 li ra,1
+ 80000594: 00209f3b sllw t5,ra,sp
+ 80000598: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 8000059c: 00200293 li t0,2
+ 800005a0: fe5214e3 bne tp,t0,80000588 <test_37+0x4>
+ 800005a4: 08000e93 li t4,128
+ 800005a8: 02500193 li gp,37
+ 800005ac: 0bdf1e63 bne t5,t4,80000668 <fail>
+
+00000000800005b0 <test_38>:
+ 800005b0: 00000213 li tp,0
+ 800005b4: 00e00113 li sp,14
+ 800005b8: 00000013 nop
+ 800005bc: 00100093 li ra,1
+ 800005c0: 00000013 nop
+ 800005c4: 00209f3b sllw t5,ra,sp
+ 800005c8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800005cc: 00200293 li t0,2
+ 800005d0: fe5212e3 bne tp,t0,800005b4 <test_38+0x4>
+ 800005d4: 00004eb7 lui t4,0x4
+ 800005d8: 02600193 li gp,38
+ 800005dc: 09df1663 bne t5,t4,80000668 <fail>
+
+00000000800005e0 <test_39>:
+ 800005e0: 00000213 li tp,0
+ 800005e4: 01f00113 li sp,31
+ 800005e8: 00000013 nop
+ 800005ec: 00000013 nop
+ 800005f0: 00100093 li ra,1
+ 800005f4: 00209f3b sllw t5,ra,sp
+ 800005f8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800005fc: 00200293 li t0,2
+ 80000600: fe5212e3 bne tp,t0,800005e4 <test_39+0x4>
+ 80000604: 80000eb7 lui t4,0x80000
+ 80000608: 02700193 li gp,39
+ 8000060c: 05df1e63 bne t5,t4,80000668 <fail>
+
+0000000080000610 <test_40>:
+ 80000610: 00f00093 li ra,15
+ 80000614: 0010113b sllw sp,zero,ra
+ 80000618: 00000e93 li t4,0
+ 8000061c: 02800193 li gp,40
+ 80000620: 05d11463 bne sp,t4,80000668 <fail>
+
+0000000080000624 <test_41>:
+ 80000624: 02000093 li ra,32
+ 80000628: 0000913b sllw sp,ra,zero
+ 8000062c: 02000e93 li t4,32
+ 80000630: 02900193 li gp,41
+ 80000634: 03d11a63 bne sp,t4,80000668 <fail>
+
+0000000080000638 <test_42>:
+ 80000638: 000010bb sllw ra,zero,zero
+ 8000063c: 00000e93 li t4,0
+ 80000640: 02a00193 li gp,42
+ 80000644: 03d09263 bne ra,t4,80000668 <fail>
+
+0000000080000648 <test_43>:
+ 80000648: 40000093 li ra,1024
+ 8000064c: 00001137 lui sp,0x1
+ 80000650: 8001011b addiw sp,sp,-2048
+ 80000654: 0020903b sllw zero,ra,sp
+ 80000658: 00000e93 li t4,0
+ 8000065c: 02b00193 li gp,43
+ 80000660: 01d01463 bne zero,t4,80000668 <fail>
+ 80000664: 00301c63 bne zero,gp,8000067c <pass>
+
+0000000080000668 <fail>:
+ 80000668: 0ff0000f fence
+ 8000066c: 00018063 beqz gp,8000066c <fail+0x4>
+ 80000670: 00119193 slli gp,gp,0x1
+ 80000674: 0011e193 ori gp,gp,1
+ 80000678: 00000073 ecall
+
+000000008000067c <pass>:
+ 8000067c: 0ff0000f fence
+ 80000680: 00100193 li gp,1
+ 80000684: 00000073 ecall
+ 80000688: c0001073 unimp
+ 8000068c: 0000 unimp
+ 8000068e: 0000 unimp
+ 80000690: 0000 unimp
+ 80000692: 0000 unimp
+ 80000694: 0000 unimp
+ 80000696: 0000 unimp
+ 80000698: 0000 unimp
+ 8000069a: 0000 unimp
+ 8000069c: 0000 unimp
+ 8000069e: 0000 unimp
+ 800006a0: 0000 unimp
+ 800006a2: 0000 unimp
+ 800006a4: 0000 unimp
+ 800006a6: 0000 unimp
+ 800006a8: 0000 unimp
+ 800006aa: 0000 unimp
+ 800006ac: 0000 unimp
+ 800006ae: 0000 unimp
+ 800006b0: 0000 unimp
+ 800006b2: 0000 unimp
+ 800006b4: 0000 unimp
+ 800006b6: 0000 unimp
+ 800006b8: 0000 unimp
+ 800006ba: 0000 unimp
+ 800006bc: 0000 unimp
+ 800006be: 0000 unimp
+ 800006c0: 0000 unimp
+ 800006c2: 0000 unimp
diff --git a/test/tests/rv64ui-p-sllw.elf b/test/tests/rv64ui-p-sllw.elf
new file mode 100644
index 0000000..4a1c421
--- /dev/null
+++ b/test/tests/rv64ui-p-sllw.elf
Binary files differ
diff --git a/test/tests/rv64ui-p-slt.dump b/test/tests/rv64ui-p-slt.dump
new file mode 100644
index 0000000..1d5f786
--- /dev/null
+++ b/test/tests/rv64ui-p-slt.dump
@@ -0,0 +1,485 @@
+
+rv64ui-p-slt: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <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>
+
+0000000080000114 <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>
+
+000000008000012c <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>
+
+0000000080000144 <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>
+
+000000008000015c <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>
+
+0000000080000174 <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>
+
+000000008000018c <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>
+
+00000000800001a4 <test_9>:
+ 800001a4: 00000093 li ra,0
+ 800001a8: 00008137 lui sp,0x8
+ 800001ac: fff1011b addiw sp,sp,-1
+ 800001b0: 0020af33 slt t5,ra,sp
+ 800001b4: 00100e93 li t4,1
+ 800001b8: 00900193 li gp,9
+ 800001bc: 41df1463 bne t5,t4,800005c4 <fail>
+
+00000000800001c0 <test_10>:
+ 800001c0: 800000b7 lui ra,0x80000
+ 800001c4: fff0809b addiw ra,ra,-1
+ 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>
+
+00000000800001dc <test_11>:
+ 800001dc: 800000b7 lui ra,0x80000
+ 800001e0: fff0809b addiw ra,ra,-1
+ 800001e4: 00008137 lui sp,0x8
+ 800001e8: fff1011b addiw sp,sp,-1
+ 800001ec: 0020af33 slt t5,ra,sp
+ 800001f0: 00000e93 li t4,0
+ 800001f4: 00b00193 li gp,11
+ 800001f8: 3ddf1663 bne t5,t4,800005c4 <fail>
+
+00000000800001fc <test_12>:
+ 800001fc: 800000b7 lui ra,0x80000
+ 80000200: 00008137 lui sp,0x8
+ 80000204: fff1011b addiw sp,sp,-1
+ 80000208: 0020af33 slt t5,ra,sp
+ 8000020c: 00100e93 li t4,1
+ 80000210: 00c00193 li gp,12
+ 80000214: 3bdf1863 bne t5,t4,800005c4 <fail>
+
+0000000080000218 <test_13>:
+ 80000218: 800000b7 lui ra,0x80000
+ 8000021c: fff0809b addiw ra,ra,-1
+ 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>
+
+0000000080000234 <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>
+
+000000008000024c <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>
+
+0000000080000264 <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>
+
+000000008000027c <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>
+
+0000000080000294 <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>
+
+00000000800002ac <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>
+
+00000000800002c0 <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>
+
+00000000800002ec <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>
+
+000000008000031c <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>
+
+0000000080000350 <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>
+
+0000000080000378 <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>
+
+00000000800003a4 <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>
+
+00000000800003d4 <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>
+
+0000000080000400 <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>
+
+0000000080000430 <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>
+
+0000000080000460 <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>
+
+0000000080000488 <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>
+
+00000000800004b4 <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>
+
+00000000800004e4 <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>
+
+0000000080000510 <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>
+
+0000000080000540 <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>
+
+0000000080000570 <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>
+
+0000000080000584 <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>
+
+0000000080000598 <test_37>:
+ 80000598: 000020b3 sltz ra,zero
+ 8000059c: 00000e93 li t4,0
+ 800005a0: 02500193 li gp,37
+ 800005a4: 03d09063 bne ra,t4,800005c4 <fail>
+
+00000000800005a8 <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>
+
+00000000800005c4 <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
+
+00000000800005d8 <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/tests/rv64ui-p-slt.elf b/test/tests/rv64ui-p-slt.elf
new file mode 100644
index 0000000..eef5e47
--- /dev/null
+++ b/test/tests/rv64ui-p-slt.elf
Binary files differ
diff --git a/test/tests/rv64ui-p-slti.dump b/test/tests/rv64ui-p-slti.dump
new file mode 100644
index 0000000..c9ca449
--- /dev/null
+++ b/test/tests/rv64ui-p-slti.dump
@@ -0,0 +1,320 @@
+
+rv64ui-p-slti: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <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>
+
+0000000080000110 <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>
+
+0000000080000124 <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>
+
+0000000080000138 <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>
+
+000000008000014c <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>
+
+0000000080000160 <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>
+
+0000000080000174 <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>
+
+0000000080000188 <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>
+
+000000008000019c <test_10>:
+ 8000019c: 800000b7 lui ra,0x80000
+ 800001a0: fff0809b addiw ra,ra,-1
+ 800001a4: 0000af13 slti t5,ra,0
+ 800001a8: 00000e93 li t4,0
+ 800001ac: 00a00193 li gp,10
+ 800001b0: 1ddf1063 bne t5,t4,80000370 <fail>
+
+00000000800001b4 <test_11>:
+ 800001b4: 800000b7 lui ra,0x80000
+ 800001b8: fff0809b addiw ra,ra,-1
+ 800001bc: 7ff0af13 slti t5,ra,2047
+ 800001c0: 00000e93 li t4,0
+ 800001c4: 00b00193 li gp,11
+ 800001c8: 1bdf1463 bne t5,t4,80000370 <fail>
+
+00000000800001cc <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>
+
+00000000800001e0 <test_13>:
+ 800001e0: 800000b7 lui ra,0x80000
+ 800001e4: fff0809b addiw ra,ra,-1
+ 800001e8: 8000af13 slti t5,ra,-2048
+ 800001ec: 00000e93 li t4,0
+ 800001f0: 00d00193 li gp,13
+ 800001f4: 17df1e63 bne t5,t4,80000370 <fail>
+
+00000000800001f8 <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>
+
+000000008000020c <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>
+
+0000000080000220 <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>
+
+0000000080000234 <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>
+
+0000000080000248 <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>
+
+0000000080000270 <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>
+
+000000008000029c <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>
+
+00000000800002cc <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>
+
+00000000800002f0 <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>
+
+0000000080000318 <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>
+
+0000000080000344 <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>
+
+0000000080000354 <test_25>:
+ 80000354: 00ff00b7 lui ra,0xff0
+ 80000358: 0ff0809b addiw ra,ra,255
+ 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>
+
+0000000080000370 <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
+
+0000000080000384 <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/tests/rv64ui-p-slti.elf b/test/tests/rv64ui-p-slti.elf
new file mode 100644
index 0000000..190f81f
--- /dev/null
+++ b/test/tests/rv64ui-p-slti.elf
Binary files differ
diff --git a/test/tests/rv64ui-p-sltiu.dump b/test/tests/rv64ui-p-sltiu.dump
new file mode 100644
index 0000000..45fe6ab
--- /dev/null
+++ b/test/tests/rv64ui-p-sltiu.dump
@@ -0,0 +1,320 @@
+
+rv64ui-p-sltiu: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <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>
+
+0000000080000110 <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>
+
+0000000080000124 <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>
+
+0000000080000138 <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>
+
+000000008000014c <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>
+
+0000000080000160 <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>
+
+0000000080000174 <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>
+
+0000000080000188 <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>
+
+000000008000019c <test_10>:
+ 8000019c: 800000b7 lui ra,0x80000
+ 800001a0: fff0809b addiw ra,ra,-1
+ 800001a4: 0000bf13 sltiu t5,ra,0
+ 800001a8: 00000e93 li t4,0
+ 800001ac: 00a00193 li gp,10
+ 800001b0: 1ddf1063 bne t5,t4,80000370 <fail>
+
+00000000800001b4 <test_11>:
+ 800001b4: 800000b7 lui ra,0x80000
+ 800001b8: fff0809b addiw ra,ra,-1
+ 800001bc: 7ff0bf13 sltiu t5,ra,2047
+ 800001c0: 00000e93 li t4,0
+ 800001c4: 00b00193 li gp,11
+ 800001c8: 1bdf1463 bne t5,t4,80000370 <fail>
+
+00000000800001cc <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>
+
+00000000800001e0 <test_13>:
+ 800001e0: 800000b7 lui ra,0x80000
+ 800001e4: fff0809b addiw ra,ra,-1
+ 800001e8: 8000bf13 sltiu t5,ra,-2048
+ 800001ec: 00100e93 li t4,1
+ 800001f0: 00d00193 li gp,13
+ 800001f4: 17df1e63 bne t5,t4,80000370 <fail>
+
+00000000800001f8 <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>
+
+000000008000020c <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>
+
+0000000080000220 <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>
+
+0000000080000234 <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>
+
+0000000080000248 <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>
+
+0000000080000270 <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>
+
+000000008000029c <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>
+
+00000000800002cc <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>
+
+00000000800002f0 <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>
+
+0000000080000318 <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>
+
+0000000080000344 <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>
+
+0000000080000354 <test_25>:
+ 80000354: 00ff00b7 lui ra,0xff0
+ 80000358: 0ff0809b addiw ra,ra,255
+ 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>
+
+0000000080000370 <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
+
+0000000080000384 <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/tests/rv64ui-p-sltiu.elf b/test/tests/rv64ui-p-sltiu.elf
new file mode 100644
index 0000000..8347ab8
--- /dev/null
+++ b/test/tests/rv64ui-p-sltiu.elf
Binary files differ
diff --git a/test/tests/rv64ui-p-sltu.dump b/test/tests/rv64ui-p-sltu.dump
new file mode 100644
index 0000000..4b1cd23
--- /dev/null
+++ b/test/tests/rv64ui-p-sltu.dump
@@ -0,0 +1,500 @@
+
+rv64ui-p-sltu: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <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: 4fdf1c63 bne t5,t4,80000608 <fail>
+
+0000000080000114 <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: 4fdf1063 bne t5,t4,80000608 <fail>
+
+000000008000012c <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: 4ddf1463 bne t5,t4,80000608 <fail>
+
+0000000080000144 <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: 4bdf1863 bne t5,t4,80000608 <fail>
+
+000000008000015c <test_6>:
+ 8000015c: 00000093 li ra,0
+ 80000160: 00020137 lui sp,0x20
+ 80000164: fff1011b addiw sp,sp,-1
+ 80000168: 00f11113 slli sp,sp,0xf
+ 8000016c: 0020bf33 sltu t5,ra,sp
+ 80000170: 00100e93 li t4,1
+ 80000174: 00600193 li gp,6
+ 80000178: 49df1863 bne t5,t4,80000608 <fail>
+
+000000008000017c <test_7>:
+ 8000017c: 0010009b addiw ra,zero,1
+ 80000180: 01f09093 slli ra,ra,0x1f
+ 80000184: 00000113 li sp,0
+ 80000188: 0020bf33 sltu t5,ra,sp
+ 8000018c: 00000e93 li t4,0
+ 80000190: 00700193 li gp,7
+ 80000194: 47df1a63 bne t5,t4,80000608 <fail>
+
+0000000080000198 <test_8>:
+ 80000198: 0010009b addiw ra,zero,1
+ 8000019c: 01f09093 slli ra,ra,0x1f
+ 800001a0: 00020137 lui sp,0x20
+ 800001a4: fff1011b addiw sp,sp,-1
+ 800001a8: 00f11113 slli sp,sp,0xf
+ 800001ac: 0020bf33 sltu t5,ra,sp
+ 800001b0: 00100e93 li t4,1
+ 800001b4: 00800193 li gp,8
+ 800001b8: 45df1863 bne t5,t4,80000608 <fail>
+
+00000000800001bc <test_9>:
+ 800001bc: 00000093 li ra,0
+ 800001c0: 00008137 lui sp,0x8
+ 800001c4: fff1011b addiw sp,sp,-1
+ 800001c8: 0020bf33 sltu t5,ra,sp
+ 800001cc: 00100e93 li t4,1
+ 800001d0: 00900193 li gp,9
+ 800001d4: 43df1a63 bne t5,t4,80000608 <fail>
+
+00000000800001d8 <test_10>:
+ 800001d8: 800000b7 lui ra,0x80000
+ 800001dc: fff0809b addiw ra,ra,-1
+ 800001e0: 00000113 li sp,0
+ 800001e4: 0020bf33 sltu t5,ra,sp
+ 800001e8: 00000e93 li t4,0
+ 800001ec: 00a00193 li gp,10
+ 800001f0: 41df1c63 bne t5,t4,80000608 <fail>
+
+00000000800001f4 <test_11>:
+ 800001f4: 800000b7 lui ra,0x80000
+ 800001f8: fff0809b addiw ra,ra,-1
+ 800001fc: 00008137 lui sp,0x8
+ 80000200: fff1011b addiw sp,sp,-1
+ 80000204: 0020bf33 sltu t5,ra,sp
+ 80000208: 00000e93 li t4,0
+ 8000020c: 00b00193 li gp,11
+ 80000210: 3fdf1c63 bne t5,t4,80000608 <fail>
+
+0000000080000214 <test_12>:
+ 80000214: 0010009b addiw ra,zero,1
+ 80000218: 01f09093 slli ra,ra,0x1f
+ 8000021c: 00008137 lui sp,0x8
+ 80000220: fff1011b addiw sp,sp,-1
+ 80000224: 0020bf33 sltu t5,ra,sp
+ 80000228: 00000e93 li t4,0
+ 8000022c: 00c00193 li gp,12
+ 80000230: 3ddf1c63 bne t5,t4,80000608 <fail>
+
+0000000080000234 <test_13>:
+ 80000234: 800000b7 lui ra,0x80000
+ 80000238: fff0809b addiw ra,ra,-1
+ 8000023c: 00020137 lui sp,0x20
+ 80000240: fff1011b addiw sp,sp,-1
+ 80000244: 00f11113 slli sp,sp,0xf
+ 80000248: 0020bf33 sltu t5,ra,sp
+ 8000024c: 00100e93 li t4,1
+ 80000250: 00d00193 li gp,13
+ 80000254: 3bdf1a63 bne t5,t4,80000608 <fail>
+
+0000000080000258 <test_14>:
+ 80000258: 00000093 li ra,0
+ 8000025c: 0010011b addiw sp,zero,1
+ 80000260: 02011113 slli sp,sp,0x20
+ 80000264: fff10113 addi sp,sp,-1 # 1ffff <_start-0x7ffe0001>
+ 80000268: 0020bf33 sltu t5,ra,sp
+ 8000026c: 00100e93 li t4,1
+ 80000270: 00e00193 li gp,14
+ 80000274: 39df1a63 bne t5,t4,80000608 <fail>
+
+0000000080000278 <test_15>:
+ 80000278: 0010009b addiw ra,zero,1
+ 8000027c: 02009093 slli ra,ra,0x20
+ 80000280: fff08093 addi ra,ra,-1 # ffffffff7fffffff <_end+0xfffffffeffffdfff>
+ 80000284: 00100113 li sp,1
+ 80000288: 0020bf33 sltu t5,ra,sp
+ 8000028c: 00000e93 li t4,0
+ 80000290: 00f00193 li gp,15
+ 80000294: 37df1a63 bne t5,t4,80000608 <fail>
+
+0000000080000298 <test_16>:
+ 80000298: 0010009b addiw ra,zero,1
+ 8000029c: 02009093 slli ra,ra,0x20
+ 800002a0: fff08093 addi ra,ra,-1
+ 800002a4: 0010011b addiw sp,zero,1
+ 800002a8: 02011113 slli sp,sp,0x20
+ 800002ac: fff10113 addi sp,sp,-1
+ 800002b0: 0020bf33 sltu t5,ra,sp
+ 800002b4: 00000e93 li t4,0
+ 800002b8: 01000193 li gp,16
+ 800002bc: 35df1663 bne t5,t4,80000608 <fail>
+
+00000000800002c0 <test_17>:
+ 800002c0: 00e00093 li ra,14
+ 800002c4: 00d00113 li sp,13
+ 800002c8: 0020b0b3 sltu ra,ra,sp
+ 800002cc: 00000e93 li t4,0
+ 800002d0: 01100193 li gp,17
+ 800002d4: 33d09a63 bne ra,t4,80000608 <fail>
+
+00000000800002d8 <test_18>:
+ 800002d8: 00b00093 li ra,11
+ 800002dc: 00d00113 li sp,13
+ 800002e0: 0020b133 sltu sp,ra,sp
+ 800002e4: 00100e93 li t4,1
+ 800002e8: 01200193 li gp,18
+ 800002ec: 31d11e63 bne sp,t4,80000608 <fail>
+
+00000000800002f0 <test_19>:
+ 800002f0: 00d00093 li ra,13
+ 800002f4: 0010b0b3 sltu ra,ra,ra
+ 800002f8: 00000e93 li t4,0
+ 800002fc: 01300193 li gp,19
+ 80000300: 31d09463 bne ra,t4,80000608 <fail>
+
+0000000080000304 <test_20>:
+ 80000304: 00000213 li tp,0
+ 80000308: 00b00093 li ra,11
+ 8000030c: 00d00113 li sp,13
+ 80000310: 0020bf33 sltu t5,ra,sp
+ 80000314: 000f0313 mv t1,t5
+ 80000318: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 8000031c: 00200293 li t0,2
+ 80000320: fe5214e3 bne tp,t0,80000308 <test_20+0x4>
+ 80000324: 00100e93 li t4,1
+ 80000328: 01400193 li gp,20
+ 8000032c: 2dd31e63 bne t1,t4,80000608 <fail>
+
+0000000080000330 <test_21>:
+ 80000330: 00000213 li tp,0
+ 80000334: 00e00093 li ra,14
+ 80000338: 00d00113 li sp,13
+ 8000033c: 0020bf33 sltu t5,ra,sp
+ 80000340: 00000013 nop
+ 80000344: 000f0313 mv t1,t5
+ 80000348: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 8000034c: 00200293 li t0,2
+ 80000350: fe5212e3 bne tp,t0,80000334 <test_21+0x4>
+ 80000354: 00000e93 li t4,0
+ 80000358: 01500193 li gp,21
+ 8000035c: 2bd31663 bne t1,t4,80000608 <fail>
+
+0000000080000360 <test_22>:
+ 80000360: 00000213 li tp,0
+ 80000364: 00c00093 li ra,12
+ 80000368: 00d00113 li sp,13
+ 8000036c: 0020bf33 sltu t5,ra,sp
+ 80000370: 00000013 nop
+ 80000374: 00000013 nop
+ 80000378: 000f0313 mv t1,t5
+ 8000037c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000380: 00200293 li t0,2
+ 80000384: fe5210e3 bne tp,t0,80000364 <test_22+0x4>
+ 80000388: 00100e93 li t4,1
+ 8000038c: 01600193 li gp,22
+ 80000390: 27d31c63 bne t1,t4,80000608 <fail>
+
+0000000080000394 <test_23>:
+ 80000394: 00000213 li tp,0
+ 80000398: 00e00093 li ra,14
+ 8000039c: 00d00113 li sp,13
+ 800003a0: 0020bf33 sltu t5,ra,sp
+ 800003a4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800003a8: 00200293 li t0,2
+ 800003ac: fe5216e3 bne tp,t0,80000398 <test_23+0x4>
+ 800003b0: 00000e93 li t4,0
+ 800003b4: 01700193 li gp,23
+ 800003b8: 25df1863 bne t5,t4,80000608 <fail>
+
+00000000800003bc <test_24>:
+ 800003bc: 00000213 li tp,0
+ 800003c0: 00b00093 li ra,11
+ 800003c4: 00d00113 li sp,13
+ 800003c8: 00000013 nop
+ 800003cc: 0020bf33 sltu t5,ra,sp
+ 800003d0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800003d4: 00200293 li t0,2
+ 800003d8: fe5214e3 bne tp,t0,800003c0 <test_24+0x4>
+ 800003dc: 00100e93 li t4,1
+ 800003e0: 01800193 li gp,24
+ 800003e4: 23df1263 bne t5,t4,80000608 <fail>
+
+00000000800003e8 <test_25>:
+ 800003e8: 00000213 li tp,0
+ 800003ec: 00f00093 li ra,15
+ 800003f0: 00d00113 li sp,13
+ 800003f4: 00000013 nop
+ 800003f8: 00000013 nop
+ 800003fc: 0020bf33 sltu t5,ra,sp
+ 80000400: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000404: 00200293 li t0,2
+ 80000408: fe5212e3 bne tp,t0,800003ec <test_25+0x4>
+ 8000040c: 00000e93 li t4,0
+ 80000410: 01900193 li gp,25
+ 80000414: 1fdf1a63 bne t5,t4,80000608 <fail>
+
+0000000080000418 <test_26>:
+ 80000418: 00000213 li tp,0
+ 8000041c: 00a00093 li ra,10
+ 80000420: 00000013 nop
+ 80000424: 00d00113 li sp,13
+ 80000428: 0020bf33 sltu t5,ra,sp
+ 8000042c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000430: 00200293 li t0,2
+ 80000434: fe5214e3 bne tp,t0,8000041c <test_26+0x4>
+ 80000438: 00100e93 li t4,1
+ 8000043c: 01a00193 li gp,26
+ 80000440: 1ddf1463 bne t5,t4,80000608 <fail>
+
+0000000080000444 <test_27>:
+ 80000444: 00000213 li tp,0
+ 80000448: 01000093 li ra,16
+ 8000044c: 00000013 nop
+ 80000450: 00d00113 li sp,13
+ 80000454: 00000013 nop
+ 80000458: 0020bf33 sltu t5,ra,sp
+ 8000045c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000460: 00200293 li t0,2
+ 80000464: fe5212e3 bne tp,t0,80000448 <test_27+0x4>
+ 80000468: 00000e93 li t4,0
+ 8000046c: 01b00193 li gp,27
+ 80000470: 19df1c63 bne t5,t4,80000608 <fail>
+
+0000000080000474 <test_28>:
+ 80000474: 00000213 li tp,0
+ 80000478: 00900093 li ra,9
+ 8000047c: 00000013 nop
+ 80000480: 00000013 nop
+ 80000484: 00d00113 li sp,13
+ 80000488: 0020bf33 sltu t5,ra,sp
+ 8000048c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000490: 00200293 li t0,2
+ 80000494: fe5212e3 bne tp,t0,80000478 <test_28+0x4>
+ 80000498: 00100e93 li t4,1
+ 8000049c: 01c00193 li gp,28
+ 800004a0: 17df1463 bne t5,t4,80000608 <fail>
+
+00000000800004a4 <test_29>:
+ 800004a4: 00000213 li tp,0
+ 800004a8: 00d00113 li sp,13
+ 800004ac: 01100093 li ra,17
+ 800004b0: 0020bf33 sltu t5,ra,sp
+ 800004b4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800004b8: 00200293 li t0,2
+ 800004bc: fe5216e3 bne tp,t0,800004a8 <test_29+0x4>
+ 800004c0: 00000e93 li t4,0
+ 800004c4: 01d00193 li gp,29
+ 800004c8: 15df1063 bne t5,t4,80000608 <fail>
+
+00000000800004cc <test_30>:
+ 800004cc: 00000213 li tp,0
+ 800004d0: 00d00113 li sp,13
+ 800004d4: 00800093 li ra,8
+ 800004d8: 00000013 nop
+ 800004dc: 0020bf33 sltu t5,ra,sp
+ 800004e0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800004e4: 00200293 li t0,2
+ 800004e8: fe5214e3 bne tp,t0,800004d0 <test_30+0x4>
+ 800004ec: 00100e93 li t4,1
+ 800004f0: 01e00193 li gp,30
+ 800004f4: 11df1a63 bne t5,t4,80000608 <fail>
+
+00000000800004f8 <test_31>:
+ 800004f8: 00000213 li tp,0
+ 800004fc: 00d00113 li sp,13
+ 80000500: 01200093 li ra,18
+ 80000504: 00000013 nop
+ 80000508: 00000013 nop
+ 8000050c: 0020bf33 sltu t5,ra,sp
+ 80000510: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000514: 00200293 li t0,2
+ 80000518: fe5212e3 bne tp,t0,800004fc <test_31+0x4>
+ 8000051c: 00000e93 li t4,0
+ 80000520: 01f00193 li gp,31
+ 80000524: 0fdf1263 bne t5,t4,80000608 <fail>
+
+0000000080000528 <test_32>:
+ 80000528: 00000213 li tp,0
+ 8000052c: 00d00113 li sp,13
+ 80000530: 00000013 nop
+ 80000534: 00700093 li ra,7
+ 80000538: 0020bf33 sltu t5,ra,sp
+ 8000053c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000540: 00200293 li t0,2
+ 80000544: fe5214e3 bne tp,t0,8000052c <test_32+0x4>
+ 80000548: 00100e93 li t4,1
+ 8000054c: 02000193 li gp,32
+ 80000550: 0bdf1c63 bne t5,t4,80000608 <fail>
+
+0000000080000554 <test_33>:
+ 80000554: 00000213 li tp,0
+ 80000558: 00d00113 li sp,13
+ 8000055c: 00000013 nop
+ 80000560: 01300093 li ra,19
+ 80000564: 00000013 nop
+ 80000568: 0020bf33 sltu t5,ra,sp
+ 8000056c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000570: 00200293 li t0,2
+ 80000574: fe5212e3 bne tp,t0,80000558 <test_33+0x4>
+ 80000578: 00000e93 li t4,0
+ 8000057c: 02100193 li gp,33
+ 80000580: 09df1463 bne t5,t4,80000608 <fail>
+
+0000000080000584 <test_34>:
+ 80000584: 00000213 li tp,0
+ 80000588: 00d00113 li sp,13
+ 8000058c: 00000013 nop
+ 80000590: 00000013 nop
+ 80000594: 00600093 li ra,6
+ 80000598: 0020bf33 sltu t5,ra,sp
+ 8000059c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800005a0: 00200293 li t0,2
+ 800005a4: fe5212e3 bne tp,t0,80000588 <test_34+0x4>
+ 800005a8: 00100e93 li t4,1
+ 800005ac: 02200193 li gp,34
+ 800005b0: 05df1c63 bne t5,t4,80000608 <fail>
+
+00000000800005b4 <test_35>:
+ 800005b4: fff00093 li ra,-1
+ 800005b8: 00103133 snez sp,ra
+ 800005bc: 00100e93 li t4,1
+ 800005c0: 02300193 li gp,35
+ 800005c4: 05d11263 bne sp,t4,80000608 <fail>
+
+00000000800005c8 <test_36>:
+ 800005c8: fff00093 li ra,-1
+ 800005cc: 0000b133 sltu sp,ra,zero
+ 800005d0: 00000e93 li t4,0
+ 800005d4: 02400193 li gp,36
+ 800005d8: 03d11863 bne sp,t4,80000608 <fail>
+
+00000000800005dc <test_37>:
+ 800005dc: 000030b3 snez ra,zero
+ 800005e0: 00000e93 li t4,0
+ 800005e4: 02500193 li gp,37
+ 800005e8: 03d09063 bne ra,t4,80000608 <fail>
+
+00000000800005ec <test_38>:
+ 800005ec: 01000093 li ra,16
+ 800005f0: 01e00113 li sp,30
+ 800005f4: 0020b033 sltu zero,ra,sp
+ 800005f8: 00000e93 li t4,0
+ 800005fc: 02600193 li gp,38
+ 80000600: 01d01463 bne zero,t4,80000608 <fail>
+ 80000604: 00301c63 bne zero,gp,8000061c <pass>
+
+0000000080000608 <fail>:
+ 80000608: 0ff0000f fence
+ 8000060c: 00018063 beqz gp,8000060c <fail+0x4>
+ 80000610: 00119193 slli gp,gp,0x1
+ 80000614: 0011e193 ori gp,gp,1
+ 80000618: 00000073 ecall
+
+000000008000061c <pass>:
+ 8000061c: 0ff0000f fence
+ 80000620: 00100193 li gp,1
+ 80000624: 00000073 ecall
+ 80000628: c0001073 unimp
+ 8000062c: 0000 unimp
+ 8000062e: 0000 unimp
+ 80000630: 0000 unimp
+ 80000632: 0000 unimp
+ 80000634: 0000 unimp
+ 80000636: 0000 unimp
+ 80000638: 0000 unimp
+ 8000063a: 0000 unimp
+ 8000063c: 0000 unimp
+ 8000063e: 0000 unimp
+ 80000640: 0000 unimp
+ 80000642: 0000 unimp
diff --git a/test/tests/rv64ui-p-sltu.elf b/test/tests/rv64ui-p-sltu.elf
new file mode 100644
index 0000000..a1ef113
--- /dev/null
+++ b/test/tests/rv64ui-p-sltu.elf
Binary files differ
diff --git a/test/tests/rv64ui-p-sra.dump b/test/tests/rv64ui-p-sra.dump
new file mode 100644
index 0000000..4b5e4ed
--- /dev/null
+++ b/test/tests/rv64ui-p-sra.dump
@@ -0,0 +1,538 @@
+
+rv64ui-p-sra: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <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>
+
+0000000080000114 <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>
+
+000000008000012c <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>
+
+0000000080000144 <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>
+
+000000008000015c <test_6>:
+ 8000015c: 800000b7 lui ra,0x80000
+ 80000160: 0010809b addiw ra,ra,1
+ 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>
+
+0000000080000178 <test_7>:
+ 80000178: 800000b7 lui ra,0x80000
+ 8000017c: fff0809b addiw ra,ra,-1
+ 80000180: 00000113 li sp,0
+ 80000184: 4020df33 sra t5,ra,sp
+ 80000188: 80000eb7 lui t4,0x80000
+ 8000018c: fffe8e9b addiw t4,t4,-1
+ 80000190: 00700193 li gp,7
+ 80000194: 51df1263 bne t5,t4,80000698 <fail>
+
+0000000080000198 <test_8>:
+ 80000198: 800000b7 lui ra,0x80000
+ 8000019c: fff0809b addiw ra,ra,-1
+ 800001a0: 00100113 li sp,1
+ 800001a4: 4020df33 sra t5,ra,sp
+ 800001a8: 40000eb7 lui t4,0x40000
+ 800001ac: fffe8e9b addiw t4,t4,-1
+ 800001b0: 00800193 li gp,8
+ 800001b4: 4fdf1263 bne t5,t4,80000698 <fail>
+
+00000000800001b8 <test_9>:
+ 800001b8: 800000b7 lui ra,0x80000
+ 800001bc: fff0809b addiw ra,ra,-1
+ 800001c0: 00700113 li sp,7
+ 800001c4: 4020df33 sra t5,ra,sp
+ 800001c8: 01000eb7 lui t4,0x1000
+ 800001cc: fffe8e9b addiw t4,t4,-1
+ 800001d0: 00900193 li gp,9
+ 800001d4: 4ddf1263 bne t5,t4,80000698 <fail>
+
+00000000800001d8 <test_10>:
+ 800001d8: 800000b7 lui ra,0x80000
+ 800001dc: fff0809b addiw ra,ra,-1
+ 800001e0: 00e00113 li sp,14
+ 800001e4: 4020df33 sra t5,ra,sp
+ 800001e8: 00020eb7 lui t4,0x20
+ 800001ec: fffe8e9b addiw t4,t4,-1
+ 800001f0: 00a00193 li gp,10
+ 800001f4: 4bdf1263 bne t5,t4,80000698 <fail>
+
+00000000800001f8 <test_11>:
+ 800001f8: 800000b7 lui ra,0x80000
+ 800001fc: fff0809b addiw ra,ra,-1
+ 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>
+
+0000000080000214 <test_12>:
+ 80000214: 818180b7 lui ra,0x81818
+ 80000218: 1810809b addiw ra,ra,385
+ 8000021c: 00000113 li sp,0
+ 80000220: 4020df33 sra t5,ra,sp
+ 80000224: 81818eb7 lui t4,0x81818
+ 80000228: 181e8e9b addiw t4,t4,385
+ 8000022c: 00c00193 li gp,12
+ 80000230: 47df1463 bne t5,t4,80000698 <fail>
+
+0000000080000234 <test_13>:
+ 80000234: 818180b7 lui ra,0x81818
+ 80000238: 1810809b addiw ra,ra,385
+ 8000023c: 00100113 li sp,1
+ 80000240: 4020df33 sra t5,ra,sp
+ 80000244: c0c0ceb7 lui t4,0xc0c0c
+ 80000248: 0c0e8e9b addiw t4,t4,192
+ 8000024c: 00d00193 li gp,13
+ 80000250: 45df1463 bne t5,t4,80000698 <fail>
+
+0000000080000254 <test_14>:
+ 80000254: 818180b7 lui ra,0x81818
+ 80000258: 1810809b addiw ra,ra,385
+ 8000025c: 00700113 li sp,7
+ 80000260: 4020df33 sra t5,ra,sp
+ 80000264: ff030eb7 lui t4,0xff030
+ 80000268: 303e8e9b addiw t4,t4,771
+ 8000026c: 00e00193 li gp,14
+ 80000270: 43df1463 bne t5,t4,80000698 <fail>
+
+0000000080000274 <test_15>:
+ 80000274: 818180b7 lui ra,0x81818
+ 80000278: 1810809b addiw ra,ra,385
+ 8000027c: 00e00113 li sp,14
+ 80000280: 4020df33 sra t5,ra,sp
+ 80000284: fffe0eb7 lui t4,0xfffe0
+ 80000288: 606e8e9b addiw t4,t4,1542
+ 8000028c: 00f00193 li gp,15
+ 80000290: 41df1463 bne t5,t4,80000698 <fail>
+
+0000000080000294 <test_16>:
+ 80000294: 818180b7 lui ra,0x81818
+ 80000298: 1810809b addiw ra,ra,385
+ 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>
+
+00000000800002b0 <test_17>:
+ 800002b0: 818180b7 lui ra,0x81818
+ 800002b4: 1810809b addiw ra,ra,385
+ 800002b8: fc000113 li sp,-64
+ 800002bc: 4020df33 sra t5,ra,sp
+ 800002c0: 81818eb7 lui t4,0x81818
+ 800002c4: 181e8e9b addiw t4,t4,385
+ 800002c8: 01100193 li gp,17
+ 800002cc: 3ddf1663 bne t5,t4,80000698 <fail>
+
+00000000800002d0 <test_18>:
+ 800002d0: 818180b7 lui ra,0x81818
+ 800002d4: 1810809b addiw ra,ra,385
+ 800002d8: fc100113 li sp,-63
+ 800002dc: 4020df33 sra t5,ra,sp
+ 800002e0: c0c0ceb7 lui t4,0xc0c0c
+ 800002e4: 0c0e8e9b addiw t4,t4,192
+ 800002e8: 01200193 li gp,18
+ 800002ec: 3bdf1663 bne t5,t4,80000698 <fail>
+
+00000000800002f0 <test_19>:
+ 800002f0: 818180b7 lui ra,0x81818
+ 800002f4: 1810809b addiw ra,ra,385
+ 800002f8: fc700113 li sp,-57
+ 800002fc: 4020df33 sra t5,ra,sp
+ 80000300: ff030eb7 lui t4,0xff030
+ 80000304: 303e8e9b addiw t4,t4,771
+ 80000308: 01300193 li gp,19
+ 8000030c: 39df1663 bne t5,t4,80000698 <fail>
+
+0000000080000310 <test_20>:
+ 80000310: 818180b7 lui ra,0x81818
+ 80000314: 1810809b addiw ra,ra,385
+ 80000318: fce00113 li sp,-50
+ 8000031c: 4020df33 sra t5,ra,sp
+ 80000320: fffe0eb7 lui t4,0xfffe0
+ 80000324: 606e8e9b addiw t4,t4,1542
+ 80000328: 01400193 li gp,20
+ 8000032c: 37df1663 bne t5,t4,80000698 <fail>
+
+0000000080000330 <test_21>:
+ 80000330: 818180b7 lui ra,0x81818
+ 80000334: 1810809b addiw ra,ra,385
+ 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>
+
+000000008000034c <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>
+
+0000000080000364 <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>
+
+000000008000037c <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>
+
+0000000080000390 <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>
+
+00000000800003bc <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>
+
+00000000800003ec <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>
+
+0000000080000420 <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>
+
+0000000080000448 <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>
+
+0000000080000474 <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>
+
+00000000800004a4 <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>
+
+00000000800004d0 <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>
+
+0000000080000500 <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>
+
+0000000080000530 <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>
+
+0000000080000558 <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>
+
+0000000080000584 <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>
+
+00000000800005b4 <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>
+
+00000000800005e0 <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>
+
+0000000080000610 <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>
+
+0000000080000640 <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>
+
+0000000080000654 <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>
+
+0000000080000668 <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>
+
+0000000080000678 <test_43>:
+ 80000678: 40000093 li ra,1024
+ 8000067c: 00001137 lui sp,0x1
+ 80000680: 8001011b addiw sp,sp,-2048
+ 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>
+
+0000000080000698 <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
+
+00000000800006ac <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/tests/rv64ui-p-sra.elf b/test/tests/rv64ui-p-sra.elf
new file mode 100644
index 0000000..f03501d
--- /dev/null
+++ b/test/tests/rv64ui-p-sra.elf
Binary files differ
diff --git a/test/tests/rv64ui-p-srai.dump b/test/tests/rv64ui-p-srai.dump
new file mode 100644
index 0000000..e86b051
--- /dev/null
+++ b/test/tests/rv64ui-p-srai.dump
@@ -0,0 +1,333 @@
+
+rv64ui-p-srai: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <test_2>:
+ 800000fc: fff0009b addiw ra,zero,-1
+ 80000100: 02709093 slli ra,ra,0x27
+ 80000104: 4000df13 srai t5,ra,0x0
+ 80000108: fff00e9b addiw t4,zero,-1
+ 8000010c: 027e9e93 slli t4,t4,0x27
+ 80000110: 00200193 li gp,2
+ 80000114: 2bdf1463 bne t5,t4,800003bc <fail>
+
+0000000080000118 <test_3>:
+ 80000118: 800000b7 lui ra,0x80000
+ 8000011c: 4010df13 srai t5,ra,0x1
+ 80000120: c0000eb7 lui t4,0xc0000
+ 80000124: 00300193 li gp,3
+ 80000128: 29df1a63 bne t5,t4,800003bc <fail>
+
+000000008000012c <test_4>:
+ 8000012c: 800000b7 lui ra,0x80000
+ 80000130: 4070df13 srai t5,ra,0x7
+ 80000134: ff000eb7 lui t4,0xff000
+ 80000138: 00400193 li gp,4
+ 8000013c: 29df1063 bne t5,t4,800003bc <fail>
+
+0000000080000140 <test_5>:
+ 80000140: 800000b7 lui ra,0x80000
+ 80000144: 40e0df13 srai t5,ra,0xe
+ 80000148: fffe0eb7 lui t4,0xfffe0
+ 8000014c: 00500193 li gp,5
+ 80000150: 27df1663 bne t5,t4,800003bc <fail>
+
+0000000080000154 <test_6>:
+ 80000154: 800000b7 lui ra,0x80000
+ 80000158: 0010809b addiw ra,ra,1
+ 8000015c: 41f0df13 srai t5,ra,0x1f
+ 80000160: fff00e93 li t4,-1
+ 80000164: 00600193 li gp,6
+ 80000168: 25df1a63 bne t5,t4,800003bc <fail>
+
+000000008000016c <test_7>:
+ 8000016c: 800000b7 lui ra,0x80000
+ 80000170: fff0809b addiw ra,ra,-1
+ 80000174: 4000df13 srai t5,ra,0x0
+ 80000178: 80000eb7 lui t4,0x80000
+ 8000017c: fffe8e9b addiw t4,t4,-1
+ 80000180: 00700193 li gp,7
+ 80000184: 23df1c63 bne t5,t4,800003bc <fail>
+
+0000000080000188 <test_8>:
+ 80000188: 800000b7 lui ra,0x80000
+ 8000018c: fff0809b addiw ra,ra,-1
+ 80000190: 4010df13 srai t5,ra,0x1
+ 80000194: 40000eb7 lui t4,0x40000
+ 80000198: fffe8e9b addiw t4,t4,-1
+ 8000019c: 00800193 li gp,8
+ 800001a0: 21df1e63 bne t5,t4,800003bc <fail>
+
+00000000800001a4 <test_9>:
+ 800001a4: 800000b7 lui ra,0x80000
+ 800001a8: fff0809b addiw ra,ra,-1
+ 800001ac: 4070df13 srai t5,ra,0x7
+ 800001b0: 01000eb7 lui t4,0x1000
+ 800001b4: fffe8e9b addiw t4,t4,-1
+ 800001b8: 00900193 li gp,9
+ 800001bc: 21df1063 bne t5,t4,800003bc <fail>
+
+00000000800001c0 <test_10>:
+ 800001c0: 800000b7 lui ra,0x80000
+ 800001c4: fff0809b addiw ra,ra,-1
+ 800001c8: 40e0df13 srai t5,ra,0xe
+ 800001cc: 00020eb7 lui t4,0x20
+ 800001d0: fffe8e9b addiw t4,t4,-1
+ 800001d4: 00a00193 li gp,10
+ 800001d8: 1fdf1263 bne t5,t4,800003bc <fail>
+
+00000000800001dc <test_11>:
+ 800001dc: 800000b7 lui ra,0x80000
+ 800001e0: fff0809b addiw ra,ra,-1
+ 800001e4: 41f0df13 srai t5,ra,0x1f
+ 800001e8: 00000e93 li t4,0
+ 800001ec: 00b00193 li gp,11
+ 800001f0: 1ddf1663 bne t5,t4,800003bc <fail>
+
+00000000800001f4 <test_12>:
+ 800001f4: 818180b7 lui ra,0x81818
+ 800001f8: 1810809b addiw ra,ra,385
+ 800001fc: 4000df13 srai t5,ra,0x0
+ 80000200: 81818eb7 lui t4,0x81818
+ 80000204: 181e8e9b addiw t4,t4,385
+ 80000208: 00c00193 li gp,12
+ 8000020c: 1bdf1863 bne t5,t4,800003bc <fail>
+
+0000000080000210 <test_13>:
+ 80000210: 818180b7 lui ra,0x81818
+ 80000214: 1810809b addiw ra,ra,385
+ 80000218: 4010df13 srai t5,ra,0x1
+ 8000021c: c0c0ceb7 lui t4,0xc0c0c
+ 80000220: 0c0e8e9b addiw t4,t4,192
+ 80000224: 00d00193 li gp,13
+ 80000228: 19df1a63 bne t5,t4,800003bc <fail>
+
+000000008000022c <test_14>:
+ 8000022c: 818180b7 lui ra,0x81818
+ 80000230: 1810809b addiw ra,ra,385
+ 80000234: 4070df13 srai t5,ra,0x7
+ 80000238: ff030eb7 lui t4,0xff030
+ 8000023c: 303e8e9b addiw t4,t4,771
+ 80000240: 00e00193 li gp,14
+ 80000244: 17df1c63 bne t5,t4,800003bc <fail>
+
+0000000080000248 <test_15>:
+ 80000248: 818180b7 lui ra,0x81818
+ 8000024c: 1810809b addiw ra,ra,385
+ 80000250: 40e0df13 srai t5,ra,0xe
+ 80000254: fffe0eb7 lui t4,0xfffe0
+ 80000258: 606e8e9b addiw t4,t4,1542
+ 8000025c: 00f00193 li gp,15
+ 80000260: 15df1e63 bne t5,t4,800003bc <fail>
+
+0000000080000264 <test_16>:
+ 80000264: 818180b7 lui ra,0x81818
+ 80000268: 1810809b addiw ra,ra,385
+ 8000026c: 41f0df13 srai t5,ra,0x1f
+ 80000270: fff00e93 li t4,-1
+ 80000274: 01000193 li gp,16
+ 80000278: 15df1263 bne t5,t4,800003bc <fail>
+
+000000008000027c <test_17>:
+ 8000027c: 800000b7 lui ra,0x80000
+ 80000280: 4070d093 srai ra,ra,0x7
+ 80000284: ff000eb7 lui t4,0xff000
+ 80000288: 01100193 li gp,17
+ 8000028c: 13d09863 bne ra,t4,800003bc <fail>
+
+0000000080000290 <test_18>:
+ 80000290: 00000213 li tp,0
+ 80000294: 800000b7 lui ra,0x80000
+ 80000298: 4070df13 srai t5,ra,0x7
+ 8000029c: 000f0313 mv t1,t5
+ 800002a0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800002a4: 00200293 li t0,2
+ 800002a8: fe5216e3 bne tp,t0,80000294 <test_18+0x4>
+ 800002ac: ff000eb7 lui t4,0xff000
+ 800002b0: 01200193 li gp,18
+ 800002b4: 11d31463 bne t1,t4,800003bc <fail>
+
+00000000800002b8 <test_19>:
+ 800002b8: 00000213 li tp,0
+ 800002bc: 800000b7 lui ra,0x80000
+ 800002c0: 40e0df13 srai t5,ra,0xe
+ 800002c4: 00000013 nop
+ 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: fffe0eb7 lui t4,0xfffe0
+ 800002dc: 01300193 li gp,19
+ 800002e0: 0dd31e63 bne t1,t4,800003bc <fail>
+
+00000000800002e4 <test_20>:
+ 800002e4: 00000213 li tp,0
+ 800002e8: 800000b7 lui ra,0x80000
+ 800002ec: 0010809b addiw ra,ra,1
+ 800002f0: 41f0df13 srai t5,ra,0x1f
+ 800002f4: 00000013 nop
+ 800002f8: 00000013 nop
+ 800002fc: 000f0313 mv t1,t5
+ 80000300: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000304: 00200293 li t0,2
+ 80000308: fe5210e3 bne tp,t0,800002e8 <test_20+0x4>
+ 8000030c: fff00e93 li t4,-1
+ 80000310: 01400193 li gp,20
+ 80000314: 0bd31463 bne t1,t4,800003bc <fail>
+
+0000000080000318 <test_21>:
+ 80000318: 00000213 li tp,0
+ 8000031c: 800000b7 lui ra,0x80000
+ 80000320: 4070df13 srai t5,ra,0x7
+ 80000324: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000328: 00200293 li t0,2
+ 8000032c: fe5218e3 bne tp,t0,8000031c <test_21+0x4>
+ 80000330: ff000eb7 lui t4,0xff000
+ 80000334: 01500193 li gp,21
+ 80000338: 09df1263 bne t5,t4,800003bc <fail>
+
+000000008000033c <test_22>:
+ 8000033c: 00000213 li tp,0
+ 80000340: 800000b7 lui ra,0x80000
+ 80000344: 00000013 nop
+ 80000348: 40e0df13 srai t5,ra,0xe
+ 8000034c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000350: 00200293 li t0,2
+ 80000354: fe5216e3 bne tp,t0,80000340 <test_22+0x4>
+ 80000358: fffe0eb7 lui t4,0xfffe0
+ 8000035c: 01600193 li gp,22
+ 80000360: 05df1e63 bne t5,t4,800003bc <fail>
+
+0000000080000364 <test_23>:
+ 80000364: 00000213 li tp,0
+ 80000368: 800000b7 lui ra,0x80000
+ 8000036c: 0010809b addiw ra,ra,1
+ 80000370: 00000013 nop
+ 80000374: 00000013 nop
+ 80000378: 41f0df13 srai t5,ra,0x1f
+ 8000037c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000380: 00200293 li t0,2
+ 80000384: fe5212e3 bne tp,t0,80000368 <test_23+0x4>
+ 80000388: fff00e93 li t4,-1
+ 8000038c: 01700193 li gp,23
+ 80000390: 03df1663 bne t5,t4,800003bc <fail>
+
+0000000080000394 <test_24>:
+ 80000394: 40405093 srai ra,zero,0x4
+ 80000398: 00000e93 li t4,0
+ 8000039c: 01800193 li gp,24
+ 800003a0: 01d09e63 bne ra,t4,800003bc <fail>
+
+00000000800003a4 <test_25>:
+ 800003a4: 02100093 li ra,33
+ 800003a8: 40a0d013 srai zero,ra,0xa
+ 800003ac: 00000e93 li t4,0
+ 800003b0: 01900193 li gp,25
+ 800003b4: 01d01463 bne zero,t4,800003bc <fail>
+ 800003b8: 00301c63 bne zero,gp,800003d0 <pass>
+
+00000000800003bc <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
+
+00000000800003d0 <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/tests/rv64ui-p-srai.elf b/test/tests/rv64ui-p-srai.elf
new file mode 100644
index 0000000..c670ee9
--- /dev/null
+++ b/test/tests/rv64ui-p-srai.elf
Binary files differ
diff --git a/test/tests/rv64ui-p-sraiw.dump b/test/tests/rv64ui-p-sraiw.dump
new file mode 100644
index 0000000..c45179f
--- /dev/null
+++ b/test/tests/rv64ui-p-sraiw.dump
@@ -0,0 +1,359 @@
+
+rv64ui-p-sraiw: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <test_2>:
+ 800000fc: 800000b7 lui ra,0x80000
+ 80000100: 4000df1b sraiw t5,ra,0x0
+ 80000104: 80000eb7 lui t4,0x80000
+ 80000108: 00200193 li gp,2
+ 8000010c: 2ddf1c63 bne t5,t4,800003e4 <fail>
+
+0000000080000110 <test_3>:
+ 80000110: 800000b7 lui ra,0x80000
+ 80000114: 4010df1b sraiw t5,ra,0x1
+ 80000118: c0000eb7 lui t4,0xc0000
+ 8000011c: 00300193 li gp,3
+ 80000120: 2ddf1263 bne t5,t4,800003e4 <fail>
+
+0000000080000124 <test_4>:
+ 80000124: 800000b7 lui ra,0x80000
+ 80000128: 4070df1b sraiw t5,ra,0x7
+ 8000012c: ff000eb7 lui t4,0xff000
+ 80000130: 00400193 li gp,4
+ 80000134: 2bdf1863 bne t5,t4,800003e4 <fail>
+
+0000000080000138 <test_5>:
+ 80000138: 800000b7 lui ra,0x80000
+ 8000013c: 40e0df1b sraiw t5,ra,0xe
+ 80000140: fffe0eb7 lui t4,0xfffe0
+ 80000144: 00500193 li gp,5
+ 80000148: 29df1e63 bne t5,t4,800003e4 <fail>
+
+000000008000014c <test_6>:
+ 8000014c: 800000b7 lui ra,0x80000
+ 80000150: 0010809b addiw ra,ra,1
+ 80000154: 41f0df1b sraiw t5,ra,0x1f
+ 80000158: fff00e93 li t4,-1
+ 8000015c: 00600193 li gp,6
+ 80000160: 29df1263 bne t5,t4,800003e4 <fail>
+
+0000000080000164 <test_7>:
+ 80000164: 800000b7 lui ra,0x80000
+ 80000168: fff0809b addiw ra,ra,-1
+ 8000016c: 4000df1b sraiw t5,ra,0x0
+ 80000170: 80000eb7 lui t4,0x80000
+ 80000174: fffe8e9b addiw t4,t4,-1
+ 80000178: 00700193 li gp,7
+ 8000017c: 27df1463 bne t5,t4,800003e4 <fail>
+
+0000000080000180 <test_8>:
+ 80000180: 800000b7 lui ra,0x80000
+ 80000184: fff0809b addiw ra,ra,-1
+ 80000188: 4010df1b sraiw t5,ra,0x1
+ 8000018c: 40000eb7 lui t4,0x40000
+ 80000190: fffe8e9b addiw t4,t4,-1
+ 80000194: 00800193 li gp,8
+ 80000198: 25df1663 bne t5,t4,800003e4 <fail>
+
+000000008000019c <test_9>:
+ 8000019c: 800000b7 lui ra,0x80000
+ 800001a0: fff0809b addiw ra,ra,-1
+ 800001a4: 4070df1b sraiw t5,ra,0x7
+ 800001a8: 01000eb7 lui t4,0x1000
+ 800001ac: fffe8e9b addiw t4,t4,-1
+ 800001b0: 00900193 li gp,9
+ 800001b4: 23df1863 bne t5,t4,800003e4 <fail>
+
+00000000800001b8 <test_10>:
+ 800001b8: 800000b7 lui ra,0x80000
+ 800001bc: fff0809b addiw ra,ra,-1
+ 800001c0: 40e0df1b sraiw t5,ra,0xe
+ 800001c4: 00020eb7 lui t4,0x20
+ 800001c8: fffe8e9b addiw t4,t4,-1
+ 800001cc: 00a00193 li gp,10
+ 800001d0: 21df1a63 bne t5,t4,800003e4 <fail>
+
+00000000800001d4 <test_11>:
+ 800001d4: 800000b7 lui ra,0x80000
+ 800001d8: fff0809b addiw ra,ra,-1
+ 800001dc: 41f0df1b sraiw t5,ra,0x1f
+ 800001e0: 00000e93 li t4,0
+ 800001e4: 00b00193 li gp,11
+ 800001e8: 1fdf1e63 bne t5,t4,800003e4 <fail>
+
+00000000800001ec <test_12>:
+ 800001ec: 818180b7 lui ra,0x81818
+ 800001f0: 1810809b addiw ra,ra,385
+ 800001f4: 4000df1b sraiw t5,ra,0x0
+ 800001f8: 81818eb7 lui t4,0x81818
+ 800001fc: 181e8e9b addiw t4,t4,385
+ 80000200: 00c00193 li gp,12
+ 80000204: 1fdf1063 bne t5,t4,800003e4 <fail>
+
+0000000080000208 <test_13>:
+ 80000208: 818180b7 lui ra,0x81818
+ 8000020c: 1810809b addiw ra,ra,385
+ 80000210: 4010df1b sraiw t5,ra,0x1
+ 80000214: c0c0ceb7 lui t4,0xc0c0c
+ 80000218: 0c0e8e9b addiw t4,t4,192
+ 8000021c: 00d00193 li gp,13
+ 80000220: 1ddf1263 bne t5,t4,800003e4 <fail>
+
+0000000080000224 <test_14>:
+ 80000224: 818180b7 lui ra,0x81818
+ 80000228: 1810809b addiw ra,ra,385
+ 8000022c: 4070df1b sraiw t5,ra,0x7
+ 80000230: ff030eb7 lui t4,0xff030
+ 80000234: 303e8e9b addiw t4,t4,771
+ 80000238: 00e00193 li gp,14
+ 8000023c: 1bdf1463 bne t5,t4,800003e4 <fail>
+
+0000000080000240 <test_15>:
+ 80000240: 818180b7 lui ra,0x81818
+ 80000244: 1810809b addiw ra,ra,385
+ 80000248: 40e0df1b sraiw t5,ra,0xe
+ 8000024c: fffe0eb7 lui t4,0xfffe0
+ 80000250: 606e8e9b addiw t4,t4,1542
+ 80000254: 00f00193 li gp,15
+ 80000258: 19df1663 bne t5,t4,800003e4 <fail>
+
+000000008000025c <test_16>:
+ 8000025c: 818180b7 lui ra,0x81818
+ 80000260: 1810809b addiw ra,ra,385
+ 80000264: 41f0df1b sraiw t5,ra,0x1f
+ 80000268: fff00e93 li t4,-1
+ 8000026c: 01000193 li gp,16
+ 80000270: 17df1a63 bne t5,t4,800003e4 <fail>
+
+0000000080000274 <test_17>:
+ 80000274: 800000b7 lui ra,0x80000
+ 80000278: 4070d09b sraiw ra,ra,0x7
+ 8000027c: ff000eb7 lui t4,0xff000
+ 80000280: 01100193 li gp,17
+ 80000284: 17d09063 bne ra,t4,800003e4 <fail>
+
+0000000080000288 <test_18>:
+ 80000288: 00000213 li tp,0
+ 8000028c: 800000b7 lui ra,0x80000
+ 80000290: 4070df1b sraiw 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: 13d31c63 bne t1,t4,800003e4 <fail>
+
+00000000800002b0 <test_19>:
+ 800002b0: 00000213 li tp,0
+ 800002b4: 800000b7 lui ra,0x80000
+ 800002b8: 40e0df1b sraiw 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: 11d31663 bne t1,t4,800003e4 <fail>
+
+00000000800002dc <test_20>:
+ 800002dc: 00000213 li tp,0
+ 800002e0: 800000b7 lui ra,0x80000
+ 800002e4: 0010809b addiw ra,ra,1
+ 800002e8: 41f0df1b sraiw 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: 0dd31c63 bne t1,t4,800003e4 <fail>
+
+0000000080000310 <test_21>:
+ 80000310: 00000213 li tp,0
+ 80000314: 800000b7 lui ra,0x80000
+ 80000318: 4070df1b sraiw 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: 0bdf1a63 bne t5,t4,800003e4 <fail>
+
+0000000080000334 <test_22>:
+ 80000334: 00000213 li tp,0
+ 80000338: 800000b7 lui ra,0x80000
+ 8000033c: 00000013 nop
+ 80000340: 40e0df1b sraiw 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: 09df1663 bne t5,t4,800003e4 <fail>
+
+000000008000035c <test_23>:
+ 8000035c: 00000213 li tp,0
+ 80000360: 800000b7 lui ra,0x80000
+ 80000364: 0010809b addiw ra,ra,1
+ 80000368: 00000013 nop
+ 8000036c: 00000013 nop
+ 80000370: 41f0df1b sraiw 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: 05df1e63 bne t5,t4,800003e4 <fail>
+
+000000008000038c <test_24>:
+ 8000038c: 41f0509b sraiw ra,zero,0x1f
+ 80000390: 00000e93 li t4,0
+ 80000394: 01800193 li gp,24
+ 80000398: 05d09663 bne ra,t4,800003e4 <fail>
+
+000000008000039c <test_25>:
+ 8000039c: 01f00093 li ra,31
+ 800003a0: 41c0d01b sraiw zero,ra,0x1c
+ 800003a4: 00000e93 li t4,0
+ 800003a8: 01900193 li gp,25
+ 800003ac: 03d01c63 bne zero,t4,800003e4 <fail>
+
+00000000800003b0 <test_26>:
+ 800003b0: 0070009b addiw ra,zero,7
+ 800003b4: 03509093 slli ra,ra,0x35
+ 800003b8: 41c0df1b sraiw t5,ra,0x1c
+ 800003bc: 00000e93 li t4,0
+ 800003c0: 01a00193 li gp,26
+ 800003c4: 03df1063 bne t5,t4,800003e4 <fail>
+
+00000000800003c8 <test_27>:
+ 800003c8: 00f0009b addiw ra,zero,15
+ 800003cc: 01c09093 slli ra,ra,0x1c
+ 800003d0: 4040df1b sraiw t5,ra,0x4
+ 800003d4: ff000eb7 lui t4,0xff000
+ 800003d8: 01b00193 li gp,27
+ 800003dc: 01df1463 bne t5,t4,800003e4 <fail>
+ 800003e0: 00301c63 bne zero,gp,800003f8 <pass>
+
+00000000800003e4 <fail>:
+ 800003e4: 0ff0000f fence
+ 800003e8: 00018063 beqz gp,800003e8 <fail+0x4>
+ 800003ec: 00119193 slli gp,gp,0x1
+ 800003f0: 0011e193 ori gp,gp,1
+ 800003f4: 00000073 ecall
+
+00000000800003f8 <pass>:
+ 800003f8: 0ff0000f fence
+ 800003fc: 00100193 li gp,1
+ 80000400: 00000073 ecall
+ 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
diff --git a/test/tests/rv64ui-p-sraiw.elf b/test/tests/rv64ui-p-sraiw.elf
new file mode 100644
index 0000000..e4cab28
--- /dev/null
+++ b/test/tests/rv64ui-p-sraiw.elf
Binary files differ
diff --git a/test/tests/rv64ui-p-sraw.dump b/test/tests/rv64ui-p-sraw.dump
new file mode 100644
index 0000000..dc65ff4
--- /dev/null
+++ b/test/tests/rv64ui-p-sraw.dump
@@ -0,0 +1,538 @@
+
+rv64ui-p-sraw: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <test_2>:
+ 800000fc: 800000b7 lui ra,0x80000
+ 80000100: 00000113 li sp,0
+ 80000104: 4020df3b sraw t5,ra,sp
+ 80000108: 80000eb7 lui t4,0x80000
+ 8000010c: 00200193 li gp,2
+ 80000110: 59df1463 bne t5,t4,80000698 <fail>
+
+0000000080000114 <test_3>:
+ 80000114: 800000b7 lui ra,0x80000
+ 80000118: 00100113 li sp,1
+ 8000011c: 4020df3b sraw t5,ra,sp
+ 80000120: c0000eb7 lui t4,0xc0000
+ 80000124: 00300193 li gp,3
+ 80000128: 57df1863 bne t5,t4,80000698 <fail>
+
+000000008000012c <test_4>:
+ 8000012c: 800000b7 lui ra,0x80000
+ 80000130: 00700113 li sp,7
+ 80000134: 4020df3b sraw t5,ra,sp
+ 80000138: ff000eb7 lui t4,0xff000
+ 8000013c: 00400193 li gp,4
+ 80000140: 55df1c63 bne t5,t4,80000698 <fail>
+
+0000000080000144 <test_5>:
+ 80000144: 800000b7 lui ra,0x80000
+ 80000148: 00e00113 li sp,14
+ 8000014c: 4020df3b sraw t5,ra,sp
+ 80000150: fffe0eb7 lui t4,0xfffe0
+ 80000154: 00500193 li gp,5
+ 80000158: 55df1063 bne t5,t4,80000698 <fail>
+
+000000008000015c <test_6>:
+ 8000015c: 800000b7 lui ra,0x80000
+ 80000160: 0010809b addiw ra,ra,1
+ 80000164: 01f00113 li sp,31
+ 80000168: 4020df3b sraw t5,ra,sp
+ 8000016c: fff00e93 li t4,-1
+ 80000170: 00600193 li gp,6
+ 80000174: 53df1263 bne t5,t4,80000698 <fail>
+
+0000000080000178 <test_7>:
+ 80000178: 800000b7 lui ra,0x80000
+ 8000017c: fff0809b addiw ra,ra,-1
+ 80000180: 00000113 li sp,0
+ 80000184: 4020df3b sraw t5,ra,sp
+ 80000188: 80000eb7 lui t4,0x80000
+ 8000018c: fffe8e9b addiw t4,t4,-1
+ 80000190: 00700193 li gp,7
+ 80000194: 51df1263 bne t5,t4,80000698 <fail>
+
+0000000080000198 <test_8>:
+ 80000198: 800000b7 lui ra,0x80000
+ 8000019c: fff0809b addiw ra,ra,-1
+ 800001a0: 00100113 li sp,1
+ 800001a4: 4020df3b sraw t5,ra,sp
+ 800001a8: 40000eb7 lui t4,0x40000
+ 800001ac: fffe8e9b addiw t4,t4,-1
+ 800001b0: 00800193 li gp,8
+ 800001b4: 4fdf1263 bne t5,t4,80000698 <fail>
+
+00000000800001b8 <test_9>:
+ 800001b8: 800000b7 lui ra,0x80000
+ 800001bc: fff0809b addiw ra,ra,-1
+ 800001c0: 00700113 li sp,7
+ 800001c4: 4020df3b sraw t5,ra,sp
+ 800001c8: 01000eb7 lui t4,0x1000
+ 800001cc: fffe8e9b addiw t4,t4,-1
+ 800001d0: 00900193 li gp,9
+ 800001d4: 4ddf1263 bne t5,t4,80000698 <fail>
+
+00000000800001d8 <test_10>:
+ 800001d8: 800000b7 lui ra,0x80000
+ 800001dc: fff0809b addiw ra,ra,-1
+ 800001e0: 00e00113 li sp,14
+ 800001e4: 4020df3b sraw t5,ra,sp
+ 800001e8: 00020eb7 lui t4,0x20
+ 800001ec: fffe8e9b addiw t4,t4,-1
+ 800001f0: 00a00193 li gp,10
+ 800001f4: 4bdf1263 bne t5,t4,80000698 <fail>
+
+00000000800001f8 <test_11>:
+ 800001f8: 800000b7 lui ra,0x80000
+ 800001fc: fff0809b addiw ra,ra,-1
+ 80000200: 01f00113 li sp,31
+ 80000204: 4020df3b sraw t5,ra,sp
+ 80000208: 00000e93 li t4,0
+ 8000020c: 00b00193 li gp,11
+ 80000210: 49df1463 bne t5,t4,80000698 <fail>
+
+0000000080000214 <test_12>:
+ 80000214: 818180b7 lui ra,0x81818
+ 80000218: 1810809b addiw ra,ra,385
+ 8000021c: 00000113 li sp,0
+ 80000220: 4020df3b sraw t5,ra,sp
+ 80000224: 81818eb7 lui t4,0x81818
+ 80000228: 181e8e9b addiw t4,t4,385
+ 8000022c: 00c00193 li gp,12
+ 80000230: 47df1463 bne t5,t4,80000698 <fail>
+
+0000000080000234 <test_13>:
+ 80000234: 818180b7 lui ra,0x81818
+ 80000238: 1810809b addiw ra,ra,385
+ 8000023c: 00100113 li sp,1
+ 80000240: 4020df3b sraw t5,ra,sp
+ 80000244: c0c0ceb7 lui t4,0xc0c0c
+ 80000248: 0c0e8e9b addiw t4,t4,192
+ 8000024c: 00d00193 li gp,13
+ 80000250: 45df1463 bne t5,t4,80000698 <fail>
+
+0000000080000254 <test_14>:
+ 80000254: 818180b7 lui ra,0x81818
+ 80000258: 1810809b addiw ra,ra,385
+ 8000025c: 00700113 li sp,7
+ 80000260: 4020df3b sraw t5,ra,sp
+ 80000264: ff030eb7 lui t4,0xff030
+ 80000268: 303e8e9b addiw t4,t4,771
+ 8000026c: 00e00193 li gp,14
+ 80000270: 43df1463 bne t5,t4,80000698 <fail>
+
+0000000080000274 <test_15>:
+ 80000274: 818180b7 lui ra,0x81818
+ 80000278: 1810809b addiw ra,ra,385
+ 8000027c: 00e00113 li sp,14
+ 80000280: 4020df3b sraw t5,ra,sp
+ 80000284: fffe0eb7 lui t4,0xfffe0
+ 80000288: 606e8e9b addiw t4,t4,1542
+ 8000028c: 00f00193 li gp,15
+ 80000290: 41df1463 bne t5,t4,80000698 <fail>
+
+0000000080000294 <test_16>:
+ 80000294: 818180b7 lui ra,0x81818
+ 80000298: 1810809b addiw ra,ra,385
+ 8000029c: 01f00113 li sp,31
+ 800002a0: 4020df3b sraw t5,ra,sp
+ 800002a4: fff00e93 li t4,-1
+ 800002a8: 01000193 li gp,16
+ 800002ac: 3fdf1663 bne t5,t4,80000698 <fail>
+
+00000000800002b0 <test_17>:
+ 800002b0: 818180b7 lui ra,0x81818
+ 800002b4: 1810809b addiw ra,ra,385
+ 800002b8: fe000113 li sp,-32
+ 800002bc: 4020df3b sraw t5,ra,sp
+ 800002c0: 81818eb7 lui t4,0x81818
+ 800002c4: 181e8e9b addiw t4,t4,385
+ 800002c8: 01100193 li gp,17
+ 800002cc: 3ddf1663 bne t5,t4,80000698 <fail>
+
+00000000800002d0 <test_18>:
+ 800002d0: 818180b7 lui ra,0x81818
+ 800002d4: 1810809b addiw ra,ra,385
+ 800002d8: fe100113 li sp,-31
+ 800002dc: 4020df3b sraw t5,ra,sp
+ 800002e0: c0c0ceb7 lui t4,0xc0c0c
+ 800002e4: 0c0e8e9b addiw t4,t4,192
+ 800002e8: 01200193 li gp,18
+ 800002ec: 3bdf1663 bne t5,t4,80000698 <fail>
+
+00000000800002f0 <test_19>:
+ 800002f0: 818180b7 lui ra,0x81818
+ 800002f4: 1810809b addiw ra,ra,385
+ 800002f8: fe700113 li sp,-25
+ 800002fc: 4020df3b sraw t5,ra,sp
+ 80000300: ff030eb7 lui t4,0xff030
+ 80000304: 303e8e9b addiw t4,t4,771
+ 80000308: 01300193 li gp,19
+ 8000030c: 39df1663 bne t5,t4,80000698 <fail>
+
+0000000080000310 <test_20>:
+ 80000310: 818180b7 lui ra,0x81818
+ 80000314: 1810809b addiw ra,ra,385
+ 80000318: fee00113 li sp,-18
+ 8000031c: 4020df3b sraw t5,ra,sp
+ 80000320: fffe0eb7 lui t4,0xfffe0
+ 80000324: 606e8e9b addiw t4,t4,1542
+ 80000328: 01400193 li gp,20
+ 8000032c: 37df1663 bne t5,t4,80000698 <fail>
+
+0000000080000330 <test_21>:
+ 80000330: 818180b7 lui ra,0x81818
+ 80000334: 1810809b addiw ra,ra,385
+ 80000338: fff00113 li sp,-1
+ 8000033c: 4020df3b sraw t5,ra,sp
+ 80000340: fff00e93 li t4,-1
+ 80000344: 01500193 li gp,21
+ 80000348: 35df1863 bne t5,t4,80000698 <fail>
+
+000000008000034c <test_22>:
+ 8000034c: 800000b7 lui ra,0x80000
+ 80000350: 00700113 li sp,7
+ 80000354: 4020d0bb sraw ra,ra,sp
+ 80000358: ff000eb7 lui t4,0xff000
+ 8000035c: 01600193 li gp,22
+ 80000360: 33d09c63 bne ra,t4,80000698 <fail>
+
+0000000080000364 <test_23>:
+ 80000364: 800000b7 lui ra,0x80000
+ 80000368: 00e00113 li sp,14
+ 8000036c: 4020d13b sraw sp,ra,sp
+ 80000370: fffe0eb7 lui t4,0xfffe0
+ 80000374: 01700193 li gp,23
+ 80000378: 33d11063 bne sp,t4,80000698 <fail>
+
+000000008000037c <test_24>:
+ 8000037c: 00700093 li ra,7
+ 80000380: 4010d0bb sraw ra,ra,ra
+ 80000384: 00000e93 li t4,0
+ 80000388: 01800193 li gp,24
+ 8000038c: 31d09663 bne ra,t4,80000698 <fail>
+
+0000000080000390 <test_25>:
+ 80000390: 00000213 li tp,0
+ 80000394: 800000b7 lui ra,0x80000
+ 80000398: 00700113 li sp,7
+ 8000039c: 4020df3b sraw 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>
+
+00000000800003bc <test_26>:
+ 800003bc: 00000213 li tp,0
+ 800003c0: 800000b7 lui ra,0x80000
+ 800003c4: 00e00113 li sp,14
+ 800003c8: 4020df3b sraw 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>
+
+00000000800003ec <test_27>:
+ 800003ec: 00000213 li tp,0
+ 800003f0: 800000b7 lui ra,0x80000
+ 800003f4: 01f00113 li sp,31
+ 800003f8: 4020df3b sraw 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>
+
+0000000080000420 <test_28>:
+ 80000420: 00000213 li tp,0
+ 80000424: 800000b7 lui ra,0x80000
+ 80000428: 00700113 li sp,7
+ 8000042c: 4020df3b sraw 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>
+
+0000000080000448 <test_29>:
+ 80000448: 00000213 li tp,0
+ 8000044c: 800000b7 lui ra,0x80000
+ 80000450: 00e00113 li sp,14
+ 80000454: 00000013 nop
+ 80000458: 4020df3b sraw 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>
+
+0000000080000474 <test_30>:
+ 80000474: 00000213 li tp,0
+ 80000478: 800000b7 lui ra,0x80000
+ 8000047c: 01f00113 li sp,31
+ 80000480: 00000013 nop
+ 80000484: 00000013 nop
+ 80000488: 4020df3b sraw 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>
+
+00000000800004a4 <test_31>:
+ 800004a4: 00000213 li tp,0
+ 800004a8: 800000b7 lui ra,0x80000
+ 800004ac: 00000013 nop
+ 800004b0: 00700113 li sp,7
+ 800004b4: 4020df3b sraw 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>
+
+00000000800004d0 <test_32>:
+ 800004d0: 00000213 li tp,0
+ 800004d4: 800000b7 lui ra,0x80000
+ 800004d8: 00000013 nop
+ 800004dc: 00e00113 li sp,14
+ 800004e0: 00000013 nop
+ 800004e4: 4020df3b sraw 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>
+
+0000000080000500 <test_33>:
+ 80000500: 00000213 li tp,0
+ 80000504: 800000b7 lui ra,0x80000
+ 80000508: 00000013 nop
+ 8000050c: 00000013 nop
+ 80000510: 01f00113 li sp,31
+ 80000514: 4020df3b sraw 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>
+
+0000000080000530 <test_34>:
+ 80000530: 00000213 li tp,0
+ 80000534: 00700113 li sp,7
+ 80000538: 800000b7 lui ra,0x80000
+ 8000053c: 4020df3b sraw 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>
+
+0000000080000558 <test_35>:
+ 80000558: 00000213 li tp,0
+ 8000055c: 00e00113 li sp,14
+ 80000560: 800000b7 lui ra,0x80000
+ 80000564: 00000013 nop
+ 80000568: 4020df3b sraw 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>
+
+0000000080000584 <test_36>:
+ 80000584: 00000213 li tp,0
+ 80000588: 01f00113 li sp,31
+ 8000058c: 800000b7 lui ra,0x80000
+ 80000590: 00000013 nop
+ 80000594: 00000013 nop
+ 80000598: 4020df3b sraw 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>
+
+00000000800005b4 <test_37>:
+ 800005b4: 00000213 li tp,0
+ 800005b8: 00700113 li sp,7
+ 800005bc: 00000013 nop
+ 800005c0: 800000b7 lui ra,0x80000
+ 800005c4: 4020df3b sraw 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>
+
+00000000800005e0 <test_38>:
+ 800005e0: 00000213 li tp,0
+ 800005e4: 00e00113 li sp,14
+ 800005e8: 00000013 nop
+ 800005ec: 800000b7 lui ra,0x80000
+ 800005f0: 00000013 nop
+ 800005f4: 4020df3b sraw 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>
+
+0000000080000610 <test_39>:
+ 80000610: 00000213 li tp,0
+ 80000614: 01f00113 li sp,31
+ 80000618: 00000013 nop
+ 8000061c: 00000013 nop
+ 80000620: 800000b7 lui ra,0x80000
+ 80000624: 4020df3b sraw 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>
+
+0000000080000640 <test_40>:
+ 80000640: 00f00093 li ra,15
+ 80000644: 4010513b sraw sp,zero,ra
+ 80000648: 00000e93 li t4,0
+ 8000064c: 02800193 li gp,40
+ 80000650: 05d11463 bne sp,t4,80000698 <fail>
+
+0000000080000654 <test_41>:
+ 80000654: 02000093 li ra,32
+ 80000658: 4000d13b sraw sp,ra,zero
+ 8000065c: 02000e93 li t4,32
+ 80000660: 02900193 li gp,41
+ 80000664: 03d11a63 bne sp,t4,80000698 <fail>
+
+0000000080000668 <test_42>:
+ 80000668: 400050bb sraw ra,zero,zero
+ 8000066c: 00000e93 li t4,0
+ 80000670: 02a00193 li gp,42
+ 80000674: 03d09263 bne ra,t4,80000698 <fail>
+
+0000000080000678 <test_43>:
+ 80000678: 40000093 li ra,1024
+ 8000067c: 00001137 lui sp,0x1
+ 80000680: 8001011b addiw sp,sp,-2048
+ 80000684: 4020d03b sraw 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>
+
+0000000080000698 <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
+
+00000000800006ac <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/tests/rv64ui-p-sraw.elf b/test/tests/rv64ui-p-sraw.elf
new file mode 100644
index 0000000..40d2f2c
--- /dev/null
+++ b/test/tests/rv64ui-p-sraw.elf
Binary files differ
diff --git a/test/tests/rv64ui-p-srl.dump b/test/tests/rv64ui-p-srl.dump
new file mode 100644
index 0000000..314069f
--- /dev/null
+++ b/test/tests/rv64ui-p-srl.dump
@@ -0,0 +1,575 @@
+
+rv64ui-p-srl: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <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: 5fdf1a63 bne t5,t4,80000704 <fail>
+
+0000000080000114 <test_3>:
+ 80000114: 800000b7 lui ra,0x80000
+ 80000118: 00100113 li sp,1
+ 8000011c: 0020df33 srl t5,ra,sp
+ 80000120: 00100e9b addiw t4,zero,1
+ 80000124: 021e9e93 slli t4,t4,0x21
+ 80000128: fffe8e93 addi t4,t4,-1 # ffffffff7fffffff <_end+0xfffffffeffffdfff>
+ 8000012c: 01ee9e93 slli t4,t4,0x1e
+ 80000130: 00300193 li gp,3
+ 80000134: 5ddf1863 bne t5,t4,80000704 <fail>
+
+0000000080000138 <test_4>:
+ 80000138: 800000b7 lui ra,0x80000
+ 8000013c: 00700113 li sp,7
+ 80000140: 0020df33 srl t5,ra,sp
+ 80000144: 00100e9b addiw t4,zero,1
+ 80000148: 021e9e93 slli t4,t4,0x21
+ 8000014c: fffe8e93 addi t4,t4,-1
+ 80000150: 018e9e93 slli t4,t4,0x18
+ 80000154: 00400193 li gp,4
+ 80000158: 5bdf1663 bne t5,t4,80000704 <fail>
+
+000000008000015c <test_5>:
+ 8000015c: 800000b7 lui ra,0x80000
+ 80000160: 00e00113 li sp,14
+ 80000164: 0020df33 srl t5,ra,sp
+ 80000168: 00100e9b addiw t4,zero,1
+ 8000016c: 021e9e93 slli t4,t4,0x21
+ 80000170: fffe8e93 addi t4,t4,-1
+ 80000174: 011e9e93 slli t4,t4,0x11
+ 80000178: 00500193 li gp,5
+ 8000017c: 59df1463 bne t5,t4,80000704 <fail>
+
+0000000080000180 <test_6>:
+ 80000180: 800000b7 lui ra,0x80000
+ 80000184: 0010809b addiw ra,ra,1
+ 80000188: 01f00113 li sp,31
+ 8000018c: 0020df33 srl t5,ra,sp
+ 80000190: 00100e9b addiw t4,zero,1
+ 80000194: 021e9e93 slli t4,t4,0x21
+ 80000198: fffe8e93 addi t4,t4,-1
+ 8000019c: 00600193 li gp,6
+ 800001a0: 57df1263 bne t5,t4,80000704 <fail>
+
+00000000800001a4 <test_7>:
+ 800001a4: fff00093 li ra,-1
+ 800001a8: 00000113 li sp,0
+ 800001ac: 0020df33 srl t5,ra,sp
+ 800001b0: fff00e93 li t4,-1
+ 800001b4: 00700193 li gp,7
+ 800001b8: 55df1663 bne t5,t4,80000704 <fail>
+
+00000000800001bc <test_8>:
+ 800001bc: fff00093 li ra,-1
+ 800001c0: 00100113 li sp,1
+ 800001c4: 0020df33 srl t5,ra,sp
+ 800001c8: fff00e9b addiw t4,zero,-1
+ 800001cc: 03fe9e93 slli t4,t4,0x3f
+ 800001d0: fffe8e93 addi t4,t4,-1
+ 800001d4: 00800193 li gp,8
+ 800001d8: 53df1663 bne t5,t4,80000704 <fail>
+
+00000000800001dc <test_9>:
+ 800001dc: fff00093 li ra,-1
+ 800001e0: 00700113 li sp,7
+ 800001e4: 0020df33 srl t5,ra,sp
+ 800001e8: 00100e9b addiw t4,zero,1
+ 800001ec: 039e9e93 slli t4,t4,0x39
+ 800001f0: fffe8e93 addi t4,t4,-1
+ 800001f4: 00900193 li gp,9
+ 800001f8: 51df1663 bne t5,t4,80000704 <fail>
+
+00000000800001fc <test_10>:
+ 800001fc: fff00093 li ra,-1
+ 80000200: 00e00113 li sp,14
+ 80000204: 0020df33 srl t5,ra,sp
+ 80000208: 00100e9b addiw t4,zero,1
+ 8000020c: 032e9e93 slli t4,t4,0x32
+ 80000210: fffe8e93 addi t4,t4,-1
+ 80000214: 00a00193 li gp,10
+ 80000218: 4fdf1663 bne t5,t4,80000704 <fail>
+
+000000008000021c <test_11>:
+ 8000021c: fff00093 li ra,-1
+ 80000220: 01f00113 li sp,31
+ 80000224: 0020df33 srl t5,ra,sp
+ 80000228: 00100e9b addiw t4,zero,1
+ 8000022c: 021e9e93 slli t4,t4,0x21
+ 80000230: fffe8e93 addi t4,t4,-1
+ 80000234: 00b00193 li gp,11
+ 80000238: 4ddf1663 bne t5,t4,80000704 <fail>
+
+000000008000023c <test_12>:
+ 8000023c: 212120b7 lui ra,0x21212
+ 80000240: 1210809b addiw ra,ra,289
+ 80000244: 00000113 li sp,0
+ 80000248: 0020df33 srl t5,ra,sp
+ 8000024c: 21212eb7 lui t4,0x21212
+ 80000250: 121e8e9b addiw t4,t4,289
+ 80000254: 00c00193 li gp,12
+ 80000258: 4bdf1663 bne t5,t4,80000704 <fail>
+
+000000008000025c <test_13>:
+ 8000025c: 212120b7 lui ra,0x21212
+ 80000260: 1210809b addiw ra,ra,289
+ 80000264: 00100113 li sp,1
+ 80000268: 0020df33 srl t5,ra,sp
+ 8000026c: 10909eb7 lui t4,0x10909
+ 80000270: 090e8e9b addiw t4,t4,144
+ 80000274: 00d00193 li gp,13
+ 80000278: 49df1663 bne t5,t4,80000704 <fail>
+
+000000008000027c <test_14>:
+ 8000027c: 212120b7 lui ra,0x21212
+ 80000280: 1210809b addiw ra,ra,289
+ 80000284: 00700113 li sp,7
+ 80000288: 0020df33 srl t5,ra,sp
+ 8000028c: 00424eb7 lui t4,0x424
+ 80000290: 242e8e9b addiw t4,t4,578
+ 80000294: 00e00193 li gp,14
+ 80000298: 47df1663 bne t5,t4,80000704 <fail>
+
+000000008000029c <test_15>:
+ 8000029c: 212120b7 lui ra,0x21212
+ 800002a0: 1210809b addiw ra,ra,289
+ 800002a4: 00e00113 li sp,14
+ 800002a8: 0020df33 srl t5,ra,sp
+ 800002ac: 00008eb7 lui t4,0x8
+ 800002b0: 484e8e9b addiw t4,t4,1156
+ 800002b4: 00f00193 li gp,15
+ 800002b8: 45df1663 bne t5,t4,80000704 <fail>
+
+00000000800002bc <test_16>:
+ 800002bc: 212120b7 lui ra,0x21212
+ 800002c0: 1210809b addiw ra,ra,289
+ 800002c4: 01f00113 li sp,31
+ 800002c8: 0020df33 srl t5,ra,sp
+ 800002cc: 00000e93 li t4,0
+ 800002d0: 01000193 li gp,16
+ 800002d4: 43df1863 bne t5,t4,80000704 <fail>
+
+00000000800002d8 <test_17>:
+ 800002d8: 212120b7 lui ra,0x21212
+ 800002dc: 1210809b addiw ra,ra,289
+ 800002e0: fc000113 li sp,-64
+ 800002e4: 0020df33 srl t5,ra,sp
+ 800002e8: 21212eb7 lui t4,0x21212
+ 800002ec: 121e8e9b addiw t4,t4,289
+ 800002f0: 01100193 li gp,17
+ 800002f4: 41df1863 bne t5,t4,80000704 <fail>
+
+00000000800002f8 <test_18>:
+ 800002f8: 212120b7 lui ra,0x21212
+ 800002fc: 1210809b addiw ra,ra,289
+ 80000300: fc100113 li sp,-63
+ 80000304: 0020df33 srl t5,ra,sp
+ 80000308: 10909eb7 lui t4,0x10909
+ 8000030c: 090e8e9b addiw t4,t4,144
+ 80000310: 01200193 li gp,18
+ 80000314: 3fdf1863 bne t5,t4,80000704 <fail>
+
+0000000080000318 <test_19>:
+ 80000318: 212120b7 lui ra,0x21212
+ 8000031c: 1210809b addiw ra,ra,289
+ 80000320: fc700113 li sp,-57
+ 80000324: 0020df33 srl t5,ra,sp
+ 80000328: 00424eb7 lui t4,0x424
+ 8000032c: 242e8e9b addiw t4,t4,578
+ 80000330: 01300193 li gp,19
+ 80000334: 3ddf1863 bne t5,t4,80000704 <fail>
+
+0000000080000338 <test_20>:
+ 80000338: 212120b7 lui ra,0x21212
+ 8000033c: 1210809b addiw ra,ra,289
+ 80000340: fce00113 li sp,-50
+ 80000344: 0020df33 srl t5,ra,sp
+ 80000348: 00008eb7 lui t4,0x8
+ 8000034c: 484e8e9b addiw t4,t4,1156
+ 80000350: 01400193 li gp,20
+ 80000354: 3bdf1863 bne t5,t4,80000704 <fail>
+
+0000000080000358 <test_21>:
+ 80000358: 212120b7 lui ra,0x21212
+ 8000035c: 1210809b addiw ra,ra,289
+ 80000360: fff00113 li sp,-1
+ 80000364: 0020df33 srl t5,ra,sp
+ 80000368: 00000e93 li t4,0
+ 8000036c: 01500193 li gp,21
+ 80000370: 39df1a63 bne t5,t4,80000704 <fail>
+
+0000000080000374 <test_22>:
+ 80000374: 0010009b addiw ra,zero,1
+ 80000378: 01f09093 slli ra,ra,0x1f
+ 8000037c: 00700113 li sp,7
+ 80000380: 0020d0b3 srl ra,ra,sp
+ 80000384: 01000eb7 lui t4,0x1000
+ 80000388: 01600193 li gp,22
+ 8000038c: 37d09c63 bne ra,t4,80000704 <fail>
+
+0000000080000390 <test_23>:
+ 80000390: 0010009b addiw ra,zero,1
+ 80000394: 01f09093 slli ra,ra,0x1f
+ 80000398: 00e00113 li sp,14
+ 8000039c: 0020d133 srl sp,ra,sp
+ 800003a0: 00020eb7 lui t4,0x20
+ 800003a4: 01700193 li gp,23
+ 800003a8: 35d11e63 bne sp,t4,80000704 <fail>
+
+00000000800003ac <test_24>:
+ 800003ac: 00700093 li ra,7
+ 800003b0: 0010d0b3 srl ra,ra,ra
+ 800003b4: 00000e93 li t4,0
+ 800003b8: 01800193 li gp,24
+ 800003bc: 35d09463 bne ra,t4,80000704 <fail>
+
+00000000800003c0 <test_25>:
+ 800003c0: 00000213 li tp,0
+ 800003c4: 0010009b addiw ra,zero,1
+ 800003c8: 01f09093 slli ra,ra,0x1f
+ 800003cc: 00700113 li sp,7
+ 800003d0: 0020df33 srl t5,ra,sp
+ 800003d4: 000f0313 mv t1,t5
+ 800003d8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800003dc: 00200293 li t0,2
+ 800003e0: fe5212e3 bne tp,t0,800003c4 <test_25+0x4>
+ 800003e4: 01000eb7 lui t4,0x1000
+ 800003e8: 01900193 li gp,25
+ 800003ec: 31d31c63 bne t1,t4,80000704 <fail>
+
+00000000800003f0 <test_26>:
+ 800003f0: 00000213 li tp,0
+ 800003f4: 0010009b addiw ra,zero,1
+ 800003f8: 01f09093 slli ra,ra,0x1f
+ 800003fc: 00e00113 li sp,14
+ 80000400: 0020df33 srl t5,ra,sp
+ 80000404: 00000013 nop
+ 80000408: 000f0313 mv t1,t5
+ 8000040c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000410: 00200293 li t0,2
+ 80000414: fe5210e3 bne tp,t0,800003f4 <test_26+0x4>
+ 80000418: 00020eb7 lui t4,0x20
+ 8000041c: 01a00193 li gp,26
+ 80000420: 2fd31263 bne t1,t4,80000704 <fail>
+
+0000000080000424 <test_27>:
+ 80000424: 00000213 li tp,0
+ 80000428: 0010009b addiw ra,zero,1
+ 8000042c: 01f09093 slli ra,ra,0x1f
+ 80000430: 01f00113 li sp,31
+ 80000434: 0020df33 srl t5,ra,sp
+ 80000438: 00000013 nop
+ 8000043c: 00000013 nop
+ 80000440: 000f0313 mv t1,t5
+ 80000444: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000448: 00200293 li t0,2
+ 8000044c: fc521ee3 bne tp,t0,80000428 <test_27+0x4>
+ 80000450: 00100e93 li t4,1
+ 80000454: 01b00193 li gp,27
+ 80000458: 2bd31663 bne t1,t4,80000704 <fail>
+
+000000008000045c <test_28>:
+ 8000045c: 00000213 li tp,0
+ 80000460: 0010009b addiw ra,zero,1
+ 80000464: 01f09093 slli ra,ra,0x1f
+ 80000468: 00700113 li sp,7
+ 8000046c: 0020df33 srl t5,ra,sp
+ 80000470: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000474: 00200293 li t0,2
+ 80000478: fe5214e3 bne tp,t0,80000460 <test_28+0x4>
+ 8000047c: 01000eb7 lui t4,0x1000
+ 80000480: 01c00193 li gp,28
+ 80000484: 29df1063 bne t5,t4,80000704 <fail>
+
+0000000080000488 <test_29>:
+ 80000488: 00000213 li tp,0
+ 8000048c: 0010009b addiw ra,zero,1
+ 80000490: 01f09093 slli ra,ra,0x1f
+ 80000494: 00e00113 li sp,14
+ 80000498: 00000013 nop
+ 8000049c: 0020df33 srl t5,ra,sp
+ 800004a0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800004a4: 00200293 li t0,2
+ 800004a8: fe5212e3 bne tp,t0,8000048c <test_29+0x4>
+ 800004ac: 00020eb7 lui t4,0x20
+ 800004b0: 01d00193 li gp,29
+ 800004b4: 25df1863 bne t5,t4,80000704 <fail>
+
+00000000800004b8 <test_30>:
+ 800004b8: 00000213 li tp,0
+ 800004bc: 0010009b addiw ra,zero,1
+ 800004c0: 01f09093 slli ra,ra,0x1f
+ 800004c4: 01f00113 li sp,31
+ 800004c8: 00000013 nop
+ 800004cc: 00000013 nop
+ 800004d0: 0020df33 srl t5,ra,sp
+ 800004d4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800004d8: 00200293 li t0,2
+ 800004dc: fe5210e3 bne tp,t0,800004bc <test_30+0x4>
+ 800004e0: 00100e93 li t4,1
+ 800004e4: 01e00193 li gp,30
+ 800004e8: 21df1e63 bne t5,t4,80000704 <fail>
+
+00000000800004ec <test_31>:
+ 800004ec: 00000213 li tp,0
+ 800004f0: 0010009b addiw ra,zero,1
+ 800004f4: 01f09093 slli ra,ra,0x1f
+ 800004f8: 00000013 nop
+ 800004fc: 00700113 li sp,7
+ 80000500: 0020df33 srl t5,ra,sp
+ 80000504: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000508: 00200293 li t0,2
+ 8000050c: fe5212e3 bne tp,t0,800004f0 <test_31+0x4>
+ 80000510: 01000eb7 lui t4,0x1000
+ 80000514: 01f00193 li gp,31
+ 80000518: 1fdf1663 bne t5,t4,80000704 <fail>
+
+000000008000051c <test_32>:
+ 8000051c: 00000213 li tp,0
+ 80000520: 0010009b addiw ra,zero,1
+ 80000524: 01f09093 slli ra,ra,0x1f
+ 80000528: 00000013 nop
+ 8000052c: 00e00113 li sp,14
+ 80000530: 00000013 nop
+ 80000534: 0020df33 srl t5,ra,sp
+ 80000538: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 8000053c: 00200293 li t0,2
+ 80000540: fe5210e3 bne tp,t0,80000520 <test_32+0x4>
+ 80000544: 00020eb7 lui t4,0x20
+ 80000548: 02000193 li gp,32
+ 8000054c: 1bdf1c63 bne t5,t4,80000704 <fail>
+
+0000000080000550 <test_33>:
+ 80000550: 00000213 li tp,0
+ 80000554: 0010009b addiw ra,zero,1
+ 80000558: 01f09093 slli ra,ra,0x1f
+ 8000055c: 00000013 nop
+ 80000560: 00000013 nop
+ 80000564: 01f00113 li sp,31
+ 80000568: 0020df33 srl t5,ra,sp
+ 8000056c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000570: 00200293 li t0,2
+ 80000574: fe5210e3 bne tp,t0,80000554 <test_33+0x4>
+ 80000578: 00100e93 li t4,1
+ 8000057c: 02100193 li gp,33
+ 80000580: 19df1263 bne t5,t4,80000704 <fail>
+
+0000000080000584 <test_34>:
+ 80000584: 00000213 li tp,0
+ 80000588: 00700113 li sp,7
+ 8000058c: 0010009b addiw ra,zero,1
+ 80000590: 01f09093 slli ra,ra,0x1f
+ 80000594: 0020df33 srl t5,ra,sp
+ 80000598: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 8000059c: 00200293 li t0,2
+ 800005a0: fe5214e3 bne tp,t0,80000588 <test_34+0x4>
+ 800005a4: 01000eb7 lui t4,0x1000
+ 800005a8: 02200193 li gp,34
+ 800005ac: 15df1c63 bne t5,t4,80000704 <fail>
+
+00000000800005b0 <test_35>:
+ 800005b0: 00000213 li tp,0
+ 800005b4: 00e00113 li sp,14
+ 800005b8: 0010009b addiw ra,zero,1
+ 800005bc: 01f09093 slli ra,ra,0x1f
+ 800005c0: 00000013 nop
+ 800005c4: 0020df33 srl t5,ra,sp
+ 800005c8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800005cc: 00200293 li t0,2
+ 800005d0: fe5212e3 bne tp,t0,800005b4 <test_35+0x4>
+ 800005d4: 00020eb7 lui t4,0x20
+ 800005d8: 02300193 li gp,35
+ 800005dc: 13df1463 bne t5,t4,80000704 <fail>
+
+00000000800005e0 <test_36>:
+ 800005e0: 00000213 li tp,0
+ 800005e4: 01f00113 li sp,31
+ 800005e8: 0010009b addiw ra,zero,1
+ 800005ec: 01f09093 slli ra,ra,0x1f
+ 800005f0: 00000013 nop
+ 800005f4: 00000013 nop
+ 800005f8: 0020df33 srl t5,ra,sp
+ 800005fc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000600: 00200293 li t0,2
+ 80000604: fe5210e3 bne tp,t0,800005e4 <test_36+0x4>
+ 80000608: 00100e93 li t4,1
+ 8000060c: 02400193 li gp,36
+ 80000610: 0fdf1a63 bne t5,t4,80000704 <fail>
+
+0000000080000614 <test_37>:
+ 80000614: 00000213 li tp,0
+ 80000618: 00700113 li sp,7
+ 8000061c: 00000013 nop
+ 80000620: 0010009b addiw ra,zero,1
+ 80000624: 01f09093 slli ra,ra,0x1f
+ 80000628: 0020df33 srl t5,ra,sp
+ 8000062c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000630: 00200293 li t0,2
+ 80000634: fe5212e3 bne tp,t0,80000618 <test_37+0x4>
+ 80000638: 01000eb7 lui t4,0x1000
+ 8000063c: 02500193 li gp,37
+ 80000640: 0ddf1263 bne t5,t4,80000704 <fail>
+
+0000000080000644 <test_38>:
+ 80000644: 00000213 li tp,0
+ 80000648: 00e00113 li sp,14
+ 8000064c: 00000013 nop
+ 80000650: 0010009b addiw ra,zero,1
+ 80000654: 01f09093 slli ra,ra,0x1f
+ 80000658: 00000013 nop
+ 8000065c: 0020df33 srl t5,ra,sp
+ 80000660: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000664: 00200293 li t0,2
+ 80000668: fe5210e3 bne tp,t0,80000648 <test_38+0x4>
+ 8000066c: 00020eb7 lui t4,0x20
+ 80000670: 02600193 li gp,38
+ 80000674: 09df1863 bne t5,t4,80000704 <fail>
+
+0000000080000678 <test_39>:
+ 80000678: 00000213 li tp,0
+ 8000067c: 01f00113 li sp,31
+ 80000680: 00000013 nop
+ 80000684: 00000013 nop
+ 80000688: 0010009b addiw ra,zero,1
+ 8000068c: 01f09093 slli ra,ra,0x1f
+ 80000690: 0020df33 srl t5,ra,sp
+ 80000694: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000698: 00200293 li t0,2
+ 8000069c: fe5210e3 bne tp,t0,8000067c <test_39+0x4>
+ 800006a0: 00100e93 li t4,1
+ 800006a4: 02700193 li gp,39
+ 800006a8: 05df1e63 bne t5,t4,80000704 <fail>
+
+00000000800006ac <test_40>:
+ 800006ac: 00f00093 li ra,15
+ 800006b0: 00105133 srl sp,zero,ra
+ 800006b4: 00000e93 li t4,0
+ 800006b8: 02800193 li gp,40
+ 800006bc: 05d11463 bne sp,t4,80000704 <fail>
+
+00000000800006c0 <test_41>:
+ 800006c0: 02000093 li ra,32
+ 800006c4: 0000d133 srl sp,ra,zero
+ 800006c8: 02000e93 li t4,32
+ 800006cc: 02900193 li gp,41
+ 800006d0: 03d11a63 bne sp,t4,80000704 <fail>
+
+00000000800006d4 <test_42>:
+ 800006d4: 000050b3 srl ra,zero,zero
+ 800006d8: 00000e93 li t4,0
+ 800006dc: 02a00193 li gp,42
+ 800006e0: 03d09263 bne ra,t4,80000704 <fail>
+
+00000000800006e4 <test_43>:
+ 800006e4: 40000093 li ra,1024
+ 800006e8: 00001137 lui sp,0x1
+ 800006ec: 8001011b addiw sp,sp,-2048
+ 800006f0: 0020d033 srl zero,ra,sp
+ 800006f4: 00000e93 li t4,0
+ 800006f8: 02b00193 li gp,43
+ 800006fc: 01d01463 bne zero,t4,80000704 <fail>
+ 80000700: 00301c63 bne zero,gp,80000718 <pass>
+
+0000000080000704 <fail>:
+ 80000704: 0ff0000f fence
+ 80000708: 00018063 beqz gp,80000708 <fail+0x4>
+ 8000070c: 00119193 slli gp,gp,0x1
+ 80000710: 0011e193 ori gp,gp,1
+ 80000714: 00000073 ecall
+
+0000000080000718 <pass>:
+ 80000718: 0ff0000f fence
+ 8000071c: 00100193 li gp,1
+ 80000720: 00000073 ecall
+ 80000724: c0001073 unimp
+ 80000728: 0000 unimp
+ 8000072a: 0000 unimp
+ 8000072c: 0000 unimp
+ 8000072e: 0000 unimp
+ 80000730: 0000 unimp
+ 80000732: 0000 unimp
+ 80000734: 0000 unimp
+ 80000736: 0000 unimp
+ 80000738: 0000 unimp
+ 8000073a: 0000 unimp
+ 8000073c: 0000 unimp
+ 8000073e: 0000 unimp
+ 80000740: 0000 unimp
+ 80000742: 0000 unimp
diff --git a/test/tests/rv64ui-p-srl.elf b/test/tests/rv64ui-p-srl.elf
new file mode 100644
index 0000000..5abd6a0
--- /dev/null
+++ b/test/tests/rv64ui-p-srl.elf
Binary files differ
diff --git a/test/tests/rv64ui-p-srli.dump b/test/tests/rv64ui-p-srli.dump
new file mode 100644
index 0000000..bcb2df7
--- /dev/null
+++ b/test/tests/rv64ui-p-srli.dump
@@ -0,0 +1,350 @@
+
+rv64ui-p-srli: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <test_2>:
+ 800000fc: 800000b7 lui ra,0x80000
+ 80000100: 0000df13 srli t5,ra,0x0
+ 80000104: 80000eb7 lui t4,0x80000
+ 80000108: 00200193 li gp,2
+ 8000010c: 2fdf1663 bne t5,t4,800003f8 <fail>
+
+0000000080000110 <test_3>:
+ 80000110: 800000b7 lui ra,0x80000
+ 80000114: 0010df13 srli t5,ra,0x1
+ 80000118: 00100e9b addiw t4,zero,1
+ 8000011c: 021e9e93 slli t4,t4,0x21
+ 80000120: fffe8e93 addi t4,t4,-1 # ffffffff7fffffff <_end+0xfffffffeffffdfff>
+ 80000124: 01ee9e93 slli t4,t4,0x1e
+ 80000128: 00300193 li gp,3
+ 8000012c: 2ddf1663 bne t5,t4,800003f8 <fail>
+
+0000000080000130 <test_4>:
+ 80000130: 800000b7 lui ra,0x80000
+ 80000134: 0070df13 srli t5,ra,0x7
+ 80000138: 00100e9b addiw t4,zero,1
+ 8000013c: 021e9e93 slli t4,t4,0x21
+ 80000140: fffe8e93 addi t4,t4,-1
+ 80000144: 018e9e93 slli t4,t4,0x18
+ 80000148: 00400193 li gp,4
+ 8000014c: 2bdf1663 bne t5,t4,800003f8 <fail>
+
+0000000080000150 <test_5>:
+ 80000150: 800000b7 lui ra,0x80000
+ 80000154: 00e0df13 srli t5,ra,0xe
+ 80000158: 00100e9b addiw t4,zero,1
+ 8000015c: 021e9e93 slli t4,t4,0x21
+ 80000160: fffe8e93 addi t4,t4,-1
+ 80000164: 011e9e93 slli t4,t4,0x11
+ 80000168: 00500193 li gp,5
+ 8000016c: 29df1663 bne t5,t4,800003f8 <fail>
+
+0000000080000170 <test_6>:
+ 80000170: 800000b7 lui ra,0x80000
+ 80000174: 0010809b addiw ra,ra,1
+ 80000178: 01f0df13 srli t5,ra,0x1f
+ 8000017c: 00100e9b addiw t4,zero,1
+ 80000180: 021e9e93 slli t4,t4,0x21
+ 80000184: fffe8e93 addi t4,t4,-1
+ 80000188: 00600193 li gp,6
+ 8000018c: 27df1663 bne t5,t4,800003f8 <fail>
+
+0000000080000190 <test_7>:
+ 80000190: fff00093 li ra,-1
+ 80000194: 0000df13 srli t5,ra,0x0
+ 80000198: fff00e93 li t4,-1
+ 8000019c: 00700193 li gp,7
+ 800001a0: 25df1c63 bne t5,t4,800003f8 <fail>
+
+00000000800001a4 <test_8>:
+ 800001a4: fff00093 li ra,-1
+ 800001a8: 0010df13 srli t5,ra,0x1
+ 800001ac: fff00e9b addiw t4,zero,-1
+ 800001b0: 03fe9e93 slli t4,t4,0x3f
+ 800001b4: fffe8e93 addi t4,t4,-1
+ 800001b8: 00800193 li gp,8
+ 800001bc: 23df1e63 bne t5,t4,800003f8 <fail>
+
+00000000800001c0 <test_9>:
+ 800001c0: fff00093 li ra,-1
+ 800001c4: 0070df13 srli t5,ra,0x7
+ 800001c8: 00100e9b addiw t4,zero,1
+ 800001cc: 039e9e93 slli t4,t4,0x39
+ 800001d0: fffe8e93 addi t4,t4,-1
+ 800001d4: 00900193 li gp,9
+ 800001d8: 23df1063 bne t5,t4,800003f8 <fail>
+
+00000000800001dc <test_10>:
+ 800001dc: fff00093 li ra,-1
+ 800001e0: 00e0df13 srli t5,ra,0xe
+ 800001e4: 00100e9b addiw t4,zero,1
+ 800001e8: 032e9e93 slli t4,t4,0x32
+ 800001ec: fffe8e93 addi t4,t4,-1
+ 800001f0: 00a00193 li gp,10
+ 800001f4: 21df1263 bne t5,t4,800003f8 <fail>
+
+00000000800001f8 <test_11>:
+ 800001f8: fff00093 li ra,-1
+ 800001fc: 01f0df13 srli t5,ra,0x1f
+ 80000200: 00100e9b addiw t4,zero,1
+ 80000204: 021e9e93 slli t4,t4,0x21
+ 80000208: fffe8e93 addi t4,t4,-1
+ 8000020c: 00b00193 li gp,11
+ 80000210: 1fdf1463 bne t5,t4,800003f8 <fail>
+
+0000000080000214 <test_12>:
+ 80000214: 212120b7 lui ra,0x21212
+ 80000218: 1210809b addiw ra,ra,289
+ 8000021c: 0000df13 srli t5,ra,0x0
+ 80000220: 21212eb7 lui t4,0x21212
+ 80000224: 121e8e9b addiw t4,t4,289
+ 80000228: 00c00193 li gp,12
+ 8000022c: 1ddf1663 bne t5,t4,800003f8 <fail>
+
+0000000080000230 <test_13>:
+ 80000230: 212120b7 lui ra,0x21212
+ 80000234: 1210809b addiw ra,ra,289
+ 80000238: 0010df13 srli t5,ra,0x1
+ 8000023c: 10909eb7 lui t4,0x10909
+ 80000240: 090e8e9b addiw t4,t4,144
+ 80000244: 00d00193 li gp,13
+ 80000248: 1bdf1863 bne t5,t4,800003f8 <fail>
+
+000000008000024c <test_14>:
+ 8000024c: 212120b7 lui ra,0x21212
+ 80000250: 1210809b addiw ra,ra,289
+ 80000254: 0070df13 srli t5,ra,0x7
+ 80000258: 00424eb7 lui t4,0x424
+ 8000025c: 242e8e9b addiw t4,t4,578
+ 80000260: 00e00193 li gp,14
+ 80000264: 19df1a63 bne t5,t4,800003f8 <fail>
+
+0000000080000268 <test_15>:
+ 80000268: 212120b7 lui ra,0x21212
+ 8000026c: 1210809b addiw ra,ra,289
+ 80000270: 00e0df13 srli t5,ra,0xe
+ 80000274: 00008eb7 lui t4,0x8
+ 80000278: 484e8e9b addiw t4,t4,1156
+ 8000027c: 00f00193 li gp,15
+ 80000280: 17df1c63 bne t5,t4,800003f8 <fail>
+
+0000000080000284 <test_16>:
+ 80000284: 212120b7 lui ra,0x21212
+ 80000288: 1210809b addiw ra,ra,289
+ 8000028c: 01f0df13 srli t5,ra,0x1f
+ 80000290: 00000e93 li t4,0
+ 80000294: 01000193 li gp,16
+ 80000298: 17df1063 bne t5,t4,800003f8 <fail>
+
+000000008000029c <test_17>:
+ 8000029c: 0010009b addiw ra,zero,1
+ 800002a0: 01f09093 slli ra,ra,0x1f
+ 800002a4: 0070d093 srli ra,ra,0x7
+ 800002a8: 01000eb7 lui t4,0x1000
+ 800002ac: 01100193 li gp,17
+ 800002b0: 15d09463 bne ra,t4,800003f8 <fail>
+
+00000000800002b4 <test_18>:
+ 800002b4: 00000213 li tp,0
+ 800002b8: 0010009b addiw ra,zero,1
+ 800002bc: 01f09093 slli ra,ra,0x1f
+ 800002c0: 0070df13 srli t5,ra,0x7
+ 800002c4: 000f0313 mv t1,t5
+ 800002c8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800002cc: 00200293 li t0,2
+ 800002d0: fe5214e3 bne tp,t0,800002b8 <test_18+0x4>
+ 800002d4: 01000eb7 lui t4,0x1000
+ 800002d8: 01200193 li gp,18
+ 800002dc: 11d31e63 bne t1,t4,800003f8 <fail>
+
+00000000800002e0 <test_19>:
+ 800002e0: 00000213 li tp,0
+ 800002e4: 0010009b addiw ra,zero,1
+ 800002e8: 01f09093 slli ra,ra,0x1f
+ 800002ec: 00e0df13 srli t5,ra,0xe
+ 800002f0: 00000013 nop
+ 800002f4: 000f0313 mv t1,t5
+ 800002f8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800002fc: 00200293 li t0,2
+ 80000300: fe5212e3 bne tp,t0,800002e4 <test_19+0x4>
+ 80000304: 00020eb7 lui t4,0x20
+ 80000308: 01300193 li gp,19
+ 8000030c: 0fd31663 bne t1,t4,800003f8 <fail>
+
+0000000080000310 <test_20>:
+ 80000310: 00000213 li tp,0
+ 80000314: 0010009b addiw ra,zero,1
+ 80000318: 01f09093 slli ra,ra,0x1f
+ 8000031c: 00108093 addi ra,ra,1 # 21212001 <_start-0x5ededfff>
+ 80000320: 01f0df13 srli t5,ra,0x1f
+ 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: fc521ee3 bne tp,t0,80000314 <test_20+0x4>
+ 8000033c: 00100e93 li t4,1
+ 80000340: 01400193 li gp,20
+ 80000344: 0bd31a63 bne t1,t4,800003f8 <fail>
+
+0000000080000348 <test_21>:
+ 80000348: 00000213 li tp,0
+ 8000034c: 0010009b addiw ra,zero,1
+ 80000350: 01f09093 slli ra,ra,0x1f
+ 80000354: 0070df13 srli t5,ra,0x7
+ 80000358: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 8000035c: 00200293 li t0,2
+ 80000360: fe5216e3 bne tp,t0,8000034c <test_21+0x4>
+ 80000364: 01000eb7 lui t4,0x1000
+ 80000368: 01500193 li gp,21
+ 8000036c: 09df1663 bne t5,t4,800003f8 <fail>
+
+0000000080000370 <test_22>:
+ 80000370: 00000213 li tp,0
+ 80000374: 0010009b addiw ra,zero,1
+ 80000378: 01f09093 slli ra,ra,0x1f
+ 8000037c: 00000013 nop
+ 80000380: 00e0df13 srli t5,ra,0xe
+ 80000384: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000388: 00200293 li t0,2
+ 8000038c: fe5214e3 bne tp,t0,80000374 <test_22+0x4>
+ 80000390: 00020eb7 lui t4,0x20
+ 80000394: 01600193 li gp,22
+ 80000398: 07df1063 bne t5,t4,800003f8 <fail>
+
+000000008000039c <test_23>:
+ 8000039c: 00000213 li tp,0
+ 800003a0: 0010009b addiw ra,zero,1
+ 800003a4: 01f09093 slli ra,ra,0x1f
+ 800003a8: 00108093 addi ra,ra,1
+ 800003ac: 00000013 nop
+ 800003b0: 00000013 nop
+ 800003b4: 01f0df13 srli t5,ra,0x1f
+ 800003b8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800003bc: 00200293 li t0,2
+ 800003c0: fe5210e3 bne tp,t0,800003a0 <test_23+0x4>
+ 800003c4: 00100e93 li t4,1
+ 800003c8: 01700193 li gp,23
+ 800003cc: 03df1663 bne t5,t4,800003f8 <fail>
+
+00000000800003d0 <test_24>:
+ 800003d0: 00405093 srli ra,zero,0x4
+ 800003d4: 00000e93 li t4,0
+ 800003d8: 01800193 li gp,24
+ 800003dc: 01d09e63 bne ra,t4,800003f8 <fail>
+
+00000000800003e0 <test_25>:
+ 800003e0: 02100093 li ra,33
+ 800003e4: 00a0d013 srli zero,ra,0xa
+ 800003e8: 00000e93 li t4,0
+ 800003ec: 01900193 li gp,25
+ 800003f0: 01d01463 bne zero,t4,800003f8 <fail>
+ 800003f4: 00301c63 bne zero,gp,8000040c <pass>
+
+00000000800003f8 <fail>:
+ 800003f8: 0ff0000f fence
+ 800003fc: 00018063 beqz gp,800003fc <fail+0x4>
+ 80000400: 00119193 slli gp,gp,0x1
+ 80000404: 0011e193 ori gp,gp,1
+ 80000408: 00000073 ecall
+
+000000008000040c <pass>:
+ 8000040c: 0ff0000f fence
+ 80000410: 00100193 li gp,1
+ 80000414: 00000073 ecall
+ 80000418: c0001073 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/tests/rv64ui-p-srli.elf b/test/tests/rv64ui-p-srli.elf
new file mode 100644
index 0000000..6e2f794
--- /dev/null
+++ b/test/tests/rv64ui-p-srli.elf
Binary files differ
diff --git a/test/tests/rv64ui-p-srliw.dump b/test/tests/rv64ui-p-srliw.dump
new file mode 100644
index 0000000..99581fb
--- /dev/null
+++ b/test/tests/rv64ui-p-srliw.dump
@@ -0,0 +1,309 @@
+
+rv64ui-p-srliw: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <test_2>:
+ 800000fc: 800000b7 lui ra,0x80000
+ 80000100: 0000df1b srliw t5,ra,0x0
+ 80000104: 80000eb7 lui t4,0x80000
+ 80000108: 00200193 li gp,2
+ 8000010c: 29df1863 bne t5,t4,8000039c <fail>
+
+0000000080000110 <test_3>:
+ 80000110: 800000b7 lui ra,0x80000
+ 80000114: 0010df1b srliw t5,ra,0x1
+ 80000118: 40000eb7 lui t4,0x40000
+ 8000011c: 00300193 li gp,3
+ 80000120: 27df1e63 bne t5,t4,8000039c <fail>
+
+0000000080000124 <test_4>:
+ 80000124: 800000b7 lui ra,0x80000
+ 80000128: 0070df1b srliw t5,ra,0x7
+ 8000012c: 01000eb7 lui t4,0x1000
+ 80000130: 00400193 li gp,4
+ 80000134: 27df1463 bne t5,t4,8000039c <fail>
+
+0000000080000138 <test_5>:
+ 80000138: 800000b7 lui ra,0x80000
+ 8000013c: 00e0df1b srliw t5,ra,0xe
+ 80000140: 00020eb7 lui t4,0x20
+ 80000144: 00500193 li gp,5
+ 80000148: 25df1a63 bne t5,t4,8000039c <fail>
+
+000000008000014c <test_6>:
+ 8000014c: 800000b7 lui ra,0x80000
+ 80000150: 0010809b addiw ra,ra,1
+ 80000154: 01f0df1b srliw t5,ra,0x1f
+ 80000158: 00100e93 li t4,1
+ 8000015c: 00600193 li gp,6
+ 80000160: 23df1e63 bne t5,t4,8000039c <fail>
+
+0000000080000164 <test_7>:
+ 80000164: fff00093 li ra,-1
+ 80000168: 0000df1b srliw t5,ra,0x0
+ 8000016c: fff00e93 li t4,-1
+ 80000170: 00700193 li gp,7
+ 80000174: 23df1463 bne t5,t4,8000039c <fail>
+
+0000000080000178 <test_8>:
+ 80000178: fff00093 li ra,-1
+ 8000017c: 0010df1b srliw t5,ra,0x1
+ 80000180: 80000eb7 lui t4,0x80000
+ 80000184: fffe8e9b addiw t4,t4,-1
+ 80000188: 00800193 li gp,8
+ 8000018c: 21df1863 bne t5,t4,8000039c <fail>
+
+0000000080000190 <test_9>:
+ 80000190: fff00093 li ra,-1
+ 80000194: 0070df1b srliw t5,ra,0x7
+ 80000198: 02000eb7 lui t4,0x2000
+ 8000019c: fffe8e9b addiw t4,t4,-1
+ 800001a0: 00900193 li gp,9
+ 800001a4: 1fdf1c63 bne t5,t4,8000039c <fail>
+
+00000000800001a8 <test_10>:
+ 800001a8: fff00093 li ra,-1
+ 800001ac: 00e0df1b srliw t5,ra,0xe
+ 800001b0: 00040eb7 lui t4,0x40
+ 800001b4: fffe8e9b addiw t4,t4,-1
+ 800001b8: 00a00193 li gp,10
+ 800001bc: 1fdf1063 bne t5,t4,8000039c <fail>
+
+00000000800001c0 <test_11>:
+ 800001c0: fff00093 li ra,-1
+ 800001c4: 01f0df1b srliw t5,ra,0x1f
+ 800001c8: 00100e93 li t4,1
+ 800001cc: 00b00193 li gp,11
+ 800001d0: 1ddf1663 bne t5,t4,8000039c <fail>
+
+00000000800001d4 <test_12>:
+ 800001d4: 212120b7 lui ra,0x21212
+ 800001d8: 1210809b addiw ra,ra,289
+ 800001dc: 0000df1b srliw t5,ra,0x0
+ 800001e0: 21212eb7 lui t4,0x21212
+ 800001e4: 121e8e9b addiw t4,t4,289
+ 800001e8: 00c00193 li gp,12
+ 800001ec: 1bdf1863 bne t5,t4,8000039c <fail>
+
+00000000800001f0 <test_13>:
+ 800001f0: 212120b7 lui ra,0x21212
+ 800001f4: 1210809b addiw ra,ra,289
+ 800001f8: 0010df1b srliw t5,ra,0x1
+ 800001fc: 10909eb7 lui t4,0x10909
+ 80000200: 090e8e9b addiw t4,t4,144
+ 80000204: 00d00193 li gp,13
+ 80000208: 19df1a63 bne t5,t4,8000039c <fail>
+
+000000008000020c <test_14>:
+ 8000020c: 212120b7 lui ra,0x21212
+ 80000210: 1210809b addiw ra,ra,289
+ 80000214: 0070df1b srliw t5,ra,0x7
+ 80000218: 00424eb7 lui t4,0x424
+ 8000021c: 242e8e9b addiw t4,t4,578
+ 80000220: 00e00193 li gp,14
+ 80000224: 17df1c63 bne t5,t4,8000039c <fail>
+
+0000000080000228 <test_15>:
+ 80000228: 212120b7 lui ra,0x21212
+ 8000022c: 1210809b addiw ra,ra,289
+ 80000230: 00e0df1b srliw t5,ra,0xe
+ 80000234: 00008eb7 lui t4,0x8
+ 80000238: 484e8e9b addiw t4,t4,1156
+ 8000023c: 00f00193 li gp,15
+ 80000240: 15df1e63 bne t5,t4,8000039c <fail>
+
+0000000080000244 <test_16>:
+ 80000244: 212120b7 lui ra,0x21212
+ 80000248: 1210809b addiw ra,ra,289
+ 8000024c: 01f0df1b srliw t5,ra,0x1f
+ 80000250: 00000e93 li t4,0
+ 80000254: 01000193 li gp,16
+ 80000258: 15df1263 bne t5,t4,8000039c <fail>
+
+000000008000025c <test_17>:
+ 8000025c: 800000b7 lui ra,0x80000
+ 80000260: 0070d09b srliw ra,ra,0x7
+ 80000264: 01000eb7 lui t4,0x1000
+ 80000268: 01100193 li gp,17
+ 8000026c: 13d09863 bne ra,t4,8000039c <fail>
+
+0000000080000270 <test_18>:
+ 80000270: 00000213 li tp,0
+ 80000274: 800000b7 lui ra,0x80000
+ 80000278: 0070df1b srliw 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>
+
+0000000080000298 <test_19>:
+ 80000298: 00000213 li tp,0
+ 8000029c: 800000b7 lui ra,0x80000
+ 800002a0: 00e0df1b srliw 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>
+
+00000000800002c4 <test_20>:
+ 800002c4: 00000213 li tp,0
+ 800002c8: 800000b7 lui ra,0x80000
+ 800002cc: 0010809b addiw ra,ra,1
+ 800002d0: 01f0df1b srliw 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>
+
+00000000800002f8 <test_21>:
+ 800002f8: 00000213 li tp,0
+ 800002fc: 800000b7 lui ra,0x80000
+ 80000300: 0070df1b srliw 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>
+
+000000008000031c <test_22>:
+ 8000031c: 00000213 li tp,0
+ 80000320: 800000b7 lui ra,0x80000
+ 80000324: 00000013 nop
+ 80000328: 00e0df1b srliw 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>
+
+0000000080000344 <test_23>:
+ 80000344: 00000213 li tp,0
+ 80000348: 800000b7 lui ra,0x80000
+ 8000034c: 0010809b addiw ra,ra,1
+ 80000350: 00000013 nop
+ 80000354: 00000013 nop
+ 80000358: 01f0df1b srliw 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>
+
+0000000080000374 <test_24>:
+ 80000374: 01f0509b srliw ra,zero,0x1f
+ 80000378: 00000e93 li t4,0
+ 8000037c: 01800193 li gp,24
+ 80000380: 01d09e63 bne ra,t4,8000039c <fail>
+
+0000000080000384 <test_25>:
+ 80000384: 01f00093 li ra,31
+ 80000388: 01c0d01b srliw zero,ra,0x1c
+ 8000038c: 00000e93 li t4,0
+ 80000390: 01900193 li gp,25
+ 80000394: 01d01463 bne zero,t4,8000039c <fail>
+ 80000398: 00301c63 bne zero,gp,800003b0 <pass>
+
+000000008000039c <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
+
+00000000800003b0 <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/tests/rv64ui-p-srliw.elf b/test/tests/rv64ui-p-srliw.elf
new file mode 100644
index 0000000..70758a3
--- /dev/null
+++ b/test/tests/rv64ui-p-srliw.elf
Binary files differ
diff --git a/test/tests/rv64ui-p-srlw.dump b/test/tests/rv64ui-p-srlw.dump
new file mode 100644
index 0000000..cf3f837
--- /dev/null
+++ b/test/tests/rv64ui-p-srlw.dump
@@ -0,0 +1,544 @@
+
+rv64ui-p-srlw: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <test_2>:
+ 800000fc: 800000b7 lui ra,0x80000
+ 80000100: 00000113 li sp,0
+ 80000104: 0020df3b srlw t5,ra,sp
+ 80000108: 80000eb7 lui t4,0x80000
+ 8000010c: 00200193 li gp,2
+ 80000110: 57df1863 bne t5,t4,80000680 <fail>
+
+0000000080000114 <test_3>:
+ 80000114: 800000b7 lui ra,0x80000
+ 80000118: 00100113 li sp,1
+ 8000011c: 0020df3b srlw t5,ra,sp
+ 80000120: 40000eb7 lui t4,0x40000
+ 80000124: 00300193 li gp,3
+ 80000128: 55df1c63 bne t5,t4,80000680 <fail>
+
+000000008000012c <test_4>:
+ 8000012c: 800000b7 lui ra,0x80000
+ 80000130: 00700113 li sp,7
+ 80000134: 0020df3b srlw t5,ra,sp
+ 80000138: 01000eb7 lui t4,0x1000
+ 8000013c: 00400193 li gp,4
+ 80000140: 55df1063 bne t5,t4,80000680 <fail>
+
+0000000080000144 <test_5>:
+ 80000144: 800000b7 lui ra,0x80000
+ 80000148: 00e00113 li sp,14
+ 8000014c: 0020df3b srlw t5,ra,sp
+ 80000150: 00020eb7 lui t4,0x20
+ 80000154: 00500193 li gp,5
+ 80000158: 53df1463 bne t5,t4,80000680 <fail>
+
+000000008000015c <test_6>:
+ 8000015c: 800000b7 lui ra,0x80000
+ 80000160: 0010809b addiw ra,ra,1
+ 80000164: 01f00113 li sp,31
+ 80000168: 0020df3b srlw t5,ra,sp
+ 8000016c: 00100e93 li t4,1
+ 80000170: 00600193 li gp,6
+ 80000174: 51df1663 bne t5,t4,80000680 <fail>
+
+0000000080000178 <test_7>:
+ 80000178: fff00093 li ra,-1
+ 8000017c: 00000113 li sp,0
+ 80000180: 0020df3b srlw t5,ra,sp
+ 80000184: fff00e93 li t4,-1
+ 80000188: 00700193 li gp,7
+ 8000018c: 4fdf1a63 bne t5,t4,80000680 <fail>
+
+0000000080000190 <test_8>:
+ 80000190: fff00093 li ra,-1
+ 80000194: 00100113 li sp,1
+ 80000198: 0020df3b srlw t5,ra,sp
+ 8000019c: 80000eb7 lui t4,0x80000
+ 800001a0: fffe8e9b addiw t4,t4,-1
+ 800001a4: 00800193 li gp,8
+ 800001a8: 4ddf1c63 bne t5,t4,80000680 <fail>
+
+00000000800001ac <test_9>:
+ 800001ac: fff00093 li ra,-1
+ 800001b0: 00700113 li sp,7
+ 800001b4: 0020df3b srlw t5,ra,sp
+ 800001b8: 02000eb7 lui t4,0x2000
+ 800001bc: fffe8e9b addiw t4,t4,-1
+ 800001c0: 00900193 li gp,9
+ 800001c4: 4bdf1e63 bne t5,t4,80000680 <fail>
+
+00000000800001c8 <test_10>:
+ 800001c8: fff00093 li ra,-1
+ 800001cc: 00e00113 li sp,14
+ 800001d0: 0020df3b srlw t5,ra,sp
+ 800001d4: 00040eb7 lui t4,0x40
+ 800001d8: fffe8e9b addiw t4,t4,-1
+ 800001dc: 00a00193 li gp,10
+ 800001e0: 4bdf1063 bne t5,t4,80000680 <fail>
+
+00000000800001e4 <test_11>:
+ 800001e4: fff00093 li ra,-1
+ 800001e8: 01f00113 li sp,31
+ 800001ec: 0020df3b srlw t5,ra,sp
+ 800001f0: 00100e93 li t4,1
+ 800001f4: 00b00193 li gp,11
+ 800001f8: 49df1463 bne t5,t4,80000680 <fail>
+
+00000000800001fc <test_12>:
+ 800001fc: 212120b7 lui ra,0x21212
+ 80000200: 1210809b addiw ra,ra,289
+ 80000204: 00000113 li sp,0
+ 80000208: 0020df3b srlw t5,ra,sp
+ 8000020c: 21212eb7 lui t4,0x21212
+ 80000210: 121e8e9b addiw t4,t4,289
+ 80000214: 00c00193 li gp,12
+ 80000218: 47df1463 bne t5,t4,80000680 <fail>
+
+000000008000021c <test_13>:
+ 8000021c: 212120b7 lui ra,0x21212
+ 80000220: 1210809b addiw ra,ra,289
+ 80000224: 00100113 li sp,1
+ 80000228: 0020df3b srlw t5,ra,sp
+ 8000022c: 10909eb7 lui t4,0x10909
+ 80000230: 090e8e9b addiw t4,t4,144
+ 80000234: 00d00193 li gp,13
+ 80000238: 45df1463 bne t5,t4,80000680 <fail>
+
+000000008000023c <test_14>:
+ 8000023c: 212120b7 lui ra,0x21212
+ 80000240: 1210809b addiw ra,ra,289
+ 80000244: 00700113 li sp,7
+ 80000248: 0020df3b srlw t5,ra,sp
+ 8000024c: 00424eb7 lui t4,0x424
+ 80000250: 242e8e9b addiw t4,t4,578
+ 80000254: 00e00193 li gp,14
+ 80000258: 43df1463 bne t5,t4,80000680 <fail>
+
+000000008000025c <test_15>:
+ 8000025c: 212120b7 lui ra,0x21212
+ 80000260: 1210809b addiw ra,ra,289
+ 80000264: 00e00113 li sp,14
+ 80000268: 0020df3b srlw t5,ra,sp
+ 8000026c: 00008eb7 lui t4,0x8
+ 80000270: 484e8e9b addiw t4,t4,1156
+ 80000274: 00f00193 li gp,15
+ 80000278: 41df1463 bne t5,t4,80000680 <fail>
+
+000000008000027c <test_16>:
+ 8000027c: 212120b7 lui ra,0x21212
+ 80000280: 1210809b addiw ra,ra,289
+ 80000284: 01f00113 li sp,31
+ 80000288: 0020df3b srlw t5,ra,sp
+ 8000028c: 00000e93 li t4,0
+ 80000290: 01000193 li gp,16
+ 80000294: 3fdf1663 bne t5,t4,80000680 <fail>
+
+0000000080000298 <test_17>:
+ 80000298: 212120b7 lui ra,0x21212
+ 8000029c: 1210809b addiw ra,ra,289
+ 800002a0: fe000113 li sp,-32
+ 800002a4: 0020df3b srlw t5,ra,sp
+ 800002a8: 21212eb7 lui t4,0x21212
+ 800002ac: 121e8e9b addiw t4,t4,289
+ 800002b0: 01100193 li gp,17
+ 800002b4: 3ddf1663 bne t5,t4,80000680 <fail>
+
+00000000800002b8 <test_18>:
+ 800002b8: 212120b7 lui ra,0x21212
+ 800002bc: 1210809b addiw ra,ra,289
+ 800002c0: fe100113 li sp,-31
+ 800002c4: 0020df3b srlw t5,ra,sp
+ 800002c8: 10909eb7 lui t4,0x10909
+ 800002cc: 090e8e9b addiw t4,t4,144
+ 800002d0: 01200193 li gp,18
+ 800002d4: 3bdf1663 bne t5,t4,80000680 <fail>
+
+00000000800002d8 <test_19>:
+ 800002d8: 212120b7 lui ra,0x21212
+ 800002dc: 1210809b addiw ra,ra,289
+ 800002e0: fe700113 li sp,-25
+ 800002e4: 0020df3b srlw t5,ra,sp
+ 800002e8: 00424eb7 lui t4,0x424
+ 800002ec: 242e8e9b addiw t4,t4,578
+ 800002f0: 01300193 li gp,19
+ 800002f4: 39df1663 bne t5,t4,80000680 <fail>
+
+00000000800002f8 <test_20>:
+ 800002f8: 212120b7 lui ra,0x21212
+ 800002fc: 1210809b addiw ra,ra,289
+ 80000300: fee00113 li sp,-18
+ 80000304: 0020df3b srlw t5,ra,sp
+ 80000308: 00008eb7 lui t4,0x8
+ 8000030c: 484e8e9b addiw t4,t4,1156
+ 80000310: 01400193 li gp,20
+ 80000314: 37df1663 bne t5,t4,80000680 <fail>
+
+0000000080000318 <test_21>:
+ 80000318: 212120b7 lui ra,0x21212
+ 8000031c: 1210809b addiw ra,ra,289
+ 80000320: fff00113 li sp,-1
+ 80000324: 0020df3b srlw t5,ra,sp
+ 80000328: 00000e93 li t4,0
+ 8000032c: 01500193 li gp,21
+ 80000330: 35df1863 bne t5,t4,80000680 <fail>
+
+0000000080000334 <test_22>:
+ 80000334: 800000b7 lui ra,0x80000
+ 80000338: 00700113 li sp,7
+ 8000033c: 0020d0bb srlw ra,ra,sp
+ 80000340: 01000eb7 lui t4,0x1000
+ 80000344: 01600193 li gp,22
+ 80000348: 33d09c63 bne ra,t4,80000680 <fail>
+
+000000008000034c <test_23>:
+ 8000034c: 800000b7 lui ra,0x80000
+ 80000350: 00e00113 li sp,14
+ 80000354: 0020d13b srlw sp,ra,sp
+ 80000358: 00020eb7 lui t4,0x20
+ 8000035c: 01700193 li gp,23
+ 80000360: 33d11063 bne sp,t4,80000680 <fail>
+
+0000000080000364 <test_24>:
+ 80000364: 00700093 li ra,7
+ 80000368: 0010d0bb srlw ra,ra,ra
+ 8000036c: 00000e93 li t4,0
+ 80000370: 01800193 li gp,24
+ 80000374: 31d09663 bne ra,t4,80000680 <fail>
+
+0000000080000378 <test_25>:
+ 80000378: 00000213 li tp,0
+ 8000037c: 800000b7 lui ra,0x80000
+ 80000380: 00700113 li sp,7
+ 80000384: 0020df3b srlw 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>
+
+00000000800003a4 <test_26>:
+ 800003a4: 00000213 li tp,0
+ 800003a8: 800000b7 lui ra,0x80000
+ 800003ac: 00e00113 li sp,14
+ 800003b0: 0020df3b srlw 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>
+
+00000000800003d4 <test_27>:
+ 800003d4: 00000213 li tp,0
+ 800003d8: 800000b7 lui ra,0x80000
+ 800003dc: 01f00113 li sp,31
+ 800003e0: 0020df3b srlw 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>
+
+0000000080000408 <test_28>:
+ 80000408: 00000213 li tp,0
+ 8000040c: 800000b7 lui ra,0x80000
+ 80000410: 00700113 li sp,7
+ 80000414: 0020df3b srlw 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>
+
+0000000080000430 <test_29>:
+ 80000430: 00000213 li tp,0
+ 80000434: 800000b7 lui ra,0x80000
+ 80000438: 00e00113 li sp,14
+ 8000043c: 00000013 nop
+ 80000440: 0020df3b srlw 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>
+
+000000008000045c <test_30>:
+ 8000045c: 00000213 li tp,0
+ 80000460: 800000b7 lui ra,0x80000
+ 80000464: 01f00113 li sp,31
+ 80000468: 00000013 nop
+ 8000046c: 00000013 nop
+ 80000470: 0020df3b srlw 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>
+
+000000008000048c <test_31>:
+ 8000048c: 00000213 li tp,0
+ 80000490: 800000b7 lui ra,0x80000
+ 80000494: 00000013 nop
+ 80000498: 00700113 li sp,7
+ 8000049c: 0020df3b srlw 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>
+
+00000000800004b8 <test_32>:
+ 800004b8: 00000213 li tp,0
+ 800004bc: 800000b7 lui ra,0x80000
+ 800004c0: 00000013 nop
+ 800004c4: 00e00113 li sp,14
+ 800004c8: 00000013 nop
+ 800004cc: 0020df3b srlw 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>
+
+00000000800004e8 <test_33>:
+ 800004e8: 00000213 li tp,0
+ 800004ec: 800000b7 lui ra,0x80000
+ 800004f0: 00000013 nop
+ 800004f4: 00000013 nop
+ 800004f8: 01f00113 li sp,31
+ 800004fc: 0020df3b srlw 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>
+
+0000000080000518 <test_34>:
+ 80000518: 00000213 li tp,0
+ 8000051c: 00700113 li sp,7
+ 80000520: 800000b7 lui ra,0x80000
+ 80000524: 0020df3b srlw 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>
+
+0000000080000540 <test_35>:
+ 80000540: 00000213 li tp,0
+ 80000544: 00e00113 li sp,14
+ 80000548: 800000b7 lui ra,0x80000
+ 8000054c: 00000013 nop
+ 80000550: 0020df3b srlw 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>
+
+000000008000056c <test_36>:
+ 8000056c: 00000213 li tp,0
+ 80000570: 01f00113 li sp,31
+ 80000574: 800000b7 lui ra,0x80000
+ 80000578: 00000013 nop
+ 8000057c: 00000013 nop
+ 80000580: 0020df3b srlw 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>
+
+000000008000059c <test_37>:
+ 8000059c: 00000213 li tp,0
+ 800005a0: 00700113 li sp,7
+ 800005a4: 00000013 nop
+ 800005a8: 800000b7 lui ra,0x80000
+ 800005ac: 0020df3b srlw 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>
+
+00000000800005c8 <test_38>:
+ 800005c8: 00000213 li tp,0
+ 800005cc: 00e00113 li sp,14
+ 800005d0: 00000013 nop
+ 800005d4: 800000b7 lui ra,0x80000
+ 800005d8: 00000013 nop
+ 800005dc: 0020df3b srlw 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>
+
+00000000800005f8 <test_39>:
+ 800005f8: 00000213 li tp,0
+ 800005fc: 01f00113 li sp,31
+ 80000600: 00000013 nop
+ 80000604: 00000013 nop
+ 80000608: 800000b7 lui ra,0x80000
+ 8000060c: 0020df3b srlw 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>
+
+0000000080000628 <test_40>:
+ 80000628: 00f00093 li ra,15
+ 8000062c: 0010513b srlw sp,zero,ra
+ 80000630: 00000e93 li t4,0
+ 80000634: 02800193 li gp,40
+ 80000638: 05d11463 bne sp,t4,80000680 <fail>
+
+000000008000063c <test_41>:
+ 8000063c: 02000093 li ra,32
+ 80000640: 0000d13b srlw sp,ra,zero
+ 80000644: 02000e93 li t4,32
+ 80000648: 02900193 li gp,41
+ 8000064c: 03d11a63 bne sp,t4,80000680 <fail>
+
+0000000080000650 <test_42>:
+ 80000650: 000050bb srlw ra,zero,zero
+ 80000654: 00000e93 li t4,0
+ 80000658: 02a00193 li gp,42
+ 8000065c: 03d09263 bne ra,t4,80000680 <fail>
+
+0000000080000660 <test_43>:
+ 80000660: 40000093 li ra,1024
+ 80000664: 00001137 lui sp,0x1
+ 80000668: 8001011b addiw sp,sp,-2048
+ 8000066c: 0020d03b srlw 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>
+
+0000000080000680 <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
+
+0000000080000694 <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/tests/rv64ui-p-srlw.elf b/test/tests/rv64ui-p-srlw.elf
new file mode 100644
index 0000000..d175802
--- /dev/null
+++ b/test/tests/rv64ui-p-srlw.elf
Binary files differ
diff --git a/test/tests/rv64ui-p-sub.dump b/test/tests/rv64ui-p-sub.dump
new file mode 100644
index 0000000..34bda7b
--- /dev/null
+++ b/test/tests/rv64ui-p-sub.dump
@@ -0,0 +1,481 @@
+
+rv64ui-p-sub: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <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: 4bdf1e63 bne t5,t4,800005cc <fail>
+
+0000000080000114 <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: 4bdf1263 bne t5,t4,800005cc <fail>
+
+000000008000012c <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: 49df1663 bne t5,t4,800005cc <fail>
+
+0000000080000144 <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: 47df1a63 bne t5,t4,800005cc <fail>
+
+000000008000015c <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: 45df1e63 bne t5,t4,800005cc <fail>
+
+0000000080000174 <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: 45df1263 bne t5,t4,800005cc <fail>
+
+000000008000018c <test_8>:
+ 8000018c: 00000093 li ra,0
+ 80000190: 00008137 lui sp,0x8
+ 80000194: fff1011b addiw sp,sp,-1
+ 80000198: 40208f33 sub t5,ra,sp
+ 8000019c: ffff8eb7 lui t4,0xffff8
+ 800001a0: 001e8e9b addiw t4,t4,1
+ 800001a4: 00800193 li gp,8
+ 800001a8: 43df1263 bne t5,t4,800005cc <fail>
+
+00000000800001ac <test_9>:
+ 800001ac: 800000b7 lui ra,0x80000
+ 800001b0: fff0809b addiw ra,ra,-1
+ 800001b4: 00000113 li sp,0
+ 800001b8: 40208f33 sub t5,ra,sp
+ 800001bc: 80000eb7 lui t4,0x80000
+ 800001c0: fffe8e9b addiw t4,t4,-1
+ 800001c4: 00900193 li gp,9
+ 800001c8: 41df1263 bne t5,t4,800005cc <fail>
+
+00000000800001cc <test_10>:
+ 800001cc: 800000b7 lui ra,0x80000
+ 800001d0: fff0809b addiw ra,ra,-1
+ 800001d4: 00008137 lui sp,0x8
+ 800001d8: fff1011b addiw sp,sp,-1
+ 800001dc: 40208f33 sub t5,ra,sp
+ 800001e0: 7fff8eb7 lui t4,0x7fff8
+ 800001e4: 00a00193 li gp,10
+ 800001e8: 3fdf1263 bne t5,t4,800005cc <fail>
+
+00000000800001ec <test_11>:
+ 800001ec: 800000b7 lui ra,0x80000
+ 800001f0: 00008137 lui sp,0x8
+ 800001f4: fff1011b addiw sp,sp,-1
+ 800001f8: 40208f33 sub t5,ra,sp
+ 800001fc: ffff0eb7 lui t4,0xffff0
+ 80000200: fffe8e9b addiw t4,t4,-1
+ 80000204: 00fe9e93 slli t4,t4,0xf
+ 80000208: 001e8e93 addi t4,t4,1 # ffffffffffff0001 <_end+0xffffffff7ffee001>
+ 8000020c: 00b00193 li gp,11
+ 80000210: 3bdf1e63 bne t5,t4,800005cc <fail>
+
+0000000080000214 <test_12>:
+ 80000214: 800000b7 lui ra,0x80000
+ 80000218: fff0809b addiw ra,ra,-1
+ 8000021c: ffff8137 lui sp,0xffff8
+ 80000220: 40208f33 sub t5,ra,sp
+ 80000224: 00010eb7 lui t4,0x10
+ 80000228: 001e8e9b addiw t4,t4,1
+ 8000022c: 00fe9e93 slli t4,t4,0xf
+ 80000230: fffe8e93 addi t4,t4,-1 # ffff <_start-0x7fff0001>
+ 80000234: 00c00193 li gp,12
+ 80000238: 39df1a63 bne t5,t4,800005cc <fail>
+
+000000008000023c <test_13>:
+ 8000023c: 00000093 li ra,0
+ 80000240: fff00113 li sp,-1
+ 80000244: 40208f33 sub t5,ra,sp
+ 80000248: 00100e93 li t4,1
+ 8000024c: 00d00193 li gp,13
+ 80000250: 37df1e63 bne t5,t4,800005cc <fail>
+
+0000000080000254 <test_14>:
+ 80000254: fff00093 li ra,-1
+ 80000258: 00100113 li sp,1
+ 8000025c: 40208f33 sub t5,ra,sp
+ 80000260: ffe00e93 li t4,-2
+ 80000264: 00e00193 li gp,14
+ 80000268: 37df1263 bne t5,t4,800005cc <fail>
+
+000000008000026c <test_15>:
+ 8000026c: fff00093 li ra,-1
+ 80000270: fff00113 li sp,-1
+ 80000274: 40208f33 sub t5,ra,sp
+ 80000278: 00000e93 li t4,0
+ 8000027c: 00f00193 li gp,15
+ 80000280: 35df1663 bne t5,t4,800005cc <fail>
+
+0000000080000284 <test_16>:
+ 80000284: 00d00093 li ra,13
+ 80000288: 00b00113 li sp,11
+ 8000028c: 402080b3 sub ra,ra,sp
+ 80000290: 00200e93 li t4,2
+ 80000294: 01000193 li gp,16
+ 80000298: 33d09a63 bne ra,t4,800005cc <fail>
+
+000000008000029c <test_17>:
+ 8000029c: 00e00093 li ra,14
+ 800002a0: 00b00113 li sp,11
+ 800002a4: 40208133 sub sp,ra,sp
+ 800002a8: 00300e93 li t4,3
+ 800002ac: 01100193 li gp,17
+ 800002b0: 31d11e63 bne sp,t4,800005cc <fail>
+
+00000000800002b4 <test_18>:
+ 800002b4: 00d00093 li ra,13
+ 800002b8: 401080b3 sub ra,ra,ra
+ 800002bc: 00000e93 li t4,0
+ 800002c0: 01200193 li gp,18
+ 800002c4: 31d09463 bne ra,t4,800005cc <fail>
+
+00000000800002c8 <test_19>:
+ 800002c8: 00000213 li tp,0
+ 800002cc: 00d00093 li ra,13
+ 800002d0: 00b00113 li sp,11
+ 800002d4: 40208f33 sub t5,ra,sp
+ 800002d8: 000f0313 mv t1,t5
+ 800002dc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800002e0: 00200293 li t0,2
+ 800002e4: fe5214e3 bne tp,t0,800002cc <test_19+0x4>
+ 800002e8: 00200e93 li t4,2
+ 800002ec: 01300193 li gp,19
+ 800002f0: 2dd31e63 bne t1,t4,800005cc <fail>
+
+00000000800002f4 <test_20>:
+ 800002f4: 00000213 li tp,0
+ 800002f8: 00e00093 li ra,14
+ 800002fc: 00b00113 li sp,11
+ 80000300: 40208f33 sub t5,ra,sp
+ 80000304: 00000013 nop
+ 80000308: 000f0313 mv t1,t5
+ 8000030c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000310: 00200293 li t0,2
+ 80000314: fe5212e3 bne tp,t0,800002f8 <test_20+0x4>
+ 80000318: 00300e93 li t4,3
+ 8000031c: 01400193 li gp,20
+ 80000320: 2bd31663 bne t1,t4,800005cc <fail>
+
+0000000080000324 <test_21>:
+ 80000324: 00000213 li tp,0
+ 80000328: 00f00093 li ra,15
+ 8000032c: 00b00113 li sp,11
+ 80000330: 40208f33 sub t5,ra,sp
+ 80000334: 00000013 nop
+ 80000338: 00000013 nop
+ 8000033c: 000f0313 mv t1,t5
+ 80000340: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000344: 00200293 li t0,2
+ 80000348: fe5210e3 bne tp,t0,80000328 <test_21+0x4>
+ 8000034c: 00400e93 li t4,4
+ 80000350: 01500193 li gp,21
+ 80000354: 27d31c63 bne t1,t4,800005cc <fail>
+
+0000000080000358 <test_22>:
+ 80000358: 00000213 li tp,0
+ 8000035c: 00d00093 li ra,13
+ 80000360: 00b00113 li sp,11
+ 80000364: 40208f33 sub t5,ra,sp
+ 80000368: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 8000036c: 00200293 li t0,2
+ 80000370: fe5216e3 bne tp,t0,8000035c <test_22+0x4>
+ 80000374: 00200e93 li t4,2
+ 80000378: 01600193 li gp,22
+ 8000037c: 25df1863 bne t5,t4,800005cc <fail>
+
+0000000080000380 <test_23>:
+ 80000380: 00000213 li tp,0
+ 80000384: 00e00093 li ra,14
+ 80000388: 00b00113 li sp,11
+ 8000038c: 00000013 nop
+ 80000390: 40208f33 sub t5,ra,sp
+ 80000394: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000398: 00200293 li t0,2
+ 8000039c: fe5214e3 bne tp,t0,80000384 <test_23+0x4>
+ 800003a0: 00300e93 li t4,3
+ 800003a4: 01700193 li gp,23
+ 800003a8: 23df1263 bne t5,t4,800005cc <fail>
+
+00000000800003ac <test_24>:
+ 800003ac: 00000213 li tp,0
+ 800003b0: 00f00093 li ra,15
+ 800003b4: 00b00113 li sp,11
+ 800003b8: 00000013 nop
+ 800003bc: 00000013 nop
+ 800003c0: 40208f33 sub t5,ra,sp
+ 800003c4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800003c8: 00200293 li t0,2
+ 800003cc: fe5212e3 bne tp,t0,800003b0 <test_24+0x4>
+ 800003d0: 00400e93 li t4,4
+ 800003d4: 01800193 li gp,24
+ 800003d8: 1fdf1a63 bne t5,t4,800005cc <fail>
+
+00000000800003dc <test_25>:
+ 800003dc: 00000213 li tp,0
+ 800003e0: 00d00093 li ra,13
+ 800003e4: 00000013 nop
+ 800003e8: 00b00113 li sp,11
+ 800003ec: 40208f33 sub t5,ra,sp
+ 800003f0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800003f4: 00200293 li t0,2
+ 800003f8: fe5214e3 bne tp,t0,800003e0 <test_25+0x4>
+ 800003fc: 00200e93 li t4,2
+ 80000400: 01900193 li gp,25
+ 80000404: 1ddf1463 bne t5,t4,800005cc <fail>
+
+0000000080000408 <test_26>:
+ 80000408: 00000213 li tp,0
+ 8000040c: 00e00093 li ra,14
+ 80000410: 00000013 nop
+ 80000414: 00b00113 li sp,11
+ 80000418: 00000013 nop
+ 8000041c: 40208f33 sub t5,ra,sp
+ 80000420: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000424: 00200293 li t0,2
+ 80000428: fe5212e3 bne tp,t0,8000040c <test_26+0x4>
+ 8000042c: 00300e93 li t4,3
+ 80000430: 01a00193 li gp,26
+ 80000434: 19df1c63 bne t5,t4,800005cc <fail>
+
+0000000080000438 <test_27>:
+ 80000438: 00000213 li tp,0
+ 8000043c: 00f00093 li ra,15
+ 80000440: 00000013 nop
+ 80000444: 00000013 nop
+ 80000448: 00b00113 li sp,11
+ 8000044c: 40208f33 sub t5,ra,sp
+ 80000450: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000454: 00200293 li t0,2
+ 80000458: fe5212e3 bne tp,t0,8000043c <test_27+0x4>
+ 8000045c: 00400e93 li t4,4
+ 80000460: 01b00193 li gp,27
+ 80000464: 17df1463 bne t5,t4,800005cc <fail>
+
+0000000080000468 <test_28>:
+ 80000468: 00000213 li tp,0
+ 8000046c: 00b00113 li sp,11
+ 80000470: 00d00093 li ra,13
+ 80000474: 40208f33 sub t5,ra,sp
+ 80000478: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 8000047c: 00200293 li t0,2
+ 80000480: fe5216e3 bne tp,t0,8000046c <test_28+0x4>
+ 80000484: 00200e93 li t4,2
+ 80000488: 01c00193 li gp,28
+ 8000048c: 15df1063 bne t5,t4,800005cc <fail>
+
+0000000080000490 <test_29>:
+ 80000490: 00000213 li tp,0
+ 80000494: 00b00113 li sp,11
+ 80000498: 00e00093 li ra,14
+ 8000049c: 00000013 nop
+ 800004a0: 40208f33 sub t5,ra,sp
+ 800004a4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800004a8: 00200293 li t0,2
+ 800004ac: fe5214e3 bne tp,t0,80000494 <test_29+0x4>
+ 800004b0: 00300e93 li t4,3
+ 800004b4: 01d00193 li gp,29
+ 800004b8: 11df1a63 bne t5,t4,800005cc <fail>
+
+00000000800004bc <test_30>:
+ 800004bc: 00000213 li tp,0
+ 800004c0: 00b00113 li sp,11
+ 800004c4: 00f00093 li ra,15
+ 800004c8: 00000013 nop
+ 800004cc: 00000013 nop
+ 800004d0: 40208f33 sub t5,ra,sp
+ 800004d4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800004d8: 00200293 li t0,2
+ 800004dc: fe5212e3 bne tp,t0,800004c0 <test_30+0x4>
+ 800004e0: 00400e93 li t4,4
+ 800004e4: 01e00193 li gp,30
+ 800004e8: 0fdf1263 bne t5,t4,800005cc <fail>
+
+00000000800004ec <test_31>:
+ 800004ec: 00000213 li tp,0
+ 800004f0: 00b00113 li sp,11
+ 800004f4: 00000013 nop
+ 800004f8: 00d00093 li ra,13
+ 800004fc: 40208f33 sub t5,ra,sp
+ 80000500: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000504: 00200293 li t0,2
+ 80000508: fe5214e3 bne tp,t0,800004f0 <test_31+0x4>
+ 8000050c: 00200e93 li t4,2
+ 80000510: 01f00193 li gp,31
+ 80000514: 0bdf1c63 bne t5,t4,800005cc <fail>
+
+0000000080000518 <test_32>:
+ 80000518: 00000213 li tp,0
+ 8000051c: 00b00113 li sp,11
+ 80000520: 00000013 nop
+ 80000524: 00e00093 li ra,14
+ 80000528: 00000013 nop
+ 8000052c: 40208f33 sub t5,ra,sp
+ 80000530: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000534: 00200293 li t0,2
+ 80000538: fe5212e3 bne tp,t0,8000051c <test_32+0x4>
+ 8000053c: 00300e93 li t4,3
+ 80000540: 02000193 li gp,32
+ 80000544: 09df1463 bne t5,t4,800005cc <fail>
+
+0000000080000548 <test_33>:
+ 80000548: 00000213 li tp,0
+ 8000054c: 00b00113 li sp,11
+ 80000550: 00000013 nop
+ 80000554: 00000013 nop
+ 80000558: 00f00093 li ra,15
+ 8000055c: 40208f33 sub t5,ra,sp
+ 80000560: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000564: 00200293 li t0,2
+ 80000568: fe5212e3 bne tp,t0,8000054c <test_33+0x4>
+ 8000056c: 00400e93 li t4,4
+ 80000570: 02100193 li gp,33
+ 80000574: 05df1c63 bne t5,t4,800005cc <fail>
+
+0000000080000578 <test_34>:
+ 80000578: ff100093 li ra,-15
+ 8000057c: 40100133 neg sp,ra
+ 80000580: 00f00e93 li t4,15
+ 80000584: 02200193 li gp,34
+ 80000588: 05d11263 bne sp,t4,800005cc <fail>
+
+000000008000058c <test_35>:
+ 8000058c: 02000093 li ra,32
+ 80000590: 40008133 sub sp,ra,zero
+ 80000594: 02000e93 li t4,32
+ 80000598: 02300193 li gp,35
+ 8000059c: 03d11863 bne sp,t4,800005cc <fail>
+
+00000000800005a0 <test_36>:
+ 800005a0: 400000b3 neg ra,zero
+ 800005a4: 00000e93 li t4,0
+ 800005a8: 02400193 li gp,36
+ 800005ac: 03d09063 bne ra,t4,800005cc <fail>
+
+00000000800005b0 <test_37>:
+ 800005b0: 01000093 li ra,16
+ 800005b4: 01e00113 li sp,30
+ 800005b8: 40208033 sub zero,ra,sp
+ 800005bc: 00000e93 li t4,0
+ 800005c0: 02500193 li gp,37
+ 800005c4: 01d01463 bne zero,t4,800005cc <fail>
+ 800005c8: 00301c63 bne zero,gp,800005e0 <pass>
+
+00000000800005cc <fail>:
+ 800005cc: 0ff0000f fence
+ 800005d0: 00018063 beqz gp,800005d0 <fail+0x4>
+ 800005d4: 00119193 slli gp,gp,0x1
+ 800005d8: 0011e193 ori gp,gp,1
+ 800005dc: 00000073 ecall
+
+00000000800005e0 <pass>:
+ 800005e0: 0ff0000f fence
+ 800005e4: 00100193 li gp,1
+ 800005e8: 00000073 ecall
+ 800005ec: c0001073 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/tests/rv64ui-p-sub.elf b/test/tests/rv64ui-p-sub.elf
new file mode 100644
index 0000000..ea64efd
--- /dev/null
+++ b/test/tests/rv64ui-p-sub.elf
Binary files differ
diff --git a/test/tests/rv64ui-p-subw.dump b/test/tests/rv64ui-p-subw.dump
new file mode 100644
index 0000000..0a29bbf
--- /dev/null
+++ b/test/tests/rv64ui-p-subw.dump
@@ -0,0 +1,485 @@
+
+rv64ui-p-subw: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <test_2>:
+ 800000fc: 00000093 li ra,0
+ 80000100: 00000113 li sp,0
+ 80000104: 40208f3b subw t5,ra,sp
+ 80000108: 00000e93 li t4,0
+ 8000010c: 00200193 li gp,2
+ 80000110: 4bdf1663 bne t5,t4,800005bc <fail>
+
+0000000080000114 <test_3>:
+ 80000114: 00100093 li ra,1
+ 80000118: 00100113 li sp,1
+ 8000011c: 40208f3b subw t5,ra,sp
+ 80000120: 00000e93 li t4,0
+ 80000124: 00300193 li gp,3
+ 80000128: 49df1a63 bne t5,t4,800005bc <fail>
+
+000000008000012c <test_4>:
+ 8000012c: 00300093 li ra,3
+ 80000130: 00700113 li sp,7
+ 80000134: 40208f3b subw t5,ra,sp
+ 80000138: ffc00e93 li t4,-4
+ 8000013c: 00400193 li gp,4
+ 80000140: 47df1e63 bne t5,t4,800005bc <fail>
+
+0000000080000144 <test_5>:
+ 80000144: 00000093 li ra,0
+ 80000148: ffff8137 lui sp,0xffff8
+ 8000014c: 40208f3b subw t5,ra,sp
+ 80000150: 00008eb7 lui t4,0x8
+ 80000154: 00500193 li gp,5
+ 80000158: 47df1263 bne t5,t4,800005bc <fail>
+
+000000008000015c <test_6>:
+ 8000015c: 800000b7 lui ra,0x80000
+ 80000160: 00000113 li sp,0
+ 80000164: 40208f3b subw t5,ra,sp
+ 80000168: 80000eb7 lui t4,0x80000
+ 8000016c: 00600193 li gp,6
+ 80000170: 45df1663 bne t5,t4,800005bc <fail>
+
+0000000080000174 <test_7>:
+ 80000174: 800000b7 lui ra,0x80000
+ 80000178: ffff8137 lui sp,0xffff8
+ 8000017c: 40208f3b subw t5,ra,sp
+ 80000180: 80008eb7 lui t4,0x80008
+ 80000184: 00700193 li gp,7
+ 80000188: 43df1a63 bne t5,t4,800005bc <fail>
+
+000000008000018c <test_8>:
+ 8000018c: 00000093 li ra,0
+ 80000190: 00008137 lui sp,0x8
+ 80000194: fff1011b addiw sp,sp,-1
+ 80000198: 40208f3b subw t5,ra,sp
+ 8000019c: ffff8eb7 lui t4,0xffff8
+ 800001a0: 001e8e9b addiw t4,t4,1
+ 800001a4: 00800193 li gp,8
+ 800001a8: 41df1a63 bne t5,t4,800005bc <fail>
+
+00000000800001ac <test_9>:
+ 800001ac: 800000b7 lui ra,0x80000
+ 800001b0: fff0809b addiw ra,ra,-1
+ 800001b4: 00000113 li sp,0
+ 800001b8: 40208f3b subw t5,ra,sp
+ 800001bc: 80000eb7 lui t4,0x80000
+ 800001c0: fffe8e9b addiw t4,t4,-1
+ 800001c4: 00900193 li gp,9
+ 800001c8: 3fdf1a63 bne t5,t4,800005bc <fail>
+
+00000000800001cc <test_10>:
+ 800001cc: 800000b7 lui ra,0x80000
+ 800001d0: fff0809b addiw ra,ra,-1
+ 800001d4: 00008137 lui sp,0x8
+ 800001d8: fff1011b addiw sp,sp,-1
+ 800001dc: 40208f3b subw t5,ra,sp
+ 800001e0: 7fff8eb7 lui t4,0x7fff8
+ 800001e4: 00a00193 li gp,10
+ 800001e8: 3ddf1a63 bne t5,t4,800005bc <fail>
+
+00000000800001ec <test_11>:
+ 800001ec: 800000b7 lui ra,0x80000
+ 800001f0: 00008137 lui sp,0x8
+ 800001f4: fff1011b addiw sp,sp,-1
+ 800001f8: 40208f3b subw t5,ra,sp
+ 800001fc: 7fff8eb7 lui t4,0x7fff8
+ 80000200: 001e8e9b addiw t4,t4,1
+ 80000204: 00b00193 li gp,11
+ 80000208: 3bdf1a63 bne t5,t4,800005bc <fail>
+
+000000008000020c <test_12>:
+ 8000020c: 800000b7 lui ra,0x80000
+ 80000210: fff0809b addiw ra,ra,-1
+ 80000214: ffff8137 lui sp,0xffff8
+ 80000218: 40208f3b subw t5,ra,sp
+ 8000021c: 80008eb7 lui t4,0x80008
+ 80000220: fffe8e9b addiw t4,t4,-1
+ 80000224: 00c00193 li gp,12
+ 80000228: 39df1a63 bne t5,t4,800005bc <fail>
+
+000000008000022c <test_13>:
+ 8000022c: 00000093 li ra,0
+ 80000230: fff00113 li sp,-1
+ 80000234: 40208f3b subw t5,ra,sp
+ 80000238: 00100e93 li t4,1
+ 8000023c: 00d00193 li gp,13
+ 80000240: 37df1e63 bne t5,t4,800005bc <fail>
+
+0000000080000244 <test_14>:
+ 80000244: fff00093 li ra,-1
+ 80000248: 00100113 li sp,1
+ 8000024c: 40208f3b subw t5,ra,sp
+ 80000250: ffe00e93 li t4,-2
+ 80000254: 00e00193 li gp,14
+ 80000258: 37df1263 bne t5,t4,800005bc <fail>
+
+000000008000025c <test_15>:
+ 8000025c: fff00093 li ra,-1
+ 80000260: fff00113 li sp,-1
+ 80000264: 40208f3b subw t5,ra,sp
+ 80000268: 00000e93 li t4,0
+ 8000026c: 00f00193 li gp,15
+ 80000270: 35df1663 bne t5,t4,800005bc <fail>
+
+0000000080000274 <test_16>:
+ 80000274: 00d00093 li ra,13
+ 80000278: 00b00113 li sp,11
+ 8000027c: 402080bb subw ra,ra,sp
+ 80000280: 00200e93 li t4,2
+ 80000284: 01000193 li gp,16
+ 80000288: 33d09a63 bne ra,t4,800005bc <fail>
+
+000000008000028c <test_17>:
+ 8000028c: 00e00093 li ra,14
+ 80000290: 00b00113 li sp,11
+ 80000294: 4020813b subw sp,ra,sp
+ 80000298: 00300e93 li t4,3
+ 8000029c: 01100193 li gp,17
+ 800002a0: 31d11e63 bne sp,t4,800005bc <fail>
+
+00000000800002a4 <test_18>:
+ 800002a4: 00d00093 li ra,13
+ 800002a8: 401080bb subw ra,ra,ra
+ 800002ac: 00000e93 li t4,0
+ 800002b0: 01200193 li gp,18
+ 800002b4: 31d09463 bne ra,t4,800005bc <fail>
+
+00000000800002b8 <test_19>:
+ 800002b8: 00000213 li tp,0
+ 800002bc: 00d00093 li ra,13
+ 800002c0: 00b00113 li sp,11
+ 800002c4: 40208f3b subw 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>
+
+00000000800002e4 <test_20>:
+ 800002e4: 00000213 li tp,0
+ 800002e8: 00e00093 li ra,14
+ 800002ec: 00b00113 li sp,11
+ 800002f0: 40208f3b subw 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>
+
+0000000080000314 <test_21>:
+ 80000314: 00000213 li tp,0
+ 80000318: 00f00093 li ra,15
+ 8000031c: 00b00113 li sp,11
+ 80000320: 40208f3b subw 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>
+
+0000000080000348 <test_22>:
+ 80000348: 00000213 li tp,0
+ 8000034c: 00d00093 li ra,13
+ 80000350: 00b00113 li sp,11
+ 80000354: 40208f3b subw 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>
+
+0000000080000370 <test_23>:
+ 80000370: 00000213 li tp,0
+ 80000374: 00e00093 li ra,14
+ 80000378: 00b00113 li sp,11
+ 8000037c: 00000013 nop
+ 80000380: 40208f3b subw 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>
+
+000000008000039c <test_24>:
+ 8000039c: 00000213 li tp,0
+ 800003a0: 00f00093 li ra,15
+ 800003a4: 00b00113 li sp,11
+ 800003a8: 00000013 nop
+ 800003ac: 00000013 nop
+ 800003b0: 40208f3b subw 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>
+
+00000000800003cc <test_25>:
+ 800003cc: 00000213 li tp,0
+ 800003d0: 00d00093 li ra,13
+ 800003d4: 00000013 nop
+ 800003d8: 00b00113 li sp,11
+ 800003dc: 40208f3b subw 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>
+
+00000000800003f8 <test_26>:
+ 800003f8: 00000213 li tp,0
+ 800003fc: 00e00093 li ra,14
+ 80000400: 00000013 nop
+ 80000404: 00b00113 li sp,11
+ 80000408: 00000013 nop
+ 8000040c: 40208f3b subw 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>
+
+0000000080000428 <test_27>:
+ 80000428: 00000213 li tp,0
+ 8000042c: 00f00093 li ra,15
+ 80000430: 00000013 nop
+ 80000434: 00000013 nop
+ 80000438: 00b00113 li sp,11
+ 8000043c: 40208f3b subw 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>
+
+0000000080000458 <test_28>:
+ 80000458: 00000213 li tp,0
+ 8000045c: 00b00113 li sp,11
+ 80000460: 00d00093 li ra,13
+ 80000464: 40208f3b subw 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>
+
+0000000080000480 <test_29>:
+ 80000480: 00000213 li tp,0
+ 80000484: 00b00113 li sp,11
+ 80000488: 00e00093 li ra,14
+ 8000048c: 00000013 nop
+ 80000490: 40208f3b subw 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>
+
+00000000800004ac <test_30>:
+ 800004ac: 00000213 li tp,0
+ 800004b0: 00b00113 li sp,11
+ 800004b4: 00f00093 li ra,15
+ 800004b8: 00000013 nop
+ 800004bc: 00000013 nop
+ 800004c0: 40208f3b subw 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>
+
+00000000800004dc <test_31>:
+ 800004dc: 00000213 li tp,0
+ 800004e0: 00b00113 li sp,11
+ 800004e4: 00000013 nop
+ 800004e8: 00d00093 li ra,13
+ 800004ec: 40208f3b subw 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>
+
+0000000080000508 <test_32>:
+ 80000508: 00000213 li tp,0
+ 8000050c: 00b00113 li sp,11
+ 80000510: 00000013 nop
+ 80000514: 00e00093 li ra,14
+ 80000518: 00000013 nop
+ 8000051c: 40208f3b subw 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>
+
+0000000080000538 <test_33>:
+ 80000538: 00000213 li tp,0
+ 8000053c: 00b00113 li sp,11
+ 80000540: 00000013 nop
+ 80000544: 00000013 nop
+ 80000548: 00f00093 li ra,15
+ 8000054c: 40208f3b subw 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>
+
+0000000080000568 <test_34>:
+ 80000568: ff100093 li ra,-15
+ 8000056c: 4010013b negw sp,ra
+ 80000570: 00f00e93 li t4,15
+ 80000574: 02200193 li gp,34
+ 80000578: 05d11263 bne sp,t4,800005bc <fail>
+
+000000008000057c <test_35>:
+ 8000057c: 02000093 li ra,32
+ 80000580: 4000813b subw sp,ra,zero
+ 80000584: 02000e93 li t4,32
+ 80000588: 02300193 li gp,35
+ 8000058c: 03d11863 bne sp,t4,800005bc <fail>
+
+0000000080000590 <test_36>:
+ 80000590: 400000bb negw ra,zero
+ 80000594: 00000e93 li t4,0
+ 80000598: 02400193 li gp,36
+ 8000059c: 03d09063 bne ra,t4,800005bc <fail>
+
+00000000800005a0 <test_37>:
+ 800005a0: 01000093 li ra,16
+ 800005a4: 01e00113 li sp,30
+ 800005a8: 4020803b subw 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>
+
+00000000800005bc <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
+
+00000000800005d0 <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/tests/rv64ui-p-subw.elf b/test/tests/rv64ui-p-subw.elf
new file mode 100644
index 0000000..fd876f5
--- /dev/null
+++ b/test/tests/rv64ui-p-subw.elf
Binary files differ
diff --git a/test/tests/rv64ui-p-sw.dump b/test/tests/rv64ui-p-sw.dump
new file mode 100644
index 0000000..a80b995
--- /dev/null
+++ b/test/tests/rv64ui-p-sw.dump
@@ -0,0 +1,476 @@
+
+rv64ui-p-sw: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <test_2>:
+ 800000fc: 00002097 auipc ra,0x2
+ 80000100: f0408093 addi ra,ra,-252 # 80002000 <begin_signature>
+ 80000104: 00aa0137 lui sp,0xaa0
+ 80000108: 0aa1011b addiw sp,sp,170
+ 8000010c: 0020a023 sw sp,0(ra)
+ 80000110: 0000af03 lw t5,0(ra)
+ 80000114: 00aa0eb7 lui t4,0xaa0
+ 80000118: 0aae8e9b addiw t4,t4,170
+ 8000011c: 00200193 li gp,2
+ 80000120: 47df1063 bne t5,t4,80000580 <fail>
+
+0000000080000124 <test_3>:
+ 80000124: 00002097 auipc ra,0x2
+ 80000128: edc08093 addi ra,ra,-292 # 80002000 <begin_signature>
+ 8000012c: aa00b137 lui sp,0xaa00b
+ 80000130: a001011b addiw sp,sp,-1536
+ 80000134: 0020a223 sw sp,4(ra)
+ 80000138: 0040af03 lw t5,4(ra)
+ 8000013c: aa00beb7 lui t4,0xaa00b
+ 80000140: a00e8e9b addiw t4,t4,-1536
+ 80000144: 00300193 li gp,3
+ 80000148: 43df1c63 bne t5,t4,80000580 <fail>
+
+000000008000014c <test_4>:
+ 8000014c: 00002097 auipc ra,0x2
+ 80000150: eb408093 addi ra,ra,-332 # 80002000 <begin_signature>
+ 80000154: 0aa01137 lui sp,0xaa01
+ 80000158: aa01011b addiw sp,sp,-1376
+ 8000015c: 0020a423 sw sp,8(ra)
+ 80000160: 0080af03 lw t5,8(ra)
+ 80000164: 0aa01eb7 lui t4,0xaa01
+ 80000168: aa0e8e9b addiw t4,t4,-1376
+ 8000016c: 00400193 li gp,4
+ 80000170: 41df1863 bne t5,t4,80000580 <fail>
+
+0000000080000174 <test_5>:
+ 80000174: 00002097 auipc ra,0x2
+ 80000178: e8c08093 addi ra,ra,-372 # 80002000 <begin_signature>
+ 8000017c: a00aa137 lui sp,0xa00aa
+ 80000180: 00a1011b addiw sp,sp,10
+ 80000184: 0020a623 sw sp,12(ra)
+ 80000188: 00c0af03 lw t5,12(ra)
+ 8000018c: a00aaeb7 lui t4,0xa00aa
+ 80000190: 00ae8e9b addiw t4,t4,10
+ 80000194: 00500193 li gp,5
+ 80000198: 3fdf1463 bne t5,t4,80000580 <fail>
+
+000000008000019c <test_6>:
+ 8000019c: 00002097 auipc ra,0x2
+ 800001a0: e8008093 addi ra,ra,-384 # 8000201c <tdat8>
+ 800001a4: 00aa0137 lui sp,0xaa0
+ 800001a8: 0aa1011b addiw sp,sp,170
+ 800001ac: fe20aa23 sw sp,-12(ra)
+ 800001b0: ff40af03 lw t5,-12(ra)
+ 800001b4: 00aa0eb7 lui t4,0xaa0
+ 800001b8: 0aae8e9b addiw t4,t4,170
+ 800001bc: 00600193 li gp,6
+ 800001c0: 3ddf1063 bne t5,t4,80000580 <fail>
+
+00000000800001c4 <test_7>:
+ 800001c4: 00002097 auipc ra,0x2
+ 800001c8: e5808093 addi ra,ra,-424 # 8000201c <tdat8>
+ 800001cc: aa00b137 lui sp,0xaa00b
+ 800001d0: a001011b addiw sp,sp,-1536
+ 800001d4: fe20ac23 sw sp,-8(ra)
+ 800001d8: ff80af03 lw t5,-8(ra)
+ 800001dc: aa00beb7 lui t4,0xaa00b
+ 800001e0: a00e8e9b addiw t4,t4,-1536
+ 800001e4: 00700193 li gp,7
+ 800001e8: 39df1c63 bne t5,t4,80000580 <fail>
+
+00000000800001ec <test_8>:
+ 800001ec: 00002097 auipc ra,0x2
+ 800001f0: e3008093 addi ra,ra,-464 # 8000201c <tdat8>
+ 800001f4: 0aa01137 lui sp,0xaa01
+ 800001f8: aa01011b addiw sp,sp,-1376
+ 800001fc: fe20ae23 sw sp,-4(ra)
+ 80000200: ffc0af03 lw t5,-4(ra)
+ 80000204: 0aa01eb7 lui t4,0xaa01
+ 80000208: aa0e8e9b addiw t4,t4,-1376
+ 8000020c: 00800193 li gp,8
+ 80000210: 37df1863 bne t5,t4,80000580 <fail>
+
+0000000080000214 <test_9>:
+ 80000214: 00002097 auipc ra,0x2
+ 80000218: e0808093 addi ra,ra,-504 # 8000201c <tdat8>
+ 8000021c: a00aa137 lui sp,0xa00aa
+ 80000220: 00a1011b addiw sp,sp,10
+ 80000224: 0020a023 sw sp,0(ra)
+ 80000228: 0000af03 lw t5,0(ra)
+ 8000022c: a00aaeb7 lui t4,0xa00aa
+ 80000230: 00ae8e9b addiw t4,t4,10
+ 80000234: 00900193 li gp,9
+ 80000238: 35df1463 bne t5,t4,80000580 <fail>
+
+000000008000023c <test_10>:
+ 8000023c: 00002097 auipc ra,0x2
+ 80000240: de408093 addi ra,ra,-540 # 80002020 <tdat9>
+ 80000244: 12345137 lui sp,0x12345
+ 80000248: 6781011b addiw sp,sp,1656
+ 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: 678e8e9b addiw t4,t4,1656
+ 80000260: 00a00193 li gp,10
+ 80000264: 31d29e63 bne t0,t4,80000580 <fail>
+
+0000000080000268 <test_11>:
+ 80000268: 00002097 auipc ra,0x2
+ 8000026c: db808093 addi ra,ra,-584 # 80002020 <tdat9>
+ 80000270: 58213137 lui sp,0x58213
+ 80000274: 0981011b addiw sp,sp,152
+ 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: 098e8e9b addiw t4,t4,152
+ 80000294: 00b00193 li gp,11
+ 80000298: 2fd29463 bne t0,t4,80000580 <fail>
+
+000000008000029c <test_12>:
+ 8000029c: 00c00193 li gp,12
+ 800002a0: 00000213 li tp,0
+ 800002a4: aabbd0b7 lui ra,0xaabbd
+ 800002a8: cdd0809b addiw ra,ra,-803
+ 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: cdde8e9b addiw t4,t4,-803
+ 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>
+
+00000000800002d4 <test_13>:
+ 800002d4: 00d00193 li gp,13
+ 800002d8: 00000213 li tp,0
+ 800002dc: daabc0b7 lui ra,0xdaabc
+ 800002e0: ccd0809b addiw ra,ra,-819
+ 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: ccde8e9b addiw t4,t4,-819
+ 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>
+
+0000000080000310 <test_14>:
+ 80000310: 00e00193 li gp,14
+ 80000314: 00000213 li tp,0
+ 80000318: ddaac0b7 lui ra,0xddaac
+ 8000031c: bcc0809b addiw ra,ra,-1076
+ 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: bcce8e9b addiw t4,t4,-1076
+ 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>
+
+0000000080000350 <test_15>:
+ 80000350: 00f00193 li gp,15
+ 80000354: 00000213 li tp,0
+ 80000358: cddab0b7 lui ra,0xcddab
+ 8000035c: bbc0809b addiw ra,ra,-1092
+ 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: bbce8e9b addiw t4,t4,-1092
+ 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>
+
+000000008000038c <test_16>:
+ 8000038c: 01000193 li gp,16
+ 80000390: 00000213 li tp,0
+ 80000394: ccddb0b7 lui ra,0xccddb
+ 80000398: abb0809b addiw ra,ra,-1349
+ 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: abbe8e9b addiw t4,t4,-1349
+ 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>
+
+00000000800003cc <test_17>:
+ 800003cc: 01100193 li gp,17
+ 800003d0: 00000213 li tp,0
+ 800003d4: bccde0b7 lui ra,0xbccde
+ 800003d8: aab0809b addiw ra,ra,-1365
+ 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: aabe8e9b addiw t4,t4,-1365
+ 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>
+
+000000008000040c <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: 2330809b addiw ra,ra,563
+ 80000424: 00112023 sw ra,0(sp)
+ 80000428: 00012f03 lw t5,0(sp)
+ 8000042c: 00112eb7 lui t4,0x112
+ 80000430: 233e8e9b addiw t4,t4,563
+ 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>
+
+0000000080000444 <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: 2230809b addiw ra,ra,547
+ 8000045c: 00000013 nop
+ 80000460: 00112223 sw ra,4(sp)
+ 80000464: 00412f03 lw t5,4(sp)
+ 80000468: 30011eb7 lui t4,0x30011
+ 8000046c: 223e8e9b addiw t4,t4,547
+ 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>
+
+0000000080000480 <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: 1220809b addiw ra,ra,290
+ 80000498: 00000013 nop
+ 8000049c: 00000013 nop
+ 800004a0: 00112423 sw ra,8(sp)
+ 800004a4: 00812f03 lw t5,8(sp)
+ 800004a8: 33001eb7 lui t4,0x33001
+ 800004ac: 122e8e9b addiw t4,t4,290
+ 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>
+
+00000000800004c0 <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: 1120809b addiw ra,ra,274
+ 800004dc: 00112623 sw ra,12(sp)
+ 800004e0: 00c12f03 lw t5,12(sp)
+ 800004e4: 23300eb7 lui t4,0x23300
+ 800004e8: 112e8e9b addiw t4,t4,274
+ 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>
+
+00000000800004fc <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: 0110809b addiw ra,ra,17
+ 80000518: 00000013 nop
+ 8000051c: 00112823 sw ra,16(sp)
+ 80000520: 01012f03 lw t5,16(sp)
+ 80000524: 22330eb7 lui t4,0x22330
+ 80000528: 011e8e9b addiw t4,t4,17
+ 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>
+
+000000008000053c <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: 0010809b addiw ra,ra,1
+ 8000055c: 00112a23 sw ra,20(sp)
+ 80000560: 01412f03 lw t5,20(sp)
+ 80000564: 12233eb7 lui t4,0x12233
+ 80000568: 001e8e9b addiw t4,t4,1
+ 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>
+
+0000000080000580 <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
+
+0000000080000594 <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:
+
+0000000080002000 <begin_signature>:
+ 80002000: deadbeef jal t4,7ffdd5ea <_start-0x22a16>
+
+0000000080002004 <tdat2>:
+ 80002004: deadbeef jal t4,7ffdd5ee <_start-0x22a12>
+
+0000000080002008 <tdat3>:
+ 80002008: deadbeef jal t4,7ffdd5f2 <_start-0x22a0e>
+
+000000008000200c <tdat4>:
+ 8000200c: deadbeef jal t4,7ffdd5f6 <_start-0x22a0a>
+
+0000000080002010 <tdat5>:
+ 80002010: deadbeef jal t4,7ffdd5fa <_start-0x22a06>
+
+0000000080002014 <tdat6>:
+ 80002014: deadbeef jal t4,7ffdd5fe <_start-0x22a02>
+
+0000000080002018 <tdat7>:
+ 80002018: deadbeef jal t4,7ffdd602 <_start-0x229fe>
+
+000000008000201c <tdat8>:
+ 8000201c: deadbeef jal t4,7ffdd606 <_start-0x229fa>
+
+0000000080002020 <tdat9>:
+ 80002020: deadbeef jal t4,7ffdd60a <_start-0x229f6>
+
+0000000080002024 <tdat10>:
+ 80002024: deadbeef jal t4,7ffdd60e <_start-0x229f2>
+ 80002028: 0000 unimp
+ 8000202a: 0000 unimp
+ 8000202c: 0000 unimp
+ 8000202e: 0000 unimp
diff --git a/test/tests/rv64ui-p-sw.elf b/test/tests/rv64ui-p-sw.elf
new file mode 100644
index 0000000..fa60dda
--- /dev/null
+++ b/test/tests/rv64ui-p-sw.elf
Binary files differ
diff --git a/test/tests/rv64ui-p-xor.dump b/test/tests/rv64ui-p-xor.dump
new file mode 100644
index 0000000..2f6d21b
--- /dev/null
+++ b/test/tests/rv64ui-p-xor.dump
@@ -0,0 +1,527 @@
+
+rv64ui-p-xor: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <test_2>:
+ 800000fc: 000100b7 lui ra,0x10
+ 80000100: f010809b addiw ra,ra,-255
+ 80000104: 01009093 slli ra,ra,0x10
+ 80000108: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 8000010c: 0f0f1137 lui sp,0xf0f1
+ 80000110: f0f1011b addiw sp,sp,-241
+ 80000114: 0020cf33 xor t5,ra,sp
+ 80000118: 000f0eb7 lui t4,0xf0
+ 8000011c: 0ffe8e9b addiw t4,t4,255
+ 80000120: 00ce9e93 slli t4,t4,0xc
+ 80000124: 00fe8e93 addi t4,t4,15 # f000f <_start-0x7ff0fff1>
+ 80000128: 00200193 li gp,2
+ 8000012c: 59df1c63 bne t5,t4,800006c4 <fail>
+
+0000000080000130 <test_3>:
+ 80000130: 0ff010b7 lui ra,0xff01
+ 80000134: ff00809b addiw ra,ra,-16
+ 80000138: 000f1137 lui sp,0xf1
+ 8000013c: f0f1011b addiw sp,sp,-241
+ 80000140: 00c11113 slli sp,sp,0xc
+ 80000144: 0f010113 addi sp,sp,240 # f10f0 <_start-0x7ff0ef10>
+ 80000148: 0020cf33 xor t5,ra,sp
+ 8000014c: 00010eb7 lui t4,0x10
+ 80000150: f01e8e9b addiw t4,t4,-255
+ 80000154: 010e9e93 slli t4,t4,0x10
+ 80000158: f00e8e93 addi t4,t4,-256 # ff00 <_start-0x7fff0100>
+ 8000015c: 00300193 li gp,3
+ 80000160: 57df1263 bne t5,t4,800006c4 <fail>
+
+0000000080000164 <test_4>:
+ 80000164: 00ff00b7 lui ra,0xff0
+ 80000168: 0ff0809b addiw ra,ra,255
+ 8000016c: 0f0f1137 lui sp,0xf0f1
+ 80000170: f0f1011b addiw sp,sp,-241
+ 80000174: 0020cf33 xor t5,ra,sp
+ 80000178: 0ff01eb7 lui t4,0xff01
+ 8000017c: ff0e8e9b addiw t4,t4,-16
+ 80000180: 00400193 li gp,4
+ 80000184: 55df1063 bne t5,t4,800006c4 <fail>
+
+0000000080000188 <test_5>:
+ 80000188: 000f00b7 lui ra,0xf0
+ 8000018c: 0ff0809b addiw ra,ra,255
+ 80000190: 00c09093 slli ra,ra,0xc
+ 80000194: 00f08093 addi ra,ra,15 # f000f <_start-0x7ff0fff1>
+ 80000198: 000f1137 lui sp,0xf1
+ 8000019c: f0f1011b addiw sp,sp,-241
+ 800001a0: 00c11113 slli sp,sp,0xc
+ 800001a4: 0f010113 addi sp,sp,240 # f10f0 <_start-0x7ff0ef10>
+ 800001a8: 0020cf33 xor t5,ra,sp
+ 800001ac: 00ff0eb7 lui t4,0xff0
+ 800001b0: 0ffe8e9b addiw t4,t4,255
+ 800001b4: 00500193 li gp,5
+ 800001b8: 51df1663 bne t5,t4,800006c4 <fail>
+
+00000000800001bc <test_6>:
+ 800001bc: 000100b7 lui ra,0x10
+ 800001c0: f010809b addiw ra,ra,-255
+ 800001c4: 01009093 slli ra,ra,0x10
+ 800001c8: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 800001cc: 0f0f1137 lui sp,0xf0f1
+ 800001d0: f0f1011b addiw sp,sp,-241
+ 800001d4: 0020c0b3 xor ra,ra,sp
+ 800001d8: 000f0eb7 lui t4,0xf0
+ 800001dc: 0ffe8e9b addiw t4,t4,255
+ 800001e0: 00ce9e93 slli t4,t4,0xc
+ 800001e4: 00fe8e93 addi t4,t4,15 # f000f <_start-0x7ff0fff1>
+ 800001e8: 00600193 li gp,6
+ 800001ec: 4dd09c63 bne ra,t4,800006c4 <fail>
+
+00000000800001f0 <test_7>:
+ 800001f0: 000100b7 lui ra,0x10
+ 800001f4: f010809b addiw ra,ra,-255
+ 800001f8: 01009093 slli ra,ra,0x10
+ 800001fc: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 80000200: 0f0f1137 lui sp,0xf0f1
+ 80000204: f0f1011b addiw sp,sp,-241
+ 80000208: 0020c133 xor sp,ra,sp
+ 8000020c: 000f0eb7 lui t4,0xf0
+ 80000210: 0ffe8e9b addiw t4,t4,255
+ 80000214: 00ce9e93 slli t4,t4,0xc
+ 80000218: 00fe8e93 addi t4,t4,15 # f000f <_start-0x7ff0fff1>
+ 8000021c: 00700193 li gp,7
+ 80000220: 4bd11263 bne sp,t4,800006c4 <fail>
+
+0000000080000224 <test_8>:
+ 80000224: 000100b7 lui ra,0x10
+ 80000228: f010809b addiw ra,ra,-255
+ 8000022c: 01009093 slli ra,ra,0x10
+ 80000230: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 80000234: 0010c0b3 xor ra,ra,ra
+ 80000238: 00000e93 li t4,0
+ 8000023c: 00800193 li gp,8
+ 80000240: 49d09263 bne ra,t4,800006c4 <fail>
+
+0000000080000244 <test_9>:
+ 80000244: 00000213 li tp,0
+ 80000248: 000100b7 lui ra,0x10
+ 8000024c: f010809b addiw ra,ra,-255
+ 80000250: 01009093 slli ra,ra,0x10
+ 80000254: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 80000258: 0f0f1137 lui sp,0xf0f1
+ 8000025c: f0f1011b addiw sp,sp,-241
+ 80000260: 0020cf33 xor t5,ra,sp
+ 80000264: 000f0313 mv t1,t5
+ 80000268: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 8000026c: 00200293 li t0,2
+ 80000270: fc521ce3 bne tp,t0,80000248 <test_9+0x4>
+ 80000274: 000f0eb7 lui t4,0xf0
+ 80000278: 0ffe8e9b addiw t4,t4,255
+ 8000027c: 00ce9e93 slli t4,t4,0xc
+ 80000280: 00fe8e93 addi t4,t4,15 # f000f <_start-0x7ff0fff1>
+ 80000284: 00900193 li gp,9
+ 80000288: 43d31e63 bne t1,t4,800006c4 <fail>
+
+000000008000028c <test_10>:
+ 8000028c: 00000213 li tp,0
+ 80000290: 0ff010b7 lui ra,0xff01
+ 80000294: ff00809b addiw ra,ra,-16
+ 80000298: 000f1137 lui sp,0xf1
+ 8000029c: f0f1011b addiw sp,sp,-241
+ 800002a0: 00c11113 slli sp,sp,0xc
+ 800002a4: 0f010113 addi sp,sp,240 # f10f0 <_start-0x7ff0ef10>
+ 800002a8: 0020cf33 xor t5,ra,sp
+ 800002ac: 00000013 nop
+ 800002b0: 000f0313 mv t1,t5
+ 800002b4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800002b8: 00200293 li t0,2
+ 800002bc: fc521ae3 bne tp,t0,80000290 <test_10+0x4>
+ 800002c0: 00010eb7 lui t4,0x10
+ 800002c4: f01e8e9b addiw t4,t4,-255
+ 800002c8: 010e9e93 slli t4,t4,0x10
+ 800002cc: f00e8e93 addi t4,t4,-256 # ff00 <_start-0x7fff0100>
+ 800002d0: 00a00193 li gp,10
+ 800002d4: 3fd31863 bne t1,t4,800006c4 <fail>
+
+00000000800002d8 <test_11>:
+ 800002d8: 00000213 li tp,0
+ 800002dc: 00ff00b7 lui ra,0xff0
+ 800002e0: 0ff0809b addiw ra,ra,255
+ 800002e4: 0f0f1137 lui sp,0xf0f1
+ 800002e8: f0f1011b addiw sp,sp,-241
+ 800002ec: 0020cf33 xor t5,ra,sp
+ 800002f0: 00000013 nop
+ 800002f4: 00000013 nop
+ 800002f8: 000f0313 mv t1,t5
+ 800002fc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000300: 00200293 li t0,2
+ 80000304: fc521ce3 bne tp,t0,800002dc <test_11+0x4>
+ 80000308: 0ff01eb7 lui t4,0xff01
+ 8000030c: ff0e8e9b addiw t4,t4,-16
+ 80000310: 00b00193 li gp,11
+ 80000314: 3bd31863 bne t1,t4,800006c4 <fail>
+
+0000000080000318 <test_12>:
+ 80000318: 00000213 li tp,0
+ 8000031c: 000100b7 lui ra,0x10
+ 80000320: f010809b addiw ra,ra,-255
+ 80000324: 01009093 slli ra,ra,0x10
+ 80000328: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 8000032c: 0f0f1137 lui sp,0xf0f1
+ 80000330: f0f1011b addiw sp,sp,-241
+ 80000334: 0020cf33 xor t5,ra,sp
+ 80000338: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 8000033c: 00200293 li t0,2
+ 80000340: fc521ee3 bne tp,t0,8000031c <test_12+0x4>
+ 80000344: 000f0eb7 lui t4,0xf0
+ 80000348: 0ffe8e9b addiw t4,t4,255
+ 8000034c: 00ce9e93 slli t4,t4,0xc
+ 80000350: 00fe8e93 addi t4,t4,15 # f000f <_start-0x7ff0fff1>
+ 80000354: 00c00193 li gp,12
+ 80000358: 37df1663 bne t5,t4,800006c4 <fail>
+
+000000008000035c <test_13>:
+ 8000035c: 00000213 li tp,0
+ 80000360: 0ff010b7 lui ra,0xff01
+ 80000364: ff00809b addiw ra,ra,-16
+ 80000368: 000f1137 lui sp,0xf1
+ 8000036c: f0f1011b addiw sp,sp,-241
+ 80000370: 00c11113 slli sp,sp,0xc
+ 80000374: 0f010113 addi sp,sp,240 # f10f0 <_start-0x7ff0ef10>
+ 80000378: 00000013 nop
+ 8000037c: 0020cf33 xor t5,ra,sp
+ 80000380: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000384: 00200293 li t0,2
+ 80000388: fc521ce3 bne tp,t0,80000360 <test_13+0x4>
+ 8000038c: 00010eb7 lui t4,0x10
+ 80000390: f01e8e9b addiw t4,t4,-255
+ 80000394: 010e9e93 slli t4,t4,0x10
+ 80000398: f00e8e93 addi t4,t4,-256 # ff00 <_start-0x7fff0100>
+ 8000039c: 00d00193 li gp,13
+ 800003a0: 33df1263 bne t5,t4,800006c4 <fail>
+
+00000000800003a4 <test_14>:
+ 800003a4: 00000213 li tp,0
+ 800003a8: 00ff00b7 lui ra,0xff0
+ 800003ac: 0ff0809b addiw ra,ra,255
+ 800003b0: 0f0f1137 lui sp,0xf0f1
+ 800003b4: f0f1011b addiw sp,sp,-241
+ 800003b8: 00000013 nop
+ 800003bc: 00000013 nop
+ 800003c0: 0020cf33 xor t5,ra,sp
+ 800003c4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800003c8: 00200293 li t0,2
+ 800003cc: fc521ee3 bne tp,t0,800003a8 <test_14+0x4>
+ 800003d0: 0ff01eb7 lui t4,0xff01
+ 800003d4: ff0e8e9b addiw t4,t4,-16
+ 800003d8: 00e00193 li gp,14
+ 800003dc: 2fdf1463 bne t5,t4,800006c4 <fail>
+
+00000000800003e0 <test_15>:
+ 800003e0: 00000213 li tp,0
+ 800003e4: 000100b7 lui ra,0x10
+ 800003e8: f010809b addiw ra,ra,-255
+ 800003ec: 01009093 slli ra,ra,0x10
+ 800003f0: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 800003f4: 00000013 nop
+ 800003f8: 0f0f1137 lui sp,0xf0f1
+ 800003fc: f0f1011b addiw sp,sp,-241
+ 80000400: 0020cf33 xor t5,ra,sp
+ 80000404: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000408: 00200293 li t0,2
+ 8000040c: fc521ce3 bne tp,t0,800003e4 <test_15+0x4>
+ 80000410: 000f0eb7 lui t4,0xf0
+ 80000414: 0ffe8e9b addiw t4,t4,255
+ 80000418: 00ce9e93 slli t4,t4,0xc
+ 8000041c: 00fe8e93 addi t4,t4,15 # f000f <_start-0x7ff0fff1>
+ 80000420: 00f00193 li gp,15
+ 80000424: 2bdf1063 bne t5,t4,800006c4 <fail>
+
+0000000080000428 <test_16>:
+ 80000428: 00000213 li tp,0
+ 8000042c: 0ff010b7 lui ra,0xff01
+ 80000430: ff00809b addiw ra,ra,-16
+ 80000434: 00000013 nop
+ 80000438: 000f1137 lui sp,0xf1
+ 8000043c: f0f1011b addiw sp,sp,-241
+ 80000440: 00c11113 slli sp,sp,0xc
+ 80000444: 0f010113 addi sp,sp,240 # f10f0 <_start-0x7ff0ef10>
+ 80000448: 00000013 nop
+ 8000044c: 0020cf33 xor t5,ra,sp
+ 80000450: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000454: 00200293 li t0,2
+ 80000458: fc521ae3 bne tp,t0,8000042c <test_16+0x4>
+ 8000045c: 00010eb7 lui t4,0x10
+ 80000460: f01e8e9b addiw t4,t4,-255
+ 80000464: 010e9e93 slli t4,t4,0x10
+ 80000468: f00e8e93 addi t4,t4,-256 # ff00 <_start-0x7fff0100>
+ 8000046c: 01000193 li gp,16
+ 80000470: 25df1a63 bne t5,t4,800006c4 <fail>
+
+0000000080000474 <test_17>:
+ 80000474: 00000213 li tp,0
+ 80000478: 00ff00b7 lui ra,0xff0
+ 8000047c: 0ff0809b addiw ra,ra,255
+ 80000480: 00000013 nop
+ 80000484: 00000013 nop
+ 80000488: 0f0f1137 lui sp,0xf0f1
+ 8000048c: f0f1011b addiw sp,sp,-241
+ 80000490: 0020cf33 xor t5,ra,sp
+ 80000494: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000498: 00200293 li t0,2
+ 8000049c: fc521ee3 bne tp,t0,80000478 <test_17+0x4>
+ 800004a0: 0ff01eb7 lui t4,0xff01
+ 800004a4: ff0e8e9b addiw t4,t4,-16
+ 800004a8: 01100193 li gp,17
+ 800004ac: 21df1c63 bne t5,t4,800006c4 <fail>
+
+00000000800004b0 <test_18>:
+ 800004b0: 00000213 li tp,0
+ 800004b4: 0f0f1137 lui sp,0xf0f1
+ 800004b8: f0f1011b addiw sp,sp,-241
+ 800004bc: 000100b7 lui ra,0x10
+ 800004c0: f010809b addiw ra,ra,-255
+ 800004c4: 01009093 slli ra,ra,0x10
+ 800004c8: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 800004cc: 0020cf33 xor t5,ra,sp
+ 800004d0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800004d4: 00200293 li t0,2
+ 800004d8: fc521ee3 bne tp,t0,800004b4 <test_18+0x4>
+ 800004dc: 000f0eb7 lui t4,0xf0
+ 800004e0: 0ffe8e9b addiw t4,t4,255
+ 800004e4: 00ce9e93 slli t4,t4,0xc
+ 800004e8: 00fe8e93 addi t4,t4,15 # f000f <_start-0x7ff0fff1>
+ 800004ec: 01200193 li gp,18
+ 800004f0: 1ddf1a63 bne t5,t4,800006c4 <fail>
+
+00000000800004f4 <test_19>:
+ 800004f4: 00000213 li tp,0
+ 800004f8: 000f1137 lui sp,0xf1
+ 800004fc: f0f1011b addiw sp,sp,-241
+ 80000500: 00c11113 slli sp,sp,0xc
+ 80000504: 0f010113 addi sp,sp,240 # f10f0 <_start-0x7ff0ef10>
+ 80000508: 0ff010b7 lui ra,0xff01
+ 8000050c: ff00809b addiw ra,ra,-16
+ 80000510: 00000013 nop
+ 80000514: 0020cf33 xor t5,ra,sp
+ 80000518: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 8000051c: 00200293 li t0,2
+ 80000520: fc521ce3 bne tp,t0,800004f8 <test_19+0x4>
+ 80000524: 00010eb7 lui t4,0x10
+ 80000528: f01e8e9b addiw t4,t4,-255
+ 8000052c: 010e9e93 slli t4,t4,0x10
+ 80000530: f00e8e93 addi t4,t4,-256 # ff00 <_start-0x7fff0100>
+ 80000534: 01300193 li gp,19
+ 80000538: 19df1663 bne t5,t4,800006c4 <fail>
+
+000000008000053c <test_20>:
+ 8000053c: 00000213 li tp,0
+ 80000540: 0f0f1137 lui sp,0xf0f1
+ 80000544: f0f1011b addiw sp,sp,-241
+ 80000548: 00ff00b7 lui ra,0xff0
+ 8000054c: 0ff0809b addiw ra,ra,255
+ 80000550: 00000013 nop
+ 80000554: 00000013 nop
+ 80000558: 0020cf33 xor t5,ra,sp
+ 8000055c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000560: 00200293 li t0,2
+ 80000564: fc521ee3 bne tp,t0,80000540 <test_20+0x4>
+ 80000568: 0ff01eb7 lui t4,0xff01
+ 8000056c: ff0e8e9b addiw t4,t4,-16
+ 80000570: 01400193 li gp,20
+ 80000574: 15df1863 bne t5,t4,800006c4 <fail>
+
+0000000080000578 <test_21>:
+ 80000578: 00000213 li tp,0
+ 8000057c: 0f0f1137 lui sp,0xf0f1
+ 80000580: f0f1011b addiw sp,sp,-241
+ 80000584: 00000013 nop
+ 80000588: 000100b7 lui ra,0x10
+ 8000058c: f010809b addiw ra,ra,-255
+ 80000590: 01009093 slli ra,ra,0x10
+ 80000594: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 80000598: 0020cf33 xor t5,ra,sp
+ 8000059c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800005a0: 00200293 li t0,2
+ 800005a4: fc521ce3 bne tp,t0,8000057c <test_21+0x4>
+ 800005a8: 000f0eb7 lui t4,0xf0
+ 800005ac: 0ffe8e9b addiw t4,t4,255
+ 800005b0: 00ce9e93 slli t4,t4,0xc
+ 800005b4: 00fe8e93 addi t4,t4,15 # f000f <_start-0x7ff0fff1>
+ 800005b8: 01500193 li gp,21
+ 800005bc: 11df1463 bne t5,t4,800006c4 <fail>
+
+00000000800005c0 <test_22>:
+ 800005c0: 00000213 li tp,0
+ 800005c4: 000f1137 lui sp,0xf1
+ 800005c8: f0f1011b addiw sp,sp,-241
+ 800005cc: 00c11113 slli sp,sp,0xc
+ 800005d0: 0f010113 addi sp,sp,240 # f10f0 <_start-0x7ff0ef10>
+ 800005d4: 00000013 nop
+ 800005d8: 0ff010b7 lui ra,0xff01
+ 800005dc: ff00809b addiw ra,ra,-16
+ 800005e0: 00000013 nop
+ 800005e4: 0020cf33 xor t5,ra,sp
+ 800005e8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800005ec: 00200293 li t0,2
+ 800005f0: fc521ae3 bne tp,t0,800005c4 <test_22+0x4>
+ 800005f4: 00010eb7 lui t4,0x10
+ 800005f8: f01e8e9b addiw t4,t4,-255
+ 800005fc: 010e9e93 slli t4,t4,0x10
+ 80000600: f00e8e93 addi t4,t4,-256 # ff00 <_start-0x7fff0100>
+ 80000604: 01600193 li gp,22
+ 80000608: 0bdf1e63 bne t5,t4,800006c4 <fail>
+
+000000008000060c <test_23>:
+ 8000060c: 00000213 li tp,0
+ 80000610: 0f0f1137 lui sp,0xf0f1
+ 80000614: f0f1011b addiw sp,sp,-241
+ 80000618: 00000013 nop
+ 8000061c: 00000013 nop
+ 80000620: 00ff00b7 lui ra,0xff0
+ 80000624: 0ff0809b addiw ra,ra,255
+ 80000628: 0020cf33 xor t5,ra,sp
+ 8000062c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000630: 00200293 li t0,2
+ 80000634: fc521ee3 bne tp,t0,80000610 <test_23+0x4>
+ 80000638: 0ff01eb7 lui t4,0xff01
+ 8000063c: ff0e8e9b addiw t4,t4,-16
+ 80000640: 01700193 li gp,23
+ 80000644: 09df1063 bne t5,t4,800006c4 <fail>
+
+0000000080000648 <test_24>:
+ 80000648: 000100b7 lui ra,0x10
+ 8000064c: f010809b addiw ra,ra,-255
+ 80000650: 01009093 slli ra,ra,0x10
+ 80000654: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 80000658: 00104133 xor sp,zero,ra
+ 8000065c: 00010eb7 lui t4,0x10
+ 80000660: f01e8e9b addiw t4,t4,-255
+ 80000664: 010e9e93 slli t4,t4,0x10
+ 80000668: f00e8e93 addi t4,t4,-256 # ff00 <_start-0x7fff0100>
+ 8000066c: 01800193 li gp,24
+ 80000670: 05d11a63 bne sp,t4,800006c4 <fail>
+
+0000000080000674 <test_25>:
+ 80000674: 00ff00b7 lui ra,0xff0
+ 80000678: 0ff0809b addiw ra,ra,255
+ 8000067c: 0000c133 xor sp,ra,zero
+ 80000680: 00ff0eb7 lui t4,0xff0
+ 80000684: 0ffe8e9b addiw t4,t4,255
+ 80000688: 01900193 li gp,25
+ 8000068c: 03d11c63 bne sp,t4,800006c4 <fail>
+
+0000000080000690 <test_26>:
+ 80000690: 000040b3 xor ra,zero,zero
+ 80000694: 00000e93 li t4,0
+ 80000698: 01a00193 li gp,26
+ 8000069c: 03d09463 bne ra,t4,800006c4 <fail>
+
+00000000800006a0 <test_27>:
+ 800006a0: 111110b7 lui ra,0x11111
+ 800006a4: 1110809b addiw ra,ra,273
+ 800006a8: 22222137 lui sp,0x22222
+ 800006ac: 2221011b addiw sp,sp,546
+ 800006b0: 0020c033 xor zero,ra,sp
+ 800006b4: 00000e93 li t4,0
+ 800006b8: 01b00193 li gp,27
+ 800006bc: 01d01463 bne zero,t4,800006c4 <fail>
+ 800006c0: 00301c63 bne zero,gp,800006d8 <pass>
+
+00000000800006c4 <fail>:
+ 800006c4: 0ff0000f fence
+ 800006c8: 00018063 beqz gp,800006c8 <fail+0x4>
+ 800006cc: 00119193 slli gp,gp,0x1
+ 800006d0: 0011e193 ori gp,gp,1
+ 800006d4: 00000073 ecall
+
+00000000800006d8 <pass>:
+ 800006d8: 0ff0000f fence
+ 800006dc: 00100193 li gp,1
+ 800006e0: 00000073 ecall
+ 800006e4: c0001073 unimp
+ 800006e8: 0000 unimp
+ 800006ea: 0000 unimp
+ 800006ec: 0000 unimp
+ 800006ee: 0000 unimp
+ 800006f0: 0000 unimp
+ 800006f2: 0000 unimp
+ 800006f4: 0000 unimp
+ 800006f6: 0000 unimp
+ 800006f8: 0000 unimp
+ 800006fa: 0000 unimp
+ 800006fc: 0000 unimp
+ 800006fe: 0000 unimp
+ 80000700: 0000 unimp
+ 80000702: 0000 unimp
diff --git a/test/tests/rv64ui-p-xor.elf b/test/tests/rv64ui-p-xor.elf
new file mode 100644
index 0000000..0466245
--- /dev/null
+++ b/test/tests/rv64ui-p-xor.elf
Binary files differ
diff --git a/test/tests/rv64ui-p-xori.dump b/test/tests/rv64ui-p-xori.dump
new file mode 100644
index 0000000..12f6997
--- /dev/null
+++ b/test/tests/rv64ui-p-xori.dump
@@ -0,0 +1,238 @@
+
+rv64ui-p-xori: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <test_2>:
+ 800000fc: 00ff10b7 lui ra,0xff1
+ 80000100: f000809b addiw ra,ra,-256
+ 80000104: f0f0cf13 xori t5,ra,-241
+ 80000108: ff00feb7 lui t4,0xff00f
+ 8000010c: 00fe8e9b addiw t4,t4,15
+ 80000110: 00200193 li gp,2
+ 80000114: 1ddf1663 bne t5,t4,800002e0 <fail>
+
+0000000080000118 <test_3>:
+ 80000118: 0ff010b7 lui ra,0xff01
+ 8000011c: ff00809b addiw ra,ra,-16
+ 80000120: 0f00cf13 xori t5,ra,240
+ 80000124: 0ff01eb7 lui t4,0xff01
+ 80000128: f00e8e9b addiw t4,t4,-256
+ 8000012c: 00300193 li gp,3
+ 80000130: 1bdf1863 bne t5,t4,800002e0 <fail>
+
+0000000080000134 <test_4>:
+ 80000134: 00ff10b7 lui ra,0xff1
+ 80000138: 8ff0809b addiw ra,ra,-1793
+ 8000013c: 70f0cf13 xori t5,ra,1807
+ 80000140: 00ff1eb7 lui t4,0xff1
+ 80000144: ff0e8e9b addiw t4,t4,-16
+ 80000148: 00400193 li gp,4
+ 8000014c: 19df1a63 bne t5,t4,800002e0 <fail>
+
+0000000080000150 <test_5>:
+ 80000150: f00ff0b7 lui ra,0xf00ff
+ 80000154: 00f0809b addiw ra,ra,15
+ 80000158: 0f00cf13 xori t5,ra,240
+ 8000015c: f00ffeb7 lui t4,0xf00ff
+ 80000160: 0ffe8e9b addiw t4,t4,255
+ 80000164: 00500193 li gp,5
+ 80000168: 17df1c63 bne t5,t4,800002e0 <fail>
+
+000000008000016c <test_6>:
+ 8000016c: ff00f0b7 lui ra,0xff00f
+ 80000170: 7000809b addiw ra,ra,1792
+ 80000174: 70f0c093 xori ra,ra,1807
+ 80000178: ff00feb7 lui t4,0xff00f
+ 8000017c: 00fe8e9b addiw t4,t4,15
+ 80000180: 00600193 li gp,6
+ 80000184: 15d09e63 bne ra,t4,800002e0 <fail>
+
+0000000080000188 <test_7>:
+ 80000188: 00000213 li tp,0
+ 8000018c: 0ff010b7 lui ra,0xff01
+ 80000190: ff00809b addiw ra,ra,-16
+ 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: f00e8e9b addiw t4,t4,-256
+ 800001b0: 00700193 li gp,7
+ 800001b4: 13d31663 bne t1,t4,800002e0 <fail>
+
+00000000800001b8 <test_8>:
+ 800001b8: 00000213 li tp,0
+ 800001bc: 00ff10b7 lui ra,0xff1
+ 800001c0: 8ff0809b addiw ra,ra,-1793
+ 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: ff0e8e9b addiw t4,t4,-16
+ 800001e4: 00800193 li gp,8
+ 800001e8: 0fd31c63 bne t1,t4,800002e0 <fail>
+
+00000000800001ec <test_9>:
+ 800001ec: 00000213 li tp,0
+ 800001f0: f00ff0b7 lui ra,0xf00ff
+ 800001f4: 00f0809b addiw ra,ra,15
+ 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: 0ffe8e9b addiw t4,t4,255
+ 8000021c: 00900193 li gp,9
+ 80000220: 0dd31063 bne t1,t4,800002e0 <fail>
+
+0000000080000224 <test_10>:
+ 80000224: 00000213 li tp,0
+ 80000228: 0ff010b7 lui ra,0xff01
+ 8000022c: ff00809b addiw ra,ra,-16
+ 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: f00e8e9b addiw t4,t4,-256
+ 80000248: 00a00193 li gp,10
+ 8000024c: 09df1a63 bne t5,t4,800002e0 <fail>
+
+0000000080000250 <test_11>:
+ 80000250: 00000213 li tp,0
+ 80000254: 00ff10b7 lui ra,0xff1
+ 80000258: fff0809b addiw ra,ra,-1
+ 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: ff0e8e9b addiw t4,t4,-16
+ 80000278: 00b00193 li gp,11
+ 8000027c: 07df1263 bne t5,t4,800002e0 <fail>
+
+0000000080000280 <test_12>:
+ 80000280: 00000213 li tp,0
+ 80000284: f00ff0b7 lui ra,0xf00ff
+ 80000288: 00f0809b addiw ra,ra,15
+ 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: 0ffe8e9b addiw t4,t4,255
+ 800002ac: 00c00193 li gp,12
+ 800002b0: 03df1863 bne t5,t4,800002e0 <fail>
+
+00000000800002b4 <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>
+
+00000000800002c4 <test_14>:
+ 800002c4: 00ff00b7 lui ra,0xff0
+ 800002c8: 0ff0809b addiw ra,ra,255
+ 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>
+
+00000000800002e0 <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
+
+00000000800002f4 <pass>:
+ 800002f4: 0ff0000f fence
+ 800002f8: 00100193 li gp,1
+ 800002fc: 00000073 ecall
+ 80000300: c0001073 unimp
diff --git a/test/tests/rv64ui-p-xori.elf b/test/tests/rv64ui-p-xori.elf
new file mode 100644
index 0000000..fe522af
--- /dev/null
+++ b/test/tests/rv64ui-p-xori.elf
Binary files differ
diff --git a/test/tests/rv64ui-v-add.dump b/test/tests/rv64ui-v-add.dump
new file mode 100644
index 0000000..8598d2b
--- /dev/null
+++ b/test/tests/rv64ui-v-add.dump
@@ -0,0 +1,1229 @@
+
+rv64ui-v-add: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <handle_reset>:
+ 8000000c: 00000297 auipc t0,0x0
+ 80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+ 80000014: 30529073 csrw mtvec,t0
+ 80000018: 00009117 auipc sp,0x9
+ 8000001c: 6b810113 addi sp,sp,1720 # 800096d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00002617 auipc a2,0x2
+ 80002318: cec60613 addi a2,a2,-788 # 80004000 <begin_signature>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00006797 auipc a5,0x6
+ 80002334: 4b878793 addi a5,a5,1208 # 800087e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00006717 auipc a4,0x6
+ 80002348: 49c70713 addi a4,a4,1180 # 800087e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00006897 auipc a7,0x6
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800087e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00006797 auipc a5,0x6
+ 80002384: 07078793 addi a5,a5,112 # 800083f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf7810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00006797 auipc a5,0x6
+ 80002448: 3807be23 sd zero,924(a5) # 800087e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00001697 auipc a3,0x1
+ 8000245c: b8068693 addi a3,a3,-1152 # 80002fd8 <pass+0xc>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00001617 auipc a2,0x1
+ 800024b8: bb460613 addi a2,a2,-1100 # 80003068 <pass+0x9c>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00001617 auipc a2,0x1
+ 80002508: b7c60613 addi a2,a2,-1156 # 80003080 <pass+0xb4>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00001697 auipc a3,0x1
+ 80002558: acc68693 addi a3,a3,-1332 # 80003020 <pass+0x54>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00001697 auipc a3,0x1
+ 80002674: ae868693 addi a3,a3,-1304 # 80003158 <pass+0x18c>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00001617 auipc a2,0x1
+ 800026cc: a6860613 addi a2,a2,-1432 # 80003130 <pass+0x164>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00006d17 auipc s10,0x6
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800083f0 <user_mapping>
+ 80002724: 00002b97 auipc s7,0x2
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80004000 <begin_signature>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00006a17 auipc s4,0x6
+ 80002738: 0aca0a13 addi s4,s4,172 # 800087e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00006717 auipc a4,0x6
+ 8000274c: 08f73c23 sd a5,152(a4) # 800087e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00006717 auipc a4,0x6
+ 800027d4: 00f73823 sd a5,16(a4) # 800087e0 <freelist_tail>
+ 800027d8: 00006717 auipc a4,0x6
+ 800027dc: 00f73823 sd a5,16(a4) # 800087e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00001697 auipc a3,0x1
+ 800027f0: 99c68693 addi a3,a3,-1636 # 80003188 <pass+0x1bc>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00001697 auipc a3,0x1
+ 80002840: 8bc68693 addi a3,a3,-1860 # 800030f8 <pass+0x12c>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00001697 auipc a3,0x1
+ 80002878: 84c68693 addi a3,a3,-1972 # 800030c0 <pass+0xf4>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00002697 auipc a3,0x2
+ 800028e0: 72468693 addi a3,a3,1828 # 80005000 <begin_signature+0x1000>
+ 800028e4: 00003717 auipc a4,0x3
+ 800028e8: 71c70713 addi a4,a4,1820 # 80006000 <begin_signature+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00004797 auipc a5,0x4
+ 800028f8: 70c78793 addi a5,a5,1804 # 80007000 <begin_signature+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00001897 auipc a7,0x1
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80004000 <begin_signature>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00002697 auipc a3,0x2
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80004ff8 <begin_signature+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00001617 auipc a2,0x1
+ 80002938: 6cc60613 addi a2,a2,1740 # 80004000 <begin_signature>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00004697 auipc a3,0x4
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80006ff8 <begin_signature+0x2ff8>
+ 8000294c: 00002717 auipc a4,0x2
+ 80002950: 6af73a23 sd a5,1716(a4) # 80005000 <begin_signature+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00005697 auipc a3,0x5
+ 800029c0: 64468693 addi a3,a3,1604 # 80008000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00006617 auipc a2,0x6
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800087e8 <freelist_head>
+ 800029d4: 00006797 auipc a5,0x6
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800087e0 <freelist_tail>
+ 800029dc: 00006317 auipc t1,0x6
+ 800029e0: a1430313 addi t1,t1,-1516 # 800083f0 <user_mapping>
+ 800029e4: 02100793 li a5,33
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00006797 auipc a5,0x6
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800083e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 0f1557b7 lui a5,0xf155
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: 1b078793 addi a5,a5,432 # f1551b0 <_start-0x70eaae50>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 00000093 li ra,0
+ 80002acc: 00000113 li sp,0
+ 80002ad0: 00208f33 add t5,ra,sp
+ 80002ad4: 00000e93 li t4,0
+ 80002ad8: 00200193 li gp,2
+ 80002adc: 4fdf1063 bne t5,t4,80002fbc <fail>
+
+0000000080002ae0 <test_3>:
+ 80002ae0: 00100093 li ra,1
+ 80002ae4: 00100113 li sp,1
+ 80002ae8: 00208f33 add t5,ra,sp
+ 80002aec: 00200e93 li t4,2
+ 80002af0: 00300193 li gp,3
+ 80002af4: 4ddf1463 bne t5,t4,80002fbc <fail>
+
+0000000080002af8 <test_4>:
+ 80002af8: 00300093 li ra,3
+ 80002afc: 00700113 li sp,7
+ 80002b00: 00208f33 add t5,ra,sp
+ 80002b04: 00a00e93 li t4,10
+ 80002b08: 00400193 li gp,4
+ 80002b0c: 4bdf1863 bne t5,t4,80002fbc <fail>
+
+0000000080002b10 <test_5>:
+ 80002b10: 00000093 li ra,0
+ 80002b14: ffff8137 lui sp,0xffff8
+ 80002b18: 00208f33 add t5,ra,sp
+ 80002b1c: ffff8eb7 lui t4,0xffff8
+ 80002b20: 00500193 li gp,5
+ 80002b24: 49df1c63 bne t5,t4,80002fbc <fail>
+
+0000000080002b28 <test_6>:
+ 80002b28: 800000b7 lui ra,0x80000
+ 80002b2c: 00000113 li sp,0
+ 80002b30: 00208f33 add t5,ra,sp
+ 80002b34: 80000eb7 lui t4,0x80000
+ 80002b38: 00600193 li gp,6
+ 80002b3c: 49df1063 bne t5,t4,80002fbc <fail>
+
+0000000080002b40 <test_7>:
+ 80002b40: 800000b7 lui ra,0x80000
+ 80002b44: ffff8137 lui sp,0xffff8
+ 80002b48: 00208f33 add t5,ra,sp
+ 80002b4c: ffff0eb7 lui t4,0xffff0
+ 80002b50: fffe8e9b addiw t4,t4,-1
+ 80002b54: 00fe9e93 slli t4,t4,0xf
+ 80002b58: 00700193 li gp,7
+ 80002b5c: 47df1063 bne t5,t4,80002fbc <fail>
+
+0000000080002b60 <test_8>:
+ 80002b60: 00000093 li ra,0
+ 80002b64: 00008137 lui sp,0x8
+ 80002b68: fff1011b addiw sp,sp,-1
+ 80002b6c: 00208f33 add t5,ra,sp
+ 80002b70: 00008eb7 lui t4,0x8
+ 80002b74: fffe8e9b addiw t4,t4,-1
+ 80002b78: 00800193 li gp,8
+ 80002b7c: 45df1063 bne t5,t4,80002fbc <fail>
+
+0000000080002b80 <test_9>:
+ 80002b80: 800000b7 lui ra,0x80000
+ 80002b84: fff0809b addiw ra,ra,-1
+ 80002b88: 00000113 li sp,0
+ 80002b8c: 00208f33 add t5,ra,sp
+ 80002b90: 80000eb7 lui t4,0x80000
+ 80002b94: fffe8e9b addiw t4,t4,-1
+ 80002b98: 00900193 li gp,9
+ 80002b9c: 43df1063 bne t5,t4,80002fbc <fail>
+
+0000000080002ba0 <test_10>:
+ 80002ba0: 800000b7 lui ra,0x80000
+ 80002ba4: fff0809b addiw ra,ra,-1
+ 80002ba8: 00008137 lui sp,0x8
+ 80002bac: fff1011b addiw sp,sp,-1
+ 80002bb0: 00208f33 add t5,ra,sp
+ 80002bb4: 00010eb7 lui t4,0x10
+ 80002bb8: 001e8e9b addiw t4,t4,1
+ 80002bbc: 00fe9e93 slli t4,t4,0xf
+ 80002bc0: ffee8e93 addi t4,t4,-2 # fffe <_start-0x7fff0002>
+ 80002bc4: 00a00193 li gp,10
+ 80002bc8: 3fdf1a63 bne t5,t4,80002fbc <fail>
+
+0000000080002bcc <test_11>:
+ 80002bcc: 800000b7 lui ra,0x80000
+ 80002bd0: 00008137 lui sp,0x8
+ 80002bd4: fff1011b addiw sp,sp,-1
+ 80002bd8: 00208f33 add t5,ra,sp
+ 80002bdc: 80008eb7 lui t4,0x80008
+ 80002be0: fffe8e9b addiw t4,t4,-1
+ 80002be4: 00b00193 li gp,11
+ 80002be8: 3ddf1a63 bne t5,t4,80002fbc <fail>
+
+0000000080002bec <test_12>:
+ 80002bec: 800000b7 lui ra,0x80000
+ 80002bf0: fff0809b addiw ra,ra,-1
+ 80002bf4: ffff8137 lui sp,0xffff8
+ 80002bf8: 00208f33 add t5,ra,sp
+ 80002bfc: 7fff8eb7 lui t4,0x7fff8
+ 80002c00: fffe8e9b addiw t4,t4,-1
+ 80002c04: 00c00193 li gp,12
+ 80002c08: 3bdf1a63 bne t5,t4,80002fbc <fail>
+
+0000000080002c0c <test_13>:
+ 80002c0c: 00000093 li ra,0
+ 80002c10: fff00113 li sp,-1
+ 80002c14: 00208f33 add t5,ra,sp
+ 80002c18: fff00e93 li t4,-1
+ 80002c1c: 00d00193 li gp,13
+ 80002c20: 39df1e63 bne t5,t4,80002fbc <fail>
+
+0000000080002c24 <test_14>:
+ 80002c24: fff00093 li ra,-1
+ 80002c28: 00100113 li sp,1
+ 80002c2c: 00208f33 add t5,ra,sp
+ 80002c30: 00000e93 li t4,0
+ 80002c34: 00e00193 li gp,14
+ 80002c38: 39df1263 bne t5,t4,80002fbc <fail>
+
+0000000080002c3c <test_15>:
+ 80002c3c: fff00093 li ra,-1
+ 80002c40: fff00113 li sp,-1
+ 80002c44: 00208f33 add t5,ra,sp
+ 80002c48: ffe00e93 li t4,-2
+ 80002c4c: 00f00193 li gp,15
+ 80002c50: 37df1663 bne t5,t4,80002fbc <fail>
+
+0000000080002c54 <test_16>:
+ 80002c54: 00100093 li ra,1
+ 80002c58: 80000137 lui sp,0x80000
+ 80002c5c: fff1011b addiw sp,sp,-1
+ 80002c60: 00208f33 add t5,ra,sp
+ 80002c64: 00100e9b addiw t4,zero,1
+ 80002c68: 01fe9e93 slli t4,t4,0x1f
+ 80002c6c: 01000193 li gp,16
+ 80002c70: 35df1663 bne t5,t4,80002fbc <fail>
+
+0000000080002c74 <test_17>:
+ 80002c74: 00d00093 li ra,13
+ 80002c78: 00b00113 li sp,11
+ 80002c7c: 002080b3 add ra,ra,sp
+ 80002c80: 01800e93 li t4,24
+ 80002c84: 01100193 li gp,17
+ 80002c88: 33d09a63 bne ra,t4,80002fbc <fail>
+
+0000000080002c8c <test_18>:
+ 80002c8c: 00e00093 li ra,14
+ 80002c90: 00b00113 li sp,11
+ 80002c94: 00208133 add sp,ra,sp
+ 80002c98: 01900e93 li t4,25
+ 80002c9c: 01200193 li gp,18
+ 80002ca0: 31d11e63 bne sp,t4,80002fbc <fail>
+
+0000000080002ca4 <test_19>:
+ 80002ca4: 00d00093 li ra,13
+ 80002ca8: 001080b3 add ra,ra,ra
+ 80002cac: 01a00e93 li t4,26
+ 80002cb0: 01300193 li gp,19
+ 80002cb4: 31d09463 bne ra,t4,80002fbc <fail>
+
+0000000080002cb8 <test_20>:
+ 80002cb8: 00000213 li tp,0
+ 80002cbc: 00d00093 li ra,13
+ 80002cc0: 00b00113 li sp,11
+ 80002cc4: 00208f33 add t5,ra,sp
+ 80002cc8: 000f0313 mv t1,t5
+ 80002ccc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002cd0: 00200293 li t0,2
+ 80002cd4: fe5214e3 bne tp,t0,80002cbc <test_20+0x4>
+ 80002cd8: 01800e93 li t4,24
+ 80002cdc: 01400193 li gp,20
+ 80002ce0: 2dd31e63 bne t1,t4,80002fbc <fail>
+
+0000000080002ce4 <test_21>:
+ 80002ce4: 00000213 li tp,0
+ 80002ce8: 00e00093 li ra,14
+ 80002cec: 00b00113 li sp,11
+ 80002cf0: 00208f33 add t5,ra,sp
+ 80002cf4: 00000013 nop
+ 80002cf8: 000f0313 mv t1,t5
+ 80002cfc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d00: 00200293 li t0,2
+ 80002d04: fe5212e3 bne tp,t0,80002ce8 <test_21+0x4>
+ 80002d08: 01900e93 li t4,25
+ 80002d0c: 01500193 li gp,21
+ 80002d10: 2bd31663 bne t1,t4,80002fbc <fail>
+
+0000000080002d14 <test_22>:
+ 80002d14: 00000213 li tp,0
+ 80002d18: 00f00093 li ra,15
+ 80002d1c: 00b00113 li sp,11
+ 80002d20: 00208f33 add t5,ra,sp
+ 80002d24: 00000013 nop
+ 80002d28: 00000013 nop
+ 80002d2c: 000f0313 mv t1,t5
+ 80002d30: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d34: 00200293 li t0,2
+ 80002d38: fe5210e3 bne tp,t0,80002d18 <test_22+0x4>
+ 80002d3c: 01a00e93 li t4,26
+ 80002d40: 01600193 li gp,22
+ 80002d44: 27d31c63 bne t1,t4,80002fbc <fail>
+
+0000000080002d48 <test_23>:
+ 80002d48: 00000213 li tp,0
+ 80002d4c: 00d00093 li ra,13
+ 80002d50: 00b00113 li sp,11
+ 80002d54: 00208f33 add t5,ra,sp
+ 80002d58: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d5c: 00200293 li t0,2
+ 80002d60: fe5216e3 bne tp,t0,80002d4c <test_23+0x4>
+ 80002d64: 01800e93 li t4,24
+ 80002d68: 01700193 li gp,23
+ 80002d6c: 25df1863 bne t5,t4,80002fbc <fail>
+
+0000000080002d70 <test_24>:
+ 80002d70: 00000213 li tp,0
+ 80002d74: 00e00093 li ra,14
+ 80002d78: 00b00113 li sp,11
+ 80002d7c: 00000013 nop
+ 80002d80: 00208f33 add t5,ra,sp
+ 80002d84: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d88: 00200293 li t0,2
+ 80002d8c: fe5214e3 bne tp,t0,80002d74 <test_24+0x4>
+ 80002d90: 01900e93 li t4,25
+ 80002d94: 01800193 li gp,24
+ 80002d98: 23df1263 bne t5,t4,80002fbc <fail>
+
+0000000080002d9c <test_25>:
+ 80002d9c: 00000213 li tp,0
+ 80002da0: 00f00093 li ra,15
+ 80002da4: 00b00113 li sp,11
+ 80002da8: 00000013 nop
+ 80002dac: 00000013 nop
+ 80002db0: 00208f33 add t5,ra,sp
+ 80002db4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002db8: 00200293 li t0,2
+ 80002dbc: fe5212e3 bne tp,t0,80002da0 <test_25+0x4>
+ 80002dc0: 01a00e93 li t4,26
+ 80002dc4: 01900193 li gp,25
+ 80002dc8: 1fdf1a63 bne t5,t4,80002fbc <fail>
+
+0000000080002dcc <test_26>:
+ 80002dcc: 00000213 li tp,0
+ 80002dd0: 00d00093 li ra,13
+ 80002dd4: 00000013 nop
+ 80002dd8: 00b00113 li sp,11
+ 80002ddc: 00208f33 add t5,ra,sp
+ 80002de0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002de4: 00200293 li t0,2
+ 80002de8: fe5214e3 bne tp,t0,80002dd0 <test_26+0x4>
+ 80002dec: 01800e93 li t4,24
+ 80002df0: 01a00193 li gp,26
+ 80002df4: 1ddf1463 bne t5,t4,80002fbc <fail>
+
+0000000080002df8 <test_27>:
+ 80002df8: 00000213 li tp,0
+ 80002dfc: 00e00093 li ra,14
+ 80002e00: 00000013 nop
+ 80002e04: 00b00113 li sp,11
+ 80002e08: 00000013 nop
+ 80002e0c: 00208f33 add t5,ra,sp
+ 80002e10: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e14: 00200293 li t0,2
+ 80002e18: fe5212e3 bne tp,t0,80002dfc <test_27+0x4>
+ 80002e1c: 01900e93 li t4,25
+ 80002e20: 01b00193 li gp,27
+ 80002e24: 19df1c63 bne t5,t4,80002fbc <fail>
+
+0000000080002e28 <test_28>:
+ 80002e28: 00000213 li tp,0
+ 80002e2c: 00f00093 li ra,15
+ 80002e30: 00000013 nop
+ 80002e34: 00000013 nop
+ 80002e38: 00b00113 li sp,11
+ 80002e3c: 00208f33 add t5,ra,sp
+ 80002e40: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e44: 00200293 li t0,2
+ 80002e48: fe5212e3 bne tp,t0,80002e2c <test_28+0x4>
+ 80002e4c: 01a00e93 li t4,26
+ 80002e50: 01c00193 li gp,28
+ 80002e54: 17df1463 bne t5,t4,80002fbc <fail>
+
+0000000080002e58 <test_29>:
+ 80002e58: 00000213 li tp,0
+ 80002e5c: 00b00113 li sp,11
+ 80002e60: 00d00093 li ra,13
+ 80002e64: 00208f33 add t5,ra,sp
+ 80002e68: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e6c: 00200293 li t0,2
+ 80002e70: fe5216e3 bne tp,t0,80002e5c <test_29+0x4>
+ 80002e74: 01800e93 li t4,24
+ 80002e78: 01d00193 li gp,29
+ 80002e7c: 15df1063 bne t5,t4,80002fbc <fail>
+
+0000000080002e80 <test_30>:
+ 80002e80: 00000213 li tp,0
+ 80002e84: 00b00113 li sp,11
+ 80002e88: 00e00093 li ra,14
+ 80002e8c: 00000013 nop
+ 80002e90: 00208f33 add t5,ra,sp
+ 80002e94: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e98: 00200293 li t0,2
+ 80002e9c: fe5214e3 bne tp,t0,80002e84 <test_30+0x4>
+ 80002ea0: 01900e93 li t4,25
+ 80002ea4: 01e00193 li gp,30
+ 80002ea8: 11df1a63 bne t5,t4,80002fbc <fail>
+
+0000000080002eac <test_31>:
+ 80002eac: 00000213 li tp,0
+ 80002eb0: 00b00113 li sp,11
+ 80002eb4: 00f00093 li ra,15
+ 80002eb8: 00000013 nop
+ 80002ebc: 00000013 nop
+ 80002ec0: 00208f33 add t5,ra,sp
+ 80002ec4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ec8: 00200293 li t0,2
+ 80002ecc: fe5212e3 bne tp,t0,80002eb0 <test_31+0x4>
+ 80002ed0: 01a00e93 li t4,26
+ 80002ed4: 01f00193 li gp,31
+ 80002ed8: 0fdf1263 bne t5,t4,80002fbc <fail>
+
+0000000080002edc <test_32>:
+ 80002edc: 00000213 li tp,0
+ 80002ee0: 00b00113 li sp,11
+ 80002ee4: 00000013 nop
+ 80002ee8: 00d00093 li ra,13
+ 80002eec: 00208f33 add t5,ra,sp
+ 80002ef0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ef4: 00200293 li t0,2
+ 80002ef8: fe5214e3 bne tp,t0,80002ee0 <test_32+0x4>
+ 80002efc: 01800e93 li t4,24
+ 80002f00: 02000193 li gp,32
+ 80002f04: 0bdf1c63 bne t5,t4,80002fbc <fail>
+
+0000000080002f08 <test_33>:
+ 80002f08: 00000213 li tp,0
+ 80002f0c: 00b00113 li sp,11
+ 80002f10: 00000013 nop
+ 80002f14: 00e00093 li ra,14
+ 80002f18: 00000013 nop
+ 80002f1c: 00208f33 add t5,ra,sp
+ 80002f20: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002f24: 00200293 li t0,2
+ 80002f28: fe5212e3 bne tp,t0,80002f0c <test_33+0x4>
+ 80002f2c: 01900e93 li t4,25
+ 80002f30: 02100193 li gp,33
+ 80002f34: 09df1463 bne t5,t4,80002fbc <fail>
+
+0000000080002f38 <test_34>:
+ 80002f38: 00000213 li tp,0
+ 80002f3c: 00b00113 li sp,11
+ 80002f40: 00000013 nop
+ 80002f44: 00000013 nop
+ 80002f48: 00f00093 li ra,15
+ 80002f4c: 00208f33 add t5,ra,sp
+ 80002f50: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002f54: 00200293 li t0,2
+ 80002f58: fe5212e3 bne tp,t0,80002f3c <test_34+0x4>
+ 80002f5c: 01a00e93 li t4,26
+ 80002f60: 02200193 li gp,34
+ 80002f64: 05df1c63 bne t5,t4,80002fbc <fail>
+
+0000000080002f68 <test_35>:
+ 80002f68: 00f00093 li ra,15
+ 80002f6c: 00100133 add sp,zero,ra
+ 80002f70: 00f00e93 li t4,15
+ 80002f74: 02300193 li gp,35
+ 80002f78: 05d11263 bne sp,t4,80002fbc <fail>
+
+0000000080002f7c <test_36>:
+ 80002f7c: 02000093 li ra,32
+ 80002f80: 00008133 add sp,ra,zero
+ 80002f84: 02000e93 li t4,32
+ 80002f88: 02400193 li gp,36
+ 80002f8c: 03d11863 bne sp,t4,80002fbc <fail>
+
+0000000080002f90 <test_37>:
+ 80002f90: 000000b3 add ra,zero,zero
+ 80002f94: 00000e93 li t4,0
+ 80002f98: 02500193 li gp,37
+ 80002f9c: 03d09063 bne ra,t4,80002fbc <fail>
+
+0000000080002fa0 <test_38>:
+ 80002fa0: 01000093 li ra,16
+ 80002fa4: 01e00113 li sp,30
+ 80002fa8: 00208033 add zero,ra,sp
+ 80002fac: 00000e93 li t4,0
+ 80002fb0: 02600193 li gp,38
+ 80002fb4: 01d01463 bne zero,t4,80002fbc <fail>
+ 80002fb8: 00301a63 bne zero,gp,80002fcc <pass>
+
+0000000080002fbc <fail>:
+ 80002fbc: 00119513 slli a0,gp,0x1
+ 80002fc0: 00050063 beqz a0,80002fc0 <fail+0x4>
+ 80002fc4: 00156513 ori a0,a0,1
+ 80002fc8: 00000073 ecall
+
+0000000080002fcc <pass>:
+ 80002fcc: 00100513 li a0,1
+ 80002fd0: 00000073 ecall
+ 80002fd4: c0001073 unimp
diff --git a/test/tests/rv64ui-v-add.elf b/test/tests/rv64ui-v-add.elf
new file mode 100644
index 0000000..d60d87a
--- /dev/null
+++ b/test/tests/rv64ui-v-add.elf
Binary files differ
diff --git a/test/tests/rv64ui-v-addi.dump b/test/tests/rv64ui-v-addi.dump
new file mode 100644
index 0000000..6c453f7
--- /dev/null
+++ b/test/tests/rv64ui-v-addi.dump
@@ -0,0 +1,1051 @@
+
+rv64ui-v-addi: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <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: 6b810113 addi sp,sp,1720 # 800086d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00001617 auipc a2,0x1
+ 80002318: cec60613 addi a2,a2,-788 # 80003000 <begin_signature>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00005797 auipc a5,0x5
+ 80002334: 4b878793 addi a5,a5,1208 # 800077e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00005717 auipc a4,0x5
+ 80002348: 49c70713 addi a4,a4,1180 # 800077e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00005897 auipc a7,0x5
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800077e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00005797 auipc a5,0x5
+ 80002384: 07078793 addi a5,a5,112 # 800073f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf8810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00005797 auipc a5,0x5
+ 80002448: 3807be23 sd zero,924(a5) # 800077e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00001697 auipc a3,0x1
+ 8000245c: 92068693 addi a3,a3,-1760 # 80002d78 <pass+0xc>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00001617 auipc a2,0x1
+ 800024b8: 95460613 addi a2,a2,-1708 # 80002e08 <pass+0x9c>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00001617 auipc a2,0x1
+ 80002508: 91c60613 addi a2,a2,-1764 # 80002e20 <pass+0xb4>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00001697 auipc a3,0x1
+ 80002558: 86c68693 addi a3,a3,-1940 # 80002dc0 <pass+0x54>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00001697 auipc a3,0x1
+ 80002674: 88868693 addi a3,a3,-1912 # 80002ef8 <pass+0x18c>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00001617 auipc a2,0x1
+ 800026cc: 80860613 addi a2,a2,-2040 # 80002ed0 <pass+0x164>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00005d17 auipc s10,0x5
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800073f0 <user_mapping>
+ 80002724: 00001b97 auipc s7,0x1
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80003000 <begin_signature>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00005a17 auipc s4,0x5
+ 80002738: 0aca0a13 addi s4,s4,172 # 800077e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00005717 auipc a4,0x5
+ 8000274c: 08f73c23 sd a5,152(a4) # 800077e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00005717 auipc a4,0x5
+ 800027d4: 00f73823 sd a5,16(a4) # 800077e0 <freelist_tail>
+ 800027d8: 00005717 auipc a4,0x5
+ 800027dc: 00f73823 sd a5,16(a4) # 800077e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 73c68693 addi a3,a3,1852 # 80002f28 <pass+0x1bc>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 65c68693 addi a3,a3,1628 # 80002e98 <pass+0x12c>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 5ec68693 addi a3,a3,1516 # 80002e60 <pass+0xf4>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00001697 auipc a3,0x1
+ 800028e0: 72468693 addi a3,a3,1828 # 80004000 <begin_signature+0x1000>
+ 800028e4: 00002717 auipc a4,0x2
+ 800028e8: 71c70713 addi a4,a4,1820 # 80005000 <begin_signature+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00003797 auipc a5,0x3
+ 800028f8: 70c78793 addi a5,a5,1804 # 80006000 <begin_signature+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00000897 auipc a7,0x0
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80003000 <begin_signature>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00001697 auipc a3,0x1
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80003ff8 <begin_signature+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00000617 auipc a2,0x0
+ 80002938: 6cc60613 addi a2,a2,1740 # 80003000 <begin_signature>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00003697 auipc a3,0x3
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80005ff8 <begin_signature+0x2ff8>
+ 8000294c: 00001717 auipc a4,0x1
+ 80002950: 6af73a23 sd a5,1716(a4) # 80004000 <begin_signature+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00004697 auipc a3,0x4
+ 800029c0: 64468693 addi a3,a3,1604 # 80007000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00005617 auipc a2,0x5
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800077e8 <freelist_head>
+ 800029d4: 00005797 auipc a5,0x5
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800077e0 <freelist_tail>
+ 800029dc: 00005317 auipc t1,0x5
+ 800029e0: a1430313 addi t1,t1,-1516 # 800073f0 <user_mapping>
+ 800029e4: 01000793 li a5,16
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00005797 auipc a5,0x5
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800073e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 04f557b7 lui a5,0x4f55
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: 5a178793 addi a5,a5,1441 # 4f555a1 <_start-0x7b0aaa5f>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 00000093 li ra,0
+ 80002acc: 00008f13 mv t5,ra
+ 80002ad0: 00000e93 li t4,0
+ 80002ad4: 00200193 li gp,2
+ 80002ad8: 29df1263 bne t5,t4,80002d5c <fail>
+
+0000000080002adc <test_3>:
+ 80002adc: 00100093 li ra,1
+ 80002ae0: 00108f13 addi t5,ra,1
+ 80002ae4: 00200e93 li t4,2
+ 80002ae8: 00300193 li gp,3
+ 80002aec: 27df1863 bne t5,t4,80002d5c <fail>
+
+0000000080002af0 <test_4>:
+ 80002af0: 00300093 li ra,3
+ 80002af4: 00708f13 addi t5,ra,7
+ 80002af8: 00a00e93 li t4,10
+ 80002afc: 00400193 li gp,4
+ 80002b00: 25df1e63 bne t5,t4,80002d5c <fail>
+
+0000000080002b04 <test_5>:
+ 80002b04: 00000093 li ra,0
+ 80002b08: 80008f13 addi t5,ra,-2048
+ 80002b0c: 80000e93 li t4,-2048
+ 80002b10: 00500193 li gp,5
+ 80002b14: 25df1463 bne t5,t4,80002d5c <fail>
+
+0000000080002b18 <test_6>:
+ 80002b18: 800000b7 lui ra,0x80000
+ 80002b1c: 00008f13 mv t5,ra
+ 80002b20: 80000eb7 lui t4,0x80000
+ 80002b24: 00600193 li gp,6
+ 80002b28: 23df1a63 bne t5,t4,80002d5c <fail>
+
+0000000080002b2c <test_7>:
+ 80002b2c: 800000b7 lui ra,0x80000
+ 80002b30: 80008f13 addi t5,ra,-2048 # ffffffff7ffff800 <_end+0xfffffffeffff8010>
+ 80002b34: fff00e9b addiw t4,zero,-1
+ 80002b38: 01fe9e93 slli t4,t4,0x1f
+ 80002b3c: 800e8e93 addi t4,t4,-2048 # ffffffff7ffff800 <_end+0xfffffffeffff8010>
+ 80002b40: 00700193 li gp,7
+ 80002b44: 21df1c63 bne t5,t4,80002d5c <fail>
+
+0000000080002b48 <test_8>:
+ 80002b48: 00000093 li ra,0
+ 80002b4c: 7ff08f13 addi t5,ra,2047
+ 80002b50: 7ff00e93 li t4,2047
+ 80002b54: 00800193 li gp,8
+ 80002b58: 21df1263 bne t5,t4,80002d5c <fail>
+
+0000000080002b5c <test_9>:
+ 80002b5c: 800000b7 lui ra,0x80000
+ 80002b60: fff0809b addiw ra,ra,-1
+ 80002b64: 00008f13 mv t5,ra
+ 80002b68: 80000eb7 lui t4,0x80000
+ 80002b6c: fffe8e9b addiw t4,t4,-1
+ 80002b70: 00900193 li gp,9
+ 80002b74: 1fdf1463 bne t5,t4,80002d5c <fail>
+
+0000000080002b78 <test_10>:
+ 80002b78: 800000b7 lui ra,0x80000
+ 80002b7c: fff0809b addiw ra,ra,-1
+ 80002b80: 7ff08f13 addi t5,ra,2047 # ffffffff800007ff <_end+0xfffffffeffff900f>
+ 80002b84: 00100e9b addiw t4,zero,1
+ 80002b88: 01fe9e93 slli t4,t4,0x1f
+ 80002b8c: 7fee8e93 addi t4,t4,2046 # ffffffff800007fe <_end+0xfffffffeffff900e>
+ 80002b90: 00a00193 li gp,10
+ 80002b94: 1ddf1463 bne t5,t4,80002d5c <fail>
+
+0000000080002b98 <test_11>:
+ 80002b98: 800000b7 lui ra,0x80000
+ 80002b9c: 7ff08f13 addi t5,ra,2047 # ffffffff800007ff <_end+0xfffffffeffff900f>
+ 80002ba0: 80000eb7 lui t4,0x80000
+ 80002ba4: 7ffe8e9b addiw t4,t4,2047
+ 80002ba8: 00b00193 li gp,11
+ 80002bac: 1bdf1863 bne t5,t4,80002d5c <fail>
+
+0000000080002bb0 <test_12>:
+ 80002bb0: 800000b7 lui ra,0x80000
+ 80002bb4: fff0809b addiw ra,ra,-1
+ 80002bb8: 80008f13 addi t5,ra,-2048 # ffffffff7ffff800 <_end+0xfffffffeffff8010>
+ 80002bbc: 7ffffeb7 lui t4,0x7ffff
+ 80002bc0: 7ffe8e9b addiw t4,t4,2047
+ 80002bc4: 00c00193 li gp,12
+ 80002bc8: 19df1a63 bne t5,t4,80002d5c <fail>
+
+0000000080002bcc <test_13>:
+ 80002bcc: 00000093 li ra,0
+ 80002bd0: fff08f13 addi t5,ra,-1
+ 80002bd4: fff00e93 li t4,-1
+ 80002bd8: 00d00193 li gp,13
+ 80002bdc: 19df1063 bne t5,t4,80002d5c <fail>
+
+0000000080002be0 <test_14>:
+ 80002be0: fff00093 li ra,-1
+ 80002be4: 00108f13 addi t5,ra,1
+ 80002be8: 00000e93 li t4,0
+ 80002bec: 00e00193 li gp,14
+ 80002bf0: 17df1663 bne t5,t4,80002d5c <fail>
+
+0000000080002bf4 <test_15>:
+ 80002bf4: fff00093 li ra,-1
+ 80002bf8: fff08f13 addi t5,ra,-1
+ 80002bfc: ffe00e93 li t4,-2
+ 80002c00: 00f00193 li gp,15
+ 80002c04: 15df1c63 bne t5,t4,80002d5c <fail>
+
+0000000080002c08 <test_16>:
+ 80002c08: 800000b7 lui ra,0x80000
+ 80002c0c: fff0809b addiw ra,ra,-1
+ 80002c10: 00108f13 addi t5,ra,1 # ffffffff80000001 <_end+0xfffffffeffff8811>
+ 80002c14: 00100e9b addiw t4,zero,1
+ 80002c18: 01fe9e93 slli t4,t4,0x1f
+ 80002c1c: 01000193 li gp,16
+ 80002c20: 13df1e63 bne t5,t4,80002d5c <fail>
+
+0000000080002c24 <test_17>:
+ 80002c24: 00d00093 li ra,13
+ 80002c28: 00b08093 addi ra,ra,11
+ 80002c2c: 01800e93 li t4,24
+ 80002c30: 01100193 li gp,17
+ 80002c34: 13d09463 bne ra,t4,80002d5c <fail>
+
+0000000080002c38 <test_18>:
+ 80002c38: 00000213 li tp,0
+ 80002c3c: 00d00093 li ra,13
+ 80002c40: 00b08f13 addi t5,ra,11
+ 80002c44: 000f0313 mv t1,t5
+ 80002c48: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c4c: 00200293 li t0,2
+ 80002c50: fe5216e3 bne tp,t0,80002c3c <test_18+0x4>
+ 80002c54: 01800e93 li t4,24
+ 80002c58: 01200193 li gp,18
+ 80002c5c: 11d31063 bne t1,t4,80002d5c <fail>
+
+0000000080002c60 <test_19>:
+ 80002c60: 00000213 li tp,0
+ 80002c64: 00d00093 li ra,13
+ 80002c68: 00a08f13 addi t5,ra,10
+ 80002c6c: 00000013 nop
+ 80002c70: 000f0313 mv t1,t5
+ 80002c74: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c78: 00200293 li t0,2
+ 80002c7c: fe5214e3 bne tp,t0,80002c64 <test_19+0x4>
+ 80002c80: 01700e93 li t4,23
+ 80002c84: 01300193 li gp,19
+ 80002c88: 0dd31a63 bne t1,t4,80002d5c <fail>
+
+0000000080002c8c <test_20>:
+ 80002c8c: 00000213 li tp,0
+ 80002c90: 00d00093 li ra,13
+ 80002c94: 00908f13 addi t5,ra,9
+ 80002c98: 00000013 nop
+ 80002c9c: 00000013 nop
+ 80002ca0: 000f0313 mv t1,t5
+ 80002ca4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ca8: 00200293 li t0,2
+ 80002cac: fe5212e3 bne tp,t0,80002c90 <test_20+0x4>
+ 80002cb0: 01600e93 li t4,22
+ 80002cb4: 01400193 li gp,20
+ 80002cb8: 0bd31263 bne t1,t4,80002d5c <fail>
+
+0000000080002cbc <test_21>:
+ 80002cbc: 00000213 li tp,0
+ 80002cc0: 00d00093 li ra,13
+ 80002cc4: 00b08f13 addi t5,ra,11
+ 80002cc8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ccc: 00200293 li t0,2
+ 80002cd0: fe5218e3 bne tp,t0,80002cc0 <test_21+0x4>
+ 80002cd4: 01800e93 li t4,24
+ 80002cd8: 01500193 li gp,21
+ 80002cdc: 09df1063 bne t5,t4,80002d5c <fail>
+
+0000000080002ce0 <test_22>:
+ 80002ce0: 00000213 li tp,0
+ 80002ce4: 00d00093 li ra,13
+ 80002ce8: 00000013 nop
+ 80002cec: 00a08f13 addi t5,ra,10
+ 80002cf0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002cf4: 00200293 li t0,2
+ 80002cf8: fe5216e3 bne tp,t0,80002ce4 <test_22+0x4>
+ 80002cfc: 01700e93 li t4,23
+ 80002d00: 01600193 li gp,22
+ 80002d04: 05df1c63 bne t5,t4,80002d5c <fail>
+
+0000000080002d08 <test_23>:
+ 80002d08: 00000213 li tp,0
+ 80002d0c: 00d00093 li ra,13
+ 80002d10: 00000013 nop
+ 80002d14: 00000013 nop
+ 80002d18: 00908f13 addi t5,ra,9
+ 80002d1c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d20: 00200293 li t0,2
+ 80002d24: fe5214e3 bne tp,t0,80002d0c <test_23+0x4>
+ 80002d28: 01600e93 li t4,22
+ 80002d2c: 01700193 li gp,23
+ 80002d30: 03df1663 bne t5,t4,80002d5c <fail>
+
+0000000080002d34 <test_24>:
+ 80002d34: 02000093 li ra,32
+ 80002d38: 02000e93 li t4,32
+ 80002d3c: 01800193 li gp,24
+ 80002d40: 01d09e63 bne ra,t4,80002d5c <fail>
+
+0000000080002d44 <test_25>:
+ 80002d44: 02100093 li ra,33
+ 80002d48: 03208013 addi zero,ra,50
+ 80002d4c: 00000e93 li t4,0
+ 80002d50: 01900193 li gp,25
+ 80002d54: 01d01463 bne zero,t4,80002d5c <fail>
+ 80002d58: 00301a63 bne zero,gp,80002d6c <pass>
+
+0000000080002d5c <fail>:
+ 80002d5c: 00119513 slli a0,gp,0x1
+ 80002d60: 00050063 beqz a0,80002d60 <fail+0x4>
+ 80002d64: 00156513 ori a0,a0,1
+ 80002d68: 00000073 ecall
+
+0000000080002d6c <pass>:
+ 80002d6c: 00100513 li a0,1
+ 80002d70: 00000073 ecall
+ 80002d74: c0001073 unimp
diff --git a/test/tests/rv64ui-v-addi.elf b/test/tests/rv64ui-v-addi.elf
new file mode 100644
index 0000000..28d8b88
--- /dev/null
+++ b/test/tests/rv64ui-v-addi.elf
Binary files differ
diff --git a/test/tests/rv64ui-v-addiw.dump b/test/tests/rv64ui-v-addiw.dump
new file mode 100644
index 0000000..d152915
--- /dev/null
+++ b/test/tests/rv64ui-v-addiw.dump
@@ -0,0 +1,1048 @@
+
+rv64ui-v-addiw: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <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: 6b810113 addi sp,sp,1720 # 800086d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00001617 auipc a2,0x1
+ 80002318: cec60613 addi a2,a2,-788 # 80003000 <begin_signature>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00005797 auipc a5,0x5
+ 80002334: 4b878793 addi a5,a5,1208 # 800077e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00005717 auipc a4,0x5
+ 80002348: 49c70713 addi a4,a4,1180 # 800077e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00005897 auipc a7,0x5
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800077e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00005797 auipc a5,0x5
+ 80002384: 07078793 addi a5,a5,112 # 800073f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf8810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00005797 auipc a5,0x5
+ 80002448: 3807be23 sd zero,924(a5) # 800077e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00001697 auipc a3,0x1
+ 8000245c: 91868693 addi a3,a3,-1768 # 80002d70 <pass+0x10>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00001617 auipc a2,0x1
+ 800024b8: 94c60613 addi a2,a2,-1716 # 80002e00 <pass+0xa0>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00001617 auipc a2,0x1
+ 80002508: 91460613 addi a2,a2,-1772 # 80002e18 <pass+0xb8>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00001697 auipc a3,0x1
+ 80002558: 86468693 addi a3,a3,-1948 # 80002db8 <pass+0x58>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00001697 auipc a3,0x1
+ 80002674: 88068693 addi a3,a3,-1920 # 80002ef0 <pass+0x190>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00001617 auipc a2,0x1
+ 800026cc: 80060613 addi a2,a2,-2048 # 80002ec8 <pass+0x168>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00005d17 auipc s10,0x5
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800073f0 <user_mapping>
+ 80002724: 00001b97 auipc s7,0x1
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80003000 <begin_signature>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00005a17 auipc s4,0x5
+ 80002738: 0aca0a13 addi s4,s4,172 # 800077e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00005717 auipc a4,0x5
+ 8000274c: 08f73c23 sd a5,152(a4) # 800077e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00005717 auipc a4,0x5
+ 800027d4: 00f73823 sd a5,16(a4) # 800077e0 <freelist_tail>
+ 800027d8: 00005717 auipc a4,0x5
+ 800027dc: 00f73823 sd a5,16(a4) # 800077e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 73468693 addi a3,a3,1844 # 80002f20 <pass+0x1c0>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 65468693 addi a3,a3,1620 # 80002e90 <pass+0x130>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 5e468693 addi a3,a3,1508 # 80002e58 <pass+0xf8>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00001697 auipc a3,0x1
+ 800028e0: 72468693 addi a3,a3,1828 # 80004000 <begin_signature+0x1000>
+ 800028e4: 00002717 auipc a4,0x2
+ 800028e8: 71c70713 addi a4,a4,1820 # 80005000 <begin_signature+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00003797 auipc a5,0x3
+ 800028f8: 70c78793 addi a5,a5,1804 # 80006000 <begin_signature+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00000897 auipc a7,0x0
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80003000 <begin_signature>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00001697 auipc a3,0x1
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80003ff8 <begin_signature+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00000617 auipc a2,0x0
+ 80002938: 6cc60613 addi a2,a2,1740 # 80003000 <begin_signature>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00003697 auipc a3,0x3
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80005ff8 <begin_signature+0x2ff8>
+ 8000294c: 00001717 auipc a4,0x1
+ 80002950: 6af73a23 sd a5,1716(a4) # 80004000 <begin_signature+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00004697 auipc a3,0x4
+ 800029c0: 64468693 addi a3,a3,1604 # 80007000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00005617 auipc a2,0x5
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800077e8 <freelist_head>
+ 800029d4: 00005797 auipc a5,0x5
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800077e0 <freelist_tail>
+ 800029dc: 00005317 auipc t1,0x5
+ 800029e0: a1430313 addi t1,t1,-1516 # 800073f0 <user_mapping>
+ 800029e4: 00d00793 li a5,13
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00005797 auipc a5,0x5
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800073e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 04c6e7b7 lui a5,0x4c6e
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: 45678793 addi a5,a5,1110 # 4c6e456 <_start-0x7b391baa>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 00000093 li ra,0
+ 80002acc: 00008f1b sext.w t5,ra
+ 80002ad0: 00000e93 li t4,0
+ 80002ad4: 00200193 li gp,2
+ 80002ad8: 27df1c63 bne t5,t4,80002d50 <fail>
+
+0000000080002adc <test_3>:
+ 80002adc: 00100093 li ra,1
+ 80002ae0: 00108f1b addiw t5,ra,1
+ 80002ae4: 00200e93 li t4,2
+ 80002ae8: 00300193 li gp,3
+ 80002aec: 27df1263 bne t5,t4,80002d50 <fail>
+
+0000000080002af0 <test_4>:
+ 80002af0: 00300093 li ra,3
+ 80002af4: 00708f1b addiw t5,ra,7
+ 80002af8: 00a00e93 li t4,10
+ 80002afc: 00400193 li gp,4
+ 80002b00: 25df1863 bne t5,t4,80002d50 <fail>
+
+0000000080002b04 <test_5>:
+ 80002b04: 00000093 li ra,0
+ 80002b08: 80008f1b addiw t5,ra,-2048
+ 80002b0c: 80000e93 li t4,-2048
+ 80002b10: 00500193 li gp,5
+ 80002b14: 23df1e63 bne t5,t4,80002d50 <fail>
+
+0000000080002b18 <test_6>:
+ 80002b18: 800000b7 lui ra,0x80000
+ 80002b1c: 00008f1b sext.w t5,ra
+ 80002b20: 80000eb7 lui t4,0x80000
+ 80002b24: 00600193 li gp,6
+ 80002b28: 23df1463 bne t5,t4,80002d50 <fail>
+
+0000000080002b2c <test_7>:
+ 80002b2c: 800000b7 lui ra,0x80000
+ 80002b30: 80008f1b addiw t5,ra,-2048
+ 80002b34: 80000eb7 lui t4,0x80000
+ 80002b38: 800e8e9b addiw t4,t4,-2048
+ 80002b3c: 00700193 li gp,7
+ 80002b40: 21df1863 bne t5,t4,80002d50 <fail>
+
+0000000080002b44 <test_8>:
+ 80002b44: 00000093 li ra,0
+ 80002b48: 7ff08f1b addiw t5,ra,2047
+ 80002b4c: 7ff00e93 li t4,2047
+ 80002b50: 00800193 li gp,8
+ 80002b54: 1fdf1e63 bne t5,t4,80002d50 <fail>
+
+0000000080002b58 <test_9>:
+ 80002b58: 800000b7 lui ra,0x80000
+ 80002b5c: fff0809b addiw ra,ra,-1
+ 80002b60: 00008f1b sext.w t5,ra
+ 80002b64: 80000eb7 lui t4,0x80000
+ 80002b68: fffe8e9b addiw t4,t4,-1
+ 80002b6c: 00900193 li gp,9
+ 80002b70: 1fdf1063 bne t5,t4,80002d50 <fail>
+
+0000000080002b74 <test_10>:
+ 80002b74: 800000b7 lui ra,0x80000
+ 80002b78: fff0809b addiw ra,ra,-1
+ 80002b7c: 7ff08f1b addiw t5,ra,2047
+ 80002b80: 80000eb7 lui t4,0x80000
+ 80002b84: 7fee8e9b addiw t4,t4,2046
+ 80002b88: 00a00193 li gp,10
+ 80002b8c: 1ddf1263 bne t5,t4,80002d50 <fail>
+
+0000000080002b90 <test_11>:
+ 80002b90: 800000b7 lui ra,0x80000
+ 80002b94: 7ff08f1b addiw t5,ra,2047
+ 80002b98: 80000eb7 lui t4,0x80000
+ 80002b9c: 7ffe8e9b addiw t4,t4,2047
+ 80002ba0: 00b00193 li gp,11
+ 80002ba4: 1bdf1663 bne t5,t4,80002d50 <fail>
+
+0000000080002ba8 <test_12>:
+ 80002ba8: 800000b7 lui ra,0x80000
+ 80002bac: fff0809b addiw ra,ra,-1
+ 80002bb0: 80008f1b addiw t5,ra,-2048
+ 80002bb4: 7ffffeb7 lui t4,0x7ffff
+ 80002bb8: 7ffe8e9b addiw t4,t4,2047
+ 80002bbc: 00c00193 li gp,12
+ 80002bc0: 19df1863 bne t5,t4,80002d50 <fail>
+
+0000000080002bc4 <test_13>:
+ 80002bc4: 00000093 li ra,0
+ 80002bc8: fff08f1b addiw t5,ra,-1
+ 80002bcc: fff00e93 li t4,-1
+ 80002bd0: 00d00193 li gp,13
+ 80002bd4: 17df1e63 bne t5,t4,80002d50 <fail>
+
+0000000080002bd8 <test_14>:
+ 80002bd8: fff00093 li ra,-1
+ 80002bdc: 00108f1b addiw t5,ra,1
+ 80002be0: 00000e93 li t4,0
+ 80002be4: 00e00193 li gp,14
+ 80002be8: 17df1463 bne t5,t4,80002d50 <fail>
+
+0000000080002bec <test_15>:
+ 80002bec: fff00093 li ra,-1
+ 80002bf0: fff08f1b addiw t5,ra,-1
+ 80002bf4: ffe00e93 li t4,-2
+ 80002bf8: 00f00193 li gp,15
+ 80002bfc: 15df1a63 bne t5,t4,80002d50 <fail>
+
+0000000080002c00 <test_16>:
+ 80002c00: 800000b7 lui ra,0x80000
+ 80002c04: fff0809b addiw ra,ra,-1
+ 80002c08: 00108f1b addiw t5,ra,1
+ 80002c0c: 80000eb7 lui t4,0x80000
+ 80002c10: 01000193 li gp,16
+ 80002c14: 13df1e63 bne t5,t4,80002d50 <fail>
+
+0000000080002c18 <test_17>:
+ 80002c18: 00d00093 li ra,13
+ 80002c1c: 00b0809b addiw ra,ra,11
+ 80002c20: 01800e93 li t4,24
+ 80002c24: 01100193 li gp,17
+ 80002c28: 13d09463 bne ra,t4,80002d50 <fail>
+
+0000000080002c2c <test_18>:
+ 80002c2c: 00000213 li tp,0
+ 80002c30: 00d00093 li ra,13
+ 80002c34: 00b08f1b addiw t5,ra,11
+ 80002c38: 000f0313 mv t1,t5
+ 80002c3c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c40: 00200293 li t0,2
+ 80002c44: fe5216e3 bne tp,t0,80002c30 <test_18+0x4>
+ 80002c48: 01800e93 li t4,24
+ 80002c4c: 01200193 li gp,18
+ 80002c50: 11d31063 bne t1,t4,80002d50 <fail>
+
+0000000080002c54 <test_19>:
+ 80002c54: 00000213 li tp,0
+ 80002c58: 00d00093 li ra,13
+ 80002c5c: 00a08f1b addiw t5,ra,10
+ 80002c60: 00000013 nop
+ 80002c64: 000f0313 mv t1,t5
+ 80002c68: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c6c: 00200293 li t0,2
+ 80002c70: fe5214e3 bne tp,t0,80002c58 <test_19+0x4>
+ 80002c74: 01700e93 li t4,23
+ 80002c78: 01300193 li gp,19
+ 80002c7c: 0dd31a63 bne t1,t4,80002d50 <fail>
+
+0000000080002c80 <test_20>:
+ 80002c80: 00000213 li tp,0
+ 80002c84: 00d00093 li ra,13
+ 80002c88: 00908f1b addiw t5,ra,9
+ 80002c8c: 00000013 nop
+ 80002c90: 00000013 nop
+ 80002c94: 000f0313 mv t1,t5
+ 80002c98: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c9c: 00200293 li t0,2
+ 80002ca0: fe5212e3 bne tp,t0,80002c84 <test_20+0x4>
+ 80002ca4: 01600e93 li t4,22
+ 80002ca8: 01400193 li gp,20
+ 80002cac: 0bd31263 bne t1,t4,80002d50 <fail>
+
+0000000080002cb0 <test_21>:
+ 80002cb0: 00000213 li tp,0
+ 80002cb4: 00d00093 li ra,13
+ 80002cb8: 00b08f1b addiw t5,ra,11
+ 80002cbc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002cc0: 00200293 li t0,2
+ 80002cc4: fe5218e3 bne tp,t0,80002cb4 <test_21+0x4>
+ 80002cc8: 01800e93 li t4,24
+ 80002ccc: 01500193 li gp,21
+ 80002cd0: 09df1063 bne t5,t4,80002d50 <fail>
+
+0000000080002cd4 <test_22>:
+ 80002cd4: 00000213 li tp,0
+ 80002cd8: 00d00093 li ra,13
+ 80002cdc: 00000013 nop
+ 80002ce0: 00a08f1b addiw t5,ra,10
+ 80002ce4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ce8: 00200293 li t0,2
+ 80002cec: fe5216e3 bne tp,t0,80002cd8 <test_22+0x4>
+ 80002cf0: 01700e93 li t4,23
+ 80002cf4: 01600193 li gp,22
+ 80002cf8: 05df1c63 bne t5,t4,80002d50 <fail>
+
+0000000080002cfc <test_23>:
+ 80002cfc: 00000213 li tp,0
+ 80002d00: 00d00093 li ra,13
+ 80002d04: 00000013 nop
+ 80002d08: 00000013 nop
+ 80002d0c: 00908f1b addiw t5,ra,9
+ 80002d10: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d14: 00200293 li t0,2
+ 80002d18: fe5214e3 bne tp,t0,80002d00 <test_23+0x4>
+ 80002d1c: 01600e93 li t4,22
+ 80002d20: 01700193 li gp,23
+ 80002d24: 03df1663 bne t5,t4,80002d50 <fail>
+
+0000000080002d28 <test_24>:
+ 80002d28: 0200009b addiw ra,zero,32
+ 80002d2c: 02000e93 li t4,32
+ 80002d30: 01800193 li gp,24
+ 80002d34: 01d09e63 bne ra,t4,80002d50 <fail>
+
+0000000080002d38 <test_25>:
+ 80002d38: 02100093 li ra,33
+ 80002d3c: 0320801b addiw zero,ra,50
+ 80002d40: 00000e93 li t4,0
+ 80002d44: 01900193 li gp,25
+ 80002d48: 01d01463 bne zero,t4,80002d50 <fail>
+ 80002d4c: 00301a63 bne zero,gp,80002d60 <pass>
+
+0000000080002d50 <fail>:
+ 80002d50: 00119513 slli a0,gp,0x1
+ 80002d54: 00050063 beqz a0,80002d54 <fail+0x4>
+ 80002d58: 00156513 ori a0,a0,1
+ 80002d5c: 00000073 ecall
+
+0000000080002d60 <pass>:
+ 80002d60: 00100513 li a0,1
+ 80002d64: 00000073 ecall
+ 80002d68: c0001073 unimp
diff --git a/test/tests/rv64ui-v-addiw.elf b/test/tests/rv64ui-v-addiw.elf
new file mode 100644
index 0000000..ddbea56
--- /dev/null
+++ b/test/tests/rv64ui-v-addiw.elf
Binary files differ
diff --git a/test/tests/rv64ui-v-addw.dump b/test/tests/rv64ui-v-addw.dump
new file mode 100644
index 0000000..838371b
--- /dev/null
+++ b/test/tests/rv64ui-v-addw.dump
@@ -0,0 +1,1224 @@
+
+rv64ui-v-addw: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <handle_reset>:
+ 8000000c: 00000297 auipc t0,0x0
+ 80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+ 80000014: 30529073 csrw mtvec,t0
+ 80000018: 00009117 auipc sp,0x9
+ 8000001c: 6b810113 addi sp,sp,1720 # 800096d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00002617 auipc a2,0x2
+ 80002318: cec60613 addi a2,a2,-788 # 80004000 <begin_signature>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00006797 auipc a5,0x6
+ 80002334: 4b878793 addi a5,a5,1208 # 800087e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00006717 auipc a4,0x6
+ 80002348: 49c70713 addi a4,a4,1180 # 800087e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00006897 auipc a7,0x6
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800087e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00006797 auipc a5,0x6
+ 80002384: 07078793 addi a5,a5,112 # 800083f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf7810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00006797 auipc a5,0x6
+ 80002448: 3807be23 sd zero,924(a5) # 800087e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00001697 auipc a3,0x1
+ 8000245c: b7068693 addi a3,a3,-1168 # 80002fc8 <pass+0x10>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00001617 auipc a2,0x1
+ 800024b8: ba460613 addi a2,a2,-1116 # 80003058 <pass+0xa0>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00001617 auipc a2,0x1
+ 80002508: b6c60613 addi a2,a2,-1172 # 80003070 <pass+0xb8>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00001697 auipc a3,0x1
+ 80002558: abc68693 addi a3,a3,-1348 # 80003010 <pass+0x58>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00001697 auipc a3,0x1
+ 80002674: ad868693 addi a3,a3,-1320 # 80003148 <pass+0x190>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00001617 auipc a2,0x1
+ 800026cc: a5860613 addi a2,a2,-1448 # 80003120 <pass+0x168>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00006d17 auipc s10,0x6
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800083f0 <user_mapping>
+ 80002724: 00002b97 auipc s7,0x2
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80004000 <begin_signature>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00006a17 auipc s4,0x6
+ 80002738: 0aca0a13 addi s4,s4,172 # 800087e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00006717 auipc a4,0x6
+ 8000274c: 08f73c23 sd a5,152(a4) # 800087e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00006717 auipc a4,0x6
+ 800027d4: 00f73823 sd a5,16(a4) # 800087e0 <freelist_tail>
+ 800027d8: 00006717 auipc a4,0x6
+ 800027dc: 00f73823 sd a5,16(a4) # 800087e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00001697 auipc a3,0x1
+ 800027f0: 98c68693 addi a3,a3,-1652 # 80003178 <pass+0x1c0>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00001697 auipc a3,0x1
+ 80002840: 8ac68693 addi a3,a3,-1876 # 800030e8 <pass+0x130>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00001697 auipc a3,0x1
+ 80002878: 83c68693 addi a3,a3,-1988 # 800030b0 <pass+0xf8>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00002697 auipc a3,0x2
+ 800028e0: 72468693 addi a3,a3,1828 # 80005000 <begin_signature+0x1000>
+ 800028e4: 00003717 auipc a4,0x3
+ 800028e8: 71c70713 addi a4,a4,1820 # 80006000 <begin_signature+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00004797 auipc a5,0x4
+ 800028f8: 70c78793 addi a5,a5,1804 # 80007000 <begin_signature+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00001897 auipc a7,0x1
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80004000 <begin_signature>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00002697 auipc a3,0x2
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80004ff8 <begin_signature+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00001617 auipc a2,0x1
+ 80002938: 6cc60613 addi a2,a2,1740 # 80004000 <begin_signature>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00004697 auipc a3,0x4
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80006ff8 <begin_signature+0x2ff8>
+ 8000294c: 00002717 auipc a4,0x2
+ 80002950: 6af73a23 sd a5,1716(a4) # 80005000 <begin_signature+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00005697 auipc a3,0x5
+ 800029c0: 64468693 addi a3,a3,1604 # 80008000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00006617 auipc a2,0x6
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800087e8 <freelist_head>
+ 800029d4: 00006797 auipc a5,0x6
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800087e0 <freelist_tail>
+ 800029dc: 00006317 auipc t1,0x6
+ 800029e0: a1430313 addi t1,t1,-1516 # 800083f0 <user_mapping>
+ 800029e4: 00800793 li a5,8
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00006797 auipc a5,0x6
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800083e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 04c367b7 lui a5,0x4c36
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: 29178793 addi a5,a5,657 # 4c36291 <_start-0x7b3c9d6f>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 00000093 li ra,0
+ 80002acc: 00000113 li sp,0
+ 80002ad0: 00208f3b addw t5,ra,sp
+ 80002ad4: 00000e93 li t4,0
+ 80002ad8: 00200193 li gp,2
+ 80002adc: 4ddf1663 bne t5,t4,80002fa8 <fail>
+
+0000000080002ae0 <test_3>:
+ 80002ae0: 00100093 li ra,1
+ 80002ae4: 00100113 li sp,1
+ 80002ae8: 00208f3b addw t5,ra,sp
+ 80002aec: 00200e93 li t4,2
+ 80002af0: 00300193 li gp,3
+ 80002af4: 4bdf1a63 bne t5,t4,80002fa8 <fail>
+
+0000000080002af8 <test_4>:
+ 80002af8: 00300093 li ra,3
+ 80002afc: 00700113 li sp,7
+ 80002b00: 00208f3b addw t5,ra,sp
+ 80002b04: 00a00e93 li t4,10
+ 80002b08: 00400193 li gp,4
+ 80002b0c: 49df1e63 bne t5,t4,80002fa8 <fail>
+
+0000000080002b10 <test_5>:
+ 80002b10: 00000093 li ra,0
+ 80002b14: ffff8137 lui sp,0xffff8
+ 80002b18: 00208f3b addw t5,ra,sp
+ 80002b1c: ffff8eb7 lui t4,0xffff8
+ 80002b20: 00500193 li gp,5
+ 80002b24: 49df1263 bne t5,t4,80002fa8 <fail>
+
+0000000080002b28 <test_6>:
+ 80002b28: 800000b7 lui ra,0x80000
+ 80002b2c: 00000113 li sp,0
+ 80002b30: 00208f3b addw t5,ra,sp
+ 80002b34: 80000eb7 lui t4,0x80000
+ 80002b38: 00600193 li gp,6
+ 80002b3c: 47df1663 bne t5,t4,80002fa8 <fail>
+
+0000000080002b40 <test_7>:
+ 80002b40: 800000b7 lui ra,0x80000
+ 80002b44: ffff8137 lui sp,0xffff8
+ 80002b48: 00208f3b addw t5,ra,sp
+ 80002b4c: 7fff8eb7 lui t4,0x7fff8
+ 80002b50: 00700193 li gp,7
+ 80002b54: 45df1a63 bne t5,t4,80002fa8 <fail>
+
+0000000080002b58 <test_8>:
+ 80002b58: 00000093 li ra,0
+ 80002b5c: 00008137 lui sp,0x8
+ 80002b60: fff1011b addiw sp,sp,-1
+ 80002b64: 00208f3b addw t5,ra,sp
+ 80002b68: 00008eb7 lui t4,0x8
+ 80002b6c: fffe8e9b addiw t4,t4,-1
+ 80002b70: 00800193 li gp,8
+ 80002b74: 43df1a63 bne t5,t4,80002fa8 <fail>
+
+0000000080002b78 <test_9>:
+ 80002b78: 800000b7 lui ra,0x80000
+ 80002b7c: fff0809b addiw ra,ra,-1
+ 80002b80: 00000113 li sp,0
+ 80002b84: 00208f3b addw t5,ra,sp
+ 80002b88: 80000eb7 lui t4,0x80000
+ 80002b8c: fffe8e9b addiw t4,t4,-1
+ 80002b90: 00900193 li gp,9
+ 80002b94: 41df1a63 bne t5,t4,80002fa8 <fail>
+
+0000000080002b98 <test_10>:
+ 80002b98: 800000b7 lui ra,0x80000
+ 80002b9c: fff0809b addiw ra,ra,-1
+ 80002ba0: 00008137 lui sp,0x8
+ 80002ba4: fff1011b addiw sp,sp,-1
+ 80002ba8: 00208f3b addw t5,ra,sp
+ 80002bac: 80008eb7 lui t4,0x80008
+ 80002bb0: ffee8e9b addiw t4,t4,-2
+ 80002bb4: 00a00193 li gp,10
+ 80002bb8: 3fdf1863 bne t5,t4,80002fa8 <fail>
+
+0000000080002bbc <test_11>:
+ 80002bbc: 800000b7 lui ra,0x80000
+ 80002bc0: 00008137 lui sp,0x8
+ 80002bc4: fff1011b addiw sp,sp,-1
+ 80002bc8: 00208f3b addw t5,ra,sp
+ 80002bcc: 80008eb7 lui t4,0x80008
+ 80002bd0: fffe8e9b addiw t4,t4,-1
+ 80002bd4: 00b00193 li gp,11
+ 80002bd8: 3ddf1863 bne t5,t4,80002fa8 <fail>
+
+0000000080002bdc <test_12>:
+ 80002bdc: 800000b7 lui ra,0x80000
+ 80002be0: fff0809b addiw ra,ra,-1
+ 80002be4: ffff8137 lui sp,0xffff8
+ 80002be8: 00208f3b addw t5,ra,sp
+ 80002bec: 7fff8eb7 lui t4,0x7fff8
+ 80002bf0: fffe8e9b addiw t4,t4,-1
+ 80002bf4: 00c00193 li gp,12
+ 80002bf8: 3bdf1863 bne t5,t4,80002fa8 <fail>
+
+0000000080002bfc <test_13>:
+ 80002bfc: 00000093 li ra,0
+ 80002c00: fff00113 li sp,-1
+ 80002c04: 00208f3b addw t5,ra,sp
+ 80002c08: fff00e93 li t4,-1
+ 80002c0c: 00d00193 li gp,13
+ 80002c10: 39df1c63 bne t5,t4,80002fa8 <fail>
+
+0000000080002c14 <test_14>:
+ 80002c14: fff00093 li ra,-1
+ 80002c18: 00100113 li sp,1
+ 80002c1c: 00208f3b addw t5,ra,sp
+ 80002c20: 00000e93 li t4,0
+ 80002c24: 00e00193 li gp,14
+ 80002c28: 39df1063 bne t5,t4,80002fa8 <fail>
+
+0000000080002c2c <test_15>:
+ 80002c2c: fff00093 li ra,-1
+ 80002c30: fff00113 li sp,-1
+ 80002c34: 00208f3b addw t5,ra,sp
+ 80002c38: ffe00e93 li t4,-2
+ 80002c3c: 00f00193 li gp,15
+ 80002c40: 37df1463 bne t5,t4,80002fa8 <fail>
+
+0000000080002c44 <test_16>:
+ 80002c44: 00100093 li ra,1
+ 80002c48: 80000137 lui sp,0x80000
+ 80002c4c: fff1011b addiw sp,sp,-1
+ 80002c50: 00208f3b addw t5,ra,sp
+ 80002c54: 80000eb7 lui t4,0x80000
+ 80002c58: 01000193 li gp,16
+ 80002c5c: 35df1663 bne t5,t4,80002fa8 <fail>
+
+0000000080002c60 <test_17>:
+ 80002c60: 00d00093 li ra,13
+ 80002c64: 00b00113 li sp,11
+ 80002c68: 002080bb addw ra,ra,sp
+ 80002c6c: 01800e93 li t4,24
+ 80002c70: 01100193 li gp,17
+ 80002c74: 33d09a63 bne ra,t4,80002fa8 <fail>
+
+0000000080002c78 <test_18>:
+ 80002c78: 00e00093 li ra,14
+ 80002c7c: 00b00113 li sp,11
+ 80002c80: 0020813b addw sp,ra,sp
+ 80002c84: 01900e93 li t4,25
+ 80002c88: 01200193 li gp,18
+ 80002c8c: 31d11e63 bne sp,t4,80002fa8 <fail>
+
+0000000080002c90 <test_19>:
+ 80002c90: 00d00093 li ra,13
+ 80002c94: 001080bb addw ra,ra,ra
+ 80002c98: 01a00e93 li t4,26
+ 80002c9c: 01300193 li gp,19
+ 80002ca0: 31d09463 bne ra,t4,80002fa8 <fail>
+
+0000000080002ca4 <test_20>:
+ 80002ca4: 00000213 li tp,0
+ 80002ca8: 00d00093 li ra,13
+ 80002cac: 00b00113 li sp,11
+ 80002cb0: 00208f3b addw t5,ra,sp
+ 80002cb4: 000f0313 mv t1,t5
+ 80002cb8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002cbc: 00200293 li t0,2
+ 80002cc0: fe5214e3 bne tp,t0,80002ca8 <test_20+0x4>
+ 80002cc4: 01800e93 li t4,24
+ 80002cc8: 01400193 li gp,20
+ 80002ccc: 2dd31e63 bne t1,t4,80002fa8 <fail>
+
+0000000080002cd0 <test_21>:
+ 80002cd0: 00000213 li tp,0
+ 80002cd4: 00e00093 li ra,14
+ 80002cd8: 00b00113 li sp,11
+ 80002cdc: 00208f3b addw t5,ra,sp
+ 80002ce0: 00000013 nop
+ 80002ce4: 000f0313 mv t1,t5
+ 80002ce8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002cec: 00200293 li t0,2
+ 80002cf0: fe5212e3 bne tp,t0,80002cd4 <test_21+0x4>
+ 80002cf4: 01900e93 li t4,25
+ 80002cf8: 01500193 li gp,21
+ 80002cfc: 2bd31663 bne t1,t4,80002fa8 <fail>
+
+0000000080002d00 <test_22>:
+ 80002d00: 00000213 li tp,0
+ 80002d04: 00f00093 li ra,15
+ 80002d08: 00b00113 li sp,11
+ 80002d0c: 00208f3b addw t5,ra,sp
+ 80002d10: 00000013 nop
+ 80002d14: 00000013 nop
+ 80002d18: 000f0313 mv t1,t5
+ 80002d1c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d20: 00200293 li t0,2
+ 80002d24: fe5210e3 bne tp,t0,80002d04 <test_22+0x4>
+ 80002d28: 01a00e93 li t4,26
+ 80002d2c: 01600193 li gp,22
+ 80002d30: 27d31c63 bne t1,t4,80002fa8 <fail>
+
+0000000080002d34 <test_23>:
+ 80002d34: 00000213 li tp,0
+ 80002d38: 00d00093 li ra,13
+ 80002d3c: 00b00113 li sp,11
+ 80002d40: 00208f3b addw t5,ra,sp
+ 80002d44: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d48: 00200293 li t0,2
+ 80002d4c: fe5216e3 bne tp,t0,80002d38 <test_23+0x4>
+ 80002d50: 01800e93 li t4,24
+ 80002d54: 01700193 li gp,23
+ 80002d58: 25df1863 bne t5,t4,80002fa8 <fail>
+
+0000000080002d5c <test_24>:
+ 80002d5c: 00000213 li tp,0
+ 80002d60: 00e00093 li ra,14
+ 80002d64: 00b00113 li sp,11
+ 80002d68: 00000013 nop
+ 80002d6c: 00208f3b addw t5,ra,sp
+ 80002d70: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d74: 00200293 li t0,2
+ 80002d78: fe5214e3 bne tp,t0,80002d60 <test_24+0x4>
+ 80002d7c: 01900e93 li t4,25
+ 80002d80: 01800193 li gp,24
+ 80002d84: 23df1263 bne t5,t4,80002fa8 <fail>
+
+0000000080002d88 <test_25>:
+ 80002d88: 00000213 li tp,0
+ 80002d8c: 00f00093 li ra,15
+ 80002d90: 00b00113 li sp,11
+ 80002d94: 00000013 nop
+ 80002d98: 00000013 nop
+ 80002d9c: 00208f3b addw t5,ra,sp
+ 80002da0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002da4: 00200293 li t0,2
+ 80002da8: fe5212e3 bne tp,t0,80002d8c <test_25+0x4>
+ 80002dac: 01a00e93 li t4,26
+ 80002db0: 01900193 li gp,25
+ 80002db4: 1fdf1a63 bne t5,t4,80002fa8 <fail>
+
+0000000080002db8 <test_26>:
+ 80002db8: 00000213 li tp,0
+ 80002dbc: 00d00093 li ra,13
+ 80002dc0: 00000013 nop
+ 80002dc4: 00b00113 li sp,11
+ 80002dc8: 00208f3b addw t5,ra,sp
+ 80002dcc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002dd0: 00200293 li t0,2
+ 80002dd4: fe5214e3 bne tp,t0,80002dbc <test_26+0x4>
+ 80002dd8: 01800e93 li t4,24
+ 80002ddc: 01a00193 li gp,26
+ 80002de0: 1ddf1463 bne t5,t4,80002fa8 <fail>
+
+0000000080002de4 <test_27>:
+ 80002de4: 00000213 li tp,0
+ 80002de8: 00e00093 li ra,14
+ 80002dec: 00000013 nop
+ 80002df0: 00b00113 li sp,11
+ 80002df4: 00000013 nop
+ 80002df8: 00208f3b addw t5,ra,sp
+ 80002dfc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e00: 00200293 li t0,2
+ 80002e04: fe5212e3 bne tp,t0,80002de8 <test_27+0x4>
+ 80002e08: 01900e93 li t4,25
+ 80002e0c: 01b00193 li gp,27
+ 80002e10: 19df1c63 bne t5,t4,80002fa8 <fail>
+
+0000000080002e14 <test_28>:
+ 80002e14: 00000213 li tp,0
+ 80002e18: 00f00093 li ra,15
+ 80002e1c: 00000013 nop
+ 80002e20: 00000013 nop
+ 80002e24: 00b00113 li sp,11
+ 80002e28: 00208f3b addw t5,ra,sp
+ 80002e2c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e30: 00200293 li t0,2
+ 80002e34: fe5212e3 bne tp,t0,80002e18 <test_28+0x4>
+ 80002e38: 01a00e93 li t4,26
+ 80002e3c: 01c00193 li gp,28
+ 80002e40: 17df1463 bne t5,t4,80002fa8 <fail>
+
+0000000080002e44 <test_29>:
+ 80002e44: 00000213 li tp,0
+ 80002e48: 00b00113 li sp,11
+ 80002e4c: 00d00093 li ra,13
+ 80002e50: 00208f3b addw t5,ra,sp
+ 80002e54: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e58: 00200293 li t0,2
+ 80002e5c: fe5216e3 bne tp,t0,80002e48 <test_29+0x4>
+ 80002e60: 01800e93 li t4,24
+ 80002e64: 01d00193 li gp,29
+ 80002e68: 15df1063 bne t5,t4,80002fa8 <fail>
+
+0000000080002e6c <test_30>:
+ 80002e6c: 00000213 li tp,0
+ 80002e70: 00b00113 li sp,11
+ 80002e74: 00e00093 li ra,14
+ 80002e78: 00000013 nop
+ 80002e7c: 00208f3b addw t5,ra,sp
+ 80002e80: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e84: 00200293 li t0,2
+ 80002e88: fe5214e3 bne tp,t0,80002e70 <test_30+0x4>
+ 80002e8c: 01900e93 li t4,25
+ 80002e90: 01e00193 li gp,30
+ 80002e94: 11df1a63 bne t5,t4,80002fa8 <fail>
+
+0000000080002e98 <test_31>:
+ 80002e98: 00000213 li tp,0
+ 80002e9c: 00b00113 li sp,11
+ 80002ea0: 00f00093 li ra,15
+ 80002ea4: 00000013 nop
+ 80002ea8: 00000013 nop
+ 80002eac: 00208f3b addw t5,ra,sp
+ 80002eb0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002eb4: 00200293 li t0,2
+ 80002eb8: fe5212e3 bne tp,t0,80002e9c <test_31+0x4>
+ 80002ebc: 01a00e93 li t4,26
+ 80002ec0: 01f00193 li gp,31
+ 80002ec4: 0fdf1263 bne t5,t4,80002fa8 <fail>
+
+0000000080002ec8 <test_32>:
+ 80002ec8: 00000213 li tp,0
+ 80002ecc: 00b00113 li sp,11
+ 80002ed0: 00000013 nop
+ 80002ed4: 00d00093 li ra,13
+ 80002ed8: 00208f3b addw t5,ra,sp
+ 80002edc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ee0: 00200293 li t0,2
+ 80002ee4: fe5214e3 bne tp,t0,80002ecc <test_32+0x4>
+ 80002ee8: 01800e93 li t4,24
+ 80002eec: 02000193 li gp,32
+ 80002ef0: 0bdf1c63 bne t5,t4,80002fa8 <fail>
+
+0000000080002ef4 <test_33>:
+ 80002ef4: 00000213 li tp,0
+ 80002ef8: 00b00113 li sp,11
+ 80002efc: 00000013 nop
+ 80002f00: 00e00093 li ra,14
+ 80002f04: 00000013 nop
+ 80002f08: 00208f3b addw t5,ra,sp
+ 80002f0c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002f10: 00200293 li t0,2
+ 80002f14: fe5212e3 bne tp,t0,80002ef8 <test_33+0x4>
+ 80002f18: 01900e93 li t4,25
+ 80002f1c: 02100193 li gp,33
+ 80002f20: 09df1463 bne t5,t4,80002fa8 <fail>
+
+0000000080002f24 <test_34>:
+ 80002f24: 00000213 li tp,0
+ 80002f28: 00b00113 li sp,11
+ 80002f2c: 00000013 nop
+ 80002f30: 00000013 nop
+ 80002f34: 00f00093 li ra,15
+ 80002f38: 00208f3b addw t5,ra,sp
+ 80002f3c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002f40: 00200293 li t0,2
+ 80002f44: fe5212e3 bne tp,t0,80002f28 <test_34+0x4>
+ 80002f48: 01a00e93 li t4,26
+ 80002f4c: 02200193 li gp,34
+ 80002f50: 05df1c63 bne t5,t4,80002fa8 <fail>
+
+0000000080002f54 <test_35>:
+ 80002f54: 00f00093 li ra,15
+ 80002f58: 0010013b addw sp,zero,ra
+ 80002f5c: 00f00e93 li t4,15
+ 80002f60: 02300193 li gp,35
+ 80002f64: 05d11263 bne sp,t4,80002fa8 <fail>
+
+0000000080002f68 <test_36>:
+ 80002f68: 02000093 li ra,32
+ 80002f6c: 0000813b addw sp,ra,zero
+ 80002f70: 02000e93 li t4,32
+ 80002f74: 02400193 li gp,36
+ 80002f78: 03d11863 bne sp,t4,80002fa8 <fail>
+
+0000000080002f7c <test_37>:
+ 80002f7c: 000000bb addw ra,zero,zero
+ 80002f80: 00000e93 li t4,0
+ 80002f84: 02500193 li gp,37
+ 80002f88: 03d09063 bne ra,t4,80002fa8 <fail>
+
+0000000080002f8c <test_38>:
+ 80002f8c: 01000093 li ra,16
+ 80002f90: 01e00113 li sp,30
+ 80002f94: 0020803b addw zero,ra,sp
+ 80002f98: 00000e93 li t4,0
+ 80002f9c: 02600193 li gp,38
+ 80002fa0: 01d01463 bne zero,t4,80002fa8 <fail>
+ 80002fa4: 00301a63 bne zero,gp,80002fb8 <pass>
+
+0000000080002fa8 <fail>:
+ 80002fa8: 00119513 slli a0,gp,0x1
+ 80002fac: 00050063 beqz a0,80002fac <fail+0x4>
+ 80002fb0: 00156513 ori a0,a0,1
+ 80002fb4: 00000073 ecall
+
+0000000080002fb8 <pass>:
+ 80002fb8: 00100513 li a0,1
+ 80002fbc: 00000073 ecall
+ 80002fc0: c0001073 unimp
diff --git a/test/tests/rv64ui-v-addw.elf b/test/tests/rv64ui-v-addw.elf
new file mode 100644
index 0000000..e78ff7a
--- /dev/null
+++ b/test/tests/rv64ui-v-addw.elf
Binary files differ
diff --git a/test/tests/rv64ui-v-and.dump b/test/tests/rv64ui-v-and.dump
new file mode 100644
index 0000000..063fbeb
--- /dev/null
+++ b/test/tests/rv64ui-v-and.dump
@@ -0,0 +1,1232 @@
+
+rv64ui-v-and: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <handle_reset>:
+ 8000000c: 00000297 auipc t0,0x0
+ 80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+ 80000014: 30529073 csrw mtvec,t0
+ 80000018: 00009117 auipc sp,0x9
+ 8000001c: 6b810113 addi sp,sp,1720 # 800096d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00002617 auipc a2,0x2
+ 80002318: cec60613 addi a2,a2,-788 # 80004000 <begin_signature>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00006797 auipc a5,0x6
+ 80002334: 4b878793 addi a5,a5,1208 # 800087e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00006717 auipc a4,0x6
+ 80002348: 49c70713 addi a4,a4,1180 # 800087e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00006897 auipc a7,0x6
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800087e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00006797 auipc a5,0x6
+ 80002384: 07078793 addi a5,a5,112 # 800083f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf7810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00006797 auipc a5,0x6
+ 80002448: 3807be23 sd zero,924(a5) # 800087e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00001697 auipc a3,0x1
+ 8000245c: be868693 addi a3,a3,-1048 # 80003040 <pass+0x10>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00001617 auipc a2,0x1
+ 800024b8: c1c60613 addi a2,a2,-996 # 800030d0 <pass+0xa0>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00001617 auipc a2,0x1
+ 80002508: be460613 addi a2,a2,-1052 # 800030e8 <pass+0xb8>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00001697 auipc a3,0x1
+ 80002558: b3468693 addi a3,a3,-1228 # 80003088 <pass+0x58>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00001697 auipc a3,0x1
+ 80002674: b5068693 addi a3,a3,-1200 # 800031c0 <pass+0x190>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00001617 auipc a2,0x1
+ 800026cc: ad060613 addi a2,a2,-1328 # 80003198 <pass+0x168>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00006d17 auipc s10,0x6
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800083f0 <user_mapping>
+ 80002724: 00002b97 auipc s7,0x2
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80004000 <begin_signature>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00006a17 auipc s4,0x6
+ 80002738: 0aca0a13 addi s4,s4,172 # 800087e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00006717 auipc a4,0x6
+ 8000274c: 08f73c23 sd a5,152(a4) # 800087e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00006717 auipc a4,0x6
+ 800027d4: 00f73823 sd a5,16(a4) # 800087e0 <freelist_tail>
+ 800027d8: 00006717 auipc a4,0x6
+ 800027dc: 00f73823 sd a5,16(a4) # 800087e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00001697 auipc a3,0x1
+ 800027f0: a0468693 addi a3,a3,-1532 # 800031f0 <pass+0x1c0>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00001697 auipc a3,0x1
+ 80002840: 92468693 addi a3,a3,-1756 # 80003160 <pass+0x130>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00001697 auipc a3,0x1
+ 80002878: 8b468693 addi a3,a3,-1868 # 80003128 <pass+0xf8>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00002697 auipc a3,0x2
+ 800028e0: 72468693 addi a3,a3,1828 # 80005000 <begin_signature+0x1000>
+ 800028e4: 00003717 auipc a4,0x3
+ 800028e8: 71c70713 addi a4,a4,1820 # 80006000 <begin_signature+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00004797 auipc a5,0x4
+ 800028f8: 70c78793 addi a5,a5,1804 # 80007000 <begin_signature+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00001897 auipc a7,0x1
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80004000 <begin_signature>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00002697 auipc a3,0x2
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80004ff8 <begin_signature+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00001617 auipc a2,0x1
+ 80002938: 6cc60613 addi a2,a2,1740 # 80004000 <begin_signature>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00004697 auipc a3,0x4
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80006ff8 <begin_signature+0x2ff8>
+ 8000294c: 00002717 auipc a4,0x2
+ 80002950: 6af73a23 sd a5,1716(a4) # 80005000 <begin_signature+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00005697 auipc a3,0x5
+ 800029c0: 64468693 addi a3,a3,1604 # 80008000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00006617 auipc a2,0x6
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800087e8 <freelist_head>
+ 800029d4: 00006797 auipc a5,0x6
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800087e0 <freelist_tail>
+ 800029dc: 00006317 auipc t1,0x6
+ 800029e0: a1430313 addi t1,t1,-1516 # 800083f0 <user_mapping>
+ 800029e4: 01200793 li a5,18
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00006797 auipc a5,0x6
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800083e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 0a1787b7 lui a5,0xa178
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: 4b678793 addi a5,a5,1206 # a1784b6 <_start-0x75e87b4a>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 000100b7 lui ra,0x10
+ 80002acc: f010809b addiw ra,ra,-255
+ 80002ad0: 01009093 slli ra,ra,0x10
+ 80002ad4: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 80002ad8: 0f0f1137 lui sp,0xf0f1
+ 80002adc: f0f1011b addiw sp,sp,-241
+ 80002ae0: 0020ff33 and t5,ra,sp
+ 80002ae4: 0f001eb7 lui t4,0xf001
+ 80002ae8: f00e8e9b addiw t4,t4,-256
+ 80002aec: 00200193 li gp,2
+ 80002af0: 53df1863 bne t5,t4,80003020 <fail>
+
+0000000080002af4 <test_3>:
+ 80002af4: 0ff010b7 lui ra,0xff01
+ 80002af8: ff00809b addiw ra,ra,-16
+ 80002afc: 000f1137 lui sp,0xf1
+ 80002b00: f0f1011b addiw sp,sp,-241
+ 80002b04: 00c11113 slli sp,sp,0xc
+ 80002b08: 0f010113 addi sp,sp,240 # f10f0 <_start-0x7ff0ef10>
+ 80002b0c: 0020ff33 and t5,ra,sp
+ 80002b10: 00f00eb7 lui t4,0xf00
+ 80002b14: 0f0e8e9b addiw t4,t4,240
+ 80002b18: 00300193 li gp,3
+ 80002b1c: 51df1263 bne t5,t4,80003020 <fail>
+
+0000000080002b20 <test_4>:
+ 80002b20: 00ff00b7 lui ra,0xff0
+ 80002b24: 0ff0809b addiw ra,ra,255
+ 80002b28: 0f0f1137 lui sp,0xf0f1
+ 80002b2c: f0f1011b addiw sp,sp,-241
+ 80002b30: 0020ff33 and t5,ra,sp
+ 80002b34: 000f0eb7 lui t4,0xf0
+ 80002b38: 00fe8e9b addiw t4,t4,15
+ 80002b3c: 00400193 li gp,4
+ 80002b40: 4fdf1063 bne t5,t4,80003020 <fail>
+
+0000000080002b44 <test_5>:
+ 80002b44: 000f00b7 lui ra,0xf0
+ 80002b48: 0ff0809b addiw ra,ra,255
+ 80002b4c: 00c09093 slli ra,ra,0xc
+ 80002b50: 00f08093 addi ra,ra,15 # f000f <_start-0x7ff0fff1>
+ 80002b54: 000f1137 lui sp,0xf1
+ 80002b58: f0f1011b addiw sp,sp,-241
+ 80002b5c: 00c11113 slli sp,sp,0xc
+ 80002b60: 0f010113 addi sp,sp,240 # f10f0 <_start-0x7ff0ef10>
+ 80002b64: 0020ff33 and t5,ra,sp
+ 80002b68: 000f0eb7 lui t4,0xf0
+ 80002b6c: 00fe8e9b addiw t4,t4,15
+ 80002b70: 00ce9e93 slli t4,t4,0xc
+ 80002b74: 00500193 li gp,5
+ 80002b78: 4bdf1463 bne t5,t4,80003020 <fail>
+
+0000000080002b7c <test_6>:
+ 80002b7c: 000100b7 lui ra,0x10
+ 80002b80: f010809b addiw ra,ra,-255
+ 80002b84: 01009093 slli ra,ra,0x10
+ 80002b88: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 80002b8c: 0f0f1137 lui sp,0xf0f1
+ 80002b90: f0f1011b addiw sp,sp,-241
+ 80002b94: 0020f0b3 and ra,ra,sp
+ 80002b98: 0f001eb7 lui t4,0xf001
+ 80002b9c: f00e8e9b addiw t4,t4,-256
+ 80002ba0: 00600193 li gp,6
+ 80002ba4: 47d09e63 bne ra,t4,80003020 <fail>
+
+0000000080002ba8 <test_7>:
+ 80002ba8: 0ff010b7 lui ra,0xff01
+ 80002bac: ff00809b addiw ra,ra,-16
+ 80002bb0: 000f1137 lui sp,0xf1
+ 80002bb4: f0f1011b addiw sp,sp,-241
+ 80002bb8: 00c11113 slli sp,sp,0xc
+ 80002bbc: 0f010113 addi sp,sp,240 # f10f0 <_start-0x7ff0ef10>
+ 80002bc0: 0020f133 and sp,ra,sp
+ 80002bc4: 00f00eb7 lui t4,0xf00
+ 80002bc8: 0f0e8e9b addiw t4,t4,240
+ 80002bcc: 00700193 li gp,7
+ 80002bd0: 45d11863 bne sp,t4,80003020 <fail>
+
+0000000080002bd4 <test_8>:
+ 80002bd4: 000100b7 lui ra,0x10
+ 80002bd8: f010809b addiw ra,ra,-255
+ 80002bdc: 01009093 slli ra,ra,0x10
+ 80002be0: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 80002be4: 0010f0b3 and ra,ra,ra
+ 80002be8: 00010eb7 lui t4,0x10
+ 80002bec: f01e8e9b addiw t4,t4,-255
+ 80002bf0: 010e9e93 slli t4,t4,0x10
+ 80002bf4: f00e8e93 addi t4,t4,-256 # ff00 <_start-0x7fff0100>
+ 80002bf8: 00800193 li gp,8
+ 80002bfc: 43d09263 bne ra,t4,80003020 <fail>
+
+0000000080002c00 <test_9>:
+ 80002c00: 00000213 li tp,0
+ 80002c04: 000100b7 lui ra,0x10
+ 80002c08: f010809b addiw ra,ra,-255
+ 80002c0c: 01009093 slli ra,ra,0x10
+ 80002c10: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 80002c14: 0f0f1137 lui sp,0xf0f1
+ 80002c18: f0f1011b addiw sp,sp,-241
+ 80002c1c: 0020ff33 and t5,ra,sp
+ 80002c20: 000f0313 mv t1,t5
+ 80002c24: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c28: 00200293 li t0,2
+ 80002c2c: fc521ce3 bne tp,t0,80002c04 <test_9+0x4>
+ 80002c30: 0f001eb7 lui t4,0xf001
+ 80002c34: f00e8e9b addiw t4,t4,-256
+ 80002c38: 00900193 li gp,9
+ 80002c3c: 3fd31263 bne t1,t4,80003020 <fail>
+
+0000000080002c40 <test_10>:
+ 80002c40: 00000213 li tp,0
+ 80002c44: 0ff010b7 lui ra,0xff01
+ 80002c48: ff00809b addiw ra,ra,-16
+ 80002c4c: 000f1137 lui sp,0xf1
+ 80002c50: f0f1011b addiw sp,sp,-241
+ 80002c54: 00c11113 slli sp,sp,0xc
+ 80002c58: 0f010113 addi sp,sp,240 # f10f0 <_start-0x7ff0ef10>
+ 80002c5c: 0020ff33 and t5,ra,sp
+ 80002c60: 00000013 nop
+ 80002c64: 000f0313 mv t1,t5
+ 80002c68: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c6c: 00200293 li t0,2
+ 80002c70: fc521ae3 bne tp,t0,80002c44 <test_10+0x4>
+ 80002c74: 00f00eb7 lui t4,0xf00
+ 80002c78: 0f0e8e9b addiw t4,t4,240
+ 80002c7c: 00a00193 li gp,10
+ 80002c80: 3bd31063 bne t1,t4,80003020 <fail>
+
+0000000080002c84 <test_11>:
+ 80002c84: 00000213 li tp,0
+ 80002c88: 00ff00b7 lui ra,0xff0
+ 80002c8c: 0ff0809b addiw ra,ra,255
+ 80002c90: 0f0f1137 lui sp,0xf0f1
+ 80002c94: f0f1011b addiw sp,sp,-241
+ 80002c98: 0020ff33 and t5,ra,sp
+ 80002c9c: 00000013 nop
+ 80002ca0: 00000013 nop
+ 80002ca4: 000f0313 mv t1,t5
+ 80002ca8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002cac: 00200293 li t0,2
+ 80002cb0: fc521ce3 bne tp,t0,80002c88 <test_11+0x4>
+ 80002cb4: 000f0eb7 lui t4,0xf0
+ 80002cb8: 00fe8e9b addiw t4,t4,15
+ 80002cbc: 00b00193 li gp,11
+ 80002cc0: 37d31063 bne t1,t4,80003020 <fail>
+
+0000000080002cc4 <test_12>:
+ 80002cc4: 00000213 li tp,0
+ 80002cc8: 000100b7 lui ra,0x10
+ 80002ccc: f010809b addiw ra,ra,-255
+ 80002cd0: 01009093 slli ra,ra,0x10
+ 80002cd4: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 80002cd8: 0f0f1137 lui sp,0xf0f1
+ 80002cdc: f0f1011b addiw sp,sp,-241
+ 80002ce0: 0020ff33 and t5,ra,sp
+ 80002ce4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ce8: 00200293 li t0,2
+ 80002cec: fc521ee3 bne tp,t0,80002cc8 <test_12+0x4>
+ 80002cf0: 0f001eb7 lui t4,0xf001
+ 80002cf4: f00e8e9b addiw t4,t4,-256
+ 80002cf8: 00c00193 li gp,12
+ 80002cfc: 33df1263 bne t5,t4,80003020 <fail>
+
+0000000080002d00 <test_13>:
+ 80002d00: 00000213 li tp,0
+ 80002d04: 0ff010b7 lui ra,0xff01
+ 80002d08: ff00809b addiw ra,ra,-16
+ 80002d0c: 000f1137 lui sp,0xf1
+ 80002d10: f0f1011b addiw sp,sp,-241
+ 80002d14: 00c11113 slli sp,sp,0xc
+ 80002d18: 0f010113 addi sp,sp,240 # f10f0 <_start-0x7ff0ef10>
+ 80002d1c: 00000013 nop
+ 80002d20: 0020ff33 and t5,ra,sp
+ 80002d24: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d28: 00200293 li t0,2
+ 80002d2c: fc521ce3 bne tp,t0,80002d04 <test_13+0x4>
+ 80002d30: 00f00eb7 lui t4,0xf00
+ 80002d34: 0f0e8e9b addiw t4,t4,240
+ 80002d38: 00d00193 li gp,13
+ 80002d3c: 2fdf1263 bne t5,t4,80003020 <fail>
+
+0000000080002d40 <test_14>:
+ 80002d40: 00000213 li tp,0
+ 80002d44: 00ff00b7 lui ra,0xff0
+ 80002d48: 0ff0809b addiw ra,ra,255
+ 80002d4c: 0f0f1137 lui sp,0xf0f1
+ 80002d50: f0f1011b addiw sp,sp,-241
+ 80002d54: 00000013 nop
+ 80002d58: 00000013 nop
+ 80002d5c: 0020ff33 and t5,ra,sp
+ 80002d60: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d64: 00200293 li t0,2
+ 80002d68: fc521ee3 bne tp,t0,80002d44 <test_14+0x4>
+ 80002d6c: 000f0eb7 lui t4,0xf0
+ 80002d70: 00fe8e9b addiw t4,t4,15
+ 80002d74: 00e00193 li gp,14
+ 80002d78: 2bdf1463 bne t5,t4,80003020 <fail>
+
+0000000080002d7c <test_15>:
+ 80002d7c: 00000213 li tp,0
+ 80002d80: 000100b7 lui ra,0x10
+ 80002d84: f010809b addiw ra,ra,-255
+ 80002d88: 01009093 slli ra,ra,0x10
+ 80002d8c: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 80002d90: 00000013 nop
+ 80002d94: 0f0f1137 lui sp,0xf0f1
+ 80002d98: f0f1011b addiw sp,sp,-241
+ 80002d9c: 0020ff33 and t5,ra,sp
+ 80002da0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002da4: 00200293 li t0,2
+ 80002da8: fc521ce3 bne tp,t0,80002d80 <test_15+0x4>
+ 80002dac: 0f001eb7 lui t4,0xf001
+ 80002db0: f00e8e9b addiw t4,t4,-256
+ 80002db4: 00f00193 li gp,15
+ 80002db8: 27df1463 bne t5,t4,80003020 <fail>
+
+0000000080002dbc <test_16>:
+ 80002dbc: 00000213 li tp,0
+ 80002dc0: 0ff010b7 lui ra,0xff01
+ 80002dc4: ff00809b addiw ra,ra,-16
+ 80002dc8: 00000013 nop
+ 80002dcc: 000f1137 lui sp,0xf1
+ 80002dd0: f0f1011b addiw sp,sp,-241
+ 80002dd4: 00c11113 slli sp,sp,0xc
+ 80002dd8: 0f010113 addi sp,sp,240 # f10f0 <_start-0x7ff0ef10>
+ 80002ddc: 00000013 nop
+ 80002de0: 0020ff33 and t5,ra,sp
+ 80002de4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002de8: 00200293 li t0,2
+ 80002dec: fc521ae3 bne tp,t0,80002dc0 <test_16+0x4>
+ 80002df0: 00f00eb7 lui t4,0xf00
+ 80002df4: 0f0e8e9b addiw t4,t4,240
+ 80002df8: 01000193 li gp,16
+ 80002dfc: 23df1263 bne t5,t4,80003020 <fail>
+
+0000000080002e00 <test_17>:
+ 80002e00: 00000213 li tp,0
+ 80002e04: 00ff00b7 lui ra,0xff0
+ 80002e08: 0ff0809b addiw ra,ra,255
+ 80002e0c: 00000013 nop
+ 80002e10: 00000013 nop
+ 80002e14: 0f0f1137 lui sp,0xf0f1
+ 80002e18: f0f1011b addiw sp,sp,-241
+ 80002e1c: 0020ff33 and t5,ra,sp
+ 80002e20: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e24: 00200293 li t0,2
+ 80002e28: fc521ee3 bne tp,t0,80002e04 <test_17+0x4>
+ 80002e2c: 000f0eb7 lui t4,0xf0
+ 80002e30: 00fe8e9b addiw t4,t4,15
+ 80002e34: 01100193 li gp,17
+ 80002e38: 1fdf1463 bne t5,t4,80003020 <fail>
+
+0000000080002e3c <test_18>:
+ 80002e3c: 00000213 li tp,0
+ 80002e40: 0f0f1137 lui sp,0xf0f1
+ 80002e44: f0f1011b addiw sp,sp,-241
+ 80002e48: 000100b7 lui ra,0x10
+ 80002e4c: f010809b addiw ra,ra,-255
+ 80002e50: 01009093 slli ra,ra,0x10
+ 80002e54: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 80002e58: 0020ff33 and t5,ra,sp
+ 80002e5c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e60: 00200293 li t0,2
+ 80002e64: fc521ee3 bne tp,t0,80002e40 <test_18+0x4>
+ 80002e68: 0f001eb7 lui t4,0xf001
+ 80002e6c: f00e8e9b addiw t4,t4,-256
+ 80002e70: 01200193 li gp,18
+ 80002e74: 1bdf1663 bne t5,t4,80003020 <fail>
+
+0000000080002e78 <test_19>:
+ 80002e78: 00000213 li tp,0
+ 80002e7c: 000f1137 lui sp,0xf1
+ 80002e80: f0f1011b addiw sp,sp,-241
+ 80002e84: 00c11113 slli sp,sp,0xc
+ 80002e88: 0f010113 addi sp,sp,240 # f10f0 <_start-0x7ff0ef10>
+ 80002e8c: 0ff010b7 lui ra,0xff01
+ 80002e90: ff00809b addiw ra,ra,-16
+ 80002e94: 00000013 nop
+ 80002e98: 0020ff33 and t5,ra,sp
+ 80002e9c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ea0: 00200293 li t0,2
+ 80002ea4: fc521ce3 bne tp,t0,80002e7c <test_19+0x4>
+ 80002ea8: 00f00eb7 lui t4,0xf00
+ 80002eac: 0f0e8e9b addiw t4,t4,240
+ 80002eb0: 01300193 li gp,19
+ 80002eb4: 17df1663 bne t5,t4,80003020 <fail>
+
+0000000080002eb8 <test_20>:
+ 80002eb8: 00000213 li tp,0
+ 80002ebc: 0f0f1137 lui sp,0xf0f1
+ 80002ec0: f0f1011b addiw sp,sp,-241
+ 80002ec4: 00ff00b7 lui ra,0xff0
+ 80002ec8: 0ff0809b addiw ra,ra,255
+ 80002ecc: 00000013 nop
+ 80002ed0: 00000013 nop
+ 80002ed4: 0020ff33 and t5,ra,sp
+ 80002ed8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002edc: 00200293 li t0,2
+ 80002ee0: fc521ee3 bne tp,t0,80002ebc <test_20+0x4>
+ 80002ee4: 000f0eb7 lui t4,0xf0
+ 80002ee8: 00fe8e9b addiw t4,t4,15
+ 80002eec: 01400193 li gp,20
+ 80002ef0: 13df1863 bne t5,t4,80003020 <fail>
+
+0000000080002ef4 <test_21>:
+ 80002ef4: 00000213 li tp,0
+ 80002ef8: 0f0f1137 lui sp,0xf0f1
+ 80002efc: f0f1011b addiw sp,sp,-241
+ 80002f00: 00000013 nop
+ 80002f04: 000100b7 lui ra,0x10
+ 80002f08: f010809b addiw ra,ra,-255
+ 80002f0c: 01009093 slli ra,ra,0x10
+ 80002f10: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 80002f14: 0020ff33 and t5,ra,sp
+ 80002f18: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002f1c: 00200293 li t0,2
+ 80002f20: fc521ce3 bne tp,t0,80002ef8 <test_21+0x4>
+ 80002f24: 0f001eb7 lui t4,0xf001
+ 80002f28: f00e8e9b addiw t4,t4,-256
+ 80002f2c: 01500193 li gp,21
+ 80002f30: 0fdf1863 bne t5,t4,80003020 <fail>
+
+0000000080002f34 <test_22>:
+ 80002f34: 00000213 li tp,0
+ 80002f38: 000f1137 lui sp,0xf1
+ 80002f3c: f0f1011b addiw sp,sp,-241
+ 80002f40: 00c11113 slli sp,sp,0xc
+ 80002f44: 0f010113 addi sp,sp,240 # f10f0 <_start-0x7ff0ef10>
+ 80002f48: 00000013 nop
+ 80002f4c: 0ff010b7 lui ra,0xff01
+ 80002f50: ff00809b addiw ra,ra,-16
+ 80002f54: 00000013 nop
+ 80002f58: 0020ff33 and t5,ra,sp
+ 80002f5c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002f60: 00200293 li t0,2
+ 80002f64: fc521ae3 bne tp,t0,80002f38 <test_22+0x4>
+ 80002f68: 00f00eb7 lui t4,0xf00
+ 80002f6c: 0f0e8e9b addiw t4,t4,240
+ 80002f70: 01600193 li gp,22
+ 80002f74: 0bdf1663 bne t5,t4,80003020 <fail>
+
+0000000080002f78 <test_23>:
+ 80002f78: 00000213 li tp,0
+ 80002f7c: 0f0f1137 lui sp,0xf0f1
+ 80002f80: f0f1011b addiw sp,sp,-241
+ 80002f84: 00000013 nop
+ 80002f88: 00000013 nop
+ 80002f8c: 00ff00b7 lui ra,0xff0
+ 80002f90: 0ff0809b addiw ra,ra,255
+ 80002f94: 0020ff33 and t5,ra,sp
+ 80002f98: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002f9c: 00200293 li t0,2
+ 80002fa0: fc521ee3 bne tp,t0,80002f7c <test_23+0x4>
+ 80002fa4: 000f0eb7 lui t4,0xf0
+ 80002fa8: 00fe8e9b addiw t4,t4,15
+ 80002fac: 01700193 li gp,23
+ 80002fb0: 07df1863 bne t5,t4,80003020 <fail>
+
+0000000080002fb4 <test_24>:
+ 80002fb4: 000100b7 lui ra,0x10
+ 80002fb8: f010809b addiw ra,ra,-255
+ 80002fbc: 01009093 slli ra,ra,0x10
+ 80002fc0: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 80002fc4: 00107133 and sp,zero,ra
+ 80002fc8: 00000e93 li t4,0
+ 80002fcc: 01800193 li gp,24
+ 80002fd0: 05d11863 bne sp,t4,80003020 <fail>
+
+0000000080002fd4 <test_25>:
+ 80002fd4: 00ff00b7 lui ra,0xff0
+ 80002fd8: 0ff0809b addiw ra,ra,255
+ 80002fdc: 0000f133 and sp,ra,zero
+ 80002fe0: 00000e93 li t4,0
+ 80002fe4: 01900193 li gp,25
+ 80002fe8: 03d11c63 bne sp,t4,80003020 <fail>
+
+0000000080002fec <test_26>:
+ 80002fec: 000070b3 and ra,zero,zero
+ 80002ff0: 00000e93 li t4,0
+ 80002ff4: 01a00193 li gp,26
+ 80002ff8: 03d09463 bne ra,t4,80003020 <fail>
+
+0000000080002ffc <test_27>:
+ 80002ffc: 111110b7 lui ra,0x11111
+ 80003000: 1110809b addiw ra,ra,273
+ 80003004: 22222137 lui sp,0x22222
+ 80003008: 2221011b addiw sp,sp,546
+ 8000300c: 0020f033 and zero,ra,sp
+ 80003010: 00000e93 li t4,0
+ 80003014: 01b00193 li gp,27
+ 80003018: 01d01463 bne zero,t4,80003020 <fail>
+ 8000301c: 00301a63 bne zero,gp,80003030 <pass>
+
+0000000080003020 <fail>:
+ 80003020: 00119513 slli a0,gp,0x1
+ 80003024: 00050063 beqz a0,80003024 <fail+0x4>
+ 80003028: 00156513 ori a0,a0,1
+ 8000302c: 00000073 ecall
+
+0000000080003030 <pass>:
+ 80003030: 00100513 li a0,1
+ 80003034: 00000073 ecall
+ 80003038: c0001073 unimp
diff --git a/test/tests/rv64ui-v-and.elf b/test/tests/rv64ui-v-and.elf
new file mode 100644
index 0000000..2cf4f37
--- /dev/null
+++ b/test/tests/rv64ui-v-and.elf
Binary files differ
diff --git a/test/tests/rv64ui-v-andi.dump b/test/tests/rv64ui-v-andi.dump
new file mode 100644
index 0000000..6503a37
--- /dev/null
+++ b/test/tests/rv64ui-v-andi.dump
@@ -0,0 +1,990 @@
+
+rv64ui-v-andi: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <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: 6b810113 addi sp,sp,1720 # 800086d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00001617 auipc a2,0x1
+ 80002318: cec60613 addi a2,a2,-788 # 80003000 <begin_signature>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00005797 auipc a5,0x5
+ 80002334: 4b878793 addi a5,a5,1208 # 800077e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00005717 auipc a4,0x5
+ 80002348: 49c70713 addi a4,a4,1180 # 800077e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00005897 auipc a7,0x5
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800077e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00005797 auipc a5,0x5
+ 80002384: 07078793 addi a5,a5,112 # 800073f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf8810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00005797 auipc a5,0x5
+ 80002448: 3807be23 sd zero,924(a5) # 800077e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00001697 auipc a3,0x1
+ 8000245c: 88868693 addi a3,a3,-1912 # 80002ce0 <pass+0x10>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00001617 auipc a2,0x1
+ 800024b8: 8bc60613 addi a2,a2,-1860 # 80002d70 <pass+0xa0>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00001617 auipc a2,0x1
+ 80002508: 88460613 addi a2,a2,-1916 # 80002d88 <pass+0xb8>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00000697 auipc a3,0x0
+ 80002558: 7d468693 addi a3,a3,2004 # 80002d28 <pass+0x58>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00000697 auipc a3,0x0
+ 80002674: 7f068693 addi a3,a3,2032 # 80002e60 <pass+0x190>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00000617 auipc a2,0x0
+ 800026cc: 77060613 addi a2,a2,1904 # 80002e38 <pass+0x168>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00005d17 auipc s10,0x5
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800073f0 <user_mapping>
+ 80002724: 00001b97 auipc s7,0x1
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80003000 <begin_signature>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00005a17 auipc s4,0x5
+ 80002738: 0aca0a13 addi s4,s4,172 # 800077e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00005717 auipc a4,0x5
+ 8000274c: 08f73c23 sd a5,152(a4) # 800077e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00005717 auipc a4,0x5
+ 800027d4: 00f73823 sd a5,16(a4) # 800077e0 <freelist_tail>
+ 800027d8: 00005717 auipc a4,0x5
+ 800027dc: 00f73823 sd a5,16(a4) # 800077e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 6a468693 addi a3,a3,1700 # 80002e90 <pass+0x1c0>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 5c468693 addi a3,a3,1476 # 80002e00 <pass+0x130>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 55468693 addi a3,a3,1364 # 80002dc8 <pass+0xf8>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00001697 auipc a3,0x1
+ 800028e0: 72468693 addi a3,a3,1828 # 80004000 <begin_signature+0x1000>
+ 800028e4: 00002717 auipc a4,0x2
+ 800028e8: 71c70713 addi a4,a4,1820 # 80005000 <begin_signature+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00003797 auipc a5,0x3
+ 800028f8: 70c78793 addi a5,a5,1804 # 80006000 <begin_signature+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00000897 auipc a7,0x0
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80003000 <begin_signature>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00001697 auipc a3,0x1
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80003ff8 <begin_signature+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00000617 auipc a2,0x0
+ 80002938: 6cc60613 addi a2,a2,1740 # 80003000 <begin_signature>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00003697 auipc a3,0x3
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80005ff8 <begin_signature+0x2ff8>
+ 8000294c: 00001717 auipc a4,0x1
+ 80002950: 6af73a23 sd a5,1716(a4) # 80004000 <begin_signature+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00004697 auipc a3,0x4
+ 800029c0: 64468693 addi a3,a3,1604 # 80007000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00005617 auipc a2,0x5
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800077e8 <freelist_head>
+ 800029d4: 00005797 auipc a5,0x5
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800077e0 <freelist_tail>
+ 800029dc: 00005317 auipc t1,0x5
+ 800029e0: a1430313 addi t1,t1,-1516 # 800073f0 <user_mapping>
+ 800029e4: 01a00793 li a5,26
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00005797 auipc a5,0x5
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800073e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 069897b7 lui a5,0x6989
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: 68978793 addi a5,a5,1673 # 6989689 <_start-0x79676977>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 000100b7 lui ra,0x10
+ 80002acc: f010809b addiw ra,ra,-255
+ 80002ad0: 01009093 slli ra,ra,0x10
+ 80002ad4: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 80002ad8: f0f0ff13 andi t5,ra,-241
+ 80002adc: 00010eb7 lui t4,0x10
+ 80002ae0: f01e8e9b addiw t4,t4,-255
+ 80002ae4: 010e9e93 slli t4,t4,0x10
+ 80002ae8: f00e8e93 addi t4,t4,-256 # ff00 <_start-0x7fff0100>
+ 80002aec: 00200193 li gp,2
+ 80002af0: 1ddf1863 bne t5,t4,80002cc0 <fail>
+
+0000000080002af4 <test_3>:
+ 80002af4: 0ff010b7 lui ra,0xff01
+ 80002af8: ff00809b addiw ra,ra,-16
+ 80002afc: 0f00ff13 andi t5,ra,240
+ 80002b00: 0f000e93 li t4,240
+ 80002b04: 00300193 li gp,3
+ 80002b08: 1bdf1c63 bne t5,t4,80002cc0 <fail>
+
+0000000080002b0c <test_4>:
+ 80002b0c: 00ff00b7 lui ra,0xff0
+ 80002b10: 0ff0809b addiw ra,ra,255
+ 80002b14: 70f0ff13 andi t5,ra,1807
+ 80002b18: 00f00e93 li t4,15
+ 80002b1c: 00400193 li gp,4
+ 80002b20: 1bdf1063 bne t5,t4,80002cc0 <fail>
+
+0000000080002b24 <test_5>:
+ 80002b24: 000f00b7 lui ra,0xf0
+ 80002b28: 0ff0809b addiw ra,ra,255
+ 80002b2c: 00c09093 slli ra,ra,0xc
+ 80002b30: 00f08093 addi ra,ra,15 # f000f <_start-0x7ff0fff1>
+ 80002b34: 0f00ff13 andi t5,ra,240
+ 80002b38: 00000e93 li t4,0
+ 80002b3c: 00500193 li gp,5
+ 80002b40: 19df1063 bne t5,t4,80002cc0 <fail>
+
+0000000080002b44 <test_6>:
+ 80002b44: 000100b7 lui ra,0x10
+ 80002b48: f010809b addiw ra,ra,-255
+ 80002b4c: 01009093 slli ra,ra,0x10
+ 80002b50: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 80002b54: 0f00f093 andi ra,ra,240
+ 80002b58: 00000e93 li t4,0
+ 80002b5c: 00600193 li gp,6
+ 80002b60: 17d09063 bne ra,t4,80002cc0 <fail>
+
+0000000080002b64 <test_7>:
+ 80002b64: 00000213 li tp,0
+ 80002b68: 0ff010b7 lui ra,0xff01
+ 80002b6c: ff00809b addiw ra,ra,-16
+ 80002b70: 70f0ff13 andi t5,ra,1807
+ 80002b74: 000f0313 mv t1,t5
+ 80002b78: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002b7c: 00200293 li t0,2
+ 80002b80: fe5214e3 bne tp,t0,80002b68 <test_7+0x4>
+ 80002b84: 70000e93 li t4,1792
+ 80002b88: 00700193 li gp,7
+ 80002b8c: 13d31a63 bne t1,t4,80002cc0 <fail>
+
+0000000080002b90 <test_8>:
+ 80002b90: 00000213 li tp,0
+ 80002b94: 00ff00b7 lui ra,0xff0
+ 80002b98: 0ff0809b addiw ra,ra,255
+ 80002b9c: 0f00ff13 andi t5,ra,240
+ 80002ba0: 00000013 nop
+ 80002ba4: 000f0313 mv t1,t5
+ 80002ba8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002bac: 00200293 li t0,2
+ 80002bb0: fe5212e3 bne tp,t0,80002b94 <test_8+0x4>
+ 80002bb4: 0f000e93 li t4,240
+ 80002bb8: 00800193 li gp,8
+ 80002bbc: 11d31263 bne t1,t4,80002cc0 <fail>
+
+0000000080002bc0 <test_9>:
+ 80002bc0: 00000213 li tp,0
+ 80002bc4: 000f00b7 lui ra,0xf0
+ 80002bc8: 0ff0809b addiw ra,ra,255
+ 80002bcc: 00c09093 slli ra,ra,0xc
+ 80002bd0: 00f08093 addi ra,ra,15 # f000f <_start-0x7ff0fff1>
+ 80002bd4: f0f0ff13 andi t5,ra,-241
+ 80002bd8: 00000013 nop
+ 80002bdc: 00000013 nop
+ 80002be0: 000f0313 mv t1,t5
+ 80002be4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002be8: 00200293 li t0,2
+ 80002bec: fc521ce3 bne tp,t0,80002bc4 <test_9+0x4>
+ 80002bf0: 000f0eb7 lui t4,0xf0
+ 80002bf4: 0ffe8e9b addiw t4,t4,255
+ 80002bf8: 00ce9e93 slli t4,t4,0xc
+ 80002bfc: 00fe8e93 addi t4,t4,15 # f000f <_start-0x7ff0fff1>
+ 80002c00: 00900193 li gp,9
+ 80002c04: 0bd31e63 bne t1,t4,80002cc0 <fail>
+
+0000000080002c08 <test_10>:
+ 80002c08: 00000213 li tp,0
+ 80002c0c: 0ff010b7 lui ra,0xff01
+ 80002c10: ff00809b addiw ra,ra,-16
+ 80002c14: 70f0ff13 andi t5,ra,1807
+ 80002c18: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c1c: 00200293 li t0,2
+ 80002c20: fe5216e3 bne tp,t0,80002c0c <test_10+0x4>
+ 80002c24: 70000e93 li t4,1792
+ 80002c28: 00a00193 li gp,10
+ 80002c2c: 09df1a63 bne t5,t4,80002cc0 <fail>
+
+0000000080002c30 <test_11>:
+ 80002c30: 00000213 li tp,0
+ 80002c34: 00ff00b7 lui ra,0xff0
+ 80002c38: 0ff0809b addiw ra,ra,255
+ 80002c3c: 00000013 nop
+ 80002c40: 0f00ff13 andi t5,ra,240
+ 80002c44: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c48: 00200293 li t0,2
+ 80002c4c: fe5214e3 bne tp,t0,80002c34 <test_11+0x4>
+ 80002c50: 0f000e93 li t4,240
+ 80002c54: 00b00193 li gp,11
+ 80002c58: 07df1463 bne t5,t4,80002cc0 <fail>
+
+0000000080002c5c <test_12>:
+ 80002c5c: 00000213 li tp,0
+ 80002c60: 000f00b7 lui ra,0xf0
+ 80002c64: 0ff0809b addiw ra,ra,255
+ 80002c68: 00c09093 slli ra,ra,0xc
+ 80002c6c: 00f08093 addi ra,ra,15 # f000f <_start-0x7ff0fff1>
+ 80002c70: 00000013 nop
+ 80002c74: 00000013 nop
+ 80002c78: 70f0ff13 andi t5,ra,1807
+ 80002c7c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c80: 00200293 li t0,2
+ 80002c84: fc521ee3 bne tp,t0,80002c60 <test_12+0x4>
+ 80002c88: 00f00e93 li t4,15
+ 80002c8c: 00c00193 li gp,12
+ 80002c90: 03df1863 bne t5,t4,80002cc0 <fail>
+
+0000000080002c94 <test_13>:
+ 80002c94: 0f007093 andi ra,zero,240
+ 80002c98: 00000e93 li t4,0
+ 80002c9c: 00d00193 li gp,13
+ 80002ca0: 03d09063 bne ra,t4,80002cc0 <fail>
+
+0000000080002ca4 <test_14>:
+ 80002ca4: 00ff00b7 lui ra,0xff0
+ 80002ca8: 0ff0809b addiw ra,ra,255
+ 80002cac: 70f0f013 andi zero,ra,1807
+ 80002cb0: 00000e93 li t4,0
+ 80002cb4: 00e00193 li gp,14
+ 80002cb8: 01d01463 bne zero,t4,80002cc0 <fail>
+ 80002cbc: 00301a63 bne zero,gp,80002cd0 <pass>
+
+0000000080002cc0 <fail>:
+ 80002cc0: 00119513 slli a0,gp,0x1
+ 80002cc4: 00050063 beqz a0,80002cc4 <fail+0x4>
+ 80002cc8: 00156513 ori a0,a0,1
+ 80002ccc: 00000073 ecall
+
+0000000080002cd0 <pass>:
+ 80002cd0: 00100513 li a0,1
+ 80002cd4: 00000073 ecall
+ 80002cd8: c0001073 unimp
diff --git a/test/tests/rv64ui-v-andi.elf b/test/tests/rv64ui-v-andi.elf
new file mode 100644
index 0000000..02ec3d5
--- /dev/null
+++ b/test/tests/rv64ui-v-andi.elf
Binary files differ
diff --git a/test/tests/rv64ui-v-auipc.dump b/test/tests/rv64ui-v-auipc.dump
new file mode 100644
index 0000000..bfa19dd
--- /dev/null
+++ b/test/tests/rv64ui-v-auipc.dump
@@ -0,0 +1,859 @@
+
+rv64ui-v-auipc: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <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: 6b810113 addi sp,sp,1720 # 800086d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00001617 auipc a2,0x1
+ 80002318: cec60613 addi a2,a2,-788 # 80003000 <begin_signature>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00005797 auipc a5,0x5
+ 80002334: 4b878793 addi a5,a5,1208 # 800077e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00005717 auipc a4,0x5
+ 80002348: 49c70713 addi a4,a4,1180 # 800077e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00005897 auipc a7,0x5
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800077e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00005797 auipc a5,0x5
+ 80002384: 07078793 addi a5,a5,112 # 800073f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf8810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00005797 auipc a5,0x5
+ 80002448: 3807be23 sd zero,924(a5) # 800077e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00000697 auipc a3,0x0
+ 8000245c: 6d068693 addi a3,a3,1744 # 80002b28 <pass+0xc>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00000617 auipc a2,0x0
+ 800024b8: 70460613 addi a2,a2,1796 # 80002bb8 <pass+0x9c>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00000617 auipc a2,0x0
+ 80002508: 6cc60613 addi a2,a2,1740 # 80002bd0 <pass+0xb4>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00000697 auipc a3,0x0
+ 80002558: 61c68693 addi a3,a3,1564 # 80002b70 <pass+0x54>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00000697 auipc a3,0x0
+ 80002674: 63868693 addi a3,a3,1592 # 80002ca8 <pass+0x18c>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00000617 auipc a2,0x0
+ 800026cc: 5b860613 addi a2,a2,1464 # 80002c80 <pass+0x164>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00005d17 auipc s10,0x5
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800073f0 <user_mapping>
+ 80002724: 00001b97 auipc s7,0x1
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80003000 <begin_signature>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00005a17 auipc s4,0x5
+ 80002738: 0aca0a13 addi s4,s4,172 # 800077e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00005717 auipc a4,0x5
+ 8000274c: 08f73c23 sd a5,152(a4) # 800077e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00005717 auipc a4,0x5
+ 800027d4: 00f73823 sd a5,16(a4) # 800077e0 <freelist_tail>
+ 800027d8: 00005717 auipc a4,0x5
+ 800027dc: 00f73823 sd a5,16(a4) # 800077e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 4ec68693 addi a3,a3,1260 # 80002cd8 <pass+0x1bc>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 40c68693 addi a3,a3,1036 # 80002c48 <pass+0x12c>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 39c68693 addi a3,a3,924 # 80002c10 <pass+0xf4>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00001697 auipc a3,0x1
+ 800028e0: 72468693 addi a3,a3,1828 # 80004000 <begin_signature+0x1000>
+ 800028e4: 00002717 auipc a4,0x2
+ 800028e8: 71c70713 addi a4,a4,1820 # 80005000 <begin_signature+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00003797 auipc a5,0x3
+ 800028f8: 70c78793 addi a5,a5,1804 # 80006000 <begin_signature+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00000897 auipc a7,0x0
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80003000 <begin_signature>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00001697 auipc a3,0x1
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80003ff8 <begin_signature+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00000617 auipc a2,0x0
+ 80002938: 6cc60613 addi a2,a2,1740 # 80003000 <begin_signature>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00003697 auipc a3,0x3
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80005ff8 <begin_signature+0x2ff8>
+ 8000294c: 00001717 auipc a4,0x1
+ 80002950: 6af73a23 sd a5,1716(a4) # 80004000 <begin_signature+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00004697 auipc a3,0x4
+ 800029c0: 64468693 addi a3,a3,1604 # 80007000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00005617 auipc a2,0x5
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800077e8 <freelist_head>
+ 800029d4: 00005797 auipc a5,0x5
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800077e0 <freelist_tail>
+ 800029dc: 00005317 auipc t1,0x5
+ 800029e0: a1430313 addi t1,t1,-1516 # 800073f0 <user_mapping>
+ 800029e4: 02a00793 li a5,42
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00005797 auipc a5,0x5
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800073e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 0962a7b7 lui a5,0x962a
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: af278793 addi a5,a5,-1294 # 9629af2 <_start-0x769d650e>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 00002517 auipc a0,0x2
+ 80002acc: 71c50513 addi a0,a0,1820 # 800051e4 <begin_signature+0x21e4>
+ 80002ad0: 004005ef jal a1,80002ad4 <userstart+0xc>
+ 80002ad4: 40b50533 sub a0,a0,a1
+ 80002ad8: 00002eb7 lui t4,0x2
+ 80002adc: 710e8e9b addiw t4,t4,1808
+ 80002ae0: 00200193 li gp,2
+ 80002ae4: 03d51463 bne a0,t4,80002b0c <fail>
+
+0000000080002ae8 <test_3>:
+ 80002ae8: ffffe517 auipc a0,0xffffe
+ 80002aec: 8fc50513 addi a0,a0,-1796 # 800003e4 <trap_entry+0x320>
+ 80002af0: 004005ef jal a1,80002af4 <test_3+0xc>
+ 80002af4: 40b50533 sub a0,a0,a1
+ 80002af8: ffffeeb7 lui t4,0xffffe
+ 80002afc: 8f0e8e9b addiw t4,t4,-1808
+ 80002b00: 00300193 li gp,3
+ 80002b04: 01d51463 bne a0,t4,80002b0c <fail>
+ 80002b08: 00301a63 bne zero,gp,80002b1c <pass>
+
+0000000080002b0c <fail>:
+ 80002b0c: 00119513 slli a0,gp,0x1
+ 80002b10: 00050063 beqz a0,80002b10 <fail+0x4>
+ 80002b14: 00156513 ori a0,a0,1
+ 80002b18: 00000073 ecall
+
+0000000080002b1c <pass>:
+ 80002b1c: 00100513 li a0,1
+ 80002b20: 00000073 ecall
+ 80002b24: c0001073 unimp
diff --git a/test/tests/rv64ui-v-auipc.elf b/test/tests/rv64ui-v-auipc.elf
new file mode 100644
index 0000000..e0fc7d1
--- /dev/null
+++ b/test/tests/rv64ui-v-auipc.elf
Binary files differ
diff --git a/test/tests/rv64ui-v-beq.dump b/test/tests/rv64ui-v-beq.dump
new file mode 100644
index 0000000..18ece1e
--- /dev/null
+++ b/test/tests/rv64ui-v-beq.dump
@@ -0,0 +1,1054 @@
+
+rv64ui-v-beq: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <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: 6b810113 addi sp,sp,1720 # 800086d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00001617 auipc a2,0x1
+ 80002318: cec60613 addi a2,a2,-788 # 80003000 <begin_signature>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00005797 auipc a5,0x5
+ 80002334: 4b878793 addi a5,a5,1208 # 800077e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00005717 auipc a4,0x5
+ 80002348: 49c70713 addi a4,a4,1180 # 800077e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00005897 auipc a7,0x5
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800077e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00005797 auipc a5,0x5
+ 80002384: 07078793 addi a5,a5,112 # 800073f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf8810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00005797 auipc a5,0x5
+ 80002448: 3807be23 sd zero,924(a5) # 800077e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00001697 auipc a3,0x1
+ 8000245c: 95068693 addi a3,a3,-1712 # 80002da8 <pass+0x10>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00001617 auipc a2,0x1
+ 800024b8: 98460613 addi a2,a2,-1660 # 80002e38 <pass+0xa0>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00001617 auipc a2,0x1
+ 80002508: 94c60613 addi a2,a2,-1716 # 80002e50 <pass+0xb8>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00001697 auipc a3,0x1
+ 80002558: 89c68693 addi a3,a3,-1892 # 80002df0 <pass+0x58>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00001697 auipc a3,0x1
+ 80002674: 8b868693 addi a3,a3,-1864 # 80002f28 <pass+0x190>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00001617 auipc a2,0x1
+ 800026cc: 83860613 addi a2,a2,-1992 # 80002f00 <pass+0x168>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00005d17 auipc s10,0x5
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800073f0 <user_mapping>
+ 80002724: 00001b97 auipc s7,0x1
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80003000 <begin_signature>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00005a17 auipc s4,0x5
+ 80002738: 0aca0a13 addi s4,s4,172 # 800077e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00005717 auipc a4,0x5
+ 8000274c: 08f73c23 sd a5,152(a4) # 800077e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00005717 auipc a4,0x5
+ 800027d4: 00f73823 sd a5,16(a4) # 800077e0 <freelist_tail>
+ 800027d8: 00005717 auipc a4,0x5
+ 800027dc: 00f73823 sd a5,16(a4) # 800077e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 76c68693 addi a3,a3,1900 # 80002f58 <pass+0x1c0>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 68c68693 addi a3,a3,1676 # 80002ec8 <pass+0x130>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 61c68693 addi a3,a3,1564 # 80002e90 <pass+0xf8>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00001697 auipc a3,0x1
+ 800028e0: 72468693 addi a3,a3,1828 # 80004000 <begin_signature+0x1000>
+ 800028e4: 00002717 auipc a4,0x2
+ 800028e8: 71c70713 addi a4,a4,1820 # 80005000 <begin_signature+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00003797 auipc a5,0x3
+ 800028f8: 70c78793 addi a5,a5,1804 # 80006000 <begin_signature+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00000897 auipc a7,0x0
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80003000 <begin_signature>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00001697 auipc a3,0x1
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80003ff8 <begin_signature+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00000617 auipc a2,0x0
+ 80002938: 6cc60613 addi a2,a2,1740 # 80003000 <begin_signature>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00003697 auipc a3,0x3
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80005ff8 <begin_signature+0x2ff8>
+ 8000294c: 00001717 auipc a4,0x1
+ 80002950: 6af73a23 sd a5,1716(a4) # 80004000 <begin_signature+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00004697 auipc a3,0x4
+ 800029c0: 64468693 addi a3,a3,1604 # 80007000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00005617 auipc a2,0x5
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800077e8 <freelist_head>
+ 800029d4: 00005797 auipc a5,0x5
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800077e0 <freelist_tail>
+ 800029dc: 00005317 auipc t1,0x5
+ 800029e0: a1430313 addi t1,t1,-1516 # 800073f0 <user_mapping>
+ 800029e4: 03400793 li a5,52
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00005797 auipc a5,0x5
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800073e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 029747b7 lui a5,0x2974
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: 93378793 addi a5,a5,-1741 # 2973933 <_start-0x7d68c6cd>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 00200193 li gp,2
+ 80002acc: 00000093 li ra,0
+ 80002ad0: 00000113 li sp,0
+ 80002ad4: 00208663 beq ra,sp,80002ae0 <userstart+0x18>
+ 80002ad8: 2a301863 bne zero,gp,80002d88 <fail>
+ 80002adc: 00301663 bne zero,gp,80002ae8 <test_3>
+ 80002ae0: fe208ee3 beq ra,sp,80002adc <userstart+0x14>
+ 80002ae4: 2a301263 bne zero,gp,80002d88 <fail>
+
+0000000080002ae8 <test_3>:
+ 80002ae8: 00300193 li gp,3
+ 80002aec: 00100093 li ra,1
+ 80002af0: 00100113 li sp,1
+ 80002af4: 00208663 beq ra,sp,80002b00 <test_3+0x18>
+ 80002af8: 28301863 bne zero,gp,80002d88 <fail>
+ 80002afc: 00301663 bne zero,gp,80002b08 <test_4>
+ 80002b00: fe208ee3 beq ra,sp,80002afc <test_3+0x14>
+ 80002b04: 28301263 bne zero,gp,80002d88 <fail>
+
+0000000080002b08 <test_4>:
+ 80002b08: 00400193 li gp,4
+ 80002b0c: fff00093 li ra,-1
+ 80002b10: fff00113 li sp,-1
+ 80002b14: 00208663 beq ra,sp,80002b20 <test_4+0x18>
+ 80002b18: 26301863 bne zero,gp,80002d88 <fail>
+ 80002b1c: 00301663 bne zero,gp,80002b28 <test_5>
+ 80002b20: fe208ee3 beq ra,sp,80002b1c <test_4+0x14>
+ 80002b24: 26301263 bne zero,gp,80002d88 <fail>
+
+0000000080002b28 <test_5>:
+ 80002b28: 00500193 li gp,5
+ 80002b2c: 00000093 li ra,0
+ 80002b30: 00100113 li sp,1
+ 80002b34: 00208463 beq ra,sp,80002b3c <test_5+0x14>
+ 80002b38: 00301463 bne zero,gp,80002b40 <test_5+0x18>
+ 80002b3c: 24301663 bne zero,gp,80002d88 <fail>
+ 80002b40: fe208ee3 beq ra,sp,80002b3c <test_5+0x14>
+
+0000000080002b44 <test_6>:
+ 80002b44: 00600193 li gp,6
+ 80002b48: 00100093 li ra,1
+ 80002b4c: 00000113 li sp,0
+ 80002b50: 00208463 beq ra,sp,80002b58 <test_6+0x14>
+ 80002b54: 00301463 bne zero,gp,80002b5c <test_6+0x18>
+ 80002b58: 22301863 bne zero,gp,80002d88 <fail>
+ 80002b5c: fe208ee3 beq ra,sp,80002b58 <test_6+0x14>
+
+0000000080002b60 <test_7>:
+ 80002b60: 00700193 li gp,7
+ 80002b64: fff00093 li ra,-1
+ 80002b68: 00100113 li sp,1
+ 80002b6c: 00208463 beq ra,sp,80002b74 <test_7+0x14>
+ 80002b70: 00301463 bne zero,gp,80002b78 <test_7+0x18>
+ 80002b74: 20301a63 bne zero,gp,80002d88 <fail>
+ 80002b78: fe208ee3 beq ra,sp,80002b74 <test_7+0x14>
+
+0000000080002b7c <test_8>:
+ 80002b7c: 00800193 li gp,8
+ 80002b80: 00100093 li ra,1
+ 80002b84: fff00113 li sp,-1
+ 80002b88: 00208463 beq ra,sp,80002b90 <test_8+0x14>
+ 80002b8c: 00301463 bne zero,gp,80002b94 <test_8+0x18>
+ 80002b90: 1e301c63 bne zero,gp,80002d88 <fail>
+ 80002b94: fe208ee3 beq ra,sp,80002b90 <test_8+0x14>
+
+0000000080002b98 <test_9>:
+ 80002b98: 00900193 li gp,9
+ 80002b9c: 00000213 li tp,0
+ 80002ba0: 00000093 li ra,0
+ 80002ba4: fff00113 li sp,-1
+ 80002ba8: 1e208063 beq ra,sp,80002d88 <fail>
+ 80002bac: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002bb0: 00200293 li t0,2
+ 80002bb4: fe5216e3 bne tp,t0,80002ba0 <test_9+0x8>
+
+0000000080002bb8 <test_10>:
+ 80002bb8: 00a00193 li gp,10
+ 80002bbc: 00000213 li tp,0
+ 80002bc0: 00000093 li ra,0
+ 80002bc4: fff00113 li sp,-1
+ 80002bc8: 00000013 nop
+ 80002bcc: 1a208e63 beq ra,sp,80002d88 <fail>
+ 80002bd0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002bd4: 00200293 li t0,2
+ 80002bd8: fe5214e3 bne tp,t0,80002bc0 <test_10+0x8>
+
+0000000080002bdc <test_11>:
+ 80002bdc: 00b00193 li gp,11
+ 80002be0: 00000213 li tp,0
+ 80002be4: 00000093 li ra,0
+ 80002be8: fff00113 li sp,-1
+ 80002bec: 00000013 nop
+ 80002bf0: 00000013 nop
+ 80002bf4: 18208a63 beq ra,sp,80002d88 <fail>
+ 80002bf8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002bfc: 00200293 li t0,2
+ 80002c00: fe5212e3 bne tp,t0,80002be4 <test_11+0x8>
+
+0000000080002c04 <test_12>:
+ 80002c04: 00c00193 li gp,12
+ 80002c08: 00000213 li tp,0
+ 80002c0c: 00000093 li ra,0
+ 80002c10: 00000013 nop
+ 80002c14: fff00113 li sp,-1
+ 80002c18: 16208863 beq ra,sp,80002d88 <fail>
+ 80002c1c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c20: 00200293 li t0,2
+ 80002c24: fe5214e3 bne tp,t0,80002c0c <test_12+0x8>
+
+0000000080002c28 <test_13>:
+ 80002c28: 00d00193 li gp,13
+ 80002c2c: 00000213 li tp,0
+ 80002c30: 00000093 li ra,0
+ 80002c34: 00000013 nop
+ 80002c38: fff00113 li sp,-1
+ 80002c3c: 00000013 nop
+ 80002c40: 14208463 beq ra,sp,80002d88 <fail>
+ 80002c44: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c48: 00200293 li t0,2
+ 80002c4c: fe5212e3 bne tp,t0,80002c30 <test_13+0x8>
+
+0000000080002c50 <test_14>:
+ 80002c50: 00e00193 li gp,14
+ 80002c54: 00000213 li tp,0
+ 80002c58: 00000093 li ra,0
+ 80002c5c: 00000013 nop
+ 80002c60: 00000013 nop
+ 80002c64: fff00113 li sp,-1
+ 80002c68: 12208063 beq ra,sp,80002d88 <fail>
+ 80002c6c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c70: 00200293 li t0,2
+ 80002c74: fe5212e3 bne tp,t0,80002c58 <test_14+0x8>
+
+0000000080002c78 <test_15>:
+ 80002c78: 00f00193 li gp,15
+ 80002c7c: 00000213 li tp,0
+ 80002c80: 00000093 li ra,0
+ 80002c84: fff00113 li sp,-1
+ 80002c88: 10208063 beq ra,sp,80002d88 <fail>
+ 80002c8c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c90: 00200293 li t0,2
+ 80002c94: fe5216e3 bne tp,t0,80002c80 <test_15+0x8>
+
+0000000080002c98 <test_16>:
+ 80002c98: 01000193 li gp,16
+ 80002c9c: 00000213 li tp,0
+ 80002ca0: 00000093 li ra,0
+ 80002ca4: fff00113 li sp,-1
+ 80002ca8: 00000013 nop
+ 80002cac: 0c208e63 beq ra,sp,80002d88 <fail>
+ 80002cb0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002cb4: 00200293 li t0,2
+ 80002cb8: fe5214e3 bne tp,t0,80002ca0 <test_16+0x8>
+
+0000000080002cbc <test_17>:
+ 80002cbc: 01100193 li gp,17
+ 80002cc0: 00000213 li tp,0
+ 80002cc4: 00000093 li ra,0
+ 80002cc8: fff00113 li sp,-1
+ 80002ccc: 00000013 nop
+ 80002cd0: 00000013 nop
+ 80002cd4: 0a208a63 beq ra,sp,80002d88 <fail>
+ 80002cd8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002cdc: 00200293 li t0,2
+ 80002ce0: fe5212e3 bne tp,t0,80002cc4 <test_17+0x8>
+
+0000000080002ce4 <test_18>:
+ 80002ce4: 01200193 li gp,18
+ 80002ce8: 00000213 li tp,0
+ 80002cec: 00000093 li ra,0
+ 80002cf0: 00000013 nop
+ 80002cf4: fff00113 li sp,-1
+ 80002cf8: 08208863 beq ra,sp,80002d88 <fail>
+ 80002cfc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d00: 00200293 li t0,2
+ 80002d04: fe5214e3 bne tp,t0,80002cec <test_18+0x8>
+
+0000000080002d08 <test_19>:
+ 80002d08: 01300193 li gp,19
+ 80002d0c: 00000213 li tp,0
+ 80002d10: 00000093 li ra,0
+ 80002d14: 00000013 nop
+ 80002d18: fff00113 li sp,-1
+ 80002d1c: 00000013 nop
+ 80002d20: 06208463 beq ra,sp,80002d88 <fail>
+ 80002d24: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d28: 00200293 li t0,2
+ 80002d2c: fe5212e3 bne tp,t0,80002d10 <test_19+0x8>
+
+0000000080002d30 <test_20>:
+ 80002d30: 01400193 li gp,20
+ 80002d34: 00000213 li tp,0
+ 80002d38: 00000093 li ra,0
+ 80002d3c: 00000013 nop
+ 80002d40: 00000013 nop
+ 80002d44: fff00113 li sp,-1
+ 80002d48: 04208063 beq ra,sp,80002d88 <fail>
+ 80002d4c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d50: 00200293 li t0,2
+ 80002d54: fe5212e3 bne tp,t0,80002d38 <test_20+0x8>
+
+0000000080002d58 <test_21>:
+ 80002d58: 00100093 li ra,1
+ 80002d5c: 00000a63 beqz zero,80002d70 <test_21+0x18>
+ 80002d60: 00108093 addi ra,ra,1
+ 80002d64: 00108093 addi ra,ra,1
+ 80002d68: 00108093 addi ra,ra,1
+ 80002d6c: 00108093 addi ra,ra,1
+ 80002d70: 00108093 addi ra,ra,1
+ 80002d74: 00108093 addi ra,ra,1
+ 80002d78: 00300e93 li t4,3
+ 80002d7c: 01500193 li gp,21
+ 80002d80: 01d09463 bne ra,t4,80002d88 <fail>
+ 80002d84: 00301a63 bne zero,gp,80002d98 <pass>
+
+0000000080002d88 <fail>:
+ 80002d88: 00119513 slli a0,gp,0x1
+ 80002d8c: 00050063 beqz a0,80002d8c <fail+0x4>
+ 80002d90: 00156513 ori a0,a0,1
+ 80002d94: 00000073 ecall
+
+0000000080002d98 <pass>:
+ 80002d98: 00100513 li a0,1
+ 80002d9c: 00000073 ecall
+ 80002da0: c0001073 unimp
diff --git a/test/tests/rv64ui-v-beq.elf b/test/tests/rv64ui-v-beq.elf
new file mode 100644
index 0000000..a64100b
--- /dev/null
+++ b/test/tests/rv64ui-v-beq.elf
Binary files differ
diff --git a/test/tests/rv64ui-v-bge.dump b/test/tests/rv64ui-v-bge.dump
new file mode 100644
index 0000000..5821526
--- /dev/null
+++ b/test/tests/rv64ui-v-bge.dump
@@ -0,0 +1,1084 @@
+
+rv64ui-v-bge: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <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: 6b810113 addi sp,sp,1720 # 800086d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00001617 auipc a2,0x1
+ 80002318: cec60613 addi a2,a2,-788 # 80003000 <begin_signature>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00005797 auipc a5,0x5
+ 80002334: 4b878793 addi a5,a5,1208 # 800077e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00005717 auipc a4,0x5
+ 80002348: 49c70713 addi a4,a4,1180 # 800077e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00005897 auipc a7,0x5
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800077e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00005797 auipc a5,0x5
+ 80002384: 07078793 addi a5,a5,112 # 800073f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf8810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00005797 auipc a5,0x5
+ 80002448: 3807be23 sd zero,924(a5) # 800077e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00001697 auipc a3,0x1
+ 8000245c: 9b068693 addi a3,a3,-1616 # 80002e08 <pass+0x10>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00001617 auipc a2,0x1
+ 800024b8: 9e460613 addi a2,a2,-1564 # 80002e98 <pass+0xa0>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00001617 auipc a2,0x1
+ 80002508: 9ac60613 addi a2,a2,-1620 # 80002eb0 <pass+0xb8>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00001697 auipc a3,0x1
+ 80002558: 8fc68693 addi a3,a3,-1796 # 80002e50 <pass+0x58>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00001697 auipc a3,0x1
+ 80002674: 91868693 addi a3,a3,-1768 # 80002f88 <pass+0x190>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00001617 auipc a2,0x1
+ 800026cc: 89860613 addi a2,a2,-1896 # 80002f60 <pass+0x168>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00005d17 auipc s10,0x5
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800073f0 <user_mapping>
+ 80002724: 00001b97 auipc s7,0x1
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80003000 <begin_signature>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00005a17 auipc s4,0x5
+ 80002738: 0aca0a13 addi s4,s4,172 # 800077e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00005717 auipc a4,0x5
+ 8000274c: 08f73c23 sd a5,152(a4) # 800077e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00005717 auipc a4,0x5
+ 800027d4: 00f73823 sd a5,16(a4) # 800077e0 <freelist_tail>
+ 800027d8: 00005717 auipc a4,0x5
+ 800027dc: 00f73823 sd a5,16(a4) # 800077e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 7cc68693 addi a3,a3,1996 # 80002fb8 <pass+0x1c0>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 6ec68693 addi a3,a3,1772 # 80002f28 <pass+0x130>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 67c68693 addi a3,a3,1660 # 80002ef0 <pass+0xf8>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00001697 auipc a3,0x1
+ 800028e0: 72468693 addi a3,a3,1828 # 80004000 <begin_signature+0x1000>
+ 800028e4: 00002717 auipc a4,0x2
+ 800028e8: 71c70713 addi a4,a4,1820 # 80005000 <begin_signature+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00003797 auipc a5,0x3
+ 800028f8: 70c78793 addi a5,a5,1804 # 80006000 <begin_signature+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00000897 auipc a7,0x0
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80003000 <begin_signature>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00001697 auipc a3,0x1
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80003ff8 <begin_signature+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00000617 auipc a2,0x0
+ 80002938: 6cc60613 addi a2,a2,1740 # 80003000 <begin_signature>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00003697 auipc a3,0x3
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80005ff8 <begin_signature+0x2ff8>
+ 8000294c: 00001717 auipc a4,0x1
+ 80002950: 6af73a23 sd a5,1716(a4) # 80004000 <begin_signature+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00004697 auipc a3,0x4
+ 800029c0: 64468693 addi a3,a3,1604 # 80007000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00005617 auipc a2,0x5
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800077e8 <freelist_head>
+ 800029d4: 00005797 auipc a5,0x5
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800077e0 <freelist_tail>
+ 800029dc: 00005317 auipc t1,0x5
+ 800029e0: a1430313 addi t1,t1,-1516 # 800073f0 <user_mapping>
+ 800029e4: 01f00793 li a5,31
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00005797 auipc a5,0x5
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800073e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 05e177b7 lui a5,0x5e17
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: 4f578793 addi a5,a5,1269 # 5e174f5 <_start-0x7a1e8b0b>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 00200193 li gp,2
+ 80002acc: 00000093 li ra,0
+ 80002ad0: 00000113 li sp,0
+ 80002ad4: 0020d663 ble sp,ra,80002ae0 <userstart+0x18>
+ 80002ad8: 30301863 bne zero,gp,80002de8 <fail>
+ 80002adc: 00301663 bne zero,gp,80002ae8 <test_3>
+ 80002ae0: fe20dee3 ble sp,ra,80002adc <userstart+0x14>
+ 80002ae4: 30301263 bne zero,gp,80002de8 <fail>
+
+0000000080002ae8 <test_3>:
+ 80002ae8: 00300193 li gp,3
+ 80002aec: 00100093 li ra,1
+ 80002af0: 00100113 li sp,1
+ 80002af4: 0020d663 ble sp,ra,80002b00 <test_3+0x18>
+ 80002af8: 2e301863 bne zero,gp,80002de8 <fail>
+ 80002afc: 00301663 bne zero,gp,80002b08 <test_4>
+ 80002b00: fe20dee3 ble sp,ra,80002afc <test_3+0x14>
+ 80002b04: 2e301263 bne zero,gp,80002de8 <fail>
+
+0000000080002b08 <test_4>:
+ 80002b08: 00400193 li gp,4
+ 80002b0c: fff00093 li ra,-1
+ 80002b10: fff00113 li sp,-1
+ 80002b14: 0020d663 ble sp,ra,80002b20 <test_4+0x18>
+ 80002b18: 2c301863 bne zero,gp,80002de8 <fail>
+ 80002b1c: 00301663 bne zero,gp,80002b28 <test_5>
+ 80002b20: fe20dee3 ble sp,ra,80002b1c <test_4+0x14>
+ 80002b24: 2c301263 bne zero,gp,80002de8 <fail>
+
+0000000080002b28 <test_5>:
+ 80002b28: 00500193 li gp,5
+ 80002b2c: 00100093 li ra,1
+ 80002b30: 00000113 li sp,0
+ 80002b34: 0020d663 ble sp,ra,80002b40 <test_5+0x18>
+ 80002b38: 2a301863 bne zero,gp,80002de8 <fail>
+ 80002b3c: 00301663 bne zero,gp,80002b48 <test_6>
+ 80002b40: fe20dee3 ble sp,ra,80002b3c <test_5+0x14>
+ 80002b44: 2a301263 bne zero,gp,80002de8 <fail>
+
+0000000080002b48 <test_6>:
+ 80002b48: 00600193 li gp,6
+ 80002b4c: 00100093 li ra,1
+ 80002b50: fff00113 li sp,-1
+ 80002b54: 0020d663 ble sp,ra,80002b60 <test_6+0x18>
+ 80002b58: 28301863 bne zero,gp,80002de8 <fail>
+ 80002b5c: 00301663 bne zero,gp,80002b68 <test_7>
+ 80002b60: fe20dee3 ble sp,ra,80002b5c <test_6+0x14>
+ 80002b64: 28301263 bne zero,gp,80002de8 <fail>
+
+0000000080002b68 <test_7>:
+ 80002b68: 00700193 li gp,7
+ 80002b6c: fff00093 li ra,-1
+ 80002b70: ffe00113 li sp,-2
+ 80002b74: 0020d663 ble sp,ra,80002b80 <test_7+0x18>
+ 80002b78: 26301863 bne zero,gp,80002de8 <fail>
+ 80002b7c: 00301663 bne zero,gp,80002b88 <test_8>
+ 80002b80: fe20dee3 ble sp,ra,80002b7c <test_7+0x14>
+ 80002b84: 26301263 bne zero,gp,80002de8 <fail>
+
+0000000080002b88 <test_8>:
+ 80002b88: 00800193 li gp,8
+ 80002b8c: 00000093 li ra,0
+ 80002b90: 00100113 li sp,1
+ 80002b94: 0020d463 ble sp,ra,80002b9c <test_8+0x14>
+ 80002b98: 00301463 bne zero,gp,80002ba0 <test_8+0x18>
+ 80002b9c: 24301663 bne zero,gp,80002de8 <fail>
+ 80002ba0: fe20dee3 ble sp,ra,80002b9c <test_8+0x14>
+
+0000000080002ba4 <test_9>:
+ 80002ba4: 00900193 li gp,9
+ 80002ba8: fff00093 li ra,-1
+ 80002bac: 00100113 li sp,1
+ 80002bb0: 0020d463 ble sp,ra,80002bb8 <test_9+0x14>
+ 80002bb4: 00301463 bne zero,gp,80002bbc <test_9+0x18>
+ 80002bb8: 22301863 bne zero,gp,80002de8 <fail>
+ 80002bbc: fe20dee3 ble sp,ra,80002bb8 <test_9+0x14>
+
+0000000080002bc0 <test_10>:
+ 80002bc0: 00a00193 li gp,10
+ 80002bc4: ffe00093 li ra,-2
+ 80002bc8: fff00113 li sp,-1
+ 80002bcc: 0020d463 ble sp,ra,80002bd4 <test_10+0x14>
+ 80002bd0: 00301463 bne zero,gp,80002bd8 <test_10+0x18>
+ 80002bd4: 20301a63 bne zero,gp,80002de8 <fail>
+ 80002bd8: fe20dee3 ble sp,ra,80002bd4 <test_10+0x14>
+
+0000000080002bdc <test_11>:
+ 80002bdc: 00b00193 li gp,11
+ 80002be0: ffe00093 li ra,-2
+ 80002be4: 00100113 li sp,1
+ 80002be8: 0020d463 ble sp,ra,80002bf0 <test_11+0x14>
+ 80002bec: 00301463 bne zero,gp,80002bf4 <test_11+0x18>
+ 80002bf0: 1e301c63 bne zero,gp,80002de8 <fail>
+ 80002bf4: fe20dee3 ble sp,ra,80002bf0 <test_11+0x14>
+
+0000000080002bf8 <test_12>:
+ 80002bf8: 00c00193 li gp,12
+ 80002bfc: 00000213 li tp,0
+ 80002c00: fff00093 li ra,-1
+ 80002c04: 00000113 li sp,0
+ 80002c08: 1e20d063 ble sp,ra,80002de8 <fail>
+ 80002c0c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c10: 00200293 li t0,2
+ 80002c14: fe5216e3 bne tp,t0,80002c00 <test_12+0x8>
+
+0000000080002c18 <test_13>:
+ 80002c18: 00d00193 li gp,13
+ 80002c1c: 00000213 li tp,0
+ 80002c20: fff00093 li ra,-1
+ 80002c24: 00000113 li sp,0
+ 80002c28: 00000013 nop
+ 80002c2c: 1a20de63 ble sp,ra,80002de8 <fail>
+ 80002c30: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c34: 00200293 li t0,2
+ 80002c38: fe5214e3 bne tp,t0,80002c20 <test_13+0x8>
+
+0000000080002c3c <test_14>:
+ 80002c3c: 00e00193 li gp,14
+ 80002c40: 00000213 li tp,0
+ 80002c44: fff00093 li ra,-1
+ 80002c48: 00000113 li sp,0
+ 80002c4c: 00000013 nop
+ 80002c50: 00000013 nop
+ 80002c54: 1820da63 ble sp,ra,80002de8 <fail>
+ 80002c58: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c5c: 00200293 li t0,2
+ 80002c60: fe5212e3 bne tp,t0,80002c44 <test_14+0x8>
+
+0000000080002c64 <test_15>:
+ 80002c64: 00f00193 li gp,15
+ 80002c68: 00000213 li tp,0
+ 80002c6c: fff00093 li ra,-1
+ 80002c70: 00000013 nop
+ 80002c74: 00000113 li sp,0
+ 80002c78: 1620d863 ble sp,ra,80002de8 <fail>
+ 80002c7c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c80: 00200293 li t0,2
+ 80002c84: fe5214e3 bne tp,t0,80002c6c <test_15+0x8>
+
+0000000080002c88 <test_16>:
+ 80002c88: 01000193 li gp,16
+ 80002c8c: 00000213 li tp,0
+ 80002c90: fff00093 li ra,-1
+ 80002c94: 00000013 nop
+ 80002c98: 00000113 li sp,0
+ 80002c9c: 00000013 nop
+ 80002ca0: 1420d463 ble sp,ra,80002de8 <fail>
+ 80002ca4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ca8: 00200293 li t0,2
+ 80002cac: fe5212e3 bne tp,t0,80002c90 <test_16+0x8>
+
+0000000080002cb0 <test_17>:
+ 80002cb0: 01100193 li gp,17
+ 80002cb4: 00000213 li tp,0
+ 80002cb8: fff00093 li ra,-1
+ 80002cbc: 00000013 nop
+ 80002cc0: 00000013 nop
+ 80002cc4: 00000113 li sp,0
+ 80002cc8: 1220d063 ble sp,ra,80002de8 <fail>
+ 80002ccc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002cd0: 00200293 li t0,2
+ 80002cd4: fe5212e3 bne tp,t0,80002cb8 <test_17+0x8>
+
+0000000080002cd8 <test_18>:
+ 80002cd8: 01200193 li gp,18
+ 80002cdc: 00000213 li tp,0
+ 80002ce0: fff00093 li ra,-1
+ 80002ce4: 00000113 li sp,0
+ 80002ce8: 1020d063 ble sp,ra,80002de8 <fail>
+ 80002cec: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002cf0: 00200293 li t0,2
+ 80002cf4: fe5216e3 bne tp,t0,80002ce0 <test_18+0x8>
+
+0000000080002cf8 <test_19>:
+ 80002cf8: 01300193 li gp,19
+ 80002cfc: 00000213 li tp,0
+ 80002d00: fff00093 li ra,-1
+ 80002d04: 00000113 li sp,0
+ 80002d08: 00000013 nop
+ 80002d0c: 0c20de63 ble sp,ra,80002de8 <fail>
+ 80002d10: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d14: 00200293 li t0,2
+ 80002d18: fe5214e3 bne tp,t0,80002d00 <test_19+0x8>
+
+0000000080002d1c <test_20>:
+ 80002d1c: 01400193 li gp,20
+ 80002d20: 00000213 li tp,0
+ 80002d24: fff00093 li ra,-1
+ 80002d28: 00000113 li sp,0
+ 80002d2c: 00000013 nop
+ 80002d30: 00000013 nop
+ 80002d34: 0a20da63 ble sp,ra,80002de8 <fail>
+ 80002d38: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d3c: 00200293 li t0,2
+ 80002d40: fe5212e3 bne tp,t0,80002d24 <test_20+0x8>
+
+0000000080002d44 <test_21>:
+ 80002d44: 01500193 li gp,21
+ 80002d48: 00000213 li tp,0
+ 80002d4c: fff00093 li ra,-1
+ 80002d50: 00000013 nop
+ 80002d54: 00000113 li sp,0
+ 80002d58: 0820d863 ble sp,ra,80002de8 <fail>
+ 80002d5c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d60: 00200293 li t0,2
+ 80002d64: fe5214e3 bne tp,t0,80002d4c <test_21+0x8>
+
+0000000080002d68 <test_22>:
+ 80002d68: 01600193 li gp,22
+ 80002d6c: 00000213 li tp,0
+ 80002d70: fff00093 li ra,-1
+ 80002d74: 00000013 nop
+ 80002d78: 00000113 li sp,0
+ 80002d7c: 00000013 nop
+ 80002d80: 0620d463 ble sp,ra,80002de8 <fail>
+ 80002d84: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d88: 00200293 li t0,2
+ 80002d8c: fe5212e3 bne tp,t0,80002d70 <test_22+0x8>
+
+0000000080002d90 <test_23>:
+ 80002d90: 01700193 li gp,23
+ 80002d94: 00000213 li tp,0
+ 80002d98: fff00093 li ra,-1
+ 80002d9c: 00000013 nop
+ 80002da0: 00000013 nop
+ 80002da4: 00000113 li sp,0
+ 80002da8: 0420d063 ble sp,ra,80002de8 <fail>
+ 80002dac: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002db0: 00200293 li t0,2
+ 80002db4: fe5212e3 bne tp,t0,80002d98 <test_23+0x8>
+
+0000000080002db8 <test_24>:
+ 80002db8: 00100093 li ra,1
+ 80002dbc: 0000da63 bgez ra,80002dd0 <test_24+0x18>
+ 80002dc0: 00108093 addi ra,ra,1
+ 80002dc4: 00108093 addi ra,ra,1
+ 80002dc8: 00108093 addi ra,ra,1
+ 80002dcc: 00108093 addi ra,ra,1
+ 80002dd0: 00108093 addi ra,ra,1
+ 80002dd4: 00108093 addi ra,ra,1
+ 80002dd8: 00300e93 li t4,3
+ 80002ddc: 01800193 li gp,24
+ 80002de0: 01d09463 bne ra,t4,80002de8 <fail>
+ 80002de4: 00301a63 bne zero,gp,80002df8 <pass>
+
+0000000080002de8 <fail>:
+ 80002de8: 00119513 slli a0,gp,0x1
+ 80002dec: 00050063 beqz a0,80002dec <fail+0x4>
+ 80002df0: 00156513 ori a0,a0,1
+ 80002df4: 00000073 ecall
+
+0000000080002df8 <pass>:
+ 80002df8: 00100513 li a0,1
+ 80002dfc: 00000073 ecall
+ 80002e00: c0001073 unimp
diff --git a/test/tests/rv64ui-v-bge.elf b/test/tests/rv64ui-v-bge.elf
new file mode 100644
index 0000000..74af9d1
--- /dev/null
+++ b/test/tests/rv64ui-v-bge.elf
Binary files differ
diff --git a/test/tests/rv64ui-v-bgeu.dump b/test/tests/rv64ui-v-bgeu.dump
new file mode 100644
index 0000000..9544e42
--- /dev/null
+++ b/test/tests/rv64ui-v-bgeu.dump
@@ -0,0 +1,1138 @@
+
+rv64ui-v-bgeu: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <handle_reset>:
+ 8000000c: 00000297 auipc t0,0x0
+ 80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+ 80000014: 30529073 csrw mtvec,t0
+ 80000018: 00009117 auipc sp,0x9
+ 8000001c: 6b810113 addi sp,sp,1720 # 800096d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00002617 auipc a2,0x2
+ 80002318: cec60613 addi a2,a2,-788 # 80004000 <begin_signature>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00006797 auipc a5,0x6
+ 80002334: 4b878793 addi a5,a5,1208 # 800087e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00006717 auipc a4,0x6
+ 80002348: 49c70713 addi a4,a4,1180 # 800087e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00006897 auipc a7,0x6
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800087e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00006797 auipc a5,0x6
+ 80002384: 07078793 addi a5,a5,112 # 800083f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf7810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00006797 auipc a5,0x6
+ 80002448: 3807be23 sd zero,924(a5) # 800087e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00001697 auipc a3,0x1
+ 8000245c: a8868693 addi a3,a3,-1400 # 80002ee0 <pass+0x10>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00001617 auipc a2,0x1
+ 800024b8: abc60613 addi a2,a2,-1348 # 80002f70 <pass+0xa0>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00001617 auipc a2,0x1
+ 80002508: a8460613 addi a2,a2,-1404 # 80002f88 <pass+0xb8>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00001697 auipc a3,0x1
+ 80002558: 9d468693 addi a3,a3,-1580 # 80002f28 <pass+0x58>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00001697 auipc a3,0x1
+ 80002674: 9f068693 addi a3,a3,-1552 # 80003060 <pass+0x190>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00001617 auipc a2,0x1
+ 800026cc: 97060613 addi a2,a2,-1680 # 80003038 <pass+0x168>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00006d17 auipc s10,0x6
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800083f0 <user_mapping>
+ 80002724: 00002b97 auipc s7,0x2
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80004000 <begin_signature>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00006a17 auipc s4,0x6
+ 80002738: 0aca0a13 addi s4,s4,172 # 800087e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00006717 auipc a4,0x6
+ 8000274c: 08f73c23 sd a5,152(a4) # 800087e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00006717 auipc a4,0x6
+ 800027d4: 00f73823 sd a5,16(a4) # 800087e0 <freelist_tail>
+ 800027d8: 00006717 auipc a4,0x6
+ 800027dc: 00f73823 sd a5,16(a4) # 800087e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00001697 auipc a3,0x1
+ 800027f0: 8a468693 addi a3,a3,-1884 # 80003090 <pass+0x1c0>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 7c468693 addi a3,a3,1988 # 80003000 <pass+0x130>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 75468693 addi a3,a3,1876 # 80002fc8 <pass+0xf8>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00002697 auipc a3,0x2
+ 800028e0: 72468693 addi a3,a3,1828 # 80005000 <begin_signature+0x1000>
+ 800028e4: 00003717 auipc a4,0x3
+ 800028e8: 71c70713 addi a4,a4,1820 # 80006000 <begin_signature+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00004797 auipc a5,0x4
+ 800028f8: 70c78793 addi a5,a5,1804 # 80007000 <begin_signature+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00001897 auipc a7,0x1
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80004000 <begin_signature>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00002697 auipc a3,0x2
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80004ff8 <begin_signature+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00001617 auipc a2,0x1
+ 80002938: 6cc60613 addi a2,a2,1740 # 80004000 <begin_signature>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00004697 auipc a3,0x4
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80006ff8 <begin_signature+0x2ff8>
+ 8000294c: 00002717 auipc a4,0x2
+ 80002950: 6af73a23 sd a5,1716(a4) # 80005000 <begin_signature+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00005697 auipc a3,0x5
+ 800029c0: 64468693 addi a3,a3,1604 # 80008000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00006617 auipc a2,0x6
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800087e8 <freelist_head>
+ 800029d4: 00006797 auipc a5,0x6
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800087e0 <freelist_tail>
+ 800029dc: 00006317 auipc t1,0x6
+ 800029e0: a1430313 addi t1,t1,-1516 # 800083f0 <user_mapping>
+ 800029e4: 03d00793 li a5,61
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00006797 auipc a5,0x6
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800083e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 02e567b7 lui a5,0x2e56
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: eb078793 addi a5,a5,-336 # 2e55eb0 <_start-0x7d1aa150>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 00200193 li gp,2
+ 80002acc: 00000093 li ra,0
+ 80002ad0: 00000113 li sp,0
+ 80002ad4: 0020f663 bleu sp,ra,80002ae0 <userstart+0x18>
+ 80002ad8: 3e301463 bne zero,gp,80002ec0 <fail>
+ 80002adc: 00301663 bne zero,gp,80002ae8 <test_3>
+ 80002ae0: fe20fee3 bleu sp,ra,80002adc <userstart+0x14>
+ 80002ae4: 3c301e63 bne zero,gp,80002ec0 <fail>
+
+0000000080002ae8 <test_3>:
+ 80002ae8: 00300193 li gp,3
+ 80002aec: 00100093 li ra,1
+ 80002af0: 00100113 li sp,1
+ 80002af4: 0020f663 bleu sp,ra,80002b00 <test_3+0x18>
+ 80002af8: 3c301463 bne zero,gp,80002ec0 <fail>
+ 80002afc: 00301663 bne zero,gp,80002b08 <test_4>
+ 80002b00: fe20fee3 bleu sp,ra,80002afc <test_3+0x14>
+ 80002b04: 3a301e63 bne zero,gp,80002ec0 <fail>
+
+0000000080002b08 <test_4>:
+ 80002b08: 00400193 li gp,4
+ 80002b0c: 0010009b addiw ra,zero,1
+ 80002b10: 02009093 slli ra,ra,0x20
+ 80002b14: fff08093 addi ra,ra,-1
+ 80002b18: 0010011b addiw sp,zero,1
+ 80002b1c: 02011113 slli sp,sp,0x20
+ 80002b20: fff10113 addi sp,sp,-1
+ 80002b24: 0020f663 bleu sp,ra,80002b30 <test_4+0x28>
+ 80002b28: 38301c63 bne zero,gp,80002ec0 <fail>
+ 80002b2c: 00301663 bne zero,gp,80002b38 <test_5>
+ 80002b30: fe20fee3 bleu sp,ra,80002b2c <test_4+0x24>
+ 80002b34: 38301663 bne zero,gp,80002ec0 <fail>
+
+0000000080002b38 <test_5>:
+ 80002b38: 00500193 li gp,5
+ 80002b3c: 00100093 li ra,1
+ 80002b40: 00000113 li sp,0
+ 80002b44: 0020f663 bleu sp,ra,80002b50 <test_5+0x18>
+ 80002b48: 36301c63 bne zero,gp,80002ec0 <fail>
+ 80002b4c: 00301663 bne zero,gp,80002b58 <test_6>
+ 80002b50: fe20fee3 bleu sp,ra,80002b4c <test_5+0x14>
+ 80002b54: 36301663 bne zero,gp,80002ec0 <fail>
+
+0000000080002b58 <test_6>:
+ 80002b58: 00600193 li gp,6
+ 80002b5c: 0010009b addiw ra,zero,1
+ 80002b60: 02009093 slli ra,ra,0x20
+ 80002b64: fff08093 addi ra,ra,-1
+ 80002b68: 0010011b addiw sp,zero,1
+ 80002b6c: 02011113 slli sp,sp,0x20
+ 80002b70: ffe10113 addi sp,sp,-2
+ 80002b74: 0020f663 bleu sp,ra,80002b80 <test_6+0x28>
+ 80002b78: 34301463 bne zero,gp,80002ec0 <fail>
+ 80002b7c: 00301663 bne zero,gp,80002b88 <test_7>
+ 80002b80: fe20fee3 bleu sp,ra,80002b7c <test_6+0x24>
+ 80002b84: 32301e63 bne zero,gp,80002ec0 <fail>
+
+0000000080002b88 <test_7>:
+ 80002b88: 00700193 li gp,7
+ 80002b8c: 0010009b addiw ra,zero,1
+ 80002b90: 02009093 slli ra,ra,0x20
+ 80002b94: fff08093 addi ra,ra,-1
+ 80002b98: 00000113 li sp,0
+ 80002b9c: 0020f663 bleu sp,ra,80002ba8 <test_7+0x20>
+ 80002ba0: 32301063 bne zero,gp,80002ec0 <fail>
+ 80002ba4: 00301663 bne zero,gp,80002bb0 <test_8>
+ 80002ba8: fe20fee3 bleu sp,ra,80002ba4 <test_7+0x1c>
+ 80002bac: 30301a63 bne zero,gp,80002ec0 <fail>
+
+0000000080002bb0 <test_8>:
+ 80002bb0: 00800193 li gp,8
+ 80002bb4: 00000093 li ra,0
+ 80002bb8: 00100113 li sp,1
+ 80002bbc: 0020f463 bleu sp,ra,80002bc4 <test_8+0x14>
+ 80002bc0: 00301463 bne zero,gp,80002bc8 <test_8+0x18>
+ 80002bc4: 2e301e63 bne zero,gp,80002ec0 <fail>
+ 80002bc8: fe20fee3 bleu sp,ra,80002bc4 <test_8+0x14>
+
+0000000080002bcc <test_9>:
+ 80002bcc: 00900193 li gp,9
+ 80002bd0: 0010009b addiw ra,zero,1
+ 80002bd4: 02009093 slli ra,ra,0x20
+ 80002bd8: ffe08093 addi ra,ra,-2
+ 80002bdc: 0010011b addiw sp,zero,1
+ 80002be0: 02011113 slli sp,sp,0x20
+ 80002be4: fff10113 addi sp,sp,-1
+ 80002be8: 0020f463 bleu sp,ra,80002bf0 <test_9+0x24>
+ 80002bec: 00301463 bne zero,gp,80002bf4 <test_9+0x28>
+ 80002bf0: 2c301863 bne zero,gp,80002ec0 <fail>
+ 80002bf4: fe20fee3 bleu sp,ra,80002bf0 <test_9+0x24>
+
+0000000080002bf8 <test_10>:
+ 80002bf8: 00a00193 li gp,10
+ 80002bfc: 00000093 li ra,0
+ 80002c00: 0010011b addiw sp,zero,1
+ 80002c04: 02011113 slli sp,sp,0x20
+ 80002c08: fff10113 addi sp,sp,-1
+ 80002c0c: 0020f463 bleu sp,ra,80002c14 <test_10+0x1c>
+ 80002c10: 00301463 bne zero,gp,80002c18 <test_10+0x20>
+ 80002c14: 2a301663 bne zero,gp,80002ec0 <fail>
+ 80002c18: fe20fee3 bleu sp,ra,80002c14 <test_10+0x1c>
+
+0000000080002c1c <test_11>:
+ 80002c1c: 00b00193 li gp,11
+ 80002c20: 800000b7 lui ra,0x80000
+ 80002c24: fff0809b addiw ra,ra,-1
+ 80002c28: 0010011b addiw sp,zero,1
+ 80002c2c: 01f11113 slli sp,sp,0x1f
+ 80002c30: 0020f463 bleu sp,ra,80002c38 <test_11+0x1c>
+ 80002c34: 00301463 bne zero,gp,80002c3c <test_11+0x20>
+ 80002c38: 28301463 bne zero,gp,80002ec0 <fail>
+ 80002c3c: fe20fee3 bleu sp,ra,80002c38 <test_11+0x1c>
+
+0000000080002c40 <test_12>:
+ 80002c40: 00c00193 li gp,12
+ 80002c44: 00000213 li tp,0
+ 80002c48: 00f0009b addiw ra,zero,15
+ 80002c4c: 01c09093 slli ra,ra,0x1c
+ 80002c50: fff08093 addi ra,ra,-1 # ffffffff7fffffff <_end+0xfffffffeffff780f>
+ 80002c54: 00f0011b addiw sp,zero,15
+ 80002c58: 01c11113 slli sp,sp,0x1c
+ 80002c5c: 2620f263 bleu sp,ra,80002ec0 <fail>
+ 80002c60: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c64: 00200293 li t0,2
+ 80002c68: fe5210e3 bne tp,t0,80002c48 <test_12+0x8>
+
+0000000080002c6c <test_13>:
+ 80002c6c: 00d00193 li gp,13
+ 80002c70: 00000213 li tp,0
+ 80002c74: 00f0009b addiw ra,zero,15
+ 80002c78: 01c09093 slli ra,ra,0x1c
+ 80002c7c: fff08093 addi ra,ra,-1
+ 80002c80: 00f0011b addiw sp,zero,15
+ 80002c84: 01c11113 slli sp,sp,0x1c
+ 80002c88: 00000013 nop
+ 80002c8c: 2220fa63 bleu sp,ra,80002ec0 <fail>
+ 80002c90: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c94: 00200293 li t0,2
+ 80002c98: fc521ee3 bne tp,t0,80002c74 <test_13+0x8>
+
+0000000080002c9c <test_14>:
+ 80002c9c: 00e00193 li gp,14
+ 80002ca0: 00000213 li tp,0
+ 80002ca4: 00f0009b addiw ra,zero,15
+ 80002ca8: 01c09093 slli ra,ra,0x1c
+ 80002cac: fff08093 addi ra,ra,-1
+ 80002cb0: 00f0011b addiw sp,zero,15
+ 80002cb4: 01c11113 slli sp,sp,0x1c
+ 80002cb8: 00000013 nop
+ 80002cbc: 00000013 nop
+ 80002cc0: 2020f063 bleu sp,ra,80002ec0 <fail>
+ 80002cc4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002cc8: 00200293 li t0,2
+ 80002ccc: fc521ce3 bne tp,t0,80002ca4 <test_14+0x8>
+
+0000000080002cd0 <test_15>:
+ 80002cd0: 00f00193 li gp,15
+ 80002cd4: 00000213 li tp,0
+ 80002cd8: 00f0009b addiw ra,zero,15
+ 80002cdc: 01c09093 slli ra,ra,0x1c
+ 80002ce0: fff08093 addi ra,ra,-1
+ 80002ce4: 00000013 nop
+ 80002ce8: 00f0011b addiw sp,zero,15
+ 80002cec: 01c11113 slli sp,sp,0x1c
+ 80002cf0: 1c20f863 bleu sp,ra,80002ec0 <fail>
+ 80002cf4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002cf8: 00200293 li t0,2
+ 80002cfc: fc521ee3 bne tp,t0,80002cd8 <test_15+0x8>
+
+0000000080002d00 <test_16>:
+ 80002d00: 01000193 li gp,16
+ 80002d04: 00000213 li tp,0
+ 80002d08: 00f0009b addiw ra,zero,15
+ 80002d0c: 01c09093 slli ra,ra,0x1c
+ 80002d10: fff08093 addi ra,ra,-1
+ 80002d14: 00000013 nop
+ 80002d18: 00f0011b addiw sp,zero,15
+ 80002d1c: 01c11113 slli sp,sp,0x1c
+ 80002d20: 00000013 nop
+ 80002d24: 1820fe63 bleu sp,ra,80002ec0 <fail>
+ 80002d28: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d2c: 00200293 li t0,2
+ 80002d30: fc521ce3 bne tp,t0,80002d08 <test_16+0x8>
+
+0000000080002d34 <test_17>:
+ 80002d34: 01100193 li gp,17
+ 80002d38: 00000213 li tp,0
+ 80002d3c: 00f0009b addiw ra,zero,15
+ 80002d40: 01c09093 slli ra,ra,0x1c
+ 80002d44: fff08093 addi ra,ra,-1
+ 80002d48: 00000013 nop
+ 80002d4c: 00000013 nop
+ 80002d50: 00f0011b addiw sp,zero,15
+ 80002d54: 01c11113 slli sp,sp,0x1c
+ 80002d58: 1620f463 bleu sp,ra,80002ec0 <fail>
+ 80002d5c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d60: 00200293 li t0,2
+ 80002d64: fc521ce3 bne tp,t0,80002d3c <test_17+0x8>
+
+0000000080002d68 <test_18>:
+ 80002d68: 01200193 li gp,18
+ 80002d6c: 00000213 li tp,0
+ 80002d70: 00f0009b addiw ra,zero,15
+ 80002d74: 01c09093 slli ra,ra,0x1c
+ 80002d78: fff08093 addi ra,ra,-1
+ 80002d7c: 00f0011b addiw sp,zero,15
+ 80002d80: 01c11113 slli sp,sp,0x1c
+ 80002d84: 1220fe63 bleu sp,ra,80002ec0 <fail>
+ 80002d88: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d8c: 00200293 li t0,2
+ 80002d90: fe5210e3 bne tp,t0,80002d70 <test_18+0x8>
+
+0000000080002d94 <test_19>:
+ 80002d94: 01300193 li gp,19
+ 80002d98: 00000213 li tp,0
+ 80002d9c: 00f0009b addiw ra,zero,15
+ 80002da0: 01c09093 slli ra,ra,0x1c
+ 80002da4: fff08093 addi ra,ra,-1
+ 80002da8: 00f0011b addiw sp,zero,15
+ 80002dac: 01c11113 slli sp,sp,0x1c
+ 80002db0: 00000013 nop
+ 80002db4: 1020f663 bleu sp,ra,80002ec0 <fail>
+ 80002db8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002dbc: 00200293 li t0,2
+ 80002dc0: fc521ee3 bne tp,t0,80002d9c <test_19+0x8>
+
+0000000080002dc4 <test_20>:
+ 80002dc4: 01400193 li gp,20
+ 80002dc8: 00000213 li tp,0
+ 80002dcc: 00f0009b addiw ra,zero,15
+ 80002dd0: 01c09093 slli ra,ra,0x1c
+ 80002dd4: fff08093 addi ra,ra,-1
+ 80002dd8: 00f0011b addiw sp,zero,15
+ 80002ddc: 01c11113 slli sp,sp,0x1c
+ 80002de0: 00000013 nop
+ 80002de4: 00000013 nop
+ 80002de8: 0c20fc63 bleu sp,ra,80002ec0 <fail>
+ 80002dec: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002df0: 00200293 li t0,2
+ 80002df4: fc521ce3 bne tp,t0,80002dcc <test_20+0x8>
+
+0000000080002df8 <test_21>:
+ 80002df8: 01500193 li gp,21
+ 80002dfc: 00000213 li tp,0
+ 80002e00: 00f0009b addiw ra,zero,15
+ 80002e04: 01c09093 slli ra,ra,0x1c
+ 80002e08: fff08093 addi ra,ra,-1
+ 80002e0c: 00000013 nop
+ 80002e10: 00f0011b addiw sp,zero,15
+ 80002e14: 01c11113 slli sp,sp,0x1c
+ 80002e18: 0a20f463 bleu sp,ra,80002ec0 <fail>
+ 80002e1c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e20: 00200293 li t0,2
+ 80002e24: fc521ee3 bne tp,t0,80002e00 <test_21+0x8>
+
+0000000080002e28 <test_22>:
+ 80002e28: 01600193 li gp,22
+ 80002e2c: 00000213 li tp,0
+ 80002e30: 00f0009b addiw ra,zero,15
+ 80002e34: 01c09093 slli ra,ra,0x1c
+ 80002e38: fff08093 addi ra,ra,-1
+ 80002e3c: 00000013 nop
+ 80002e40: 00f0011b addiw sp,zero,15
+ 80002e44: 01c11113 slli sp,sp,0x1c
+ 80002e48: 00000013 nop
+ 80002e4c: 0620fa63 bleu sp,ra,80002ec0 <fail>
+ 80002e50: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e54: 00200293 li t0,2
+ 80002e58: fc521ce3 bne tp,t0,80002e30 <test_22+0x8>
+
+0000000080002e5c <test_23>:
+ 80002e5c: 01700193 li gp,23
+ 80002e60: 00000213 li tp,0
+ 80002e64: 00f0009b addiw ra,zero,15
+ 80002e68: 01c09093 slli ra,ra,0x1c
+ 80002e6c: fff08093 addi ra,ra,-1
+ 80002e70: 00000013 nop
+ 80002e74: 00000013 nop
+ 80002e78: 00f0011b addiw sp,zero,15
+ 80002e7c: 01c11113 slli sp,sp,0x1c
+ 80002e80: 0420f063 bleu sp,ra,80002ec0 <fail>
+ 80002e84: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e88: 00200293 li t0,2
+ 80002e8c: fc521ce3 bne tp,t0,80002e64 <test_23+0x8>
+
+0000000080002e90 <test_24>:
+ 80002e90: 00100093 li ra,1
+ 80002e94: 0000fa63 bleu zero,ra,80002ea8 <test_24+0x18>
+ 80002e98: 00108093 addi ra,ra,1
+ 80002e9c: 00108093 addi ra,ra,1
+ 80002ea0: 00108093 addi ra,ra,1
+ 80002ea4: 00108093 addi ra,ra,1
+ 80002ea8: 00108093 addi ra,ra,1
+ 80002eac: 00108093 addi ra,ra,1
+ 80002eb0: 00300e93 li t4,3
+ 80002eb4: 01800193 li gp,24
+ 80002eb8: 01d09463 bne ra,t4,80002ec0 <fail>
+ 80002ebc: 00301a63 bne zero,gp,80002ed0 <pass>
+
+0000000080002ec0 <fail>:
+ 80002ec0: 00119513 slli a0,gp,0x1
+ 80002ec4: 00050063 beqz a0,80002ec4 <fail+0x4>
+ 80002ec8: 00156513 ori a0,a0,1
+ 80002ecc: 00000073 ecall
+
+0000000080002ed0 <pass>:
+ 80002ed0: 00100513 li a0,1
+ 80002ed4: 00000073 ecall
+ 80002ed8: c0001073 unimp
diff --git a/test/tests/rv64ui-v-bgeu.elf b/test/tests/rv64ui-v-bgeu.elf
new file mode 100644
index 0000000..469b817
--- /dev/null
+++ b/test/tests/rv64ui-v-bgeu.elf
Binary files differ
diff --git a/test/tests/rv64ui-v-blt.dump b/test/tests/rv64ui-v-blt.dump
new file mode 100644
index 0000000..c0eaae6
--- /dev/null
+++ b/test/tests/rv64ui-v-blt.dump
@@ -0,0 +1,1054 @@
+
+rv64ui-v-blt: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <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: 6b810113 addi sp,sp,1720 # 800086d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00001617 auipc a2,0x1
+ 80002318: cec60613 addi a2,a2,-788 # 80003000 <begin_signature>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00005797 auipc a5,0x5
+ 80002334: 4b878793 addi a5,a5,1208 # 800077e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00005717 auipc a4,0x5
+ 80002348: 49c70713 addi a4,a4,1180 # 800077e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00005897 auipc a7,0x5
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800077e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00005797 auipc a5,0x5
+ 80002384: 07078793 addi a5,a5,112 # 800073f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf8810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00005797 auipc a5,0x5
+ 80002448: 3807be23 sd zero,924(a5) # 800077e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00001697 auipc a3,0x1
+ 8000245c: 95068693 addi a3,a3,-1712 # 80002da8 <pass+0x10>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00001617 auipc a2,0x1
+ 800024b8: 98460613 addi a2,a2,-1660 # 80002e38 <pass+0xa0>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00001617 auipc a2,0x1
+ 80002508: 94c60613 addi a2,a2,-1716 # 80002e50 <pass+0xb8>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00001697 auipc a3,0x1
+ 80002558: 89c68693 addi a3,a3,-1892 # 80002df0 <pass+0x58>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00001697 auipc a3,0x1
+ 80002674: 8b868693 addi a3,a3,-1864 # 80002f28 <pass+0x190>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00001617 auipc a2,0x1
+ 800026cc: 83860613 addi a2,a2,-1992 # 80002f00 <pass+0x168>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00005d17 auipc s10,0x5
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800073f0 <user_mapping>
+ 80002724: 00001b97 auipc s7,0x1
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80003000 <begin_signature>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00005a17 auipc s4,0x5
+ 80002738: 0aca0a13 addi s4,s4,172 # 800077e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00005717 auipc a4,0x5
+ 8000274c: 08f73c23 sd a5,152(a4) # 800077e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00005717 auipc a4,0x5
+ 800027d4: 00f73823 sd a5,16(a4) # 800077e0 <freelist_tail>
+ 800027d8: 00005717 auipc a4,0x5
+ 800027dc: 00f73823 sd a5,16(a4) # 800077e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 76c68693 addi a3,a3,1900 # 80002f58 <pass+0x1c0>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 68c68693 addi a3,a3,1676 # 80002ec8 <pass+0x130>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 61c68693 addi a3,a3,1564 # 80002e90 <pass+0xf8>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00001697 auipc a3,0x1
+ 800028e0: 72468693 addi a3,a3,1828 # 80004000 <begin_signature+0x1000>
+ 800028e4: 00002717 auipc a4,0x2
+ 800028e8: 71c70713 addi a4,a4,1820 # 80005000 <begin_signature+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00003797 auipc a5,0x3
+ 800028f8: 70c78793 addi a5,a5,1804 # 80006000 <begin_signature+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00000897 auipc a7,0x0
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80003000 <begin_signature>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00001697 auipc a3,0x1
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80003ff8 <begin_signature+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00000617 auipc a2,0x0
+ 80002938: 6cc60613 addi a2,a2,1740 # 80003000 <begin_signature>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00003697 auipc a3,0x3
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80005ff8 <begin_signature+0x2ff8>
+ 8000294c: 00001717 auipc a4,0x1
+ 80002950: 6af73a23 sd a5,1716(a4) # 80004000 <begin_signature+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00004697 auipc a3,0x4
+ 800029c0: 64468693 addi a3,a3,1604 # 80007000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00005617 auipc a2,0x5
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800077e8 <freelist_head>
+ 800029d4: 00005797 auipc a5,0x5
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800077e0 <freelist_tail>
+ 800029dc: 00005317 auipc t1,0x5
+ 800029e0: a1430313 addi t1,t1,-1516 # 800073f0 <user_mapping>
+ 800029e4: 01300793 li a5,19
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00005797 auipc a5,0x5
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800073e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 01a3a7b7 lui a5,0x1a3a
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: b4178793 addi a5,a5,-1215 # 1a39b41 <_start-0x7e5c64bf>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 00200193 li gp,2
+ 80002acc: 00000093 li ra,0
+ 80002ad0: 00100113 li sp,1
+ 80002ad4: 0020c663 blt ra,sp,80002ae0 <userstart+0x18>
+ 80002ad8: 2a301863 bne zero,gp,80002d88 <fail>
+ 80002adc: 00301663 bne zero,gp,80002ae8 <test_3>
+ 80002ae0: fe20cee3 blt ra,sp,80002adc <userstart+0x14>
+ 80002ae4: 2a301263 bne zero,gp,80002d88 <fail>
+
+0000000080002ae8 <test_3>:
+ 80002ae8: 00300193 li gp,3
+ 80002aec: fff00093 li ra,-1
+ 80002af0: 00100113 li sp,1
+ 80002af4: 0020c663 blt ra,sp,80002b00 <test_3+0x18>
+ 80002af8: 28301863 bne zero,gp,80002d88 <fail>
+ 80002afc: 00301663 bne zero,gp,80002b08 <test_4>
+ 80002b00: fe20cee3 blt ra,sp,80002afc <test_3+0x14>
+ 80002b04: 28301263 bne zero,gp,80002d88 <fail>
+
+0000000080002b08 <test_4>:
+ 80002b08: 00400193 li gp,4
+ 80002b0c: ffe00093 li ra,-2
+ 80002b10: fff00113 li sp,-1
+ 80002b14: 0020c663 blt ra,sp,80002b20 <test_4+0x18>
+ 80002b18: 26301863 bne zero,gp,80002d88 <fail>
+ 80002b1c: 00301663 bne zero,gp,80002b28 <test_5>
+ 80002b20: fe20cee3 blt ra,sp,80002b1c <test_4+0x14>
+ 80002b24: 26301263 bne zero,gp,80002d88 <fail>
+
+0000000080002b28 <test_5>:
+ 80002b28: 00500193 li gp,5
+ 80002b2c: 00100093 li ra,1
+ 80002b30: 00000113 li sp,0
+ 80002b34: 0020c463 blt ra,sp,80002b3c <test_5+0x14>
+ 80002b38: 00301463 bne zero,gp,80002b40 <test_5+0x18>
+ 80002b3c: 24301663 bne zero,gp,80002d88 <fail>
+ 80002b40: fe20cee3 blt ra,sp,80002b3c <test_5+0x14>
+
+0000000080002b44 <test_6>:
+ 80002b44: 00600193 li gp,6
+ 80002b48: 00100093 li ra,1
+ 80002b4c: fff00113 li sp,-1
+ 80002b50: 0020c463 blt ra,sp,80002b58 <test_6+0x14>
+ 80002b54: 00301463 bne zero,gp,80002b5c <test_6+0x18>
+ 80002b58: 22301863 bne zero,gp,80002d88 <fail>
+ 80002b5c: fe20cee3 blt ra,sp,80002b58 <test_6+0x14>
+
+0000000080002b60 <test_7>:
+ 80002b60: 00700193 li gp,7
+ 80002b64: fff00093 li ra,-1
+ 80002b68: ffe00113 li sp,-2
+ 80002b6c: 0020c463 blt ra,sp,80002b74 <test_7+0x14>
+ 80002b70: 00301463 bne zero,gp,80002b78 <test_7+0x18>
+ 80002b74: 20301a63 bne zero,gp,80002d88 <fail>
+ 80002b78: fe20cee3 blt ra,sp,80002b74 <test_7+0x14>
+
+0000000080002b7c <test_8>:
+ 80002b7c: 00800193 li gp,8
+ 80002b80: 00100093 li ra,1
+ 80002b84: ffe00113 li sp,-2
+ 80002b88: 0020c463 blt ra,sp,80002b90 <test_8+0x14>
+ 80002b8c: 00301463 bne zero,gp,80002b94 <test_8+0x18>
+ 80002b90: 1e301c63 bne zero,gp,80002d88 <fail>
+ 80002b94: fe20cee3 blt ra,sp,80002b90 <test_8+0x14>
+
+0000000080002b98 <test_9>:
+ 80002b98: 00900193 li gp,9
+ 80002b9c: 00000213 li tp,0
+ 80002ba0: 00000093 li ra,0
+ 80002ba4: fff00113 li sp,-1
+ 80002ba8: 1e20c063 blt ra,sp,80002d88 <fail>
+ 80002bac: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002bb0: 00200293 li t0,2
+ 80002bb4: fe5216e3 bne tp,t0,80002ba0 <test_9+0x8>
+
+0000000080002bb8 <test_10>:
+ 80002bb8: 00a00193 li gp,10
+ 80002bbc: 00000213 li tp,0
+ 80002bc0: 00000093 li ra,0
+ 80002bc4: fff00113 li sp,-1
+ 80002bc8: 00000013 nop
+ 80002bcc: 1a20ce63 blt ra,sp,80002d88 <fail>
+ 80002bd0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002bd4: 00200293 li t0,2
+ 80002bd8: fe5214e3 bne tp,t0,80002bc0 <test_10+0x8>
+
+0000000080002bdc <test_11>:
+ 80002bdc: 00b00193 li gp,11
+ 80002be0: 00000213 li tp,0
+ 80002be4: 00000093 li ra,0
+ 80002be8: fff00113 li sp,-1
+ 80002bec: 00000013 nop
+ 80002bf0: 00000013 nop
+ 80002bf4: 1820ca63 blt ra,sp,80002d88 <fail>
+ 80002bf8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002bfc: 00200293 li t0,2
+ 80002c00: fe5212e3 bne tp,t0,80002be4 <test_11+0x8>
+
+0000000080002c04 <test_12>:
+ 80002c04: 00c00193 li gp,12
+ 80002c08: 00000213 li tp,0
+ 80002c0c: 00000093 li ra,0
+ 80002c10: 00000013 nop
+ 80002c14: fff00113 li sp,-1
+ 80002c18: 1620c863 blt ra,sp,80002d88 <fail>
+ 80002c1c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c20: 00200293 li t0,2
+ 80002c24: fe5214e3 bne tp,t0,80002c0c <test_12+0x8>
+
+0000000080002c28 <test_13>:
+ 80002c28: 00d00193 li gp,13
+ 80002c2c: 00000213 li tp,0
+ 80002c30: 00000093 li ra,0
+ 80002c34: 00000013 nop
+ 80002c38: fff00113 li sp,-1
+ 80002c3c: 00000013 nop
+ 80002c40: 1420c463 blt ra,sp,80002d88 <fail>
+ 80002c44: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c48: 00200293 li t0,2
+ 80002c4c: fe5212e3 bne tp,t0,80002c30 <test_13+0x8>
+
+0000000080002c50 <test_14>:
+ 80002c50: 00e00193 li gp,14
+ 80002c54: 00000213 li tp,0
+ 80002c58: 00000093 li ra,0
+ 80002c5c: 00000013 nop
+ 80002c60: 00000013 nop
+ 80002c64: fff00113 li sp,-1
+ 80002c68: 1220c063 blt ra,sp,80002d88 <fail>
+ 80002c6c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c70: 00200293 li t0,2
+ 80002c74: fe5212e3 bne tp,t0,80002c58 <test_14+0x8>
+
+0000000080002c78 <test_15>:
+ 80002c78: 00f00193 li gp,15
+ 80002c7c: 00000213 li tp,0
+ 80002c80: 00000093 li ra,0
+ 80002c84: fff00113 li sp,-1
+ 80002c88: 1020c063 blt ra,sp,80002d88 <fail>
+ 80002c8c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c90: 00200293 li t0,2
+ 80002c94: fe5216e3 bne tp,t0,80002c80 <test_15+0x8>
+
+0000000080002c98 <test_16>:
+ 80002c98: 01000193 li gp,16
+ 80002c9c: 00000213 li tp,0
+ 80002ca0: 00000093 li ra,0
+ 80002ca4: fff00113 li sp,-1
+ 80002ca8: 00000013 nop
+ 80002cac: 0c20ce63 blt ra,sp,80002d88 <fail>
+ 80002cb0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002cb4: 00200293 li t0,2
+ 80002cb8: fe5214e3 bne tp,t0,80002ca0 <test_16+0x8>
+
+0000000080002cbc <test_17>:
+ 80002cbc: 01100193 li gp,17
+ 80002cc0: 00000213 li tp,0
+ 80002cc4: 00000093 li ra,0
+ 80002cc8: fff00113 li sp,-1
+ 80002ccc: 00000013 nop
+ 80002cd0: 00000013 nop
+ 80002cd4: 0a20ca63 blt ra,sp,80002d88 <fail>
+ 80002cd8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002cdc: 00200293 li t0,2
+ 80002ce0: fe5212e3 bne tp,t0,80002cc4 <test_17+0x8>
+
+0000000080002ce4 <test_18>:
+ 80002ce4: 01200193 li gp,18
+ 80002ce8: 00000213 li tp,0
+ 80002cec: 00000093 li ra,0
+ 80002cf0: 00000013 nop
+ 80002cf4: fff00113 li sp,-1
+ 80002cf8: 0820c863 blt ra,sp,80002d88 <fail>
+ 80002cfc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d00: 00200293 li t0,2
+ 80002d04: fe5214e3 bne tp,t0,80002cec <test_18+0x8>
+
+0000000080002d08 <test_19>:
+ 80002d08: 01300193 li gp,19
+ 80002d0c: 00000213 li tp,0
+ 80002d10: 00000093 li ra,0
+ 80002d14: 00000013 nop
+ 80002d18: fff00113 li sp,-1
+ 80002d1c: 00000013 nop
+ 80002d20: 0620c463 blt ra,sp,80002d88 <fail>
+ 80002d24: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d28: 00200293 li t0,2
+ 80002d2c: fe5212e3 bne tp,t0,80002d10 <test_19+0x8>
+
+0000000080002d30 <test_20>:
+ 80002d30: 01400193 li gp,20
+ 80002d34: 00000213 li tp,0
+ 80002d38: 00000093 li ra,0
+ 80002d3c: 00000013 nop
+ 80002d40: 00000013 nop
+ 80002d44: fff00113 li sp,-1
+ 80002d48: 0420c063 blt ra,sp,80002d88 <fail>
+ 80002d4c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d50: 00200293 li t0,2
+ 80002d54: fe5212e3 bne tp,t0,80002d38 <test_20+0x8>
+
+0000000080002d58 <test_21>:
+ 80002d58: 00100093 li ra,1
+ 80002d5c: 00104a63 bgtz ra,80002d70 <test_21+0x18>
+ 80002d60: 00108093 addi ra,ra,1
+ 80002d64: 00108093 addi ra,ra,1
+ 80002d68: 00108093 addi ra,ra,1
+ 80002d6c: 00108093 addi ra,ra,1
+ 80002d70: 00108093 addi ra,ra,1
+ 80002d74: 00108093 addi ra,ra,1
+ 80002d78: 00300e93 li t4,3
+ 80002d7c: 01500193 li gp,21
+ 80002d80: 01d09463 bne ra,t4,80002d88 <fail>
+ 80002d84: 00301a63 bne zero,gp,80002d98 <pass>
+
+0000000080002d88 <fail>:
+ 80002d88: 00119513 slli a0,gp,0x1
+ 80002d8c: 00050063 beqz a0,80002d8c <fail+0x4>
+ 80002d90: 00156513 ori a0,a0,1
+ 80002d94: 00000073 ecall
+
+0000000080002d98 <pass>:
+ 80002d98: 00100513 li a0,1
+ 80002d9c: 00000073 ecall
+ 80002da0: c0001073 unimp
diff --git a/test/tests/rv64ui-v-blt.elf b/test/tests/rv64ui-v-blt.elf
new file mode 100644
index 0000000..1232ebb
--- /dev/null
+++ b/test/tests/rv64ui-v-blt.elf
Binary files differ
diff --git a/test/tests/rv64ui-v-bltu.dump b/test/tests/rv64ui-v-bltu.dump
new file mode 100644
index 0000000..bf46506
--- /dev/null
+++ b/test/tests/rv64ui-v-bltu.dump
@@ -0,0 +1,1104 @@
+
+rv64ui-v-bltu: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <handle_reset>:
+ 8000000c: 00000297 auipc t0,0x0
+ 80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+ 80000014: 30529073 csrw mtvec,t0
+ 80000018: 00009117 auipc sp,0x9
+ 8000001c: 6b810113 addi sp,sp,1720 # 800096d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00002617 auipc a2,0x2
+ 80002318: cec60613 addi a2,a2,-788 # 80004000 <begin_signature>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00006797 auipc a5,0x6
+ 80002334: 4b878793 addi a5,a5,1208 # 800087e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00006717 auipc a4,0x6
+ 80002348: 49c70713 addi a4,a4,1180 # 800087e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00006897 auipc a7,0x6
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800087e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00006797 auipc a5,0x6
+ 80002384: 07078793 addi a5,a5,112 # 800083f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf7810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00006797 auipc a5,0x6
+ 80002448: 3807be23 sd zero,924(a5) # 800087e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00001697 auipc a3,0x1
+ 8000245c: a1868693 addi a3,a3,-1512 # 80002e70 <pass+0x10>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00001617 auipc a2,0x1
+ 800024b8: a4c60613 addi a2,a2,-1460 # 80002f00 <pass+0xa0>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00001617 auipc a2,0x1
+ 80002508: a1460613 addi a2,a2,-1516 # 80002f18 <pass+0xb8>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00001697 auipc a3,0x1
+ 80002558: 96468693 addi a3,a3,-1692 # 80002eb8 <pass+0x58>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00001697 auipc a3,0x1
+ 80002674: 98068693 addi a3,a3,-1664 # 80002ff0 <pass+0x190>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00001617 auipc a2,0x1
+ 800026cc: 90060613 addi a2,a2,-1792 # 80002fc8 <pass+0x168>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00006d17 auipc s10,0x6
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800083f0 <user_mapping>
+ 80002724: 00002b97 auipc s7,0x2
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80004000 <begin_signature>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00006a17 auipc s4,0x6
+ 80002738: 0aca0a13 addi s4,s4,172 # 800087e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00006717 auipc a4,0x6
+ 8000274c: 08f73c23 sd a5,152(a4) # 800087e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00006717 auipc a4,0x6
+ 800027d4: 00f73823 sd a5,16(a4) # 800087e0 <freelist_tail>
+ 800027d8: 00006717 auipc a4,0x6
+ 800027dc: 00f73823 sd a5,16(a4) # 800087e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00001697 auipc a3,0x1
+ 800027f0: 83468693 addi a3,a3,-1996 # 80003020 <pass+0x1c0>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 75468693 addi a3,a3,1876 # 80002f90 <pass+0x130>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 6e468693 addi a3,a3,1764 # 80002f58 <pass+0xf8>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00002697 auipc a3,0x2
+ 800028e0: 72468693 addi a3,a3,1828 # 80005000 <begin_signature+0x1000>
+ 800028e4: 00003717 auipc a4,0x3
+ 800028e8: 71c70713 addi a4,a4,1820 # 80006000 <begin_signature+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00004797 auipc a5,0x4
+ 800028f8: 70c78793 addi a5,a5,1804 # 80007000 <begin_signature+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00001897 auipc a7,0x1
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80004000 <begin_signature>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00002697 auipc a3,0x2
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80004ff8 <begin_signature+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00001617 auipc a2,0x1
+ 80002938: 6cc60613 addi a2,a2,1740 # 80004000 <begin_signature>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00004697 auipc a3,0x4
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80006ff8 <begin_signature+0x2ff8>
+ 8000294c: 00002717 auipc a4,0x2
+ 80002950: 6af73a23 sd a5,1716(a4) # 80005000 <begin_signature+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00005697 auipc a3,0x5
+ 800029c0: 64468693 addi a3,a3,1604 # 80008000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00006617 auipc a2,0x6
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800087e8 <freelist_head>
+ 800029d4: 00006797 auipc a5,0x6
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800087e0 <freelist_tail>
+ 800029dc: 00006317 auipc t1,0x6
+ 800029e0: a1430313 addi t1,t1,-1516 # 800083f0 <user_mapping>
+ 800029e4: 03800793 li a5,56
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00006797 auipc a5,0x6
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800083e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 09c3b7b7 lui a5,0x9c3b
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: 9db78793 addi a5,a5,-1573 # 9c3a9db <_start-0x763c5625>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 00200193 li gp,2
+ 80002acc: 00000093 li ra,0
+ 80002ad0: 00100113 li sp,1
+ 80002ad4: 0020e663 bltu ra,sp,80002ae0 <userstart+0x18>
+ 80002ad8: 36301c63 bne zero,gp,80002e50 <fail>
+ 80002adc: 00301663 bne zero,gp,80002ae8 <test_3>
+ 80002ae0: fe20eee3 bltu ra,sp,80002adc <userstart+0x14>
+ 80002ae4: 36301663 bne zero,gp,80002e50 <fail>
+
+0000000080002ae8 <test_3>:
+ 80002ae8: 00300193 li gp,3
+ 80002aec: 0010009b addiw ra,zero,1
+ 80002af0: 02009093 slli ra,ra,0x20
+ 80002af4: ffe08093 addi ra,ra,-2
+ 80002af8: 0010011b addiw sp,zero,1
+ 80002afc: 02011113 slli sp,sp,0x20
+ 80002b00: fff10113 addi sp,sp,-1
+ 80002b04: 0020e663 bltu ra,sp,80002b10 <test_3+0x28>
+ 80002b08: 34301463 bne zero,gp,80002e50 <fail>
+ 80002b0c: 00301663 bne zero,gp,80002b18 <test_4>
+ 80002b10: fe20eee3 bltu ra,sp,80002b0c <test_3+0x24>
+ 80002b14: 32301e63 bne zero,gp,80002e50 <fail>
+
+0000000080002b18 <test_4>:
+ 80002b18: 00400193 li gp,4
+ 80002b1c: 00000093 li ra,0
+ 80002b20: 0010011b addiw sp,zero,1
+ 80002b24: 02011113 slli sp,sp,0x20
+ 80002b28: fff10113 addi sp,sp,-1
+ 80002b2c: 0020e663 bltu ra,sp,80002b38 <test_4+0x20>
+ 80002b30: 32301063 bne zero,gp,80002e50 <fail>
+ 80002b34: 00301663 bne zero,gp,80002b40 <test_5>
+ 80002b38: fe20eee3 bltu ra,sp,80002b34 <test_4+0x1c>
+ 80002b3c: 30301a63 bne zero,gp,80002e50 <fail>
+
+0000000080002b40 <test_5>:
+ 80002b40: 00500193 li gp,5
+ 80002b44: 00100093 li ra,1
+ 80002b48: 00000113 li sp,0
+ 80002b4c: 0020e463 bltu ra,sp,80002b54 <test_5+0x14>
+ 80002b50: 00301463 bne zero,gp,80002b58 <test_5+0x18>
+ 80002b54: 2e301e63 bne zero,gp,80002e50 <fail>
+ 80002b58: fe20eee3 bltu ra,sp,80002b54 <test_5+0x14>
+
+0000000080002b5c <test_6>:
+ 80002b5c: 00600193 li gp,6
+ 80002b60: 0010009b addiw ra,zero,1
+ 80002b64: 02009093 slli ra,ra,0x20
+ 80002b68: fff08093 addi ra,ra,-1
+ 80002b6c: 0010011b addiw sp,zero,1
+ 80002b70: 02011113 slli sp,sp,0x20
+ 80002b74: ffe10113 addi sp,sp,-2
+ 80002b78: 0020e463 bltu ra,sp,80002b80 <test_6+0x24>
+ 80002b7c: 00301463 bne zero,gp,80002b84 <test_6+0x28>
+ 80002b80: 2c301863 bne zero,gp,80002e50 <fail>
+ 80002b84: fe20eee3 bltu ra,sp,80002b80 <test_6+0x24>
+
+0000000080002b88 <test_7>:
+ 80002b88: 00700193 li gp,7
+ 80002b8c: 0010009b addiw ra,zero,1
+ 80002b90: 02009093 slli ra,ra,0x20
+ 80002b94: fff08093 addi ra,ra,-1
+ 80002b98: 00000113 li sp,0
+ 80002b9c: 0020e463 bltu ra,sp,80002ba4 <test_7+0x1c>
+ 80002ba0: 00301463 bne zero,gp,80002ba8 <test_7+0x20>
+ 80002ba4: 2a301663 bne zero,gp,80002e50 <fail>
+ 80002ba8: fe20eee3 bltu ra,sp,80002ba4 <test_7+0x1c>
+
+0000000080002bac <test_8>:
+ 80002bac: 00800193 li gp,8
+ 80002bb0: 0010009b addiw ra,zero,1
+ 80002bb4: 01f09093 slli ra,ra,0x1f
+ 80002bb8: 80000137 lui sp,0x80000
+ 80002bbc: fff1011b addiw sp,sp,-1
+ 80002bc0: 0020e463 bltu ra,sp,80002bc8 <test_8+0x1c>
+ 80002bc4: 00301463 bne zero,gp,80002bcc <test_8+0x20>
+ 80002bc8: 28301463 bne zero,gp,80002e50 <fail>
+ 80002bcc: fe20eee3 bltu ra,sp,80002bc8 <test_8+0x1c>
+
+0000000080002bd0 <test_9>:
+ 80002bd0: 00900193 li gp,9
+ 80002bd4: 00000213 li tp,0
+ 80002bd8: 00f0009b addiw ra,zero,15
+ 80002bdc: 01c09093 slli ra,ra,0x1c
+ 80002be0: 00f0011b addiw sp,zero,15
+ 80002be4: 01c11113 slli sp,sp,0x1c
+ 80002be8: fff10113 addi sp,sp,-1 # ffffffff7fffffff <_end+0xfffffffeffff780f>
+ 80002bec: 2620e263 bltu ra,sp,80002e50 <fail>
+ 80002bf0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002bf4: 00200293 li t0,2
+ 80002bf8: fe5210e3 bne tp,t0,80002bd8 <test_9+0x8>
+
+0000000080002bfc <test_10>:
+ 80002bfc: 00a00193 li gp,10
+ 80002c00: 00000213 li tp,0
+ 80002c04: 00f0009b addiw ra,zero,15
+ 80002c08: 01c09093 slli ra,ra,0x1c
+ 80002c0c: 00f0011b addiw sp,zero,15
+ 80002c10: 01c11113 slli sp,sp,0x1c
+ 80002c14: fff10113 addi sp,sp,-1
+ 80002c18: 00000013 nop
+ 80002c1c: 2220ea63 bltu ra,sp,80002e50 <fail>
+ 80002c20: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c24: 00200293 li t0,2
+ 80002c28: fc521ee3 bne tp,t0,80002c04 <test_10+0x8>
+
+0000000080002c2c <test_11>:
+ 80002c2c: 00b00193 li gp,11
+ 80002c30: 00000213 li tp,0
+ 80002c34: 00f0009b addiw ra,zero,15
+ 80002c38: 01c09093 slli ra,ra,0x1c
+ 80002c3c: 00f0011b addiw sp,zero,15
+ 80002c40: 01c11113 slli sp,sp,0x1c
+ 80002c44: fff10113 addi sp,sp,-1
+ 80002c48: 00000013 nop
+ 80002c4c: 00000013 nop
+ 80002c50: 2020e063 bltu ra,sp,80002e50 <fail>
+ 80002c54: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c58: 00200293 li t0,2
+ 80002c5c: fc521ce3 bne tp,t0,80002c34 <test_11+0x8>
+
+0000000080002c60 <test_12>:
+ 80002c60: 00c00193 li gp,12
+ 80002c64: 00000213 li tp,0
+ 80002c68: 00f0009b addiw ra,zero,15
+ 80002c6c: 01c09093 slli ra,ra,0x1c
+ 80002c70: 00000013 nop
+ 80002c74: 00f0011b addiw sp,zero,15
+ 80002c78: 01c11113 slli sp,sp,0x1c
+ 80002c7c: fff10113 addi sp,sp,-1
+ 80002c80: 1c20e863 bltu ra,sp,80002e50 <fail>
+ 80002c84: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c88: 00200293 li t0,2
+ 80002c8c: fc521ee3 bne tp,t0,80002c68 <test_12+0x8>
+
+0000000080002c90 <test_13>:
+ 80002c90: 00d00193 li gp,13
+ 80002c94: 00000213 li tp,0
+ 80002c98: 00f0009b addiw ra,zero,15
+ 80002c9c: 01c09093 slli ra,ra,0x1c
+ 80002ca0: 00000013 nop
+ 80002ca4: 00f0011b addiw sp,zero,15
+ 80002ca8: 01c11113 slli sp,sp,0x1c
+ 80002cac: fff10113 addi sp,sp,-1
+ 80002cb0: 00000013 nop
+ 80002cb4: 1820ee63 bltu ra,sp,80002e50 <fail>
+ 80002cb8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002cbc: 00200293 li t0,2
+ 80002cc0: fc521ce3 bne tp,t0,80002c98 <test_13+0x8>
+
+0000000080002cc4 <test_14>:
+ 80002cc4: 00e00193 li gp,14
+ 80002cc8: 00000213 li tp,0
+ 80002ccc: 00f0009b addiw ra,zero,15
+ 80002cd0: 01c09093 slli ra,ra,0x1c
+ 80002cd4: 00000013 nop
+ 80002cd8: 00000013 nop
+ 80002cdc: 00f0011b addiw sp,zero,15
+ 80002ce0: 01c11113 slli sp,sp,0x1c
+ 80002ce4: fff10113 addi sp,sp,-1
+ 80002ce8: 1620e463 bltu ra,sp,80002e50 <fail>
+ 80002cec: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002cf0: 00200293 li t0,2
+ 80002cf4: fc521ce3 bne tp,t0,80002ccc <test_14+0x8>
+
+0000000080002cf8 <test_15>:
+ 80002cf8: 00f00193 li gp,15
+ 80002cfc: 00000213 li tp,0
+ 80002d00: 00f0009b addiw ra,zero,15
+ 80002d04: 01c09093 slli ra,ra,0x1c
+ 80002d08: 00f0011b addiw sp,zero,15
+ 80002d0c: 01c11113 slli sp,sp,0x1c
+ 80002d10: fff10113 addi sp,sp,-1
+ 80002d14: 1220ee63 bltu ra,sp,80002e50 <fail>
+ 80002d18: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d1c: 00200293 li t0,2
+ 80002d20: fe5210e3 bne tp,t0,80002d00 <test_15+0x8>
+
+0000000080002d24 <test_16>:
+ 80002d24: 01000193 li gp,16
+ 80002d28: 00000213 li tp,0
+ 80002d2c: 00f0009b addiw ra,zero,15
+ 80002d30: 01c09093 slli ra,ra,0x1c
+ 80002d34: 00f0011b addiw sp,zero,15
+ 80002d38: 01c11113 slli sp,sp,0x1c
+ 80002d3c: fff10113 addi sp,sp,-1
+ 80002d40: 00000013 nop
+ 80002d44: 1020e663 bltu ra,sp,80002e50 <fail>
+ 80002d48: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d4c: 00200293 li t0,2
+ 80002d50: fc521ee3 bne tp,t0,80002d2c <test_16+0x8>
+
+0000000080002d54 <test_17>:
+ 80002d54: 01100193 li gp,17
+ 80002d58: 00000213 li tp,0
+ 80002d5c: 00f0009b addiw ra,zero,15
+ 80002d60: 01c09093 slli ra,ra,0x1c
+ 80002d64: 00f0011b addiw sp,zero,15
+ 80002d68: 01c11113 slli sp,sp,0x1c
+ 80002d6c: fff10113 addi sp,sp,-1
+ 80002d70: 00000013 nop
+ 80002d74: 00000013 nop
+ 80002d78: 0c20ec63 bltu ra,sp,80002e50 <fail>
+ 80002d7c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d80: 00200293 li t0,2
+ 80002d84: fc521ce3 bne tp,t0,80002d5c <test_17+0x8>
+
+0000000080002d88 <test_18>:
+ 80002d88: 01200193 li gp,18
+ 80002d8c: 00000213 li tp,0
+ 80002d90: 00f0009b addiw ra,zero,15
+ 80002d94: 01c09093 slli ra,ra,0x1c
+ 80002d98: 00000013 nop
+ 80002d9c: 00f0011b addiw sp,zero,15
+ 80002da0: 01c11113 slli sp,sp,0x1c
+ 80002da4: fff10113 addi sp,sp,-1
+ 80002da8: 0a20e463 bltu ra,sp,80002e50 <fail>
+ 80002dac: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002db0: 00200293 li t0,2
+ 80002db4: fc521ee3 bne tp,t0,80002d90 <test_18+0x8>
+
+0000000080002db8 <test_19>:
+ 80002db8: 01300193 li gp,19
+ 80002dbc: 00000213 li tp,0
+ 80002dc0: 00f0009b addiw ra,zero,15
+ 80002dc4: 01c09093 slli ra,ra,0x1c
+ 80002dc8: 00000013 nop
+ 80002dcc: 00f0011b addiw sp,zero,15
+ 80002dd0: 01c11113 slli sp,sp,0x1c
+ 80002dd4: fff10113 addi sp,sp,-1
+ 80002dd8: 00000013 nop
+ 80002ddc: 0620ea63 bltu ra,sp,80002e50 <fail>
+ 80002de0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002de4: 00200293 li t0,2
+ 80002de8: fc521ce3 bne tp,t0,80002dc0 <test_19+0x8>
+
+0000000080002dec <test_20>:
+ 80002dec: 01400193 li gp,20
+ 80002df0: 00000213 li tp,0
+ 80002df4: 00f0009b addiw ra,zero,15
+ 80002df8: 01c09093 slli ra,ra,0x1c
+ 80002dfc: 00000013 nop
+ 80002e00: 00000013 nop
+ 80002e04: 00f0011b addiw sp,zero,15
+ 80002e08: 01c11113 slli sp,sp,0x1c
+ 80002e0c: fff10113 addi sp,sp,-1
+ 80002e10: 0420e063 bltu ra,sp,80002e50 <fail>
+ 80002e14: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e18: 00200293 li t0,2
+ 80002e1c: fc521ce3 bne tp,t0,80002df4 <test_20+0x8>
+
+0000000080002e20 <test_21>:
+ 80002e20: 00100093 li ra,1
+ 80002e24: 00106a63 bltu zero,ra,80002e38 <test_21+0x18>
+ 80002e28: 00108093 addi ra,ra,1
+ 80002e2c: 00108093 addi ra,ra,1
+ 80002e30: 00108093 addi ra,ra,1
+ 80002e34: 00108093 addi ra,ra,1
+ 80002e38: 00108093 addi ra,ra,1
+ 80002e3c: 00108093 addi ra,ra,1
+ 80002e40: 00300e93 li t4,3
+ 80002e44: 01500193 li gp,21
+ 80002e48: 01d09463 bne ra,t4,80002e50 <fail>
+ 80002e4c: 00301a63 bne zero,gp,80002e60 <pass>
+
+0000000080002e50 <fail>:
+ 80002e50: 00119513 slli a0,gp,0x1
+ 80002e54: 00050063 beqz a0,80002e54 <fail+0x4>
+ 80002e58: 00156513 ori a0,a0,1
+ 80002e5c: 00000073 ecall
+
+0000000080002e60 <pass>:
+ 80002e60: 00100513 li a0,1
+ 80002e64: 00000073 ecall
+ 80002e68: c0001073 unimp
diff --git a/test/tests/rv64ui-v-bltu.elf b/test/tests/rv64ui-v-bltu.elf
new file mode 100644
index 0000000..4109acc
--- /dev/null
+++ b/test/tests/rv64ui-v-bltu.elf
Binary files differ
diff --git a/test/tests/rv64ui-v-bne.dump b/test/tests/rv64ui-v-bne.dump
new file mode 100644
index 0000000..63ec288
--- /dev/null
+++ b/test/tests/rv64ui-v-bne.dump
@@ -0,0 +1,1055 @@
+
+rv64ui-v-bne: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <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: 6b810113 addi sp,sp,1720 # 800086d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00001617 auipc a2,0x1
+ 80002318: cec60613 addi a2,a2,-788 # 80003000 <begin_signature>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00005797 auipc a5,0x5
+ 80002334: 4b878793 addi a5,a5,1208 # 800077e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00005717 auipc a4,0x5
+ 80002348: 49c70713 addi a4,a4,1180 # 800077e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00005897 auipc a7,0x5
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800077e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00005797 auipc a5,0x5
+ 80002384: 07078793 addi a5,a5,112 # 800073f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf8810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00005797 auipc a5,0x5
+ 80002448: 3807be23 sd zero,924(a5) # 800077e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00001697 auipc a3,0x1
+ 8000245c: 95068693 addi a3,a3,-1712 # 80002da8 <pass+0xc>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00001617 auipc a2,0x1
+ 800024b8: 98460613 addi a2,a2,-1660 # 80002e38 <pass+0x9c>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00001617 auipc a2,0x1
+ 80002508: 94c60613 addi a2,a2,-1716 # 80002e50 <pass+0xb4>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00001697 auipc a3,0x1
+ 80002558: 89c68693 addi a3,a3,-1892 # 80002df0 <pass+0x54>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00001697 auipc a3,0x1
+ 80002674: 8b868693 addi a3,a3,-1864 # 80002f28 <pass+0x18c>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00001617 auipc a2,0x1
+ 800026cc: 83860613 addi a2,a2,-1992 # 80002f00 <pass+0x164>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00005d17 auipc s10,0x5
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800073f0 <user_mapping>
+ 80002724: 00001b97 auipc s7,0x1
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80003000 <begin_signature>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00005a17 auipc s4,0x5
+ 80002738: 0aca0a13 addi s4,s4,172 # 800077e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00005717 auipc a4,0x5
+ 8000274c: 08f73c23 sd a5,152(a4) # 800077e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00005717 auipc a4,0x5
+ 800027d4: 00f73823 sd a5,16(a4) # 800077e0 <freelist_tail>
+ 800027d8: 00005717 auipc a4,0x5
+ 800027dc: 00f73823 sd a5,16(a4) # 800077e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 76c68693 addi a3,a3,1900 # 80002f58 <pass+0x1bc>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 68c68693 addi a3,a3,1676 # 80002ec8 <pass+0x12c>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 61c68693 addi a3,a3,1564 # 80002e90 <pass+0xf4>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00001697 auipc a3,0x1
+ 800028e0: 72468693 addi a3,a3,1828 # 80004000 <begin_signature+0x1000>
+ 800028e4: 00002717 auipc a4,0x2
+ 800028e8: 71c70713 addi a4,a4,1820 # 80005000 <begin_signature+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00003797 auipc a5,0x3
+ 800028f8: 70c78793 addi a5,a5,1804 # 80006000 <begin_signature+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00000897 auipc a7,0x0
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80003000 <begin_signature>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00001697 auipc a3,0x1
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80003ff8 <begin_signature+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00000617 auipc a2,0x0
+ 80002938: 6cc60613 addi a2,a2,1740 # 80003000 <begin_signature>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00003697 auipc a3,0x3
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80005ff8 <begin_signature+0x2ff8>
+ 8000294c: 00001717 auipc a4,0x1
+ 80002950: 6af73a23 sd a5,1716(a4) # 80004000 <begin_signature+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00004697 auipc a3,0x4
+ 800029c0: 64468693 addi a3,a3,1604 # 80007000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00005617 auipc a2,0x5
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800077e8 <freelist_head>
+ 800029d4: 00005797 auipc a5,0x5
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800077e0 <freelist_tail>
+ 800029dc: 00005317 auipc t1,0x5
+ 800029e0: a1430313 addi t1,t1,-1516 # 800073f0 <user_mapping>
+ 800029e4: 02600793 li a5,38
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00005797 auipc a5,0x5
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800073e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 0802e7b7 lui a5,0x802e
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: d7978793 addi a5,a5,-647 # 802dd79 <_start-0x77fd2287>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 00200193 li gp,2
+ 80002acc: 00000093 li ra,0
+ 80002ad0: 00100113 li sp,1
+ 80002ad4: 00209663 bne ra,sp,80002ae0 <userstart+0x18>
+ 80002ad8: 2a301a63 bne zero,gp,80002d8c <fail>
+ 80002adc: 00301663 bne zero,gp,80002ae8 <test_3>
+ 80002ae0: fe209ee3 bne ra,sp,80002adc <userstart+0x14>
+ 80002ae4: 2a301463 bne zero,gp,80002d8c <fail>
+
+0000000080002ae8 <test_3>:
+ 80002ae8: 00300193 li gp,3
+ 80002aec: 00100093 li ra,1
+ 80002af0: 00000113 li sp,0
+ 80002af4: 00209663 bne ra,sp,80002b00 <test_3+0x18>
+ 80002af8: 28301a63 bne zero,gp,80002d8c <fail>
+ 80002afc: 00301663 bne zero,gp,80002b08 <test_4>
+ 80002b00: fe209ee3 bne ra,sp,80002afc <test_3+0x14>
+ 80002b04: 28301463 bne zero,gp,80002d8c <fail>
+
+0000000080002b08 <test_4>:
+ 80002b08: 00400193 li gp,4
+ 80002b0c: fff00093 li ra,-1
+ 80002b10: 00100113 li sp,1
+ 80002b14: 00209663 bne ra,sp,80002b20 <test_4+0x18>
+ 80002b18: 26301a63 bne zero,gp,80002d8c <fail>
+ 80002b1c: 00301663 bne zero,gp,80002b28 <test_5>
+ 80002b20: fe209ee3 bne ra,sp,80002b1c <test_4+0x14>
+ 80002b24: 26301463 bne zero,gp,80002d8c <fail>
+
+0000000080002b28 <test_5>:
+ 80002b28: 00500193 li gp,5
+ 80002b2c: 00100093 li ra,1
+ 80002b30: fff00113 li sp,-1
+ 80002b34: 00209663 bne ra,sp,80002b40 <test_5+0x18>
+ 80002b38: 24301a63 bne zero,gp,80002d8c <fail>
+ 80002b3c: 00301663 bne zero,gp,80002b48 <test_6>
+ 80002b40: fe209ee3 bne ra,sp,80002b3c <test_5+0x14>
+ 80002b44: 24301463 bne zero,gp,80002d8c <fail>
+
+0000000080002b48 <test_6>:
+ 80002b48: 00600193 li gp,6
+ 80002b4c: 00000093 li ra,0
+ 80002b50: 00000113 li sp,0
+ 80002b54: 00209463 bne ra,sp,80002b5c <test_6+0x14>
+ 80002b58: 00301463 bne zero,gp,80002b60 <test_6+0x18>
+ 80002b5c: 22301863 bne zero,gp,80002d8c <fail>
+ 80002b60: fe209ee3 bne ra,sp,80002b5c <test_6+0x14>
+
+0000000080002b64 <test_7>:
+ 80002b64: 00700193 li gp,7
+ 80002b68: 00100093 li ra,1
+ 80002b6c: 00100113 li sp,1
+ 80002b70: 00209463 bne ra,sp,80002b78 <test_7+0x14>
+ 80002b74: 00301463 bne zero,gp,80002b7c <test_7+0x18>
+ 80002b78: 20301a63 bne zero,gp,80002d8c <fail>
+ 80002b7c: fe209ee3 bne ra,sp,80002b78 <test_7+0x14>
+
+0000000080002b80 <test_8>:
+ 80002b80: 00800193 li gp,8
+ 80002b84: fff00093 li ra,-1
+ 80002b88: fff00113 li sp,-1
+ 80002b8c: 00209463 bne ra,sp,80002b94 <test_8+0x14>
+ 80002b90: 00301463 bne zero,gp,80002b98 <test_8+0x18>
+ 80002b94: 1e301c63 bne zero,gp,80002d8c <fail>
+ 80002b98: fe209ee3 bne ra,sp,80002b94 <test_8+0x14>
+
+0000000080002b9c <test_9>:
+ 80002b9c: 00900193 li gp,9
+ 80002ba0: 00000213 li tp,0
+ 80002ba4: 00000093 li ra,0
+ 80002ba8: 00000113 li sp,0
+ 80002bac: 1e209063 bne ra,sp,80002d8c <fail>
+ 80002bb0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002bb4: 00200293 li t0,2
+ 80002bb8: fe5216e3 bne tp,t0,80002ba4 <test_9+0x8>
+
+0000000080002bbc <test_10>:
+ 80002bbc: 00a00193 li gp,10
+ 80002bc0: 00000213 li tp,0
+ 80002bc4: 00000093 li ra,0
+ 80002bc8: 00000113 li sp,0
+ 80002bcc: 00000013 nop
+ 80002bd0: 1a209e63 bne ra,sp,80002d8c <fail>
+ 80002bd4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002bd8: 00200293 li t0,2
+ 80002bdc: fe5214e3 bne tp,t0,80002bc4 <test_10+0x8>
+
+0000000080002be0 <test_11>:
+ 80002be0: 00b00193 li gp,11
+ 80002be4: 00000213 li tp,0
+ 80002be8: 00000093 li ra,0
+ 80002bec: 00000113 li sp,0
+ 80002bf0: 00000013 nop
+ 80002bf4: 00000013 nop
+ 80002bf8: 18209a63 bne ra,sp,80002d8c <fail>
+ 80002bfc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c00: 00200293 li t0,2
+ 80002c04: fe5212e3 bne tp,t0,80002be8 <test_11+0x8>
+
+0000000080002c08 <test_12>:
+ 80002c08: 00c00193 li gp,12
+ 80002c0c: 00000213 li tp,0
+ 80002c10: 00000093 li ra,0
+ 80002c14: 00000013 nop
+ 80002c18: 00000113 li sp,0
+ 80002c1c: 16209863 bne ra,sp,80002d8c <fail>
+ 80002c20: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c24: 00200293 li t0,2
+ 80002c28: fe5214e3 bne tp,t0,80002c10 <test_12+0x8>
+
+0000000080002c2c <test_13>:
+ 80002c2c: 00d00193 li gp,13
+ 80002c30: 00000213 li tp,0
+ 80002c34: 00000093 li ra,0
+ 80002c38: 00000013 nop
+ 80002c3c: 00000113 li sp,0
+ 80002c40: 00000013 nop
+ 80002c44: 14209463 bne ra,sp,80002d8c <fail>
+ 80002c48: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c4c: 00200293 li t0,2
+ 80002c50: fe5212e3 bne tp,t0,80002c34 <test_13+0x8>
+
+0000000080002c54 <test_14>:
+ 80002c54: 00e00193 li gp,14
+ 80002c58: 00000213 li tp,0
+ 80002c5c: 00000093 li ra,0
+ 80002c60: 00000013 nop
+ 80002c64: 00000013 nop
+ 80002c68: 00000113 li sp,0
+ 80002c6c: 12209063 bne ra,sp,80002d8c <fail>
+ 80002c70: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c74: 00200293 li t0,2
+ 80002c78: fe5212e3 bne tp,t0,80002c5c <test_14+0x8>
+
+0000000080002c7c <test_15>:
+ 80002c7c: 00f00193 li gp,15
+ 80002c80: 00000213 li tp,0
+ 80002c84: 00000093 li ra,0
+ 80002c88: 00000113 li sp,0
+ 80002c8c: 10209063 bne ra,sp,80002d8c <fail>
+ 80002c90: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c94: 00200293 li t0,2
+ 80002c98: fe5216e3 bne tp,t0,80002c84 <test_15+0x8>
+
+0000000080002c9c <test_16>:
+ 80002c9c: 01000193 li gp,16
+ 80002ca0: 00000213 li tp,0
+ 80002ca4: 00000093 li ra,0
+ 80002ca8: 00000113 li sp,0
+ 80002cac: 00000013 nop
+ 80002cb0: 0c209e63 bne ra,sp,80002d8c <fail>
+ 80002cb4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002cb8: 00200293 li t0,2
+ 80002cbc: fe5214e3 bne tp,t0,80002ca4 <test_16+0x8>
+
+0000000080002cc0 <test_17>:
+ 80002cc0: 01100193 li gp,17
+ 80002cc4: 00000213 li tp,0
+ 80002cc8: 00000093 li ra,0
+ 80002ccc: 00000113 li sp,0
+ 80002cd0: 00000013 nop
+ 80002cd4: 00000013 nop
+ 80002cd8: 0a209a63 bne ra,sp,80002d8c <fail>
+ 80002cdc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ce0: 00200293 li t0,2
+ 80002ce4: fe5212e3 bne tp,t0,80002cc8 <test_17+0x8>
+
+0000000080002ce8 <test_18>:
+ 80002ce8: 01200193 li gp,18
+ 80002cec: 00000213 li tp,0
+ 80002cf0: 00000093 li ra,0
+ 80002cf4: 00000013 nop
+ 80002cf8: 00000113 li sp,0
+ 80002cfc: 08209863 bne ra,sp,80002d8c <fail>
+ 80002d00: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d04: 00200293 li t0,2
+ 80002d08: fe5214e3 bne tp,t0,80002cf0 <test_18+0x8>
+
+0000000080002d0c <test_19>:
+ 80002d0c: 01300193 li gp,19
+ 80002d10: 00000213 li tp,0
+ 80002d14: 00000093 li ra,0
+ 80002d18: 00000013 nop
+ 80002d1c: 00000113 li sp,0
+ 80002d20: 00000013 nop
+ 80002d24: 06209463 bne ra,sp,80002d8c <fail>
+ 80002d28: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d2c: 00200293 li t0,2
+ 80002d30: fe5212e3 bne tp,t0,80002d14 <test_19+0x8>
+
+0000000080002d34 <test_20>:
+ 80002d34: 01400193 li gp,20
+ 80002d38: 00000213 li tp,0
+ 80002d3c: 00000093 li ra,0
+ 80002d40: 00000013 nop
+ 80002d44: 00000013 nop
+ 80002d48: 00000113 li sp,0
+ 80002d4c: 04209063 bne ra,sp,80002d8c <fail>
+ 80002d50: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d54: 00200293 li t0,2
+ 80002d58: fe5212e3 bne tp,t0,80002d3c <test_20+0x8>
+
+0000000080002d5c <test_21>:
+ 80002d5c: 00100093 li ra,1
+ 80002d60: 00009a63 bnez ra,80002d74 <test_21+0x18>
+ 80002d64: 00108093 addi ra,ra,1
+ 80002d68: 00108093 addi ra,ra,1
+ 80002d6c: 00108093 addi ra,ra,1
+ 80002d70: 00108093 addi ra,ra,1
+ 80002d74: 00108093 addi ra,ra,1
+ 80002d78: 00108093 addi ra,ra,1
+ 80002d7c: 00300e93 li t4,3
+ 80002d80: 01500193 li gp,21
+ 80002d84: 01d09463 bne ra,t4,80002d8c <fail>
+ 80002d88: 00301a63 bne zero,gp,80002d9c <pass>
+
+0000000080002d8c <fail>:
+ 80002d8c: 00119513 slli a0,gp,0x1
+ 80002d90: 00050063 beqz a0,80002d90 <fail+0x4>
+ 80002d94: 00156513 ori a0,a0,1
+ 80002d98: 00000073 ecall
+
+0000000080002d9c <pass>:
+ 80002d9c: 00100513 li a0,1
+ 80002da0: 00000073 ecall
+ 80002da4: c0001073 unimp
diff --git a/test/tests/rv64ui-v-bne.elf b/test/tests/rv64ui-v-bne.elf
new file mode 100644
index 0000000..fa480bf
--- /dev/null
+++ b/test/tests/rv64ui-v-bne.elf
Binary files differ
diff --git a/test/tests/rv64ui-v-fence_i.dump b/test/tests/rv64ui-v-fence_i.dump
new file mode 100644
index 0000000..b559930
--- /dev/null
+++ b/test/tests/rv64ui-v-fence_i.dump
@@ -0,0 +1,959 @@
+
+rv64ui-v-fence_i: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <handle_reset>:
+ 8000000c: 00000297 auipc t0,0x0
+ 80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+ 80000014: 30529073 csrw mtvec,t0
+ 80000018: 00009117 auipc sp,0x9
+ 8000001c: 6b810113 addi sp,sp,1720 # 800096d0 <_end+0xee0>
+ 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: ad050513 addi a0,a0,-1328 # 80002b00 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00002617 auipc a2,0x2
+ 80002318: cec60613 addi a2,a2,-788 # 80004000 <pt>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00006797 auipc a5,0x6
+ 80002334: 4b878793 addi a5,a5,1208 # 800087e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00006717 auipc a4,0x6
+ 80002348: 49c70713 addi a4,a4,1180 # 800087e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00006897 auipc a7,0x6
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800087e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00006797 auipc a5,0x6
+ 80002384: 07078793 addi a5,a5,112 # 800083f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf7810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00006797 auipc a5,0x6
+ 80002448: 3807be23 sd zero,924(a5) # 800087e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00000697 auipc a3,0x0
+ 8000245c: 7d868693 addi a3,a3,2008 # 80002c30 <pass+0x48>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00001617 auipc a2,0x1
+ 800024b8: 80c60613 addi a2,a2,-2036 # 80002cc0 <pass+0xd8>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00000617 auipc a2,0x0
+ 80002508: 7d460613 addi a2,a2,2004 # 80002cd8 <pass+0xf0>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00000697 auipc a3,0x0
+ 80002558: 72468693 addi a3,a3,1828 # 80002c78 <pass+0x90>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00000697 auipc a3,0x0
+ 80002674: 74068693 addi a3,a3,1856 # 80002db0 <pass+0x1c8>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00000617 auipc a2,0x0
+ 800026cc: 6c060613 addi a2,a2,1728 # 80002d88 <pass+0x1a0>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00006d17 auipc s10,0x6
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800083f0 <user_mapping>
+ 80002724: 00002b97 auipc s7,0x2
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80004000 <pt>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00006a17 auipc s4,0x6
+ 80002738: 0aca0a13 addi s4,s4,172 # 800087e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00006717 auipc a4,0x6
+ 8000274c: 08f73c23 sd a5,152(a4) # 800087e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00006717 auipc a4,0x6
+ 800027d4: 00f73823 sd a5,16(a4) # 800087e0 <freelist_tail>
+ 800027d8: 00006717 auipc a4,0x6
+ 800027dc: 00f73823 sd a5,16(a4) # 800087e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 5f468693 addi a3,a3,1524 # 80002de0 <pass+0x1f8>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 51468693 addi a3,a3,1300 # 80002d50 <pass+0x168>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 4a468693 addi a3,a3,1188 # 80002d18 <pass+0x130>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00002697 auipc a3,0x2
+ 800028e0: 72468693 addi a3,a3,1828 # 80005000 <pt+0x1000>
+ 800028e4: 00003717 auipc a4,0x3
+ 800028e8: 71c70713 addi a4,a4,1820 # 80006000 <pt+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00004797 auipc a5,0x4
+ 800028f8: 70c78793 addi a5,a5,1804 # 80007000 <pt+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00001897 auipc a7,0x1
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80004000 <pt>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00002697 auipc a3,0x2
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80004ff8 <pt+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00001617 auipc a2,0x1
+ 80002938: 6cc60613 addi a2,a2,1740 # 80004000 <pt>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00004697 auipc a3,0x4
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80006ff8 <pt+0x2ff8>
+ 8000294c: 00002717 auipc a4,0x2
+ 80002950: 6af73a23 sd a5,1716(a4) # 80005000 <pt+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00005697 auipc a3,0x5
+ 800029c0: 64468693 addi a3,a3,1604 # 80008000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00006617 auipc a2,0x6
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800087e8 <freelist_head>
+ 800029d4: 00006797 auipc a5,0x6
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800087e0 <freelist_tail>
+ 800029dc: 00006317 auipc t1,0x6
+ 800029e0: a1430313 addi t1,t1,-1516 # 800083f0 <user_mapping>
+ 800029e4: 03300793 li a5,51
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00006797 auipc a5,0x6
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800083e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 032fe7b7 lui a5,0x32fe
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: 19f78793 addi a5,a5,415 # 32fe19f <_start-0x7cd01e61>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+ 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
+
+0000000080002b00 <userstart>:
+ 80002b00: 06f00693 li a3,111
+ 80002b04: 00000517 auipc a0,0x0
+ 80002b08: 4fc51503 lh a0,1276(a0) # 80003000 <begin_signature>
+ 80002b0c: 00000597 auipc a1,0x0
+ 80002b10: 4f659583 lh a1,1270(a1) # 80003002 <begin_signature+0x2>
+ 80002b14: 00000013 nop
+ 80002b18: 00000013 nop
+ 80002b1c: 00000013 nop
+ 80002b20: 00000013 nop
+ 80002b24: 00000013 nop
+ 80002b28: 00000013 nop
+ 80002b2c: 00000013 nop
+ 80002b30: 00000013 nop
+ 80002b34: 00000013 nop
+ 80002b38: 00000013 nop
+ 80002b3c: 00000013 nop
+ 80002b40: 00000297 auipc t0,0x0
+ 80002b44: 00a29a23 sh a0,20(t0) # 80002b54 <userstart+0x54>
+ 80002b48: 00000297 auipc t0,0x0
+ 80002b4c: 00b29723 sh a1,14(t0) # 80002b56 <userstart+0x56>
+ 80002b50: 0000100f fence.i
+ 80002b54: 0de68693 addi a3,a3,222
+
+0000000080002b58 <test_2>:
+ 80002b58: 00000013 nop
+ 80002b5c: 1bc00e93 li t4,444
+ 80002b60: 00200193 li gp,2
+ 80002b64: 07d69a63 bne a3,t4,80002bd8 <fail>
+ 80002b68: 06400713 li a4,100
+ 80002b6c: fff70713 addi a4,a4,-1
+ 80002b70: fe071ee3 bnez a4,80002b6c <test_2+0x14>
+ 80002b74: 00000297 auipc t0,0x0
+ 80002b78: 04a29623 sh a0,76(t0) # 80002bc0 <test_2+0x68>
+ 80002b7c: 00000297 auipc t0,0x0
+ 80002b80: 04b29323 sh a1,70(t0) # 80002bc2 <test_2+0x6a>
+ 80002b84: 0000100f fence.i
+ 80002b88: 00000013 nop
+ 80002b8c: 00000013 nop
+ 80002b90: 00000013 nop
+ 80002b94: 00000013 nop
+ 80002b98: 00000013 nop
+ 80002b9c: 00000013 nop
+ 80002ba0: 00000013 nop
+ 80002ba4: 00000013 nop
+ 80002ba8: 00000013 nop
+ 80002bac: 00000013 nop
+ 80002bb0: 00000013 nop
+ 80002bb4: 00000013 nop
+ 80002bb8: 00000013 nop
+ 80002bbc: 00000013 nop
+ 80002bc0: 22b68693 addi a3,a3,555
+
+0000000080002bc4 <test_3>:
+ 80002bc4: 00000013 nop
+ 80002bc8: 30900e93 li t4,777
+ 80002bcc: 00300193 li gp,3
+ 80002bd0: 01d69463 bne a3,t4,80002bd8 <fail>
+ 80002bd4: 00301a63 bne zero,gp,80002be8 <pass>
+
+0000000080002bd8 <fail>:
+ 80002bd8: 00119513 slli a0,gp,0x1
+ 80002bdc: 00050063 beqz a0,80002bdc <fail+0x4>
+ 80002be0: 00156513 ori a0,a0,1
+ 80002be4: 00000073 ecall
+
+0000000080002be8 <pass>:
+ 80002be8: 00100513 li a0,1
+ 80002bec: 00000073 ecall
+ 80002bf0: c0001073 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
+
+Disassembly of section .data:
+
+0000000080003000 <begin_signature>:
+ 80003000: 14d68693 addi a3,a3,333
diff --git a/test/tests/rv64ui-v-fence_i.elf b/test/tests/rv64ui-v-fence_i.elf
new file mode 100644
index 0000000..5ab0990
--- /dev/null
+++ b/test/tests/rv64ui-v-fence_i.elf
Binary files differ
diff --git a/test/tests/rv64ui-v-jal.dump b/test/tests/rv64ui-v-jal.dump
new file mode 100644
index 0000000..a22031d
--- /dev/null
+++ b/test/tests/rv64ui-v-jal.dump
@@ -0,0 +1,867 @@
+
+rv64ui-v-jal: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <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: 6b810113 addi sp,sp,1720 # 800086d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00001617 auipc a2,0x1
+ 80002318: cec60613 addi a2,a2,-788 # 80003000 <begin_signature>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00005797 auipc a5,0x5
+ 80002334: 4b878793 addi a5,a5,1208 # 800077e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00005717 auipc a4,0x5
+ 80002348: 49c70713 addi a4,a4,1180 # 800077e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00005897 auipc a7,0x5
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800077e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00005797 auipc a5,0x5
+ 80002384: 07078793 addi a5,a5,112 # 800073f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf8810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00005797 auipc a5,0x5
+ 80002448: 3807be23 sd zero,924(a5) # 800077e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00000697 auipc a3,0x0
+ 8000245c: 6e068693 addi a3,a3,1760 # 80002b38 <pass+0xc>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00000617 auipc a2,0x0
+ 800024b8: 71460613 addi a2,a2,1812 # 80002bc8 <pass+0x9c>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00000617 auipc a2,0x0
+ 80002508: 6dc60613 addi a2,a2,1756 # 80002be0 <pass+0xb4>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00000697 auipc a3,0x0
+ 80002558: 62c68693 addi a3,a3,1580 # 80002b80 <pass+0x54>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00000697 auipc a3,0x0
+ 80002674: 64868693 addi a3,a3,1608 # 80002cb8 <pass+0x18c>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00000617 auipc a2,0x0
+ 800026cc: 5c860613 addi a2,a2,1480 # 80002c90 <pass+0x164>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00005d17 auipc s10,0x5
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800073f0 <user_mapping>
+ 80002724: 00001b97 auipc s7,0x1
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80003000 <begin_signature>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00005a17 auipc s4,0x5
+ 80002738: 0aca0a13 addi s4,s4,172 # 800077e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00005717 auipc a4,0x5
+ 8000274c: 08f73c23 sd a5,152(a4) # 800077e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00005717 auipc a4,0x5
+ 800027d4: 00f73823 sd a5,16(a4) # 800077e0 <freelist_tail>
+ 800027d8: 00005717 auipc a4,0x5
+ 800027dc: 00f73823 sd a5,16(a4) # 800077e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 4fc68693 addi a3,a3,1276 # 80002ce8 <pass+0x1bc>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 41c68693 addi a3,a3,1052 # 80002c58 <pass+0x12c>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 3ac68693 addi a3,a3,940 # 80002c20 <pass+0xf4>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00001697 auipc a3,0x1
+ 800028e0: 72468693 addi a3,a3,1828 # 80004000 <begin_signature+0x1000>
+ 800028e4: 00002717 auipc a4,0x2
+ 800028e8: 71c70713 addi a4,a4,1820 # 80005000 <begin_signature+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00003797 auipc a5,0x3
+ 800028f8: 70c78793 addi a5,a5,1804 # 80006000 <begin_signature+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00000897 auipc a7,0x0
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80003000 <begin_signature>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00001697 auipc a3,0x1
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80003ff8 <begin_signature+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00000617 auipc a2,0x0
+ 80002938: 6cc60613 addi a2,a2,1740 # 80003000 <begin_signature>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00003697 auipc a3,0x3
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80005ff8 <begin_signature+0x2ff8>
+ 8000294c: 00001717 auipc a4,0x1
+ 80002950: 6af73a23 sd a5,1716(a4) # 80004000 <begin_signature+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00004697 auipc a3,0x4
+ 800029c0: 64468693 addi a3,a3,1604 # 80007000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00005617 auipc a2,0x5
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800077e8 <freelist_head>
+ 800029d4: 00005797 auipc a5,0x5
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800077e0 <freelist_tail>
+ 800029dc: 00005317 auipc t1,0x5
+ 800029e0: a1430313 addi t1,t1,-1516 # 800073f0 <user_mapping>
+ 800029e4: 02d00793 li a5,45
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00005797 auipc a5,0x5
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800073e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 0e1d97b7 lui a5,0xe1d9
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: ad378793 addi a5,a5,-1325 # e1d8ad3 <_start-0x71e2752d>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 00200193 li gp,2
+ 80002acc: 00000093 li ra,0
+ 80002ad0: 0100026f jal tp,80002ae0 <target_2>
+
+0000000080002ad4 <linkaddr_2>:
+ 80002ad4: 00000013 nop
+ 80002ad8: 00000013 nop
+ 80002adc: 0400006f j 80002b1c <fail>
+
+0000000080002ae0 <target_2>:
+ 80002ae0: 00000117 auipc sp,0x0
+ 80002ae4: ff410113 addi sp,sp,-12 # 80002ad4 <linkaddr_2>
+ 80002ae8: 02411a63 bne sp,tp,80002b1c <fail>
+
+0000000080002aec <test_3>:
+ 80002aec: 00100093 li ra,1
+ 80002af0: 0140006f j 80002b04 <test_3+0x18>
+ 80002af4: 00108093 addi ra,ra,1
+ 80002af8: 00108093 addi ra,ra,1
+ 80002afc: 00108093 addi ra,ra,1
+ 80002b00: 00108093 addi ra,ra,1
+ 80002b04: 00108093 addi ra,ra,1
+ 80002b08: 00108093 addi ra,ra,1
+ 80002b0c: 00300e93 li t4,3
+ 80002b10: 00300193 li gp,3
+ 80002b14: 01d09463 bne ra,t4,80002b1c <fail>
+ 80002b18: 00301a63 bne zero,gp,80002b2c <pass>
+
+0000000080002b1c <fail>:
+ 80002b1c: 00119513 slli a0,gp,0x1
+ 80002b20: 00050063 beqz a0,80002b20 <fail+0x4>
+ 80002b24: 00156513 ori a0,a0,1
+ 80002b28: 00000073 ecall
+
+0000000080002b2c <pass>:
+ 80002b2c: 00100513 li a0,1
+ 80002b30: 00000073 ecall
+ 80002b34: c0001073 unimp
diff --git a/test/tests/rv64ui-v-jal.elf b/test/tests/rv64ui-v-jal.elf
new file mode 100644
index 0000000..82efaa8
--- /dev/null
+++ b/test/tests/rv64ui-v-jal.elf
Binary files differ
diff --git a/test/tests/rv64ui-v-jalr.dump b/test/tests/rv64ui-v-jalr.dump
new file mode 100644
index 0000000..4b43b16
--- /dev/null
+++ b/test/tests/rv64ui-v-jalr.dump
@@ -0,0 +1,905 @@
+
+rv64ui-v-jalr: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <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: 6b810113 addi sp,sp,1720 # 800086d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00001617 auipc a2,0x1
+ 80002318: cec60613 addi a2,a2,-788 # 80003000 <begin_signature>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00005797 auipc a5,0x5
+ 80002334: 4b878793 addi a5,a5,1208 # 800077e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00005717 auipc a4,0x5
+ 80002348: 49c70713 addi a4,a4,1180 # 800077e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00005897 auipc a7,0x5
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800077e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00005797 auipc a5,0x5
+ 80002384: 07078793 addi a5,a5,112 # 800073f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf8810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00005797 auipc a5,0x5
+ 80002448: 3807be23 sd zero,924(a5) # 800077e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00000697 auipc a3,0x0
+ 8000245c: 76068693 addi a3,a3,1888 # 80002bb8 <pass+0xc>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00000617 auipc a2,0x0
+ 800024b8: 79460613 addi a2,a2,1940 # 80002c48 <pass+0x9c>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00000617 auipc a2,0x0
+ 80002508: 75c60613 addi a2,a2,1884 # 80002c60 <pass+0xb4>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00000697 auipc a3,0x0
+ 80002558: 6ac68693 addi a3,a3,1708 # 80002c00 <pass+0x54>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00000697 auipc a3,0x0
+ 80002674: 6c868693 addi a3,a3,1736 # 80002d38 <pass+0x18c>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00000617 auipc a2,0x0
+ 800026cc: 64860613 addi a2,a2,1608 # 80002d10 <pass+0x164>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00005d17 auipc s10,0x5
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800073f0 <user_mapping>
+ 80002724: 00001b97 auipc s7,0x1
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80003000 <begin_signature>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00005a17 auipc s4,0x5
+ 80002738: 0aca0a13 addi s4,s4,172 # 800077e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00005717 auipc a4,0x5
+ 8000274c: 08f73c23 sd a5,152(a4) # 800077e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00005717 auipc a4,0x5
+ 800027d4: 00f73823 sd a5,16(a4) # 800077e0 <freelist_tail>
+ 800027d8: 00005717 auipc a4,0x5
+ 800027dc: 00f73823 sd a5,16(a4) # 800077e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 57c68693 addi a3,a3,1404 # 80002d68 <pass+0x1bc>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 49c68693 addi a3,a3,1180 # 80002cd8 <pass+0x12c>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 42c68693 addi a3,a3,1068 # 80002ca0 <pass+0xf4>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00001697 auipc a3,0x1
+ 800028e0: 72468693 addi a3,a3,1828 # 80004000 <begin_signature+0x1000>
+ 800028e4: 00002717 auipc a4,0x2
+ 800028e8: 71c70713 addi a4,a4,1820 # 80005000 <begin_signature+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00003797 auipc a5,0x3
+ 800028f8: 70c78793 addi a5,a5,1804 # 80006000 <begin_signature+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00000897 auipc a7,0x0
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80003000 <begin_signature>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00001697 auipc a3,0x1
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80003ff8 <begin_signature+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00000617 auipc a2,0x0
+ 80002938: 6cc60613 addi a2,a2,1740 # 80003000 <begin_signature>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00003697 auipc a3,0x3
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80005ff8 <begin_signature+0x2ff8>
+ 8000294c: 00001717 auipc a4,0x1
+ 80002950: 6af73a23 sd a5,1716(a4) # 80004000 <begin_signature+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00004697 auipc a3,0x4
+ 800029c0: 64468693 addi a3,a3,1604 # 80007000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00005617 auipc a2,0x5
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800077e8 <freelist_head>
+ 800029d4: 00005797 auipc a5,0x5
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800077e0 <freelist_tail>
+ 800029dc: 00005317 auipc t1,0x5
+ 800029e0: a1430313 addi t1,t1,-1516 # 800073f0 <user_mapping>
+ 800029e4: 01600793 li a5,22
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00005797 auipc a5,0x5
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800073e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 044267b7 lui a5,0x4426
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: 9b478793 addi a5,a5,-1612 # 44259b4 <_start-0x7bbda64c>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 00200193 li gp,2
+ 80002acc: 00000293 li t0,0
+ 80002ad0: 00000317 auipc t1,0x0
+ 80002ad4: 01030313 addi t1,t1,16 # 80002ae0 <target_2>
+ 80002ad8: 000302e7 jalr t0,t1
+
+0000000080002adc <linkaddr_2>:
+ 80002adc: 0c00006f j 80002b9c <fail>
+
+0000000080002ae0 <target_2>:
+ 80002ae0: 00000317 auipc t1,0x0
+ 80002ae4: ffc30313 addi t1,t1,-4 # 80002adc <linkaddr_2>
+ 80002ae8: 0a629a63 bne t0,t1,80002b9c <fail>
+
+0000000080002aec <test_4>:
+ 80002aec: 00400193 li gp,4
+ 80002af0: 00000213 li tp,0
+ 80002af4: 00000317 auipc t1,0x0
+ 80002af8: 01030313 addi t1,t1,16 # 80002b04 <test_4+0x18>
+ 80002afc: 000309e7 jalr s3,t1
+ 80002b00: 08301e63 bne zero,gp,80002b9c <fail>
+ 80002b04: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002b08: 00200293 li t0,2
+ 80002b0c: fe5214e3 bne tp,t0,80002af4 <test_4+0x8>
+
+0000000080002b10 <test_5>:
+ 80002b10: 00500193 li gp,5
+ 80002b14: 00000213 li tp,0
+ 80002b18: 00000317 auipc t1,0x0
+ 80002b1c: 01430313 addi t1,t1,20 # 80002b2c <test_5+0x1c>
+ 80002b20: 00000013 nop
+ 80002b24: 000309e7 jalr s3,t1
+ 80002b28: 06301a63 bne zero,gp,80002b9c <fail>
+ 80002b2c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002b30: 00200293 li t0,2
+ 80002b34: fe5212e3 bne tp,t0,80002b18 <test_5+0x8>
+
+0000000080002b38 <test_6>:
+ 80002b38: 00600193 li gp,6
+ 80002b3c: 00000213 li tp,0
+ 80002b40: 00000317 auipc t1,0x0
+ 80002b44: 01830313 addi t1,t1,24 # 80002b58 <test_6+0x20>
+ 80002b48: 00000013 nop
+ 80002b4c: 00000013 nop
+ 80002b50: 000309e7 jalr s3,t1
+ 80002b54: 04301463 bne zero,gp,80002b9c <fail>
+ 80002b58: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002b5c: 00200293 li t0,2
+ 80002b60: fe5210e3 bne tp,t0,80002b40 <test_6+0x8>
+
+0000000080002b64 <test_7>:
+ 80002b64: 00100293 li t0,1
+ 80002b68: 00000317 auipc t1,0x0
+ 80002b6c: 01c30313 addi t1,t1,28 # 80002b84 <test_7+0x20>
+ 80002b70: ffc30067 jr -4(t1)
+ 80002b74: 00128293 addi t0,t0,1
+ 80002b78: 00128293 addi t0,t0,1
+ 80002b7c: 00128293 addi t0,t0,1
+ 80002b80: 00128293 addi t0,t0,1
+ 80002b84: 00128293 addi t0,t0,1
+ 80002b88: 00128293 addi t0,t0,1
+ 80002b8c: 00400e93 li t4,4
+ 80002b90: 00700193 li gp,7
+ 80002b94: 01d29463 bne t0,t4,80002b9c <fail>
+ 80002b98: 00301a63 bne zero,gp,80002bac <pass>
+
+0000000080002b9c <fail>:
+ 80002b9c: 00119513 slli a0,gp,0x1
+ 80002ba0: 00050063 beqz a0,80002ba0 <fail+0x4>
+ 80002ba4: 00156513 ori a0,a0,1
+ 80002ba8: 00000073 ecall
+
+0000000080002bac <pass>:
+ 80002bac: 00100513 li a0,1
+ 80002bb0: 00000073 ecall
+ 80002bb4: c0001073 unimp
diff --git a/test/tests/rv64ui-v-jalr.elf b/test/tests/rv64ui-v-jalr.elf
new file mode 100644
index 0000000..8044274
--- /dev/null
+++ b/test/tests/rv64ui-v-jalr.elf
Binary files differ
diff --git a/test/tests/rv64ui-v-lb.dump b/test/tests/rv64ui-v-lb.dump
new file mode 100644
index 0000000..fc9d680
--- /dev/null
+++ b/test/tests/rv64ui-v-lb.dump
@@ -0,0 +1,1037 @@
+
+rv64ui-v-lb: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <handle_reset>:
+ 8000000c: 00000297 auipc t0,0x0
+ 80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+ 80000014: 30529073 csrw mtvec,t0
+ 80000018: 00009117 auipc sp,0x9
+ 8000001c: 6b810113 addi sp,sp,1720 # 800096d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00002617 auipc a2,0x2
+ 80002318: cec60613 addi a2,a2,-788 # 80004000 <pt>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00006797 auipc a5,0x6
+ 80002334: 4b878793 addi a5,a5,1208 # 800087e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00006717 auipc a4,0x6
+ 80002348: 49c70713 addi a4,a4,1180 # 800087e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00006897 auipc a7,0x6
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800087e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00006797 auipc a5,0x6
+ 80002384: 07078793 addi a5,a5,112 # 800083f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf7810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00006797 auipc a5,0x6
+ 80002448: 3807be23 sd zero,924(a5) # 800087e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00001697 auipc a3,0x1
+ 8000245c: 8d868693 addi a3,a3,-1832 # 80002d30 <pass+0xc>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00001617 auipc a2,0x1
+ 800024b8: 90c60613 addi a2,a2,-1780 # 80002dc0 <pass+0x9c>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00001617 auipc a2,0x1
+ 80002508: 8d460613 addi a2,a2,-1836 # 80002dd8 <pass+0xb4>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00001697 auipc a3,0x1
+ 80002558: 82468693 addi a3,a3,-2012 # 80002d78 <pass+0x54>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00001697 auipc a3,0x1
+ 80002674: 84068693 addi a3,a3,-1984 # 80002eb0 <pass+0x18c>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00000617 auipc a2,0x0
+ 800026cc: 7c060613 addi a2,a2,1984 # 80002e88 <pass+0x164>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00006d17 auipc s10,0x6
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800083f0 <user_mapping>
+ 80002724: 00002b97 auipc s7,0x2
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80004000 <pt>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00006a17 auipc s4,0x6
+ 80002738: 0aca0a13 addi s4,s4,172 # 800087e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00006717 auipc a4,0x6
+ 8000274c: 08f73c23 sd a5,152(a4) # 800087e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00006717 auipc a4,0x6
+ 800027d4: 00f73823 sd a5,16(a4) # 800087e0 <freelist_tail>
+ 800027d8: 00006717 auipc a4,0x6
+ 800027dc: 00f73823 sd a5,16(a4) # 800087e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 6f468693 addi a3,a3,1780 # 80002ee0 <pass+0x1bc>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 61468693 addi a3,a3,1556 # 80002e50 <pass+0x12c>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 5a468693 addi a3,a3,1444 # 80002e18 <pass+0xf4>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00002697 auipc a3,0x2
+ 800028e0: 72468693 addi a3,a3,1828 # 80005000 <pt+0x1000>
+ 800028e4: 00003717 auipc a4,0x3
+ 800028e8: 71c70713 addi a4,a4,1820 # 80006000 <pt+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00004797 auipc a5,0x4
+ 800028f8: 70c78793 addi a5,a5,1804 # 80007000 <pt+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00001897 auipc a7,0x1
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80004000 <pt>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00002697 auipc a3,0x2
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80004ff8 <pt+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00001617 auipc a2,0x1
+ 80002938: 6cc60613 addi a2,a2,1740 # 80004000 <pt>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00004697 auipc a3,0x4
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80006ff8 <pt+0x2ff8>
+ 8000294c: 00002717 auipc a4,0x2
+ 80002950: 6af73a23 sd a5,1716(a4) # 80005000 <pt+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00005697 auipc a3,0x5
+ 800029c0: 64468693 addi a3,a3,1604 # 80008000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00006617 auipc a2,0x6
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800087e8 <freelist_head>
+ 800029d4: 00006797 auipc a5,0x6
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800087e0 <freelist_tail>
+ 800029dc: 00006317 auipc t1,0x6
+ 800029e0: a1430313 addi t1,t1,-1516 # 800083f0 <user_mapping>
+ 800029e4: 00600793 li a5,6
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00006797 auipc a5,0x6
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800083e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 0c1067b7 lui a5,0xc106
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: 32278793 addi a5,a5,802 # c106322 <_start-0x73ef9cde>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 00000097 auipc ra,0x0
+ 80002acc: 53808093 addi ra,ra,1336 # 80003000 <begin_signature>
+ 80002ad0: 00008f03 lb t5,0(ra)
+ 80002ad4: fff00e93 li t4,-1
+ 80002ad8: 00200193 li gp,2
+ 80002adc: 23df1c63 bne t5,t4,80002d14 <fail>
+
+0000000080002ae0 <test_3>:
+ 80002ae0: 00000097 auipc ra,0x0
+ 80002ae4: 52008093 addi ra,ra,1312 # 80003000 <begin_signature>
+ 80002ae8: 00108f03 lb t5,1(ra)
+ 80002aec: 00000e93 li t4,0
+ 80002af0: 00300193 li gp,3
+ 80002af4: 23df1063 bne t5,t4,80002d14 <fail>
+
+0000000080002af8 <test_4>:
+ 80002af8: 00000097 auipc ra,0x0
+ 80002afc: 50808093 addi ra,ra,1288 # 80003000 <begin_signature>
+ 80002b00: 00208f03 lb t5,2(ra)
+ 80002b04: ff000e93 li t4,-16
+ 80002b08: 00400193 li gp,4
+ 80002b0c: 21df1463 bne t5,t4,80002d14 <fail>
+
+0000000080002b10 <test_5>:
+ 80002b10: 00000097 auipc ra,0x0
+ 80002b14: 4f008093 addi ra,ra,1264 # 80003000 <begin_signature>
+ 80002b18: 00308f03 lb t5,3(ra)
+ 80002b1c: 00f00e93 li t4,15
+ 80002b20: 00500193 li gp,5
+ 80002b24: 1fdf1863 bne t5,t4,80002d14 <fail>
+
+0000000080002b28 <test_6>:
+ 80002b28: 00000097 auipc ra,0x0
+ 80002b2c: 4db08093 addi ra,ra,1243 # 80003003 <tdat4>
+ 80002b30: ffd08f03 lb t5,-3(ra)
+ 80002b34: fff00e93 li t4,-1
+ 80002b38: 00600193 li gp,6
+ 80002b3c: 1ddf1c63 bne t5,t4,80002d14 <fail>
+
+0000000080002b40 <test_7>:
+ 80002b40: 00000097 auipc ra,0x0
+ 80002b44: 4c308093 addi ra,ra,1219 # 80003003 <tdat4>
+ 80002b48: ffe08f03 lb t5,-2(ra)
+ 80002b4c: 00000e93 li t4,0
+ 80002b50: 00700193 li gp,7
+ 80002b54: 1ddf1063 bne t5,t4,80002d14 <fail>
+
+0000000080002b58 <test_8>:
+ 80002b58: 00000097 auipc ra,0x0
+ 80002b5c: 4ab08093 addi ra,ra,1195 # 80003003 <tdat4>
+ 80002b60: fff08f03 lb t5,-1(ra)
+ 80002b64: ff000e93 li t4,-16
+ 80002b68: 00800193 li gp,8
+ 80002b6c: 1bdf1463 bne t5,t4,80002d14 <fail>
+
+0000000080002b70 <test_9>:
+ 80002b70: 00000097 auipc ra,0x0
+ 80002b74: 49308093 addi ra,ra,1171 # 80003003 <tdat4>
+ 80002b78: 00008f03 lb t5,0(ra)
+ 80002b7c: 00f00e93 li t4,15
+ 80002b80: 00900193 li gp,9
+ 80002b84: 19df1863 bne t5,t4,80002d14 <fail>
+
+0000000080002b88 <test_10>:
+ 80002b88: 00000097 auipc ra,0x0
+ 80002b8c: 47808093 addi ra,ra,1144 # 80003000 <begin_signature>
+ 80002b90: fe008093 addi ra,ra,-32
+ 80002b94: 02008283 lb t0,32(ra)
+ 80002b98: fff00e93 li t4,-1
+ 80002b9c: 00a00193 li gp,10
+ 80002ba0: 17d29a63 bne t0,t4,80002d14 <fail>
+
+0000000080002ba4 <test_11>:
+ 80002ba4: 00000097 auipc ra,0x0
+ 80002ba8: 45c08093 addi ra,ra,1116 # 80003000 <begin_signature>
+ 80002bac: ffa08093 addi ra,ra,-6
+ 80002bb0: 00708283 lb t0,7(ra)
+ 80002bb4: 00000e93 li t4,0
+ 80002bb8: 00b00193 li gp,11
+ 80002bbc: 15d29c63 bne t0,t4,80002d14 <fail>
+
+0000000080002bc0 <test_12>:
+ 80002bc0: 00c00193 li gp,12
+ 80002bc4: 00000213 li tp,0
+ 80002bc8: 00000097 auipc ra,0x0
+ 80002bcc: 43908093 addi ra,ra,1081 # 80003001 <tdat2>
+ 80002bd0: 00108f03 lb t5,1(ra)
+ 80002bd4: 000f0313 mv t1,t5
+ 80002bd8: ff000e93 li t4,-16
+ 80002bdc: 13d31c63 bne t1,t4,80002d14 <fail>
+ 80002be0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002be4: 00200293 li t0,2
+ 80002be8: fe5210e3 bne tp,t0,80002bc8 <test_12+0x8>
+
+0000000080002bec <test_13>:
+ 80002bec: 00d00193 li gp,13
+ 80002bf0: 00000213 li tp,0
+ 80002bf4: 00000097 auipc ra,0x0
+ 80002bf8: 40e08093 addi ra,ra,1038 # 80003002 <tdat3>
+ 80002bfc: 00108f03 lb t5,1(ra)
+ 80002c00: 00000013 nop
+ 80002c04: 000f0313 mv t1,t5
+ 80002c08: 00f00e93 li t4,15
+ 80002c0c: 11d31463 bne t1,t4,80002d14 <fail>
+ 80002c10: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c14: 00200293 li t0,2
+ 80002c18: fc521ee3 bne tp,t0,80002bf4 <test_13+0x8>
+
+0000000080002c1c <test_14>:
+ 80002c1c: 00e00193 li gp,14
+ 80002c20: 00000213 li tp,0
+ 80002c24: 00000097 auipc ra,0x0
+ 80002c28: 3dc08093 addi ra,ra,988 # 80003000 <begin_signature>
+ 80002c2c: 00108f03 lb t5,1(ra)
+ 80002c30: 00000013 nop
+ 80002c34: 00000013 nop
+ 80002c38: 000f0313 mv t1,t5
+ 80002c3c: 00000e93 li t4,0
+ 80002c40: 0dd31a63 bne t1,t4,80002d14 <fail>
+ 80002c44: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c48: 00200293 li t0,2
+ 80002c4c: fc521ce3 bne tp,t0,80002c24 <test_14+0x8>
+
+0000000080002c50 <test_15>:
+ 80002c50: 00f00193 li gp,15
+ 80002c54: 00000213 li tp,0
+ 80002c58: 00000097 auipc ra,0x0
+ 80002c5c: 3a908093 addi ra,ra,937 # 80003001 <tdat2>
+ 80002c60: 00108f03 lb t5,1(ra)
+ 80002c64: ff000e93 li t4,-16
+ 80002c68: 0bdf1663 bne t5,t4,80002d14 <fail>
+ 80002c6c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c70: 00200293 li t0,2
+ 80002c74: fe5212e3 bne tp,t0,80002c58 <test_15+0x8>
+
+0000000080002c78 <test_16>:
+ 80002c78: 01000193 li gp,16
+ 80002c7c: 00000213 li tp,0
+ 80002c80: 00000097 auipc ra,0x0
+ 80002c84: 38208093 addi ra,ra,898 # 80003002 <tdat3>
+ 80002c88: 00000013 nop
+ 80002c8c: 00108f03 lb t5,1(ra)
+ 80002c90: 00f00e93 li t4,15
+ 80002c94: 09df1063 bne t5,t4,80002d14 <fail>
+ 80002c98: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c9c: 00200293 li t0,2
+ 80002ca0: fe5210e3 bne tp,t0,80002c80 <test_16+0x8>
+
+0000000080002ca4 <test_17>:
+ 80002ca4: 01100193 li gp,17
+ 80002ca8: 00000213 li tp,0
+ 80002cac: 00000097 auipc ra,0x0
+ 80002cb0: 35408093 addi ra,ra,852 # 80003000 <begin_signature>
+ 80002cb4: 00000013 nop
+ 80002cb8: 00000013 nop
+ 80002cbc: 00108f03 lb t5,1(ra)
+ 80002cc0: 00000e93 li t4,0
+ 80002cc4: 05df1863 bne t5,t4,80002d14 <fail>
+ 80002cc8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ccc: 00200293 li t0,2
+ 80002cd0: fc521ee3 bne tp,t0,80002cac <test_17+0x8>
+
+0000000080002cd4 <test_18>:
+ 80002cd4: 00000297 auipc t0,0x0
+ 80002cd8: 32c28293 addi t0,t0,812 # 80003000 <begin_signature>
+ 80002cdc: 00028103 lb sp,0(t0)
+ 80002ce0: 00200113 li sp,2
+ 80002ce4: 00200e93 li t4,2
+ 80002ce8: 01200193 li gp,18
+ 80002cec: 03d11463 bne sp,t4,80002d14 <fail>
+
+0000000080002cf0 <test_19>:
+ 80002cf0: 00000297 auipc t0,0x0
+ 80002cf4: 31028293 addi t0,t0,784 # 80003000 <begin_signature>
+ 80002cf8: 00028103 lb sp,0(t0)
+ 80002cfc: 00000013 nop
+ 80002d00: 00200113 li sp,2
+ 80002d04: 00200e93 li t4,2
+ 80002d08: 01300193 li gp,19
+ 80002d0c: 01d11463 bne sp,t4,80002d14 <fail>
+ 80002d10: 00301a63 bne zero,gp,80002d24 <pass>
+
+0000000080002d14 <fail>:
+ 80002d14: 00119513 slli a0,gp,0x1
+ 80002d18: 00050063 beqz a0,80002d18 <fail+0x4>
+ 80002d1c: 00156513 ori a0,a0,1
+ 80002d20: 00000073 ecall
+
+0000000080002d24 <pass>:
+ 80002d24: 00100513 li a0,1
+ 80002d28: 00000073 ecall
+ 80002d2c: c0001073 unimp
+
+Disassembly of section .data:
+
+0000000080003000 <begin_signature>:
+ 80003000: 0xff
+
+0000000080003001 <tdat2>:
+ 80003001: sd s0,32(s0)
+
+0000000080003002 <tdat3>:
+ 80003002: addi a2,sp,988
+
+0000000080003003 <tdat4>:
+ 80003003: 0f Address 0x0000000080003003 is out of bounds.
+
+ 80003007:
diff --git a/test/tests/rv64ui-v-lb.elf b/test/tests/rv64ui-v-lb.elf
new file mode 100644
index 0000000..438c090
--- /dev/null
+++ b/test/tests/rv64ui-v-lb.elf
Binary files differ
diff --git a/test/tests/rv64ui-v-lbu.dump b/test/tests/rv64ui-v-lbu.dump
new file mode 100644
index 0000000..8de55fb
--- /dev/null
+++ b/test/tests/rv64ui-v-lbu.dump
@@ -0,0 +1,1037 @@
+
+rv64ui-v-lbu: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <handle_reset>:
+ 8000000c: 00000297 auipc t0,0x0
+ 80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+ 80000014: 30529073 csrw mtvec,t0
+ 80000018: 00009117 auipc sp,0x9
+ 8000001c: 6b810113 addi sp,sp,1720 # 800096d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00002617 auipc a2,0x2
+ 80002318: cec60613 addi a2,a2,-788 # 80004000 <pt>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00006797 auipc a5,0x6
+ 80002334: 4b878793 addi a5,a5,1208 # 800087e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00006717 auipc a4,0x6
+ 80002348: 49c70713 addi a4,a4,1180 # 800087e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00006897 auipc a7,0x6
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800087e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00006797 auipc a5,0x6
+ 80002384: 07078793 addi a5,a5,112 # 800083f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf7810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00006797 auipc a5,0x6
+ 80002448: 3807be23 sd zero,924(a5) # 800087e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00001697 auipc a3,0x1
+ 8000245c: 8d868693 addi a3,a3,-1832 # 80002d30 <pass+0xc>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00001617 auipc a2,0x1
+ 800024b8: 90c60613 addi a2,a2,-1780 # 80002dc0 <pass+0x9c>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00001617 auipc a2,0x1
+ 80002508: 8d460613 addi a2,a2,-1836 # 80002dd8 <pass+0xb4>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00001697 auipc a3,0x1
+ 80002558: 82468693 addi a3,a3,-2012 # 80002d78 <pass+0x54>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00001697 auipc a3,0x1
+ 80002674: 84068693 addi a3,a3,-1984 # 80002eb0 <pass+0x18c>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00000617 auipc a2,0x0
+ 800026cc: 7c060613 addi a2,a2,1984 # 80002e88 <pass+0x164>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00006d17 auipc s10,0x6
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800083f0 <user_mapping>
+ 80002724: 00002b97 auipc s7,0x2
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80004000 <pt>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00006a17 auipc s4,0x6
+ 80002738: 0aca0a13 addi s4,s4,172 # 800087e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00006717 auipc a4,0x6
+ 8000274c: 08f73c23 sd a5,152(a4) # 800087e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00006717 auipc a4,0x6
+ 800027d4: 00f73823 sd a5,16(a4) # 800087e0 <freelist_tail>
+ 800027d8: 00006717 auipc a4,0x6
+ 800027dc: 00f73823 sd a5,16(a4) # 800087e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 6f468693 addi a3,a3,1780 # 80002ee0 <pass+0x1bc>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 61468693 addi a3,a3,1556 # 80002e50 <pass+0x12c>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 5a468693 addi a3,a3,1444 # 80002e18 <pass+0xf4>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00002697 auipc a3,0x2
+ 800028e0: 72468693 addi a3,a3,1828 # 80005000 <pt+0x1000>
+ 800028e4: 00003717 auipc a4,0x3
+ 800028e8: 71c70713 addi a4,a4,1820 # 80006000 <pt+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00004797 auipc a5,0x4
+ 800028f8: 70c78793 addi a5,a5,1804 # 80007000 <pt+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00001897 auipc a7,0x1
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80004000 <pt>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00002697 auipc a3,0x2
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80004ff8 <pt+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00001617 auipc a2,0x1
+ 80002938: 6cc60613 addi a2,a2,1740 # 80004000 <pt>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00004697 auipc a3,0x4
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80006ff8 <pt+0x2ff8>
+ 8000294c: 00002717 auipc a4,0x2
+ 80002950: 6af73a23 sd a5,1716(a4) # 80005000 <pt+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00005697 auipc a3,0x5
+ 800029c0: 64468693 addi a3,a3,1604 # 80008000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00006617 auipc a2,0x6
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800087e8 <freelist_head>
+ 800029d4: 00006797 auipc a5,0x6
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800087e0 <freelist_tail>
+ 800029dc: 00006317 auipc t1,0x6
+ 800029e0: a1430313 addi t1,t1,-1516 # 800083f0 <user_mapping>
+ 800029e4: 00d00793 li a5,13
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00006797 auipc a5,0x6
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800083e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 04c8f7b7 lui a5,0x4c8f
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: 8a478793 addi a5,a5,-1884 # 4c8e8a4 <_start-0x7b37175c>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 00000097 auipc ra,0x0
+ 80002acc: 53808093 addi ra,ra,1336 # 80003000 <begin_signature>
+ 80002ad0: 0000cf03 lbu t5,0(ra)
+ 80002ad4: 0ff00e93 li t4,255
+ 80002ad8: 00200193 li gp,2
+ 80002adc: 23df1c63 bne t5,t4,80002d14 <fail>
+
+0000000080002ae0 <test_3>:
+ 80002ae0: 00000097 auipc ra,0x0
+ 80002ae4: 52008093 addi ra,ra,1312 # 80003000 <begin_signature>
+ 80002ae8: 0010cf03 lbu t5,1(ra)
+ 80002aec: 00000e93 li t4,0
+ 80002af0: 00300193 li gp,3
+ 80002af4: 23df1063 bne t5,t4,80002d14 <fail>
+
+0000000080002af8 <test_4>:
+ 80002af8: 00000097 auipc ra,0x0
+ 80002afc: 50808093 addi ra,ra,1288 # 80003000 <begin_signature>
+ 80002b00: 0020cf03 lbu t5,2(ra)
+ 80002b04: 0f000e93 li t4,240
+ 80002b08: 00400193 li gp,4
+ 80002b0c: 21df1463 bne t5,t4,80002d14 <fail>
+
+0000000080002b10 <test_5>:
+ 80002b10: 00000097 auipc ra,0x0
+ 80002b14: 4f008093 addi ra,ra,1264 # 80003000 <begin_signature>
+ 80002b18: 0030cf03 lbu t5,3(ra)
+ 80002b1c: 00f00e93 li t4,15
+ 80002b20: 00500193 li gp,5
+ 80002b24: 1fdf1863 bne t5,t4,80002d14 <fail>
+
+0000000080002b28 <test_6>:
+ 80002b28: 00000097 auipc ra,0x0
+ 80002b2c: 4db08093 addi ra,ra,1243 # 80003003 <tdat4>
+ 80002b30: ffd0cf03 lbu t5,-3(ra)
+ 80002b34: 0ff00e93 li t4,255
+ 80002b38: 00600193 li gp,6
+ 80002b3c: 1ddf1c63 bne t5,t4,80002d14 <fail>
+
+0000000080002b40 <test_7>:
+ 80002b40: 00000097 auipc ra,0x0
+ 80002b44: 4c308093 addi ra,ra,1219 # 80003003 <tdat4>
+ 80002b48: ffe0cf03 lbu t5,-2(ra)
+ 80002b4c: 00000e93 li t4,0
+ 80002b50: 00700193 li gp,7
+ 80002b54: 1ddf1063 bne t5,t4,80002d14 <fail>
+
+0000000080002b58 <test_8>:
+ 80002b58: 00000097 auipc ra,0x0
+ 80002b5c: 4ab08093 addi ra,ra,1195 # 80003003 <tdat4>
+ 80002b60: fff0cf03 lbu t5,-1(ra)
+ 80002b64: 0f000e93 li t4,240
+ 80002b68: 00800193 li gp,8
+ 80002b6c: 1bdf1463 bne t5,t4,80002d14 <fail>
+
+0000000080002b70 <test_9>:
+ 80002b70: 00000097 auipc ra,0x0
+ 80002b74: 49308093 addi ra,ra,1171 # 80003003 <tdat4>
+ 80002b78: 0000cf03 lbu t5,0(ra)
+ 80002b7c: 00f00e93 li t4,15
+ 80002b80: 00900193 li gp,9
+ 80002b84: 19df1863 bne t5,t4,80002d14 <fail>
+
+0000000080002b88 <test_10>:
+ 80002b88: 00000097 auipc ra,0x0
+ 80002b8c: 47808093 addi ra,ra,1144 # 80003000 <begin_signature>
+ 80002b90: fe008093 addi ra,ra,-32
+ 80002b94: 0200c283 lbu t0,32(ra)
+ 80002b98: 0ff00e93 li t4,255
+ 80002b9c: 00a00193 li gp,10
+ 80002ba0: 17d29a63 bne t0,t4,80002d14 <fail>
+
+0000000080002ba4 <test_11>:
+ 80002ba4: 00000097 auipc ra,0x0
+ 80002ba8: 45c08093 addi ra,ra,1116 # 80003000 <begin_signature>
+ 80002bac: ffa08093 addi ra,ra,-6
+ 80002bb0: 0070c283 lbu t0,7(ra)
+ 80002bb4: 00000e93 li t4,0
+ 80002bb8: 00b00193 li gp,11
+ 80002bbc: 15d29c63 bne t0,t4,80002d14 <fail>
+
+0000000080002bc0 <test_12>:
+ 80002bc0: 00c00193 li gp,12
+ 80002bc4: 00000213 li tp,0
+ 80002bc8: 00000097 auipc ra,0x0
+ 80002bcc: 43908093 addi ra,ra,1081 # 80003001 <tdat2>
+ 80002bd0: 0010cf03 lbu t5,1(ra)
+ 80002bd4: 000f0313 mv t1,t5
+ 80002bd8: 0f000e93 li t4,240
+ 80002bdc: 13d31c63 bne t1,t4,80002d14 <fail>
+ 80002be0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002be4: 00200293 li t0,2
+ 80002be8: fe5210e3 bne tp,t0,80002bc8 <test_12+0x8>
+
+0000000080002bec <test_13>:
+ 80002bec: 00d00193 li gp,13
+ 80002bf0: 00000213 li tp,0
+ 80002bf4: 00000097 auipc ra,0x0
+ 80002bf8: 40e08093 addi ra,ra,1038 # 80003002 <tdat3>
+ 80002bfc: 0010cf03 lbu t5,1(ra)
+ 80002c00: 00000013 nop
+ 80002c04: 000f0313 mv t1,t5
+ 80002c08: 00f00e93 li t4,15
+ 80002c0c: 11d31463 bne t1,t4,80002d14 <fail>
+ 80002c10: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c14: 00200293 li t0,2
+ 80002c18: fc521ee3 bne tp,t0,80002bf4 <test_13+0x8>
+
+0000000080002c1c <test_14>:
+ 80002c1c: 00e00193 li gp,14
+ 80002c20: 00000213 li tp,0
+ 80002c24: 00000097 auipc ra,0x0
+ 80002c28: 3dc08093 addi ra,ra,988 # 80003000 <begin_signature>
+ 80002c2c: 0010cf03 lbu t5,1(ra)
+ 80002c30: 00000013 nop
+ 80002c34: 00000013 nop
+ 80002c38: 000f0313 mv t1,t5
+ 80002c3c: 00000e93 li t4,0
+ 80002c40: 0dd31a63 bne t1,t4,80002d14 <fail>
+ 80002c44: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c48: 00200293 li t0,2
+ 80002c4c: fc521ce3 bne tp,t0,80002c24 <test_14+0x8>
+
+0000000080002c50 <test_15>:
+ 80002c50: 00f00193 li gp,15
+ 80002c54: 00000213 li tp,0
+ 80002c58: 00000097 auipc ra,0x0
+ 80002c5c: 3a908093 addi ra,ra,937 # 80003001 <tdat2>
+ 80002c60: 0010cf03 lbu t5,1(ra)
+ 80002c64: 0f000e93 li t4,240
+ 80002c68: 0bdf1663 bne t5,t4,80002d14 <fail>
+ 80002c6c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c70: 00200293 li t0,2
+ 80002c74: fe5212e3 bne tp,t0,80002c58 <test_15+0x8>
+
+0000000080002c78 <test_16>:
+ 80002c78: 01000193 li gp,16
+ 80002c7c: 00000213 li tp,0
+ 80002c80: 00000097 auipc ra,0x0
+ 80002c84: 38208093 addi ra,ra,898 # 80003002 <tdat3>
+ 80002c88: 00000013 nop
+ 80002c8c: 0010cf03 lbu t5,1(ra)
+ 80002c90: 00f00e93 li t4,15
+ 80002c94: 09df1063 bne t5,t4,80002d14 <fail>
+ 80002c98: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c9c: 00200293 li t0,2
+ 80002ca0: fe5210e3 bne tp,t0,80002c80 <test_16+0x8>
+
+0000000080002ca4 <test_17>:
+ 80002ca4: 01100193 li gp,17
+ 80002ca8: 00000213 li tp,0
+ 80002cac: 00000097 auipc ra,0x0
+ 80002cb0: 35408093 addi ra,ra,852 # 80003000 <begin_signature>
+ 80002cb4: 00000013 nop
+ 80002cb8: 00000013 nop
+ 80002cbc: 0010cf03 lbu t5,1(ra)
+ 80002cc0: 00000e93 li t4,0
+ 80002cc4: 05df1863 bne t5,t4,80002d14 <fail>
+ 80002cc8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ccc: 00200293 li t0,2
+ 80002cd0: fc521ee3 bne tp,t0,80002cac <test_17+0x8>
+
+0000000080002cd4 <test_18>:
+ 80002cd4: 00000297 auipc t0,0x0
+ 80002cd8: 32c28293 addi t0,t0,812 # 80003000 <begin_signature>
+ 80002cdc: 0002c103 lbu sp,0(t0)
+ 80002ce0: 00200113 li sp,2
+ 80002ce4: 00200e93 li t4,2
+ 80002ce8: 01200193 li gp,18
+ 80002cec: 03d11463 bne sp,t4,80002d14 <fail>
+
+0000000080002cf0 <test_19>:
+ 80002cf0: 00000297 auipc t0,0x0
+ 80002cf4: 31028293 addi t0,t0,784 # 80003000 <begin_signature>
+ 80002cf8: 0002c103 lbu sp,0(t0)
+ 80002cfc: 00000013 nop
+ 80002d00: 00200113 li sp,2
+ 80002d04: 00200e93 li t4,2
+ 80002d08: 01300193 li gp,19
+ 80002d0c: 01d11463 bne sp,t4,80002d14 <fail>
+ 80002d10: 00301a63 bne zero,gp,80002d24 <pass>
+
+0000000080002d14 <fail>:
+ 80002d14: 00119513 slli a0,gp,0x1
+ 80002d18: 00050063 beqz a0,80002d18 <fail+0x4>
+ 80002d1c: 00156513 ori a0,a0,1
+ 80002d20: 00000073 ecall
+
+0000000080002d24 <pass>:
+ 80002d24: 00100513 li a0,1
+ 80002d28: 00000073 ecall
+ 80002d2c: c0001073 unimp
+
+Disassembly of section .data:
+
+0000000080003000 <begin_signature>:
+ 80003000: 0xff
+
+0000000080003001 <tdat2>:
+ 80003001: sd s0,32(s0)
+
+0000000080003002 <tdat3>:
+ 80003002: addi a2,sp,988
+
+0000000080003003 <tdat4>:
+ 80003003: 0f Address 0x0000000080003003 is out of bounds.
+
+ 80003007:
diff --git a/test/tests/rv64ui-v-lbu.elf b/test/tests/rv64ui-v-lbu.elf
new file mode 100644
index 0000000..2f2023b
--- /dev/null
+++ b/test/tests/rv64ui-v-lbu.elf
Binary files differ
diff --git a/test/tests/rv64ui-v-ld.dump b/test/tests/rv64ui-v-ld.dump
new file mode 100644
index 0000000..3d8b640
--- /dev/null
+++ b/test/tests/rv64ui-v-ld.dump
@@ -0,0 +1,1141 @@
+
+rv64ui-v-ld: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <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: 6b810113 addi sp,sp,1720 # 8000a6d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00003617 auipc a2,0x3
+ 80002318: cec60613 addi a2,a2,-788 # 80005000 <pt>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00007797 auipc a5,0x7
+ 80002334: 4b878793 addi a5,a5,1208 # 800097e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00007717 auipc a4,0x7
+ 80002348: 49c70713 addi a4,a4,1180 # 800097e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00007897 auipc a7,0x7
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800097e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00007797 auipc a5,0x7
+ 80002384: 07078793 addi a5,a5,112 # 800093f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf6810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00007797 auipc a5,0x7
+ 80002448: 3807be23 sd zero,924(a5) # 800097e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00001697 auipc a3,0x1
+ 8000245c: a5868693 addi a3,a3,-1448 # 80002eb0 <pass+0xc>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00001617 auipc a2,0x1
+ 800024b8: a8c60613 addi a2,a2,-1396 # 80002f40 <pass+0x9c>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00001617 auipc a2,0x1
+ 80002508: a5460613 addi a2,a2,-1452 # 80002f58 <pass+0xb4>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00001697 auipc a3,0x1
+ 80002558: 9a468693 addi a3,a3,-1628 # 80002ef8 <pass+0x54>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00001697 auipc a3,0x1
+ 80002674: 9c068693 addi a3,a3,-1600 # 80003030 <pass+0x18c>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00001617 auipc a2,0x1
+ 800026cc: 94060613 addi a2,a2,-1728 # 80003008 <pass+0x164>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00007d17 auipc s10,0x7
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800093f0 <user_mapping>
+ 80002724: 00003b97 auipc s7,0x3
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80005000 <pt>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00007a17 auipc s4,0x7
+ 80002738: 0aca0a13 addi s4,s4,172 # 800097e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00007717 auipc a4,0x7
+ 8000274c: 08f73c23 sd a5,152(a4) # 800097e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00007717 auipc a4,0x7
+ 800027d4: 00f73823 sd a5,16(a4) # 800097e0 <freelist_tail>
+ 800027d8: 00007717 auipc a4,0x7
+ 800027dc: 00f73823 sd a5,16(a4) # 800097e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00001697 auipc a3,0x1
+ 800027f0: 87468693 addi a3,a3,-1932 # 80003060 <pass+0x1bc>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 79468693 addi a3,a3,1940 # 80002fd0 <pass+0x12c>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 72468693 addi a3,a3,1828 # 80002f98 <pass+0xf4>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00003697 auipc a3,0x3
+ 800028e0: 72468693 addi a3,a3,1828 # 80006000 <pt+0x1000>
+ 800028e4: 00004717 auipc a4,0x4
+ 800028e8: 71c70713 addi a4,a4,1820 # 80007000 <pt+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00005797 auipc a5,0x5
+ 800028f8: 70c78793 addi a5,a5,1804 # 80008000 <pt+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00002897 auipc a7,0x2
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80005000 <pt>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00003697 auipc a3,0x3
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80005ff8 <pt+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00002617 auipc a2,0x2
+ 80002938: 6cc60613 addi a2,a2,1740 # 80005000 <pt>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00005697 auipc a3,0x5
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80007ff8 <pt+0x2ff8>
+ 8000294c: 00003717 auipc a4,0x3
+ 80002950: 6af73a23 sd a5,1716(a4) # 80006000 <pt+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00006697 auipc a3,0x6
+ 800029c0: 64468693 addi a3,a3,1604 # 80009000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00007617 auipc a2,0x7
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800097e8 <freelist_head>
+ 800029d4: 00007797 auipc a5,0x7
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800097e0 <freelist_tail>
+ 800029dc: 00007317 auipc t1,0x7
+ 800029e0: a1430313 addi t1,t1,-1516 # 800093f0 <user_mapping>
+ 800029e4: 02d00793 li a5,45
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00007797 auipc a5,0x7
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800093e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 055417b7 lui a5,0x5541
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: b2578793 addi a5,a5,-1243 # 5540b25 <_start-0x7aabf4db>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 00001097 auipc ra,0x1
+ 80002acc: 53808093 addi ra,ra,1336 # 80004000 <begin_signature>
+ 80002ad0: 0000bf03 ld t5,0(ra)
+ 80002ad4: 00ff0eb7 lui t4,0xff0
+ 80002ad8: 0ffe8e9b addiw t4,t4,255
+ 80002adc: 010e9e93 slli t4,t4,0x10
+ 80002ae0: 0ffe8e93 addi t4,t4,255 # ff00ff <_start-0x7f00ff01>
+ 80002ae4: 010e9e93 slli t4,t4,0x10
+ 80002ae8: 0ffe8e93 addi t4,t4,255
+ 80002aec: 00200193 li gp,2
+ 80002af0: 3bdf1263 bne t5,t4,80002e94 <fail>
+
+0000000080002af4 <test_3>:
+ 80002af4: 00001097 auipc ra,0x1
+ 80002af8: 50c08093 addi ra,ra,1292 # 80004000 <begin_signature>
+ 80002afc: 0080bf03 ld t5,8(ra)
+ 80002b00: ff010eb7 lui t4,0xff010
+ 80002b04: f01e8e9b addiw t4,t4,-255
+ 80002b08: 010e9e93 slli t4,t4,0x10
+ 80002b0c: f01e8e93 addi t4,t4,-255 # ffffffffff00ff01 <_end+0xffffffff7f006711>
+ 80002b10: 010e9e93 slli t4,t4,0x10
+ 80002b14: f00e8e93 addi t4,t4,-256
+ 80002b18: 00300193 li gp,3
+ 80002b1c: 37df1c63 bne t5,t4,80002e94 <fail>
+
+0000000080002b20 <test_4>:
+ 80002b20: 00001097 auipc ra,0x1
+ 80002b24: 4e008093 addi ra,ra,1248 # 80004000 <begin_signature>
+ 80002b28: 0100bf03 ld t5,16(ra)
+ 80002b2c: 00010eb7 lui t4,0x10
+ 80002b30: f01e8e9b addiw t4,t4,-255
+ 80002b34: 010e9e93 slli t4,t4,0x10
+ 80002b38: f01e8e93 addi t4,t4,-255 # ff01 <_start-0x7fff00ff>
+ 80002b3c: 010e9e93 slli t4,t4,0x10
+ 80002b40: f01e8e93 addi t4,t4,-255
+ 80002b44: 00ce9e93 slli t4,t4,0xc
+ 80002b48: ff0e8e93 addi t4,t4,-16
+ 80002b4c: 00400193 li gp,4
+ 80002b50: 35df1263 bne t5,t4,80002e94 <fail>
+
+0000000080002b54 <test_5>:
+ 80002b54: 00001097 auipc ra,0x1
+ 80002b58: 4ac08093 addi ra,ra,1196 # 80004000 <begin_signature>
+ 80002b5c: 0180bf03 ld t5,24(ra)
+ 80002b60: ffff0eb7 lui t4,0xffff0
+ 80002b64: 0ffe8e9b addiw t4,t4,255
+ 80002b68: 010e9e93 slli t4,t4,0x10
+ 80002b6c: 0ffe8e93 addi t4,t4,255 # ffffffffffff00ff <_end+0xffffffff7ffe690f>
+ 80002b70: 010e9e93 slli t4,t4,0x10
+ 80002b74: 0ffe8e93 addi t4,t4,255
+ 80002b78: 00ce9e93 slli t4,t4,0xc
+ 80002b7c: 00fe8e93 addi t4,t4,15
+ 80002b80: 00500193 li gp,5
+ 80002b84: 31df1863 bne t5,t4,80002e94 <fail>
+
+0000000080002b88 <test_6>:
+ 80002b88: 00001097 auipc ra,0x1
+ 80002b8c: 49008093 addi ra,ra,1168 # 80004018 <tdat4>
+ 80002b90: fe80bf03 ld t5,-24(ra)
+ 80002b94: 00ff0eb7 lui t4,0xff0
+ 80002b98: 0ffe8e9b addiw t4,t4,255
+ 80002b9c: 010e9e93 slli t4,t4,0x10
+ 80002ba0: 0ffe8e93 addi t4,t4,255 # ff00ff <_start-0x7f00ff01>
+ 80002ba4: 010e9e93 slli t4,t4,0x10
+ 80002ba8: 0ffe8e93 addi t4,t4,255
+ 80002bac: 00600193 li gp,6
+ 80002bb0: 2fdf1263 bne t5,t4,80002e94 <fail>
+
+0000000080002bb4 <test_7>:
+ 80002bb4: 00001097 auipc ra,0x1
+ 80002bb8: 46408093 addi ra,ra,1124 # 80004018 <tdat4>
+ 80002bbc: ff00bf03 ld t5,-16(ra)
+ 80002bc0: ff010eb7 lui t4,0xff010
+ 80002bc4: f01e8e9b addiw t4,t4,-255
+ 80002bc8: 010e9e93 slli t4,t4,0x10
+ 80002bcc: f01e8e93 addi t4,t4,-255 # ffffffffff00ff01 <_end+0xffffffff7f006711>
+ 80002bd0: 010e9e93 slli t4,t4,0x10
+ 80002bd4: f00e8e93 addi t4,t4,-256
+ 80002bd8: 00700193 li gp,7
+ 80002bdc: 2bdf1c63 bne t5,t4,80002e94 <fail>
+
+0000000080002be0 <test_8>:
+ 80002be0: 00001097 auipc ra,0x1
+ 80002be4: 43808093 addi ra,ra,1080 # 80004018 <tdat4>
+ 80002be8: ff80bf03 ld t5,-8(ra)
+ 80002bec: 00010eb7 lui t4,0x10
+ 80002bf0: f01e8e9b addiw t4,t4,-255
+ 80002bf4: 010e9e93 slli t4,t4,0x10
+ 80002bf8: f01e8e93 addi t4,t4,-255 # ff01 <_start-0x7fff00ff>
+ 80002bfc: 010e9e93 slli t4,t4,0x10
+ 80002c00: f01e8e93 addi t4,t4,-255
+ 80002c04: 00ce9e93 slli t4,t4,0xc
+ 80002c08: ff0e8e93 addi t4,t4,-16
+ 80002c0c: 00800193 li gp,8
+ 80002c10: 29df1263 bne t5,t4,80002e94 <fail>
+
+0000000080002c14 <test_9>:
+ 80002c14: 00001097 auipc ra,0x1
+ 80002c18: 40408093 addi ra,ra,1028 # 80004018 <tdat4>
+ 80002c1c: 0000bf03 ld t5,0(ra)
+ 80002c20: ffff0eb7 lui t4,0xffff0
+ 80002c24: 0ffe8e9b addiw t4,t4,255
+ 80002c28: 010e9e93 slli t4,t4,0x10
+ 80002c2c: 0ffe8e93 addi t4,t4,255 # ffffffffffff00ff <_end+0xffffffff7ffe690f>
+ 80002c30: 010e9e93 slli t4,t4,0x10
+ 80002c34: 0ffe8e93 addi t4,t4,255
+ 80002c38: 00ce9e93 slli t4,t4,0xc
+ 80002c3c: 00fe8e93 addi t4,t4,15
+ 80002c40: 00900193 li gp,9
+ 80002c44: 25df1863 bne t5,t4,80002e94 <fail>
+
+0000000080002c48 <test_10>:
+ 80002c48: 00001097 auipc ra,0x1
+ 80002c4c: 3b808093 addi ra,ra,952 # 80004000 <begin_signature>
+ 80002c50: fe008093 addi ra,ra,-32
+ 80002c54: 0200b283 ld t0,32(ra)
+ 80002c58: 00ff0eb7 lui t4,0xff0
+ 80002c5c: 0ffe8e9b addiw t4,t4,255
+ 80002c60: 010e9e93 slli t4,t4,0x10
+ 80002c64: 0ffe8e93 addi t4,t4,255 # ff00ff <_start-0x7f00ff01>
+ 80002c68: 010e9e93 slli t4,t4,0x10
+ 80002c6c: 0ffe8e93 addi t4,t4,255
+ 80002c70: 00a00193 li gp,10
+ 80002c74: 23d29063 bne t0,t4,80002e94 <fail>
+
+0000000080002c78 <test_11>:
+ 80002c78: 00001097 auipc ra,0x1
+ 80002c7c: 38808093 addi ra,ra,904 # 80004000 <begin_signature>
+ 80002c80: ffd08093 addi ra,ra,-3
+ 80002c84: 00b0b283 ld t0,11(ra)
+ 80002c88: ff010eb7 lui t4,0xff010
+ 80002c8c: f01e8e9b addiw t4,t4,-255
+ 80002c90: 010e9e93 slli t4,t4,0x10
+ 80002c94: f01e8e93 addi t4,t4,-255 # ffffffffff00ff01 <_end+0xffffffff7f006711>
+ 80002c98: 010e9e93 slli t4,t4,0x10
+ 80002c9c: f00e8e93 addi t4,t4,-256
+ 80002ca0: 00b00193 li gp,11
+ 80002ca4: 1fd29863 bne t0,t4,80002e94 <fail>
+
+0000000080002ca8 <test_12>:
+ 80002ca8: 00c00193 li gp,12
+ 80002cac: 00000213 li tp,0
+ 80002cb0: 00001097 auipc ra,0x1
+ 80002cb4: 35808093 addi ra,ra,856 # 80004008 <tdat2>
+ 80002cb8: 0080bf03 ld t5,8(ra)
+ 80002cbc: 000f0313 mv t1,t5
+ 80002cc0: 00010eb7 lui t4,0x10
+ 80002cc4: f01e8e9b addiw t4,t4,-255
+ 80002cc8: 010e9e93 slli t4,t4,0x10
+ 80002ccc: f01e8e93 addi t4,t4,-255 # ff01 <_start-0x7fff00ff>
+ 80002cd0: 010e9e93 slli t4,t4,0x10
+ 80002cd4: f01e8e93 addi t4,t4,-255
+ 80002cd8: 00ce9e93 slli t4,t4,0xc
+ 80002cdc: ff0e8e93 addi t4,t4,-16
+ 80002ce0: 1bd31a63 bne t1,t4,80002e94 <fail>
+ 80002ce4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ce8: 00200293 li t0,2
+ 80002cec: fc5212e3 bne tp,t0,80002cb0 <test_12+0x8>
+
+0000000080002cf0 <test_13>:
+ 80002cf0: 00d00193 li gp,13
+ 80002cf4: 00000213 li tp,0
+ 80002cf8: 00001097 auipc ra,0x1
+ 80002cfc: 31808093 addi ra,ra,792 # 80004010 <tdat3>
+ 80002d00: 0080bf03 ld t5,8(ra)
+ 80002d04: 00000013 nop
+ 80002d08: 000f0313 mv t1,t5
+ 80002d0c: ffff0eb7 lui t4,0xffff0
+ 80002d10: 0ffe8e9b addiw t4,t4,255
+ 80002d14: 010e9e93 slli t4,t4,0x10
+ 80002d18: 0ffe8e93 addi t4,t4,255 # ffffffffffff00ff <_end+0xffffffff7ffe690f>
+ 80002d1c: 010e9e93 slli t4,t4,0x10
+ 80002d20: 0ffe8e93 addi t4,t4,255
+ 80002d24: 00ce9e93 slli t4,t4,0xc
+ 80002d28: 00fe8e93 addi t4,t4,15
+ 80002d2c: 17d31463 bne t1,t4,80002e94 <fail>
+ 80002d30: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d34: 00200293 li t0,2
+ 80002d38: fc5210e3 bne tp,t0,80002cf8 <test_13+0x8>
+
+0000000080002d3c <test_14>:
+ 80002d3c: 00e00193 li gp,14
+ 80002d40: 00000213 li tp,0
+ 80002d44: 00001097 auipc ra,0x1
+ 80002d48: 2bc08093 addi ra,ra,700 # 80004000 <begin_signature>
+ 80002d4c: 0080bf03 ld t5,8(ra)
+ 80002d50: 00000013 nop
+ 80002d54: 00000013 nop
+ 80002d58: 000f0313 mv t1,t5
+ 80002d5c: ff010eb7 lui t4,0xff010
+ 80002d60: f01e8e9b addiw t4,t4,-255
+ 80002d64: 010e9e93 slli t4,t4,0x10
+ 80002d68: f01e8e93 addi t4,t4,-255 # ffffffffff00ff01 <_end+0xffffffff7f006711>
+ 80002d6c: 010e9e93 slli t4,t4,0x10
+ 80002d70: f00e8e93 addi t4,t4,-256
+ 80002d74: 13d31063 bne t1,t4,80002e94 <fail>
+ 80002d78: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d7c: 00200293 li t0,2
+ 80002d80: fc5212e3 bne tp,t0,80002d44 <test_14+0x8>
+
+0000000080002d84 <test_15>:
+ 80002d84: 00f00193 li gp,15
+ 80002d88: 00000213 li tp,0
+ 80002d8c: 00001097 auipc ra,0x1
+ 80002d90: 27c08093 addi ra,ra,636 # 80004008 <tdat2>
+ 80002d94: 0080bf03 ld t5,8(ra)
+ 80002d98: 00010eb7 lui t4,0x10
+ 80002d9c: f01e8e9b addiw t4,t4,-255
+ 80002da0: 010e9e93 slli t4,t4,0x10
+ 80002da4: f01e8e93 addi t4,t4,-255 # ff01 <_start-0x7fff00ff>
+ 80002da8: 010e9e93 slli t4,t4,0x10
+ 80002dac: f01e8e93 addi t4,t4,-255
+ 80002db0: 00ce9e93 slli t4,t4,0xc
+ 80002db4: ff0e8e93 addi t4,t4,-16
+ 80002db8: 0ddf1e63 bne t5,t4,80002e94 <fail>
+ 80002dbc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002dc0: 00200293 li t0,2
+ 80002dc4: fc5214e3 bne tp,t0,80002d8c <test_15+0x8>
+
+0000000080002dc8 <test_16>:
+ 80002dc8: 01000193 li gp,16
+ 80002dcc: 00000213 li tp,0
+ 80002dd0: 00001097 auipc ra,0x1
+ 80002dd4: 24008093 addi ra,ra,576 # 80004010 <tdat3>
+ 80002dd8: 00000013 nop
+ 80002ddc: 0080bf03 ld t5,8(ra)
+ 80002de0: ffff0eb7 lui t4,0xffff0
+ 80002de4: 0ffe8e9b addiw t4,t4,255
+ 80002de8: 010e9e93 slli t4,t4,0x10
+ 80002dec: 0ffe8e93 addi t4,t4,255 # ffffffffffff00ff <_end+0xffffffff7ffe690f>
+ 80002df0: 010e9e93 slli t4,t4,0x10
+ 80002df4: 0ffe8e93 addi t4,t4,255
+ 80002df8: 00ce9e93 slli t4,t4,0xc
+ 80002dfc: 00fe8e93 addi t4,t4,15
+ 80002e00: 09df1a63 bne t5,t4,80002e94 <fail>
+ 80002e04: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e08: 00200293 li t0,2
+ 80002e0c: fc5212e3 bne tp,t0,80002dd0 <test_16+0x8>
+
+0000000080002e10 <test_17>:
+ 80002e10: 01100193 li gp,17
+ 80002e14: 00000213 li tp,0
+ 80002e18: 00001097 auipc ra,0x1
+ 80002e1c: 1e808093 addi ra,ra,488 # 80004000 <begin_signature>
+ 80002e20: 00000013 nop
+ 80002e24: 00000013 nop
+ 80002e28: 0080bf03 ld t5,8(ra)
+ 80002e2c: ff010eb7 lui t4,0xff010
+ 80002e30: f01e8e9b addiw t4,t4,-255
+ 80002e34: 010e9e93 slli t4,t4,0x10
+ 80002e38: f01e8e93 addi t4,t4,-255 # ffffffffff00ff01 <_end+0xffffffff7f006711>
+ 80002e3c: 010e9e93 slli t4,t4,0x10
+ 80002e40: f00e8e93 addi t4,t4,-256
+ 80002e44: 05df1863 bne t5,t4,80002e94 <fail>
+ 80002e48: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e4c: 00200293 li t0,2
+ 80002e50: fc5214e3 bne tp,t0,80002e18 <test_17+0x8>
+
+0000000080002e54 <test_18>:
+ 80002e54: 00001297 auipc t0,0x1
+ 80002e58: 1ac28293 addi t0,t0,428 # 80004000 <begin_signature>
+ 80002e5c: 0002b103 ld sp,0(t0)
+ 80002e60: 00200113 li sp,2
+ 80002e64: 00200e93 li t4,2
+ 80002e68: 01200193 li gp,18
+ 80002e6c: 03d11463 bne sp,t4,80002e94 <fail>
+
+0000000080002e70 <test_19>:
+ 80002e70: 00001297 auipc t0,0x1
+ 80002e74: 19028293 addi t0,t0,400 # 80004000 <begin_signature>
+ 80002e78: 0002b103 ld sp,0(t0)
+ 80002e7c: 00000013 nop
+ 80002e80: 00200113 li sp,2
+ 80002e84: 00200e93 li t4,2
+ 80002e88: 01300193 li gp,19
+ 80002e8c: 01d11463 bne sp,t4,80002e94 <fail>
+ 80002e90: 00301a63 bne zero,gp,80002ea4 <pass>
+
+0000000080002e94 <fail>:
+ 80002e94: 00119513 slli a0,gp,0x1
+ 80002e98: 00050063 beqz a0,80002e98 <fail+0x4>
+ 80002e9c: 00156513 ori a0,a0,1
+ 80002ea0: 00000073 ecall
+
+0000000080002ea4 <pass>:
+ 80002ea4: 00100513 li a0,1
+ 80002ea8: 00000073 ecall
+ 80002eac: c0001073 unimp
+
+Disassembly of section .data:
+
+0000000080004000 <begin_signature>:
+ 80004000: 00ff 0xff
+ 80004002: 00ff 0xff
+ 80004004: 00ff 0xff
+ 80004006: 00ff 0xff
+
+0000000080004008 <tdat2>:
+ 80004008: ff00 sd s0,56(a4)
+ 8000400a: ff00 sd s0,56(a4)
+ 8000400c: ff00 sd s0,56(a4)
+ 8000400e: ff00 sd s0,56(a4)
+
+0000000080004010 <tdat3>:
+ 80004010: 0ff0 addi a2,sp,988
+ 80004012: 0ff0 addi a2,sp,988
+ 80004014: 0ff0 addi a2,sp,988
+ 80004016: 0ff0 addi a2,sp,988
+
+0000000080004018 <tdat4>:
+ 80004018: f00ff00f 0xf00ff00f
+ 8000401c: f00ff00f 0xf00ff00f
diff --git a/test/tests/rv64ui-v-ld.elf b/test/tests/rv64ui-v-ld.elf
new file mode 100644
index 0000000..2940698
--- /dev/null
+++ b/test/tests/rv64ui-v-ld.elf
Binary files differ
diff --git a/test/tests/rv64ui-v-lh.dump b/test/tests/rv64ui-v-lh.dump
new file mode 100644
index 0000000..50f2fdd
--- /dev/null
+++ b/test/tests/rv64ui-v-lh.dump
@@ -0,0 +1,1043 @@
+
+rv64ui-v-lh: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <handle_reset>:
+ 8000000c: 00000297 auipc t0,0x0
+ 80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+ 80000014: 30529073 csrw mtvec,t0
+ 80000018: 00009117 auipc sp,0x9
+ 8000001c: 6b810113 addi sp,sp,1720 # 800096d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00002617 auipc a2,0x2
+ 80002318: cec60613 addi a2,a2,-788 # 80004000 <pt>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00006797 auipc a5,0x6
+ 80002334: 4b878793 addi a5,a5,1208 # 800087e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00006717 auipc a4,0x6
+ 80002348: 49c70713 addi a4,a4,1180 # 800087e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00006897 auipc a7,0x6
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800087e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00006797 auipc a5,0x6
+ 80002384: 07078793 addi a5,a5,112 # 800083f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf7810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00006797 auipc a5,0x6
+ 80002448: 3807be23 sd zero,924(a5) # 800087e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00001697 auipc a3,0x1
+ 8000245c: 8f868693 addi a3,a3,-1800 # 80002d50 <pass+0xc>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00001617 auipc a2,0x1
+ 800024b8: 92c60613 addi a2,a2,-1748 # 80002de0 <pass+0x9c>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00001617 auipc a2,0x1
+ 80002508: 8f460613 addi a2,a2,-1804 # 80002df8 <pass+0xb4>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00001697 auipc a3,0x1
+ 80002558: 84468693 addi a3,a3,-1980 # 80002d98 <pass+0x54>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00001697 auipc a3,0x1
+ 80002674: 86068693 addi a3,a3,-1952 # 80002ed0 <pass+0x18c>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00000617 auipc a2,0x0
+ 800026cc: 7e060613 addi a2,a2,2016 # 80002ea8 <pass+0x164>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00006d17 auipc s10,0x6
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800083f0 <user_mapping>
+ 80002724: 00002b97 auipc s7,0x2
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80004000 <pt>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00006a17 auipc s4,0x6
+ 80002738: 0aca0a13 addi s4,s4,172 # 800087e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00006717 auipc a4,0x6
+ 8000274c: 08f73c23 sd a5,152(a4) # 800087e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00006717 auipc a4,0x6
+ 800027d4: 00f73823 sd a5,16(a4) # 800087e0 <freelist_tail>
+ 800027d8: 00006717 auipc a4,0x6
+ 800027dc: 00f73823 sd a5,16(a4) # 800087e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 71468693 addi a3,a3,1812 # 80002f00 <pass+0x1bc>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 63468693 addi a3,a3,1588 # 80002e70 <pass+0x12c>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 5c468693 addi a3,a3,1476 # 80002e38 <pass+0xf4>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00002697 auipc a3,0x2
+ 800028e0: 72468693 addi a3,a3,1828 # 80005000 <pt+0x1000>
+ 800028e4: 00003717 auipc a4,0x3
+ 800028e8: 71c70713 addi a4,a4,1820 # 80006000 <pt+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00004797 auipc a5,0x4
+ 800028f8: 70c78793 addi a5,a5,1804 # 80007000 <pt+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00001897 auipc a7,0x1
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80004000 <pt>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00002697 auipc a3,0x2
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80004ff8 <pt+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00001617 auipc a2,0x1
+ 80002938: 6cc60613 addi a2,a2,1740 # 80004000 <pt>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00004697 auipc a3,0x4
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80006ff8 <pt+0x2ff8>
+ 8000294c: 00002717 auipc a4,0x2
+ 80002950: 6af73a23 sd a5,1716(a4) # 80005000 <pt+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00005697 auipc a3,0x5
+ 800029c0: 64468693 addi a3,a3,1604 # 80008000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00006617 auipc a2,0x6
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800087e8 <freelist_head>
+ 800029d4: 00006797 auipc a5,0x6
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800087e0 <freelist_tail>
+ 800029dc: 00006317 auipc t1,0x6
+ 800029e0: a1430313 addi t1,t1,-1516 # 800083f0 <user_mapping>
+ 800029e4: 00700793 li a5,7
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00006797 auipc a5,0x6
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800083e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 039687b7 lui a5,0x3968
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: c8378793 addi a5,a5,-893 # 3967c83 <_start-0x7c69837d>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 00000097 auipc ra,0x0
+ 80002acc: 53808093 addi ra,ra,1336 # 80003000 <begin_signature>
+ 80002ad0: 00009f03 lh t5,0(ra)
+ 80002ad4: 0ff00e93 li t4,255
+ 80002ad8: 00200193 li gp,2
+ 80002adc: 25df1c63 bne t5,t4,80002d34 <fail>
+
+0000000080002ae0 <test_3>:
+ 80002ae0: 00000097 auipc ra,0x0
+ 80002ae4: 52008093 addi ra,ra,1312 # 80003000 <begin_signature>
+ 80002ae8: 00209f03 lh t5,2(ra)
+ 80002aec: f0000e93 li t4,-256
+ 80002af0: 00300193 li gp,3
+ 80002af4: 25df1063 bne t5,t4,80002d34 <fail>
+
+0000000080002af8 <test_4>:
+ 80002af8: 00000097 auipc ra,0x0
+ 80002afc: 50808093 addi ra,ra,1288 # 80003000 <begin_signature>
+ 80002b00: 00409f03 lh t5,4(ra)
+ 80002b04: 00001eb7 lui t4,0x1
+ 80002b08: ff0e8e9b addiw t4,t4,-16
+ 80002b0c: 00400193 li gp,4
+ 80002b10: 23df1263 bne t5,t4,80002d34 <fail>
+
+0000000080002b14 <test_5>:
+ 80002b14: 00000097 auipc ra,0x0
+ 80002b18: 4ec08093 addi ra,ra,1260 # 80003000 <begin_signature>
+ 80002b1c: 00609f03 lh t5,6(ra)
+ 80002b20: fffffeb7 lui t4,0xfffff
+ 80002b24: 00fe8e9b addiw t4,t4,15
+ 80002b28: 00500193 li gp,5
+ 80002b2c: 21df1463 bne t5,t4,80002d34 <fail>
+
+0000000080002b30 <test_6>:
+ 80002b30: 00000097 auipc ra,0x0
+ 80002b34: 4d608093 addi ra,ra,1238 # 80003006 <tdat4>
+ 80002b38: ffa09f03 lh t5,-6(ra)
+ 80002b3c: 0ff00e93 li t4,255
+ 80002b40: 00600193 li gp,6
+ 80002b44: 1fdf1863 bne t5,t4,80002d34 <fail>
+
+0000000080002b48 <test_7>:
+ 80002b48: 00000097 auipc ra,0x0
+ 80002b4c: 4be08093 addi ra,ra,1214 # 80003006 <tdat4>
+ 80002b50: ffc09f03 lh t5,-4(ra)
+ 80002b54: f0000e93 li t4,-256
+ 80002b58: 00700193 li gp,7
+ 80002b5c: 1ddf1c63 bne t5,t4,80002d34 <fail>
+
+0000000080002b60 <test_8>:
+ 80002b60: 00000097 auipc ra,0x0
+ 80002b64: 4a608093 addi ra,ra,1190 # 80003006 <tdat4>
+ 80002b68: ffe09f03 lh t5,-2(ra)
+ 80002b6c: 00001eb7 lui t4,0x1
+ 80002b70: ff0e8e9b addiw t4,t4,-16
+ 80002b74: 00800193 li gp,8
+ 80002b78: 1bdf1e63 bne t5,t4,80002d34 <fail>
+
+0000000080002b7c <test_9>:
+ 80002b7c: 00000097 auipc ra,0x0
+ 80002b80: 48a08093 addi ra,ra,1162 # 80003006 <tdat4>
+ 80002b84: 00009f03 lh t5,0(ra)
+ 80002b88: fffffeb7 lui t4,0xfffff
+ 80002b8c: 00fe8e9b addiw t4,t4,15
+ 80002b90: 00900193 li gp,9
+ 80002b94: 1bdf1063 bne t5,t4,80002d34 <fail>
+
+0000000080002b98 <test_10>:
+ 80002b98: 00000097 auipc ra,0x0
+ 80002b9c: 46808093 addi ra,ra,1128 # 80003000 <begin_signature>
+ 80002ba0: fe008093 addi ra,ra,-32
+ 80002ba4: 02009283 lh t0,32(ra)
+ 80002ba8: 0ff00e93 li t4,255
+ 80002bac: 00a00193 li gp,10
+ 80002bb0: 19d29263 bne t0,t4,80002d34 <fail>
+
+0000000080002bb4 <test_11>:
+ 80002bb4: 00000097 auipc ra,0x0
+ 80002bb8: 44c08093 addi ra,ra,1100 # 80003000 <begin_signature>
+ 80002bbc: ffb08093 addi ra,ra,-5
+ 80002bc0: 00709283 lh t0,7(ra)
+ 80002bc4: f0000e93 li t4,-256
+ 80002bc8: 00b00193 li gp,11
+ 80002bcc: 17d29463 bne t0,t4,80002d34 <fail>
+
+0000000080002bd0 <test_12>:
+ 80002bd0: 00c00193 li gp,12
+ 80002bd4: 00000213 li tp,0
+ 80002bd8: 00000097 auipc ra,0x0
+ 80002bdc: 42a08093 addi ra,ra,1066 # 80003002 <tdat2>
+ 80002be0: 00209f03 lh t5,2(ra)
+ 80002be4: 000f0313 mv t1,t5
+ 80002be8: 00001eb7 lui t4,0x1
+ 80002bec: ff0e8e9b addiw t4,t4,-16
+ 80002bf0: 15d31263 bne t1,t4,80002d34 <fail>
+ 80002bf4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002bf8: 00200293 li t0,2
+ 80002bfc: fc521ee3 bne tp,t0,80002bd8 <test_12+0x8>
+
+0000000080002c00 <test_13>:
+ 80002c00: 00d00193 li gp,13
+ 80002c04: 00000213 li tp,0
+ 80002c08: 00000097 auipc ra,0x0
+ 80002c0c: 3fc08093 addi ra,ra,1020 # 80003004 <tdat3>
+ 80002c10: 00209f03 lh t5,2(ra)
+ 80002c14: 00000013 nop
+ 80002c18: 000f0313 mv t1,t5
+ 80002c1c: fffffeb7 lui t4,0xfffff
+ 80002c20: 00fe8e9b addiw t4,t4,15
+ 80002c24: 11d31863 bne t1,t4,80002d34 <fail>
+ 80002c28: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c2c: 00200293 li t0,2
+ 80002c30: fc521ce3 bne tp,t0,80002c08 <test_13+0x8>
+
+0000000080002c34 <test_14>:
+ 80002c34: 00e00193 li gp,14
+ 80002c38: 00000213 li tp,0
+ 80002c3c: 00000097 auipc ra,0x0
+ 80002c40: 3c408093 addi ra,ra,964 # 80003000 <begin_signature>
+ 80002c44: 00209f03 lh t5,2(ra)
+ 80002c48: 00000013 nop
+ 80002c4c: 00000013 nop
+ 80002c50: 000f0313 mv t1,t5
+ 80002c54: f0000e93 li t4,-256
+ 80002c58: 0dd31e63 bne t1,t4,80002d34 <fail>
+ 80002c5c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c60: 00200293 li t0,2
+ 80002c64: fc521ce3 bne tp,t0,80002c3c <test_14+0x8>
+
+0000000080002c68 <test_15>:
+ 80002c68: 00f00193 li gp,15
+ 80002c6c: 00000213 li tp,0
+ 80002c70: 00000097 auipc ra,0x0
+ 80002c74: 39208093 addi ra,ra,914 # 80003002 <tdat2>
+ 80002c78: 00209f03 lh t5,2(ra)
+ 80002c7c: 00001eb7 lui t4,0x1
+ 80002c80: ff0e8e9b addiw t4,t4,-16
+ 80002c84: 0bdf1863 bne t5,t4,80002d34 <fail>
+ 80002c88: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c8c: 00200293 li t0,2
+ 80002c90: fe5210e3 bne tp,t0,80002c70 <test_15+0x8>
+
+0000000080002c94 <test_16>:
+ 80002c94: 01000193 li gp,16
+ 80002c98: 00000213 li tp,0
+ 80002c9c: 00000097 auipc ra,0x0
+ 80002ca0: 36808093 addi ra,ra,872 # 80003004 <tdat3>
+ 80002ca4: 00000013 nop
+ 80002ca8: 00209f03 lh t5,2(ra)
+ 80002cac: fffffeb7 lui t4,0xfffff
+ 80002cb0: 00fe8e9b addiw t4,t4,15
+ 80002cb4: 09df1063 bne t5,t4,80002d34 <fail>
+ 80002cb8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002cbc: 00200293 li t0,2
+ 80002cc0: fc521ee3 bne tp,t0,80002c9c <test_16+0x8>
+
+0000000080002cc4 <test_17>:
+ 80002cc4: 01100193 li gp,17
+ 80002cc8: 00000213 li tp,0
+ 80002ccc: 00000097 auipc ra,0x0
+ 80002cd0: 33408093 addi ra,ra,820 # 80003000 <begin_signature>
+ 80002cd4: 00000013 nop
+ 80002cd8: 00000013 nop
+ 80002cdc: 00209f03 lh t5,2(ra)
+ 80002ce0: f0000e93 li t4,-256
+ 80002ce4: 05df1863 bne t5,t4,80002d34 <fail>
+ 80002ce8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002cec: 00200293 li t0,2
+ 80002cf0: fc521ee3 bne tp,t0,80002ccc <test_17+0x8>
+
+0000000080002cf4 <test_18>:
+ 80002cf4: 00000297 auipc t0,0x0
+ 80002cf8: 30c28293 addi t0,t0,780 # 80003000 <begin_signature>
+ 80002cfc: 00029103 lh sp,0(t0)
+ 80002d00: 00200113 li sp,2
+ 80002d04: 00200e93 li t4,2
+ 80002d08: 01200193 li gp,18
+ 80002d0c: 03d11463 bne sp,t4,80002d34 <fail>
+
+0000000080002d10 <test_19>:
+ 80002d10: 00000297 auipc t0,0x0
+ 80002d14: 2f028293 addi t0,t0,752 # 80003000 <begin_signature>
+ 80002d18: 00029103 lh sp,0(t0)
+ 80002d1c: 00000013 nop
+ 80002d20: 00200113 li sp,2
+ 80002d24: 00200e93 li t4,2
+ 80002d28: 01300193 li gp,19
+ 80002d2c: 01d11463 bne sp,t4,80002d34 <fail>
+ 80002d30: 00301a63 bne zero,gp,80002d44 <pass>
+
+0000000080002d34 <fail>:
+ 80002d34: 00119513 slli a0,gp,0x1
+ 80002d38: 00050063 beqz a0,80002d38 <fail+0x4>
+ 80002d3c: 00156513 ori a0,a0,1
+ 80002d40: 00000073 ecall
+
+0000000080002d44 <pass>:
+ 80002d44: 00100513 li a0,1
+ 80002d48: 00000073 ecall
+ 80002d4c: c0001073 unimp
+
+Disassembly of section .data:
+
+0000000080003000 <begin_signature>:
+ 80003000: 00ff 0xff
+
+0000000080003002 <tdat2>:
+ 80003002: ff00 sd s0,56(a4)
+
+0000000080003004 <tdat3>:
+ 80003004: 0ff0 addi a2,sp,988
+
+0000000080003006 <tdat4>:
+ 80003006: 0xf00f
diff --git a/test/tests/rv64ui-v-lh.elf b/test/tests/rv64ui-v-lh.elf
new file mode 100644
index 0000000..7d91368
--- /dev/null
+++ b/test/tests/rv64ui-v-lh.elf
Binary files differ
diff --git a/test/tests/rv64ui-v-lhu.dump b/test/tests/rv64ui-v-lhu.dump
new file mode 100644
index 0000000..45585fe
--- /dev/null
+++ b/test/tests/rv64ui-v-lhu.dump
@@ -0,0 +1,1048 @@
+
+rv64ui-v-lhu: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <handle_reset>:
+ 8000000c: 00000297 auipc t0,0x0
+ 80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+ 80000014: 30529073 csrw mtvec,t0
+ 80000018: 00009117 auipc sp,0x9
+ 8000001c: 6b810113 addi sp,sp,1720 # 800096d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00002617 auipc a2,0x2
+ 80002318: cec60613 addi a2,a2,-788 # 80004000 <pt>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00006797 auipc a5,0x6
+ 80002334: 4b878793 addi a5,a5,1208 # 800087e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00006717 auipc a4,0x6
+ 80002348: 49c70713 addi a4,a4,1180 # 800087e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00006897 auipc a7,0x6
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800087e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00006797 auipc a5,0x6
+ 80002384: 07078793 addi a5,a5,112 # 800083f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf7810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00006797 auipc a5,0x6
+ 80002448: 3807be23 sd zero,924(a5) # 800087e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00001697 auipc a3,0x1
+ 8000245c: 91068693 addi a3,a3,-1776 # 80002d68 <pass+0x10>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00001617 auipc a2,0x1
+ 800024b8: 94460613 addi a2,a2,-1724 # 80002df8 <pass+0xa0>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00001617 auipc a2,0x1
+ 80002508: 90c60613 addi a2,a2,-1780 # 80002e10 <pass+0xb8>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00001697 auipc a3,0x1
+ 80002558: 85c68693 addi a3,a3,-1956 # 80002db0 <pass+0x58>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00001697 auipc a3,0x1
+ 80002674: 87868693 addi a3,a3,-1928 # 80002ee8 <pass+0x190>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00000617 auipc a2,0x0
+ 800026cc: 7f860613 addi a2,a2,2040 # 80002ec0 <pass+0x168>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00006d17 auipc s10,0x6
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800083f0 <user_mapping>
+ 80002724: 00002b97 auipc s7,0x2
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80004000 <pt>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00006a17 auipc s4,0x6
+ 80002738: 0aca0a13 addi s4,s4,172 # 800087e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00006717 auipc a4,0x6
+ 8000274c: 08f73c23 sd a5,152(a4) # 800087e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00006717 auipc a4,0x6
+ 800027d4: 00f73823 sd a5,16(a4) # 800087e0 <freelist_tail>
+ 800027d8: 00006717 auipc a4,0x6
+ 800027dc: 00f73823 sd a5,16(a4) # 800087e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 72c68693 addi a3,a3,1836 # 80002f18 <pass+0x1c0>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 64c68693 addi a3,a3,1612 # 80002e88 <pass+0x130>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 5dc68693 addi a3,a3,1500 # 80002e50 <pass+0xf8>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00002697 auipc a3,0x2
+ 800028e0: 72468693 addi a3,a3,1828 # 80005000 <pt+0x1000>
+ 800028e4: 00003717 auipc a4,0x3
+ 800028e8: 71c70713 addi a4,a4,1820 # 80006000 <pt+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00004797 auipc a5,0x4
+ 800028f8: 70c78793 addi a5,a5,1804 # 80007000 <pt+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00001897 auipc a7,0x1
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80004000 <pt>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00002697 auipc a3,0x2
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80004ff8 <pt+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00001617 auipc a2,0x1
+ 80002938: 6cc60613 addi a2,a2,1740 # 80004000 <pt>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00004697 auipc a3,0x4
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80006ff8 <pt+0x2ff8>
+ 8000294c: 00002717 auipc a4,0x2
+ 80002950: 6af73a23 sd a5,1716(a4) # 80005000 <pt+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00005697 auipc a3,0x5
+ 800029c0: 64468693 addi a3,a3,1604 # 80008000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00006617 auipc a2,0x6
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800087e8 <freelist_head>
+ 800029d4: 00006797 auipc a5,0x6
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800087e0 <freelist_tail>
+ 800029dc: 00006317 auipc t1,0x6
+ 800029e0: a1430313 addi t1,t1,-1516 # 800083f0 <user_mapping>
+ 800029e4: 03b00793 li a5,59
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00006797 auipc a5,0x6
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800083e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 007667b7 lui a5,0x766
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: efb78793 addi a5,a5,-261 # 765efb <_start-0x7f89a105>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 00000097 auipc ra,0x0
+ 80002acc: 53808093 addi ra,ra,1336 # 80003000 <begin_signature>
+ 80002ad0: 0000df03 lhu t5,0(ra)
+ 80002ad4: 0ff00e93 li t4,255
+ 80002ad8: 00200193 li gp,2
+ 80002adc: 27df1663 bne t5,t4,80002d48 <fail>
+
+0000000080002ae0 <test_3>:
+ 80002ae0: 00000097 auipc ra,0x0
+ 80002ae4: 52008093 addi ra,ra,1312 # 80003000 <begin_signature>
+ 80002ae8: 0020df03 lhu t5,2(ra)
+ 80002aec: 00010eb7 lui t4,0x10
+ 80002af0: f00e8e9b addiw t4,t4,-256
+ 80002af4: 00300193 li gp,3
+ 80002af8: 25df1863 bne t5,t4,80002d48 <fail>
+
+0000000080002afc <test_4>:
+ 80002afc: 00000097 auipc ra,0x0
+ 80002b00: 50408093 addi ra,ra,1284 # 80003000 <begin_signature>
+ 80002b04: 0040df03 lhu t5,4(ra)
+ 80002b08: 00001eb7 lui t4,0x1
+ 80002b0c: ff0e8e9b addiw t4,t4,-16
+ 80002b10: 00400193 li gp,4
+ 80002b14: 23df1a63 bne t5,t4,80002d48 <fail>
+
+0000000080002b18 <test_5>:
+ 80002b18: 00000097 auipc ra,0x0
+ 80002b1c: 4e808093 addi ra,ra,1256 # 80003000 <begin_signature>
+ 80002b20: 0060df03 lhu t5,6(ra)
+ 80002b24: 0000feb7 lui t4,0xf
+ 80002b28: 00fe8e9b addiw t4,t4,15
+ 80002b2c: 00500193 li gp,5
+ 80002b30: 21df1c63 bne t5,t4,80002d48 <fail>
+
+0000000080002b34 <test_6>:
+ 80002b34: 00000097 auipc ra,0x0
+ 80002b38: 4d208093 addi ra,ra,1234 # 80003006 <tdat4>
+ 80002b3c: ffa0df03 lhu t5,-6(ra)
+ 80002b40: 0ff00e93 li t4,255
+ 80002b44: 00600193 li gp,6
+ 80002b48: 21df1063 bne t5,t4,80002d48 <fail>
+
+0000000080002b4c <test_7>:
+ 80002b4c: 00000097 auipc ra,0x0
+ 80002b50: 4ba08093 addi ra,ra,1210 # 80003006 <tdat4>
+ 80002b54: ffc0df03 lhu t5,-4(ra)
+ 80002b58: 00010eb7 lui t4,0x10
+ 80002b5c: f00e8e9b addiw t4,t4,-256
+ 80002b60: 00700193 li gp,7
+ 80002b64: 1fdf1263 bne t5,t4,80002d48 <fail>
+
+0000000080002b68 <test_8>:
+ 80002b68: 00000097 auipc ra,0x0
+ 80002b6c: 49e08093 addi ra,ra,1182 # 80003006 <tdat4>
+ 80002b70: ffe0df03 lhu t5,-2(ra)
+ 80002b74: 00001eb7 lui t4,0x1
+ 80002b78: ff0e8e9b addiw t4,t4,-16
+ 80002b7c: 00800193 li gp,8
+ 80002b80: 1ddf1463 bne t5,t4,80002d48 <fail>
+
+0000000080002b84 <test_9>:
+ 80002b84: 00000097 auipc ra,0x0
+ 80002b88: 48208093 addi ra,ra,1154 # 80003006 <tdat4>
+ 80002b8c: 0000df03 lhu t5,0(ra)
+ 80002b90: 0000feb7 lui t4,0xf
+ 80002b94: 00fe8e9b addiw t4,t4,15
+ 80002b98: 00900193 li gp,9
+ 80002b9c: 1bdf1663 bne t5,t4,80002d48 <fail>
+
+0000000080002ba0 <test_10>:
+ 80002ba0: 00000097 auipc ra,0x0
+ 80002ba4: 46008093 addi ra,ra,1120 # 80003000 <begin_signature>
+ 80002ba8: fe008093 addi ra,ra,-32
+ 80002bac: 0200d283 lhu t0,32(ra)
+ 80002bb0: 0ff00e93 li t4,255
+ 80002bb4: 00a00193 li gp,10
+ 80002bb8: 19d29863 bne t0,t4,80002d48 <fail>
+
+0000000080002bbc <test_11>:
+ 80002bbc: 00000097 auipc ra,0x0
+ 80002bc0: 44408093 addi ra,ra,1092 # 80003000 <begin_signature>
+ 80002bc4: ffb08093 addi ra,ra,-5
+ 80002bc8: 0070d283 lhu t0,7(ra)
+ 80002bcc: 00010eb7 lui t4,0x10
+ 80002bd0: f00e8e9b addiw t4,t4,-256
+ 80002bd4: 00b00193 li gp,11
+ 80002bd8: 17d29863 bne t0,t4,80002d48 <fail>
+
+0000000080002bdc <test_12>:
+ 80002bdc: 00c00193 li gp,12
+ 80002be0: 00000213 li tp,0
+ 80002be4: 00000097 auipc ra,0x0
+ 80002be8: 41e08093 addi ra,ra,1054 # 80003002 <tdat2>
+ 80002bec: 0020df03 lhu t5,2(ra)
+ 80002bf0: 000f0313 mv t1,t5
+ 80002bf4: 00001eb7 lui t4,0x1
+ 80002bf8: ff0e8e9b addiw t4,t4,-16
+ 80002bfc: 15d31663 bne t1,t4,80002d48 <fail>
+ 80002c00: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c04: 00200293 li t0,2
+ 80002c08: fc521ee3 bne tp,t0,80002be4 <test_12+0x8>
+
+0000000080002c0c <test_13>:
+ 80002c0c: 00d00193 li gp,13
+ 80002c10: 00000213 li tp,0
+ 80002c14: 00000097 auipc ra,0x0
+ 80002c18: 3f008093 addi ra,ra,1008 # 80003004 <tdat3>
+ 80002c1c: 0020df03 lhu t5,2(ra)
+ 80002c20: 00000013 nop
+ 80002c24: 000f0313 mv t1,t5
+ 80002c28: 0000feb7 lui t4,0xf
+ 80002c2c: 00fe8e9b addiw t4,t4,15
+ 80002c30: 11d31c63 bne t1,t4,80002d48 <fail>
+ 80002c34: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c38: 00200293 li t0,2
+ 80002c3c: fc521ce3 bne tp,t0,80002c14 <test_13+0x8>
+
+0000000080002c40 <test_14>:
+ 80002c40: 00e00193 li gp,14
+ 80002c44: 00000213 li tp,0
+ 80002c48: 00000097 auipc ra,0x0
+ 80002c4c: 3b808093 addi ra,ra,952 # 80003000 <begin_signature>
+ 80002c50: 0020df03 lhu t5,2(ra)
+ 80002c54: 00000013 nop
+ 80002c58: 00000013 nop
+ 80002c5c: 000f0313 mv t1,t5
+ 80002c60: 00010eb7 lui t4,0x10
+ 80002c64: f00e8e9b addiw t4,t4,-256
+ 80002c68: 0fd31063 bne t1,t4,80002d48 <fail>
+ 80002c6c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c70: 00200293 li t0,2
+ 80002c74: fc521ae3 bne tp,t0,80002c48 <test_14+0x8>
+
+0000000080002c78 <test_15>:
+ 80002c78: 00f00193 li gp,15
+ 80002c7c: 00000213 li tp,0
+ 80002c80: 00000097 auipc ra,0x0
+ 80002c84: 38208093 addi ra,ra,898 # 80003002 <tdat2>
+ 80002c88: 0020df03 lhu t5,2(ra)
+ 80002c8c: 00001eb7 lui t4,0x1
+ 80002c90: ff0e8e9b addiw t4,t4,-16
+ 80002c94: 0bdf1a63 bne t5,t4,80002d48 <fail>
+ 80002c98: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c9c: 00200293 li t0,2
+ 80002ca0: fe5210e3 bne tp,t0,80002c80 <test_15+0x8>
+
+0000000080002ca4 <test_16>:
+ 80002ca4: 01000193 li gp,16
+ 80002ca8: 00000213 li tp,0
+ 80002cac: 00000097 auipc ra,0x0
+ 80002cb0: 35808093 addi ra,ra,856 # 80003004 <tdat3>
+ 80002cb4: 00000013 nop
+ 80002cb8: 0020df03 lhu t5,2(ra)
+ 80002cbc: 0000feb7 lui t4,0xf
+ 80002cc0: 00fe8e9b addiw t4,t4,15
+ 80002cc4: 09df1263 bne t5,t4,80002d48 <fail>
+ 80002cc8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ccc: 00200293 li t0,2
+ 80002cd0: fc521ee3 bne tp,t0,80002cac <test_16+0x8>
+
+0000000080002cd4 <test_17>:
+ 80002cd4: 01100193 li gp,17
+ 80002cd8: 00000213 li tp,0
+ 80002cdc: 00000097 auipc ra,0x0
+ 80002ce0: 32408093 addi ra,ra,804 # 80003000 <begin_signature>
+ 80002ce4: 00000013 nop
+ 80002ce8: 00000013 nop
+ 80002cec: 0020df03 lhu t5,2(ra)
+ 80002cf0: 00010eb7 lui t4,0x10
+ 80002cf4: f00e8e9b addiw t4,t4,-256
+ 80002cf8: 05df1863 bne t5,t4,80002d48 <fail>
+ 80002cfc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d00: 00200293 li t0,2
+ 80002d04: fc521ce3 bne tp,t0,80002cdc <test_17+0x8>
+
+0000000080002d08 <test_18>:
+ 80002d08: 00000297 auipc t0,0x0
+ 80002d0c: 2f828293 addi t0,t0,760 # 80003000 <begin_signature>
+ 80002d10: 0002d103 lhu sp,0(t0)
+ 80002d14: 00200113 li sp,2
+ 80002d18: 00200e93 li t4,2
+ 80002d1c: 01200193 li gp,18
+ 80002d20: 03d11463 bne sp,t4,80002d48 <fail>
+
+0000000080002d24 <test_19>:
+ 80002d24: 00000297 auipc t0,0x0
+ 80002d28: 2dc28293 addi t0,t0,732 # 80003000 <begin_signature>
+ 80002d2c: 0002d103 lhu sp,0(t0)
+ 80002d30: 00000013 nop
+ 80002d34: 00200113 li sp,2
+ 80002d38: 00200e93 li t4,2
+ 80002d3c: 01300193 li gp,19
+ 80002d40: 01d11463 bne sp,t4,80002d48 <fail>
+ 80002d44: 00301a63 bne zero,gp,80002d58 <pass>
+
+0000000080002d48 <fail>:
+ 80002d48: 00119513 slli a0,gp,0x1
+ 80002d4c: 00050063 beqz a0,80002d4c <fail+0x4>
+ 80002d50: 00156513 ori a0,a0,1
+ 80002d54: 00000073 ecall
+
+0000000080002d58 <pass>:
+ 80002d58: 00100513 li a0,1
+ 80002d5c: 00000073 ecall
+ 80002d60: c0001073 unimp
+
+Disassembly of section .data:
+
+0000000080003000 <begin_signature>:
+ 80003000: 00ff 0xff
+
+0000000080003002 <tdat2>:
+ 80003002: ff00 sd s0,56(a4)
+
+0000000080003004 <tdat3>:
+ 80003004: 0ff0 addi a2,sp,988
+
+0000000080003006 <tdat4>:
+ 80003006: 0xf00f
diff --git a/test/tests/rv64ui-v-lhu.elf b/test/tests/rv64ui-v-lhu.elf
new file mode 100644
index 0000000..af1ebee
--- /dev/null
+++ b/test/tests/rv64ui-v-lhu.elf
Binary files differ
diff --git a/test/tests/rv64ui-v-lui.dump b/test/tests/rv64ui-v-lui.dump
new file mode 100644
index 0000000..6de22b6
--- /dev/null
+++ b/test/tests/rv64ui-v-lui.dump
@@ -0,0 +1,872 @@
+
+rv64ui-v-lui: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <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: 6b810113 addi sp,sp,1720 # 800086d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00001617 auipc a2,0x1
+ 80002318: cec60613 addi a2,a2,-788 # 80003000 <begin_signature>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00005797 auipc a5,0x5
+ 80002334: 4b878793 addi a5,a5,1208 # 800077e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00005717 auipc a4,0x5
+ 80002348: 49c70713 addi a4,a4,1180 # 800077e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00005897 auipc a7,0x5
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800077e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00005797 auipc a5,0x5
+ 80002384: 07078793 addi a5,a5,112 # 800073f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf8810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00005797 auipc a5,0x5
+ 80002448: 3807be23 sd zero,924(a5) # 800077e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00000697 auipc a3,0x0
+ 8000245c: 6f068693 addi a3,a3,1776 # 80002b48 <pass+0x10>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00000617 auipc a2,0x0
+ 800024b8: 72460613 addi a2,a2,1828 # 80002bd8 <pass+0xa0>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00000617 auipc a2,0x0
+ 80002508: 6ec60613 addi a2,a2,1772 # 80002bf0 <pass+0xb8>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00000697 auipc a3,0x0
+ 80002558: 63c68693 addi a3,a3,1596 # 80002b90 <pass+0x58>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00000697 auipc a3,0x0
+ 80002674: 65868693 addi a3,a3,1624 # 80002cc8 <pass+0x190>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00000617 auipc a2,0x0
+ 800026cc: 5d860613 addi a2,a2,1496 # 80002ca0 <pass+0x168>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00005d17 auipc s10,0x5
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800073f0 <user_mapping>
+ 80002724: 00001b97 auipc s7,0x1
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80003000 <begin_signature>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00005a17 auipc s4,0x5
+ 80002738: 0aca0a13 addi s4,s4,172 # 800077e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00005717 auipc a4,0x5
+ 8000274c: 08f73c23 sd a5,152(a4) # 800077e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00005717 auipc a4,0x5
+ 800027d4: 00f73823 sd a5,16(a4) # 800077e0 <freelist_tail>
+ 800027d8: 00005717 auipc a4,0x5
+ 800027dc: 00f73823 sd a5,16(a4) # 800077e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 50c68693 addi a3,a3,1292 # 80002cf8 <pass+0x1c0>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 42c68693 addi a3,a3,1068 # 80002c68 <pass+0x130>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 3bc68693 addi a3,a3,956 # 80002c30 <pass+0xf8>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00001697 auipc a3,0x1
+ 800028e0: 72468693 addi a3,a3,1828 # 80004000 <begin_signature+0x1000>
+ 800028e4: 00002717 auipc a4,0x2
+ 800028e8: 71c70713 addi a4,a4,1820 # 80005000 <begin_signature+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00003797 auipc a5,0x3
+ 800028f8: 70c78793 addi a5,a5,1804 # 80006000 <begin_signature+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00000897 auipc a7,0x0
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80003000 <begin_signature>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00001697 auipc a3,0x1
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80003ff8 <begin_signature+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00000617 auipc a2,0x0
+ 80002938: 6cc60613 addi a2,a2,1740 # 80003000 <begin_signature>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00003697 auipc a3,0x3
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80005ff8 <begin_signature+0x2ff8>
+ 8000294c: 00001717 auipc a4,0x1
+ 80002950: 6af73a23 sd a5,1716(a4) # 80004000 <begin_signature+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00004697 auipc a3,0x4
+ 800029c0: 64468693 addi a3,a3,1604 # 80007000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00005617 auipc a2,0x5
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800077e8 <freelist_head>
+ 800029d4: 00005797 auipc a5,0x5
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800077e0 <freelist_tail>
+ 800029dc: 00005317 auipc t1,0x5
+ 800029e0: a1430313 addi t1,t1,-1516 # 800073f0 <user_mapping>
+ 800029e4: 00e00793 li a5,14
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00005797 auipc a5,0x5
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800073e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 0caa87b7 lui a5,0xcaa8
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: 51978793 addi a5,a5,1305 # caa8519 <_start-0x73557ae7>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 000000b7 lui ra,0x0
+ 80002acc: 00000e93 li t4,0
+ 80002ad0: 00200193 li gp,2
+ 80002ad4: 05d09a63 bne ra,t4,80002b28 <fail>
+
+0000000080002ad8 <test_3>:
+ 80002ad8: fffff0b7 lui ra,0xfffff
+ 80002adc: 4010d093 srai ra,ra,0x1
+ 80002ae0: 80000e93 li t4,-2048
+ 80002ae4: 00300193 li gp,3
+ 80002ae8: 05d09063 bne ra,t4,80002b28 <fail>
+
+0000000080002aec <test_4>:
+ 80002aec: 7ffff0b7 lui ra,0x7ffff
+ 80002af0: 4140d093 srai ra,ra,0x14
+ 80002af4: 7ff00e93 li t4,2047
+ 80002af8: 00400193 li gp,4
+ 80002afc: 03d09663 bne ra,t4,80002b28 <fail>
+
+0000000080002b00 <test_5>:
+ 80002b00: 800000b7 lui ra,0x80000
+ 80002b04: 4140d093 srai ra,ra,0x14
+ 80002b08: 80000e93 li t4,-2048
+ 80002b0c: 00500193 li gp,5
+ 80002b10: 01d09c63 bne ra,t4,80002b28 <fail>
+
+0000000080002b14 <test_6>:
+ 80002b14: 80000037 lui zero,0x80000
+ 80002b18: 00000e93 li t4,0
+ 80002b1c: 00600193 li gp,6
+ 80002b20: 01d01463 bne zero,t4,80002b28 <fail>
+ 80002b24: 00301a63 bne zero,gp,80002b38 <pass>
+
+0000000080002b28 <fail>:
+ 80002b28: 00119513 slli a0,gp,0x1
+ 80002b2c: 00050063 beqz a0,80002b2c <fail+0x4>
+ 80002b30: 00156513 ori a0,a0,1
+ 80002b34: 00000073 ecall
+
+0000000080002b38 <pass>:
+ 80002b38: 00100513 li a0,1
+ 80002b3c: 00000073 ecall
+ 80002b40: c0001073 unimp
diff --git a/test/tests/rv64ui-v-lui.elf b/test/tests/rv64ui-v-lui.elf
new file mode 100644
index 0000000..3cab950
--- /dev/null
+++ b/test/tests/rv64ui-v-lui.elf
Binary files differ
diff --git a/test/tests/rv64ui-v-lw.dump b/test/tests/rv64ui-v-lw.dump
new file mode 100644
index 0000000..4208d27
--- /dev/null
+++ b/test/tests/rv64ui-v-lw.dump
@@ -0,0 +1,1054 @@
+
+rv64ui-v-lw: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <handle_reset>:
+ 8000000c: 00000297 auipc t0,0x0
+ 80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+ 80000014: 30529073 csrw mtvec,t0
+ 80000018: 00009117 auipc sp,0x9
+ 8000001c: 6b810113 addi sp,sp,1720 # 800096d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00002617 auipc a2,0x2
+ 80002318: cec60613 addi a2,a2,-788 # 80004000 <pt>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00006797 auipc a5,0x6
+ 80002334: 4b878793 addi a5,a5,1208 # 800087e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00006717 auipc a4,0x6
+ 80002348: 49c70713 addi a4,a4,1180 # 800087e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00006897 auipc a7,0x6
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800087e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00006797 auipc a5,0x6
+ 80002384: 07078793 addi a5,a5,112 # 800083f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf7810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00006797 auipc a5,0x6
+ 80002448: 3807be23 sd zero,924(a5) # 800087e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00001697 auipc a3,0x1
+ 8000245c: 91868693 addi a3,a3,-1768 # 80002d70 <pass+0xc>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00001617 auipc a2,0x1
+ 800024b8: 94c60613 addi a2,a2,-1716 # 80002e00 <pass+0x9c>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00001617 auipc a2,0x1
+ 80002508: 91460613 addi a2,a2,-1772 # 80002e18 <pass+0xb4>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00001697 auipc a3,0x1
+ 80002558: 86468693 addi a3,a3,-1948 # 80002db8 <pass+0x54>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00001697 auipc a3,0x1
+ 80002674: 88068693 addi a3,a3,-1920 # 80002ef0 <pass+0x18c>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00001617 auipc a2,0x1
+ 800026cc: 80060613 addi a2,a2,-2048 # 80002ec8 <pass+0x164>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00006d17 auipc s10,0x6
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800083f0 <user_mapping>
+ 80002724: 00002b97 auipc s7,0x2
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80004000 <pt>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00006a17 auipc s4,0x6
+ 80002738: 0aca0a13 addi s4,s4,172 # 800087e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00006717 auipc a4,0x6
+ 8000274c: 08f73c23 sd a5,152(a4) # 800087e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00006717 auipc a4,0x6
+ 800027d4: 00f73823 sd a5,16(a4) # 800087e0 <freelist_tail>
+ 800027d8: 00006717 auipc a4,0x6
+ 800027dc: 00f73823 sd a5,16(a4) # 800087e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 73468693 addi a3,a3,1844 # 80002f20 <pass+0x1bc>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 65468693 addi a3,a3,1620 # 80002e90 <pass+0x12c>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 5e468693 addi a3,a3,1508 # 80002e58 <pass+0xf4>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00002697 auipc a3,0x2
+ 800028e0: 72468693 addi a3,a3,1828 # 80005000 <pt+0x1000>
+ 800028e4: 00003717 auipc a4,0x3
+ 800028e8: 71c70713 addi a4,a4,1820 # 80006000 <pt+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00004797 auipc a5,0x4
+ 800028f8: 70c78793 addi a5,a5,1804 # 80007000 <pt+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00001897 auipc a7,0x1
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80004000 <pt>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00002697 auipc a3,0x2
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80004ff8 <pt+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00001617 auipc a2,0x1
+ 80002938: 6cc60613 addi a2,a2,1740 # 80004000 <pt>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00004697 auipc a3,0x4
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80006ff8 <pt+0x2ff8>
+ 8000294c: 00002717 auipc a4,0x2
+ 80002950: 6af73a23 sd a5,1716(a4) # 80005000 <pt+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00005697 auipc a3,0x5
+ 800029c0: 64468693 addi a3,a3,1604 # 80008000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00006617 auipc a2,0x6
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800087e8 <freelist_head>
+ 800029d4: 00006797 auipc a5,0x6
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800087e0 <freelist_tail>
+ 800029dc: 00006317 auipc t1,0x6
+ 800029e0: a1430313 addi t1,t1,-1516 # 800083f0 <user_mapping>
+ 800029e4: 00800793 li a5,8
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00006797 auipc a5,0x6
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800083e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 03dd47b7 lui a5,0x3dd4
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: ebd78793 addi a5,a5,-323 # 3dd3ebd <_start-0x7c22c143>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 00000097 auipc ra,0x0
+ 80002acc: 53808093 addi ra,ra,1336 # 80003000 <begin_signature>
+ 80002ad0: 0000af03 lw t5,0(ra)
+ 80002ad4: 00ff0eb7 lui t4,0xff0
+ 80002ad8: 0ffe8e9b addiw t4,t4,255
+ 80002adc: 00200193 li gp,2
+ 80002ae0: 27df1a63 bne t5,t4,80002d54 <fail>
+
+0000000080002ae4 <test_3>:
+ 80002ae4: 00000097 auipc ra,0x0
+ 80002ae8: 51c08093 addi ra,ra,1308 # 80003000 <begin_signature>
+ 80002aec: 0040af03 lw t5,4(ra)
+ 80002af0: ff010eb7 lui t4,0xff010
+ 80002af4: f00e8e9b addiw t4,t4,-256
+ 80002af8: 00300193 li gp,3
+ 80002afc: 25df1c63 bne t5,t4,80002d54 <fail>
+
+0000000080002b00 <test_4>:
+ 80002b00: 00000097 auipc ra,0x0
+ 80002b04: 50008093 addi ra,ra,1280 # 80003000 <begin_signature>
+ 80002b08: 0080af03 lw t5,8(ra)
+ 80002b0c: 0ff01eb7 lui t4,0xff01
+ 80002b10: ff0e8e9b addiw t4,t4,-16
+ 80002b14: 00400193 li gp,4
+ 80002b18: 23df1e63 bne t5,t4,80002d54 <fail>
+
+0000000080002b1c <test_5>:
+ 80002b1c: 00000097 auipc ra,0x0
+ 80002b20: 4e408093 addi ra,ra,1252 # 80003000 <begin_signature>
+ 80002b24: 00c0af03 lw t5,12(ra)
+ 80002b28: f00ffeb7 lui t4,0xf00ff
+ 80002b2c: 00fe8e9b addiw t4,t4,15
+ 80002b30: 00500193 li gp,5
+ 80002b34: 23df1063 bne t5,t4,80002d54 <fail>
+
+0000000080002b38 <test_6>:
+ 80002b38: 00000097 auipc ra,0x0
+ 80002b3c: 4d408093 addi ra,ra,1236 # 8000300c <tdat4>
+ 80002b40: ff40af03 lw t5,-12(ra)
+ 80002b44: 00ff0eb7 lui t4,0xff0
+ 80002b48: 0ffe8e9b addiw t4,t4,255
+ 80002b4c: 00600193 li gp,6
+ 80002b50: 21df1263 bne t5,t4,80002d54 <fail>
+
+0000000080002b54 <test_7>:
+ 80002b54: 00000097 auipc ra,0x0
+ 80002b58: 4b808093 addi ra,ra,1208 # 8000300c <tdat4>
+ 80002b5c: ff80af03 lw t5,-8(ra)
+ 80002b60: ff010eb7 lui t4,0xff010
+ 80002b64: f00e8e9b addiw t4,t4,-256
+ 80002b68: 00700193 li gp,7
+ 80002b6c: 1fdf1463 bne t5,t4,80002d54 <fail>
+
+0000000080002b70 <test_8>:
+ 80002b70: 00000097 auipc ra,0x0
+ 80002b74: 49c08093 addi ra,ra,1180 # 8000300c <tdat4>
+ 80002b78: ffc0af03 lw t5,-4(ra)
+ 80002b7c: 0ff01eb7 lui t4,0xff01
+ 80002b80: ff0e8e9b addiw t4,t4,-16
+ 80002b84: 00800193 li gp,8
+ 80002b88: 1ddf1663 bne t5,t4,80002d54 <fail>
+
+0000000080002b8c <test_9>:
+ 80002b8c: 00000097 auipc ra,0x0
+ 80002b90: 48008093 addi ra,ra,1152 # 8000300c <tdat4>
+ 80002b94: 0000af03 lw t5,0(ra)
+ 80002b98: f00ffeb7 lui t4,0xf00ff
+ 80002b9c: 00fe8e9b addiw t4,t4,15
+ 80002ba0: 00900193 li gp,9
+ 80002ba4: 1bdf1863 bne t5,t4,80002d54 <fail>
+
+0000000080002ba8 <test_10>:
+ 80002ba8: 00000097 auipc ra,0x0
+ 80002bac: 45808093 addi ra,ra,1112 # 80003000 <begin_signature>
+ 80002bb0: fe008093 addi ra,ra,-32
+ 80002bb4: 0200a283 lw t0,32(ra)
+ 80002bb8: 00ff0eb7 lui t4,0xff0
+ 80002bbc: 0ffe8e9b addiw t4,t4,255
+ 80002bc0: 00a00193 li gp,10
+ 80002bc4: 19d29863 bne t0,t4,80002d54 <fail>
+
+0000000080002bc8 <test_11>:
+ 80002bc8: 00000097 auipc ra,0x0
+ 80002bcc: 43808093 addi ra,ra,1080 # 80003000 <begin_signature>
+ 80002bd0: ffd08093 addi ra,ra,-3
+ 80002bd4: 0070a283 lw t0,7(ra)
+ 80002bd8: ff010eb7 lui t4,0xff010
+ 80002bdc: f00e8e9b addiw t4,t4,-256
+ 80002be0: 00b00193 li gp,11
+ 80002be4: 17d29863 bne t0,t4,80002d54 <fail>
+
+0000000080002be8 <test_12>:
+ 80002be8: 00c00193 li gp,12
+ 80002bec: 00000213 li tp,0
+ 80002bf0: 00000097 auipc ra,0x0
+ 80002bf4: 41408093 addi ra,ra,1044 # 80003004 <tdat2>
+ 80002bf8: 0040af03 lw t5,4(ra)
+ 80002bfc: 000f0313 mv t1,t5
+ 80002c00: 0ff01eb7 lui t4,0xff01
+ 80002c04: ff0e8e9b addiw t4,t4,-16
+ 80002c08: 15d31663 bne t1,t4,80002d54 <fail>
+ 80002c0c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c10: 00200293 li t0,2
+ 80002c14: fc521ee3 bne tp,t0,80002bf0 <test_12+0x8>
+
+0000000080002c18 <test_13>:
+ 80002c18: 00d00193 li gp,13
+ 80002c1c: 00000213 li tp,0
+ 80002c20: 00000097 auipc ra,0x0
+ 80002c24: 3e808093 addi ra,ra,1000 # 80003008 <tdat3>
+ 80002c28: 0040af03 lw t5,4(ra)
+ 80002c2c: 00000013 nop
+ 80002c30: 000f0313 mv t1,t5
+ 80002c34: f00ffeb7 lui t4,0xf00ff
+ 80002c38: 00fe8e9b addiw t4,t4,15
+ 80002c3c: 11d31c63 bne t1,t4,80002d54 <fail>
+ 80002c40: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c44: 00200293 li t0,2
+ 80002c48: fc521ce3 bne tp,t0,80002c20 <test_13+0x8>
+
+0000000080002c4c <test_14>:
+ 80002c4c: 00e00193 li gp,14
+ 80002c50: 00000213 li tp,0
+ 80002c54: 00000097 auipc ra,0x0
+ 80002c58: 3ac08093 addi ra,ra,940 # 80003000 <begin_signature>
+ 80002c5c: 0040af03 lw t5,4(ra)
+ 80002c60: 00000013 nop
+ 80002c64: 00000013 nop
+ 80002c68: 000f0313 mv t1,t5
+ 80002c6c: ff010eb7 lui t4,0xff010
+ 80002c70: f00e8e9b addiw t4,t4,-256
+ 80002c74: 0fd31063 bne t1,t4,80002d54 <fail>
+ 80002c78: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c7c: 00200293 li t0,2
+ 80002c80: fc521ae3 bne tp,t0,80002c54 <test_14+0x8>
+
+0000000080002c84 <test_15>:
+ 80002c84: 00f00193 li gp,15
+ 80002c88: 00000213 li tp,0
+ 80002c8c: 00000097 auipc ra,0x0
+ 80002c90: 37808093 addi ra,ra,888 # 80003004 <tdat2>
+ 80002c94: 0040af03 lw t5,4(ra)
+ 80002c98: 0ff01eb7 lui t4,0xff01
+ 80002c9c: ff0e8e9b addiw t4,t4,-16
+ 80002ca0: 0bdf1a63 bne t5,t4,80002d54 <fail>
+ 80002ca4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ca8: 00200293 li t0,2
+ 80002cac: fe5210e3 bne tp,t0,80002c8c <test_15+0x8>
+
+0000000080002cb0 <test_16>:
+ 80002cb0: 01000193 li gp,16
+ 80002cb4: 00000213 li tp,0
+ 80002cb8: 00000097 auipc ra,0x0
+ 80002cbc: 35008093 addi ra,ra,848 # 80003008 <tdat3>
+ 80002cc0: 00000013 nop
+ 80002cc4: 0040af03 lw t5,4(ra)
+ 80002cc8: f00ffeb7 lui t4,0xf00ff
+ 80002ccc: 00fe8e9b addiw t4,t4,15
+ 80002cd0: 09df1263 bne t5,t4,80002d54 <fail>
+ 80002cd4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002cd8: 00200293 li t0,2
+ 80002cdc: fc521ee3 bne tp,t0,80002cb8 <test_16+0x8>
+
+0000000080002ce0 <test_17>:
+ 80002ce0: 01100193 li gp,17
+ 80002ce4: 00000213 li tp,0
+ 80002ce8: 00000097 auipc ra,0x0
+ 80002cec: 31808093 addi ra,ra,792 # 80003000 <begin_signature>
+ 80002cf0: 00000013 nop
+ 80002cf4: 00000013 nop
+ 80002cf8: 0040af03 lw t5,4(ra)
+ 80002cfc: ff010eb7 lui t4,0xff010
+ 80002d00: f00e8e9b addiw t4,t4,-256
+ 80002d04: 05df1863 bne t5,t4,80002d54 <fail>
+ 80002d08: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d0c: 00200293 li t0,2
+ 80002d10: fc521ce3 bne tp,t0,80002ce8 <test_17+0x8>
+
+0000000080002d14 <test_18>:
+ 80002d14: 00000297 auipc t0,0x0
+ 80002d18: 2ec28293 addi t0,t0,748 # 80003000 <begin_signature>
+ 80002d1c: 0002a103 lw sp,0(t0)
+ 80002d20: 00200113 li sp,2
+ 80002d24: 00200e93 li t4,2
+ 80002d28: 01200193 li gp,18
+ 80002d2c: 03d11463 bne sp,t4,80002d54 <fail>
+
+0000000080002d30 <test_19>:
+ 80002d30: 00000297 auipc t0,0x0
+ 80002d34: 2d028293 addi t0,t0,720 # 80003000 <begin_signature>
+ 80002d38: 0002a103 lw sp,0(t0)
+ 80002d3c: 00000013 nop
+ 80002d40: 00200113 li sp,2
+ 80002d44: 00200e93 li t4,2
+ 80002d48: 01300193 li gp,19
+ 80002d4c: 01d11463 bne sp,t4,80002d54 <fail>
+ 80002d50: 00301a63 bne zero,gp,80002d64 <pass>
+
+0000000080002d54 <fail>:
+ 80002d54: 00119513 slli a0,gp,0x1
+ 80002d58: 00050063 beqz a0,80002d58 <fail+0x4>
+ 80002d5c: 00156513 ori a0,a0,1
+ 80002d60: 00000073 ecall
+
+0000000080002d64 <pass>:
+ 80002d64: 00100513 li a0,1
+ 80002d68: 00000073 ecall
+ 80002d6c: c0001073 unimp
+
+Disassembly of section .data:
+
+0000000080003000 <begin_signature>:
+ 80003000: 00ff 0xff
+ 80003002: 00ff 0xff
+
+0000000080003004 <tdat2>:
+ 80003004: ff00 sd s0,56(a4)
+ 80003006: ff00 sd s0,56(a4)
+
+0000000080003008 <tdat3>:
+ 80003008: 0ff0 addi a2,sp,988
+ 8000300a: 0ff0 addi a2,sp,988
+
+000000008000300c <tdat4>:
+ 8000300c: f00ff00f 0xf00ff00f
diff --git a/test/tests/rv64ui-v-lw.elf b/test/tests/rv64ui-v-lw.elf
new file mode 100644
index 0000000..d73403b
--- /dev/null
+++ b/test/tests/rv64ui-v-lw.elf
Binary files differ
diff --git a/test/tests/rv64ui-v-lwu.dump b/test/tests/rv64ui-v-lwu.dump
new file mode 100644
index 0000000..aa0fb7d
--- /dev/null
+++ b/test/tests/rv64ui-v-lwu.dump
@@ -0,0 +1,1072 @@
+
+rv64ui-v-lwu: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <handle_reset>:
+ 8000000c: 00000297 auipc t0,0x0
+ 80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+ 80000014: 30529073 csrw mtvec,t0
+ 80000018: 00009117 auipc sp,0x9
+ 8000001c: 6b810113 addi sp,sp,1720 # 800096d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00002617 auipc a2,0x2
+ 80002318: cec60613 addi a2,a2,-788 # 80004000 <pt>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00006797 auipc a5,0x6
+ 80002334: 4b878793 addi a5,a5,1208 # 800087e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00006717 auipc a4,0x6
+ 80002348: 49c70713 addi a4,a4,1180 # 800087e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00006897 auipc a7,0x6
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800087e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00006797 auipc a5,0x6
+ 80002384: 07078793 addi a5,a5,112 # 800083f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf7810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00006797 auipc a5,0x6
+ 80002448: 3807be23 sd zero,924(a5) # 800087e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00001697 auipc a3,0x1
+ 8000245c: 96068693 addi a3,a3,-1696 # 80002db8 <pass+0xc>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00001617 auipc a2,0x1
+ 800024b8: 99460613 addi a2,a2,-1644 # 80002e48 <pass+0x9c>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00001617 auipc a2,0x1
+ 80002508: 95c60613 addi a2,a2,-1700 # 80002e60 <pass+0xb4>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00001697 auipc a3,0x1
+ 80002558: 8ac68693 addi a3,a3,-1876 # 80002e00 <pass+0x54>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00001697 auipc a3,0x1
+ 80002674: 8c868693 addi a3,a3,-1848 # 80002f38 <pass+0x18c>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00001617 auipc a2,0x1
+ 800026cc: 84860613 addi a2,a2,-1976 # 80002f10 <pass+0x164>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00006d17 auipc s10,0x6
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800083f0 <user_mapping>
+ 80002724: 00002b97 auipc s7,0x2
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80004000 <pt>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00006a17 auipc s4,0x6
+ 80002738: 0aca0a13 addi s4,s4,172 # 800087e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00006717 auipc a4,0x6
+ 8000274c: 08f73c23 sd a5,152(a4) # 800087e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00006717 auipc a4,0x6
+ 800027d4: 00f73823 sd a5,16(a4) # 800087e0 <freelist_tail>
+ 800027d8: 00006717 auipc a4,0x6
+ 800027dc: 00f73823 sd a5,16(a4) # 800087e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 77c68693 addi a3,a3,1916 # 80002f68 <pass+0x1bc>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 69c68693 addi a3,a3,1692 # 80002ed8 <pass+0x12c>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 62c68693 addi a3,a3,1580 # 80002ea0 <pass+0xf4>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00002697 auipc a3,0x2
+ 800028e0: 72468693 addi a3,a3,1828 # 80005000 <pt+0x1000>
+ 800028e4: 00003717 auipc a4,0x3
+ 800028e8: 71c70713 addi a4,a4,1820 # 80006000 <pt+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00004797 auipc a5,0x4
+ 800028f8: 70c78793 addi a5,a5,1804 # 80007000 <pt+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00001897 auipc a7,0x1
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80004000 <pt>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00002697 auipc a3,0x2
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80004ff8 <pt+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00001617 auipc a2,0x1
+ 80002938: 6cc60613 addi a2,a2,1740 # 80004000 <pt>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00004697 auipc a3,0x4
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80006ff8 <pt+0x2ff8>
+ 8000294c: 00002717 auipc a4,0x2
+ 80002950: 6af73a23 sd a5,1716(a4) # 80005000 <pt+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00005697 auipc a3,0x5
+ 800029c0: 64468693 addi a3,a3,1604 # 80008000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00006617 auipc a2,0x6
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800087e8 <freelist_head>
+ 800029d4: 00006797 auipc a5,0x6
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800087e0 <freelist_tail>
+ 800029dc: 00006317 auipc t1,0x6
+ 800029e0: a1430313 addi t1,t1,-1516 # 800083f0 <user_mapping>
+ 800029e4: 00200793 li a5,2
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00006797 auipc a5,0x6
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800083e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 046f07b7 lui a5,0x46f0
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: b8378793 addi a5,a5,-1149 # 46efb83 <_start-0x7b91047d>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 00000097 auipc ra,0x0
+ 80002acc: 53808093 addi ra,ra,1336 # 80003000 <begin_signature>
+ 80002ad0: 0000ef03 lwu t5,0(ra)
+ 80002ad4: 00ff0eb7 lui t4,0xff0
+ 80002ad8: 0ffe8e9b addiw t4,t4,255
+ 80002adc: 00200193 li gp,2
+ 80002ae0: 2bdf1e63 bne t5,t4,80002d9c <fail>
+
+0000000080002ae4 <test_3>:
+ 80002ae4: 00000097 auipc ra,0x0
+ 80002ae8: 51c08093 addi ra,ra,1308 # 80003000 <begin_signature>
+ 80002aec: 0040ef03 lwu t5,4(ra)
+ 80002af0: 00010eb7 lui t4,0x10
+ 80002af4: f01e8e9b addiw t4,t4,-255
+ 80002af8: 010e9e93 slli t4,t4,0x10
+ 80002afc: f00e8e93 addi t4,t4,-256 # ff00 <_start-0x7fff0100>
+ 80002b00: 00300193 li gp,3
+ 80002b04: 29df1c63 bne t5,t4,80002d9c <fail>
+
+0000000080002b08 <test_4>:
+ 80002b08: 00000097 auipc ra,0x0
+ 80002b0c: 4f808093 addi ra,ra,1272 # 80003000 <begin_signature>
+ 80002b10: 0080ef03 lwu t5,8(ra)
+ 80002b14: 0ff01eb7 lui t4,0xff01
+ 80002b18: ff0e8e9b addiw t4,t4,-16
+ 80002b1c: 00400193 li gp,4
+ 80002b20: 27df1e63 bne t5,t4,80002d9c <fail>
+
+0000000080002b24 <test_5>:
+ 80002b24: 00000097 auipc ra,0x0
+ 80002b28: 4dc08093 addi ra,ra,1244 # 80003000 <begin_signature>
+ 80002b2c: 00c0ef03 lwu t5,12(ra)
+ 80002b30: 000f0eb7 lui t4,0xf0
+ 80002b34: 0ffe8e9b addiw t4,t4,255
+ 80002b38: 00ce9e93 slli t4,t4,0xc
+ 80002b3c: 00fe8e93 addi t4,t4,15 # f000f <_start-0x7ff0fff1>
+ 80002b40: 00500193 li gp,5
+ 80002b44: 25df1c63 bne t5,t4,80002d9c <fail>
+
+0000000080002b48 <test_6>:
+ 80002b48: 00000097 auipc ra,0x0
+ 80002b4c: 4c408093 addi ra,ra,1220 # 8000300c <tdat4>
+ 80002b50: ff40ef03 lwu t5,-12(ra)
+ 80002b54: 00ff0eb7 lui t4,0xff0
+ 80002b58: 0ffe8e9b addiw t4,t4,255
+ 80002b5c: 00600193 li gp,6
+ 80002b60: 23df1e63 bne t5,t4,80002d9c <fail>
+
+0000000080002b64 <test_7>:
+ 80002b64: 00000097 auipc ra,0x0
+ 80002b68: 4a808093 addi ra,ra,1192 # 8000300c <tdat4>
+ 80002b6c: ff80ef03 lwu t5,-8(ra)
+ 80002b70: 00010eb7 lui t4,0x10
+ 80002b74: f01e8e9b addiw t4,t4,-255
+ 80002b78: 010e9e93 slli t4,t4,0x10
+ 80002b7c: f00e8e93 addi t4,t4,-256 # ff00 <_start-0x7fff0100>
+ 80002b80: 00700193 li gp,7
+ 80002b84: 21df1c63 bne t5,t4,80002d9c <fail>
+
+0000000080002b88 <test_8>:
+ 80002b88: 00000097 auipc ra,0x0
+ 80002b8c: 48408093 addi ra,ra,1156 # 8000300c <tdat4>
+ 80002b90: ffc0ef03 lwu t5,-4(ra)
+ 80002b94: 0ff01eb7 lui t4,0xff01
+ 80002b98: ff0e8e9b addiw t4,t4,-16
+ 80002b9c: 00800193 li gp,8
+ 80002ba0: 1fdf1e63 bne t5,t4,80002d9c <fail>
+
+0000000080002ba4 <test_9>:
+ 80002ba4: 00000097 auipc ra,0x0
+ 80002ba8: 46808093 addi ra,ra,1128 # 8000300c <tdat4>
+ 80002bac: 0000ef03 lwu t5,0(ra)
+ 80002bb0: 000f0eb7 lui t4,0xf0
+ 80002bb4: 0ffe8e9b addiw t4,t4,255
+ 80002bb8: 00ce9e93 slli t4,t4,0xc
+ 80002bbc: 00fe8e93 addi t4,t4,15 # f000f <_start-0x7ff0fff1>
+ 80002bc0: 00900193 li gp,9
+ 80002bc4: 1ddf1c63 bne t5,t4,80002d9c <fail>
+
+0000000080002bc8 <test_10>:
+ 80002bc8: 00000097 auipc ra,0x0
+ 80002bcc: 43808093 addi ra,ra,1080 # 80003000 <begin_signature>
+ 80002bd0: fe008093 addi ra,ra,-32
+ 80002bd4: 0200e283 lwu t0,32(ra)
+ 80002bd8: 00ff0eb7 lui t4,0xff0
+ 80002bdc: 0ffe8e9b addiw t4,t4,255
+ 80002be0: 00a00193 li gp,10
+ 80002be4: 1bd29c63 bne t0,t4,80002d9c <fail>
+
+0000000080002be8 <test_11>:
+ 80002be8: 00000097 auipc ra,0x0
+ 80002bec: 41808093 addi ra,ra,1048 # 80003000 <begin_signature>
+ 80002bf0: ffd08093 addi ra,ra,-3
+ 80002bf4: 0070e283 lwu t0,7(ra)
+ 80002bf8: 00010eb7 lui t4,0x10
+ 80002bfc: f01e8e9b addiw t4,t4,-255
+ 80002c00: 010e9e93 slli t4,t4,0x10
+ 80002c04: f00e8e93 addi t4,t4,-256 # ff00 <_start-0x7fff0100>
+ 80002c08: 00b00193 li gp,11
+ 80002c0c: 19d29863 bne t0,t4,80002d9c <fail>
+
+0000000080002c10 <test_12>:
+ 80002c10: 00c00193 li gp,12
+ 80002c14: 00000213 li tp,0
+ 80002c18: 00000097 auipc ra,0x0
+ 80002c1c: 3ec08093 addi ra,ra,1004 # 80003004 <tdat2>
+ 80002c20: 0040ef03 lwu t5,4(ra)
+ 80002c24: 000f0313 mv t1,t5
+ 80002c28: 0ff01eb7 lui t4,0xff01
+ 80002c2c: ff0e8e9b addiw t4,t4,-16
+ 80002c30: 17d31663 bne t1,t4,80002d9c <fail>
+ 80002c34: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c38: 00200293 li t0,2
+ 80002c3c: fc521ee3 bne tp,t0,80002c18 <test_12+0x8>
+
+0000000080002c40 <test_13>:
+ 80002c40: 00d00193 li gp,13
+ 80002c44: 00000213 li tp,0
+ 80002c48: 00000097 auipc ra,0x0
+ 80002c4c: 3c008093 addi ra,ra,960 # 80003008 <tdat3>
+ 80002c50: 0040ef03 lwu t5,4(ra)
+ 80002c54: 00000013 nop
+ 80002c58: 000f0313 mv t1,t5
+ 80002c5c: 000f0eb7 lui t4,0xf0
+ 80002c60: 0ffe8e9b addiw t4,t4,255
+ 80002c64: 00ce9e93 slli t4,t4,0xc
+ 80002c68: 00fe8e93 addi t4,t4,15 # f000f <_start-0x7ff0fff1>
+ 80002c6c: 13d31863 bne t1,t4,80002d9c <fail>
+ 80002c70: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c74: 00200293 li t0,2
+ 80002c78: fc5218e3 bne tp,t0,80002c48 <test_13+0x8>
+
+0000000080002c7c <test_14>:
+ 80002c7c: 00e00193 li gp,14
+ 80002c80: 00000213 li tp,0
+ 80002c84: 00000097 auipc ra,0x0
+ 80002c88: 37c08093 addi ra,ra,892 # 80003000 <begin_signature>
+ 80002c8c: 0040ef03 lwu t5,4(ra)
+ 80002c90: 00000013 nop
+ 80002c94: 00000013 nop
+ 80002c98: 000f0313 mv t1,t5
+ 80002c9c: 00010eb7 lui t4,0x10
+ 80002ca0: f01e8e9b addiw t4,t4,-255
+ 80002ca4: 010e9e93 slli t4,t4,0x10
+ 80002ca8: f00e8e93 addi t4,t4,-256 # ff00 <_start-0x7fff0100>
+ 80002cac: 0fd31863 bne t1,t4,80002d9c <fail>
+ 80002cb0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002cb4: 00200293 li t0,2
+ 80002cb8: fc5216e3 bne tp,t0,80002c84 <test_14+0x8>
+
+0000000080002cbc <test_15>:
+ 80002cbc: 00f00193 li gp,15
+ 80002cc0: 00000213 li tp,0
+ 80002cc4: 00000097 auipc ra,0x0
+ 80002cc8: 34008093 addi ra,ra,832 # 80003004 <tdat2>
+ 80002ccc: 0040ef03 lwu t5,4(ra)
+ 80002cd0: 0ff01eb7 lui t4,0xff01
+ 80002cd4: ff0e8e9b addiw t4,t4,-16
+ 80002cd8: 0ddf1263 bne t5,t4,80002d9c <fail>
+ 80002cdc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ce0: 00200293 li t0,2
+ 80002ce4: fe5210e3 bne tp,t0,80002cc4 <test_15+0x8>
+
+0000000080002ce8 <test_16>:
+ 80002ce8: 01000193 li gp,16
+ 80002cec: 00000213 li tp,0
+ 80002cf0: 00000097 auipc ra,0x0
+ 80002cf4: 31808093 addi ra,ra,792 # 80003008 <tdat3>
+ 80002cf8: 00000013 nop
+ 80002cfc: 0040ef03 lwu t5,4(ra)
+ 80002d00: 000f0eb7 lui t4,0xf0
+ 80002d04: 0ffe8e9b addiw t4,t4,255
+ 80002d08: 00ce9e93 slli t4,t4,0xc
+ 80002d0c: 00fe8e93 addi t4,t4,15 # f000f <_start-0x7ff0fff1>
+ 80002d10: 09df1663 bne t5,t4,80002d9c <fail>
+ 80002d14: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d18: 00200293 li t0,2
+ 80002d1c: fc521ae3 bne tp,t0,80002cf0 <test_16+0x8>
+
+0000000080002d20 <test_17>:
+ 80002d20: 01100193 li gp,17
+ 80002d24: 00000213 li tp,0
+ 80002d28: 00000097 auipc ra,0x0
+ 80002d2c: 2d808093 addi ra,ra,728 # 80003000 <begin_signature>
+ 80002d30: 00000013 nop
+ 80002d34: 00000013 nop
+ 80002d38: 0040ef03 lwu t5,4(ra)
+ 80002d3c: 00010eb7 lui t4,0x10
+ 80002d40: f01e8e9b addiw t4,t4,-255
+ 80002d44: 010e9e93 slli t4,t4,0x10
+ 80002d48: f00e8e93 addi t4,t4,-256 # ff00 <_start-0x7fff0100>
+ 80002d4c: 05df1863 bne t5,t4,80002d9c <fail>
+ 80002d50: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d54: 00200293 li t0,2
+ 80002d58: fc5218e3 bne tp,t0,80002d28 <test_17+0x8>
+
+0000000080002d5c <test_18>:
+ 80002d5c: 00000297 auipc t0,0x0
+ 80002d60: 2a428293 addi t0,t0,676 # 80003000 <begin_signature>
+ 80002d64: 0002e103 lwu sp,0(t0)
+ 80002d68: 00200113 li sp,2
+ 80002d6c: 00200e93 li t4,2
+ 80002d70: 01200193 li gp,18
+ 80002d74: 03d11463 bne sp,t4,80002d9c <fail>
+
+0000000080002d78 <test_19>:
+ 80002d78: 00000297 auipc t0,0x0
+ 80002d7c: 28828293 addi t0,t0,648 # 80003000 <begin_signature>
+ 80002d80: 0002e103 lwu sp,0(t0)
+ 80002d84: 00000013 nop
+ 80002d88: 00200113 li sp,2
+ 80002d8c: 00200e93 li t4,2
+ 80002d90: 01300193 li gp,19
+ 80002d94: 01d11463 bne sp,t4,80002d9c <fail>
+ 80002d98: 00301a63 bne zero,gp,80002dac <pass>
+
+0000000080002d9c <fail>:
+ 80002d9c: 00119513 slli a0,gp,0x1
+ 80002da0: 00050063 beqz a0,80002da0 <fail+0x4>
+ 80002da4: 00156513 ori a0,a0,1
+ 80002da8: 00000073 ecall
+
+0000000080002dac <pass>:
+ 80002dac: 00100513 li a0,1
+ 80002db0: 00000073 ecall
+ 80002db4: c0001073 unimp
+
+Disassembly of section .data:
+
+0000000080003000 <begin_signature>:
+ 80003000: 00ff 0xff
+ 80003002: 00ff 0xff
+
+0000000080003004 <tdat2>:
+ 80003004: ff00 sd s0,56(a4)
+ 80003006: ff00 sd s0,56(a4)
+
+0000000080003008 <tdat3>:
+ 80003008: 0ff0 addi a2,sp,988
+ 8000300a: 0ff0 addi a2,sp,988
+
+000000008000300c <tdat4>:
+ 8000300c: f00ff00f 0xf00ff00f
diff --git a/test/tests/rv64ui-v-lwu.elf b/test/tests/rv64ui-v-lwu.elf
new file mode 100644
index 0000000..2cd5e0b
--- /dev/null
+++ b/test/tests/rv64ui-v-lwu.elf
Binary files differ
diff --git a/test/tests/rv64ui-v-or.dump b/test/tests/rv64ui-v-or.dump
new file mode 100644
index 0000000..c5e0940
--- /dev/null
+++ b/test/tests/rv64ui-v-or.dump
@@ -0,0 +1,1265 @@
+
+rv64ui-v-or: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <handle_reset>:
+ 8000000c: 00000297 auipc t0,0x0
+ 80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+ 80000014: 30529073 csrw mtvec,t0
+ 80000018: 00009117 auipc sp,0x9
+ 8000001c: 6b810113 addi sp,sp,1720 # 800096d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00002617 auipc a2,0x2
+ 80002318: cec60613 addi a2,a2,-788 # 80004000 <begin_signature>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00006797 auipc a5,0x6
+ 80002334: 4b878793 addi a5,a5,1208 # 800087e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00006717 auipc a4,0x6
+ 80002348: 49c70713 addi a4,a4,1180 # 800087e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00006897 auipc a7,0x6
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800087e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00006797 auipc a5,0x6
+ 80002384: 07078793 addi a5,a5,112 # 800083f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf7810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00006797 auipc a5,0x6
+ 80002448: 3807be23 sd zero,924(a5) # 800087e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00001697 auipc a3,0x1
+ 8000245c: c6868693 addi a3,a3,-920 # 800030c0 <pass+0xc>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00001617 auipc a2,0x1
+ 800024b8: c9c60613 addi a2,a2,-868 # 80003150 <pass+0x9c>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00001617 auipc a2,0x1
+ 80002508: c6460613 addi a2,a2,-924 # 80003168 <pass+0xb4>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00001697 auipc a3,0x1
+ 80002558: bb468693 addi a3,a3,-1100 # 80003108 <pass+0x54>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00001697 auipc a3,0x1
+ 80002674: bd068693 addi a3,a3,-1072 # 80003240 <pass+0x18c>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00001617 auipc a2,0x1
+ 800026cc: b5060613 addi a2,a2,-1200 # 80003218 <pass+0x164>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00006d17 auipc s10,0x6
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800083f0 <user_mapping>
+ 80002724: 00002b97 auipc s7,0x2
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80004000 <begin_signature>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00006a17 auipc s4,0x6
+ 80002738: 0aca0a13 addi s4,s4,172 # 800087e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00006717 auipc a4,0x6
+ 8000274c: 08f73c23 sd a5,152(a4) # 800087e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00006717 auipc a4,0x6
+ 800027d4: 00f73823 sd a5,16(a4) # 800087e0 <freelist_tail>
+ 800027d8: 00006717 auipc a4,0x6
+ 800027dc: 00f73823 sd a5,16(a4) # 800087e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00001697 auipc a3,0x1
+ 800027f0: a8468693 addi a3,a3,-1404 # 80003270 <pass+0x1bc>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00001697 auipc a3,0x1
+ 80002840: 9a468693 addi a3,a3,-1628 # 800031e0 <pass+0x12c>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00001697 auipc a3,0x1
+ 80002878: 93468693 addi a3,a3,-1740 # 800031a8 <pass+0xf4>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00002697 auipc a3,0x2
+ 800028e0: 72468693 addi a3,a3,1828 # 80005000 <begin_signature+0x1000>
+ 800028e4: 00003717 auipc a4,0x3
+ 800028e8: 71c70713 addi a4,a4,1820 # 80006000 <begin_signature+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00004797 auipc a5,0x4
+ 800028f8: 70c78793 addi a5,a5,1804 # 80007000 <begin_signature+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00001897 auipc a7,0x1
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80004000 <begin_signature>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00002697 auipc a3,0x2
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80004ff8 <begin_signature+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00001617 auipc a2,0x1
+ 80002938: 6cc60613 addi a2,a2,1740 # 80004000 <begin_signature>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00004697 auipc a3,0x4
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80006ff8 <begin_signature+0x2ff8>
+ 8000294c: 00002717 auipc a4,0x2
+ 80002950: 6af73a23 sd a5,1716(a4) # 80005000 <begin_signature+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00005697 auipc a3,0x5
+ 800029c0: 64468693 addi a3,a3,1604 # 80008000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00006617 auipc a2,0x6
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800087e8 <freelist_head>
+ 800029d4: 00006797 auipc a5,0x6
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800087e0 <freelist_tail>
+ 800029dc: 00006317 auipc t1,0x6
+ 800029e0: a1430313 addi t1,t1,-1516 # 800083f0 <user_mapping>
+ 800029e4: 03800793 li a5,56
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00006797 auipc a5,0x6
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800083e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 039357b7 lui a5,0x3935
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: f5d78793 addi a5,a5,-163 # 3934f5d <_start-0x7c6cb0a3>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 000100b7 lui ra,0x10
+ 80002acc: f010809b addiw ra,ra,-255
+ 80002ad0: 01009093 slli ra,ra,0x10
+ 80002ad4: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 80002ad8: 0f0f1137 lui sp,0xf0f1
+ 80002adc: f0f1011b addiw sp,sp,-241
+ 80002ae0: 0020ef33 or t5,ra,sp
+ 80002ae4: 00001eb7 lui t4,0x1
+ 80002ae8: ff1e8e9b addiw t4,t4,-15
+ 80002aec: 014e9e93 slli t4,t4,0x14
+ 80002af0: f0fe8e93 addi t4,t4,-241 # f0f <_start-0x7ffff0f1>
+ 80002af4: 00200193 li gp,2
+ 80002af8: 5bdf1663 bne t5,t4,800030a4 <fail>
+
+0000000080002afc <test_3>:
+ 80002afc: 0ff010b7 lui ra,0xff01
+ 80002b00: ff00809b addiw ra,ra,-16
+ 80002b04: 000f1137 lui sp,0xf1
+ 80002b08: f0f1011b addiw sp,sp,-241
+ 80002b0c: 00c11113 slli sp,sp,0xc
+ 80002b10: 0f010113 addi sp,sp,240 # f10f0 <_start-0x7ff0ef10>
+ 80002b14: 0020ef33 or t5,ra,sp
+ 80002b18: 00010eb7 lui t4,0x10
+ 80002b1c: ff1e8e9b addiw t4,t4,-15
+ 80002b20: 010e9e93 slli t4,t4,0x10
+ 80002b24: ff0e8e93 addi t4,t4,-16 # fff0 <_start-0x7fff0010>
+ 80002b28: 00300193 li gp,3
+ 80002b2c: 57df1c63 bne t5,t4,800030a4 <fail>
+
+0000000080002b30 <test_4>:
+ 80002b30: 00ff00b7 lui ra,0xff0
+ 80002b34: 0ff0809b addiw ra,ra,255
+ 80002b38: 0f0f1137 lui sp,0xf0f1
+ 80002b3c: f0f1011b addiw sp,sp,-241
+ 80002b40: 0020ef33 or t5,ra,sp
+ 80002b44: 0fff1eb7 lui t4,0xfff1
+ 80002b48: fffe8e9b addiw t4,t4,-1
+ 80002b4c: 00400193 li gp,4
+ 80002b50: 55df1a63 bne t5,t4,800030a4 <fail>
+
+0000000080002b54 <test_5>:
+ 80002b54: 000f00b7 lui ra,0xf0
+ 80002b58: 0ff0809b addiw ra,ra,255
+ 80002b5c: 00c09093 slli ra,ra,0xc
+ 80002b60: 00f08093 addi ra,ra,15 # f000f <_start-0x7ff0fff1>
+ 80002b64: 000f1137 lui sp,0xf1
+ 80002b68: f0f1011b addiw sp,sp,-241
+ 80002b6c: 00c11113 slli sp,sp,0xc
+ 80002b70: 0f010113 addi sp,sp,240 # f10f0 <_start-0x7ff0ef10>
+ 80002b74: 0020ef33 or t5,ra,sp
+ 80002b78: 000f1eb7 lui t4,0xf1
+ 80002b7c: fffe8e9b addiw t4,t4,-1
+ 80002b80: 00ce9e93 slli t4,t4,0xc
+ 80002b84: 0ffe8e93 addi t4,t4,255 # f10ff <_start-0x7ff0ef01>
+ 80002b88: 00500193 li gp,5
+ 80002b8c: 51df1c63 bne t5,t4,800030a4 <fail>
+
+0000000080002b90 <test_6>:
+ 80002b90: 000100b7 lui ra,0x10
+ 80002b94: f010809b addiw ra,ra,-255
+ 80002b98: 01009093 slli ra,ra,0x10
+ 80002b9c: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 80002ba0: 0f0f1137 lui sp,0xf0f1
+ 80002ba4: f0f1011b addiw sp,sp,-241
+ 80002ba8: 0020e0b3 or ra,ra,sp
+ 80002bac: 00001eb7 lui t4,0x1
+ 80002bb0: ff1e8e9b addiw t4,t4,-15
+ 80002bb4: 014e9e93 slli t4,t4,0x14
+ 80002bb8: f0fe8e93 addi t4,t4,-241 # f0f <_start-0x7ffff0f1>
+ 80002bbc: 00600193 li gp,6
+ 80002bc0: 4fd09263 bne ra,t4,800030a4 <fail>
+
+0000000080002bc4 <test_7>:
+ 80002bc4: 000100b7 lui ra,0x10
+ 80002bc8: f010809b addiw ra,ra,-255
+ 80002bcc: 01009093 slli ra,ra,0x10
+ 80002bd0: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 80002bd4: 0f0f1137 lui sp,0xf0f1
+ 80002bd8: f0f1011b addiw sp,sp,-241
+ 80002bdc: 0020e133 or sp,ra,sp
+ 80002be0: 00001eb7 lui t4,0x1
+ 80002be4: ff1e8e9b addiw t4,t4,-15
+ 80002be8: 014e9e93 slli t4,t4,0x14
+ 80002bec: f0fe8e93 addi t4,t4,-241 # f0f <_start-0x7ffff0f1>
+ 80002bf0: 00700193 li gp,7
+ 80002bf4: 4bd11863 bne sp,t4,800030a4 <fail>
+
+0000000080002bf8 <test_8>:
+ 80002bf8: 000100b7 lui ra,0x10
+ 80002bfc: f010809b addiw ra,ra,-255
+ 80002c00: 01009093 slli ra,ra,0x10
+ 80002c04: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 80002c08: 0010e0b3 or ra,ra,ra
+ 80002c0c: 00010eb7 lui t4,0x10
+ 80002c10: f01e8e9b addiw t4,t4,-255
+ 80002c14: 010e9e93 slli t4,t4,0x10
+ 80002c18: f00e8e93 addi t4,t4,-256 # ff00 <_start-0x7fff0100>
+ 80002c1c: 00800193 li gp,8
+ 80002c20: 49d09263 bne ra,t4,800030a4 <fail>
+
+0000000080002c24 <test_9>:
+ 80002c24: 00000213 li tp,0
+ 80002c28: 000100b7 lui ra,0x10
+ 80002c2c: f010809b addiw ra,ra,-255
+ 80002c30: 01009093 slli ra,ra,0x10
+ 80002c34: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 80002c38: 0f0f1137 lui sp,0xf0f1
+ 80002c3c: f0f1011b addiw sp,sp,-241
+ 80002c40: 0020ef33 or t5,ra,sp
+ 80002c44: 000f0313 mv t1,t5
+ 80002c48: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c4c: 00200293 li t0,2
+ 80002c50: fc521ce3 bne tp,t0,80002c28 <test_9+0x4>
+ 80002c54: 00001eb7 lui t4,0x1
+ 80002c58: ff1e8e9b addiw t4,t4,-15
+ 80002c5c: 014e9e93 slli t4,t4,0x14
+ 80002c60: f0fe8e93 addi t4,t4,-241 # f0f <_start-0x7ffff0f1>
+ 80002c64: 00900193 li gp,9
+ 80002c68: 43d31e63 bne t1,t4,800030a4 <fail>
+
+0000000080002c6c <test_10>:
+ 80002c6c: 00000213 li tp,0
+ 80002c70: 0ff010b7 lui ra,0xff01
+ 80002c74: ff00809b addiw ra,ra,-16
+ 80002c78: 000f1137 lui sp,0xf1
+ 80002c7c: f0f1011b addiw sp,sp,-241
+ 80002c80: 00c11113 slli sp,sp,0xc
+ 80002c84: 0f010113 addi sp,sp,240 # f10f0 <_start-0x7ff0ef10>
+ 80002c88: 0020ef33 or t5,ra,sp
+ 80002c8c: 00000013 nop
+ 80002c90: 000f0313 mv t1,t5
+ 80002c94: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c98: 00200293 li t0,2
+ 80002c9c: fc521ae3 bne tp,t0,80002c70 <test_10+0x4>
+ 80002ca0: 00010eb7 lui t4,0x10
+ 80002ca4: ff1e8e9b addiw t4,t4,-15
+ 80002ca8: 010e9e93 slli t4,t4,0x10
+ 80002cac: ff0e8e93 addi t4,t4,-16 # fff0 <_start-0x7fff0010>
+ 80002cb0: 00a00193 li gp,10
+ 80002cb4: 3fd31863 bne t1,t4,800030a4 <fail>
+
+0000000080002cb8 <test_11>:
+ 80002cb8: 00000213 li tp,0
+ 80002cbc: 00ff00b7 lui ra,0xff0
+ 80002cc0: 0ff0809b addiw ra,ra,255
+ 80002cc4: 0f0f1137 lui sp,0xf0f1
+ 80002cc8: f0f1011b addiw sp,sp,-241
+ 80002ccc: 0020ef33 or t5,ra,sp
+ 80002cd0: 00000013 nop
+ 80002cd4: 00000013 nop
+ 80002cd8: 000f0313 mv t1,t5
+ 80002cdc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ce0: 00200293 li t0,2
+ 80002ce4: fc521ce3 bne tp,t0,80002cbc <test_11+0x4>
+ 80002ce8: 0fff1eb7 lui t4,0xfff1
+ 80002cec: fffe8e9b addiw t4,t4,-1
+ 80002cf0: 00b00193 li gp,11
+ 80002cf4: 3bd31863 bne t1,t4,800030a4 <fail>
+
+0000000080002cf8 <test_12>:
+ 80002cf8: 00000213 li tp,0
+ 80002cfc: 000100b7 lui ra,0x10
+ 80002d00: f010809b addiw ra,ra,-255
+ 80002d04: 01009093 slli ra,ra,0x10
+ 80002d08: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 80002d0c: 0f0f1137 lui sp,0xf0f1
+ 80002d10: f0f1011b addiw sp,sp,-241
+ 80002d14: 0020ef33 or t5,ra,sp
+ 80002d18: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d1c: 00200293 li t0,2
+ 80002d20: fc521ee3 bne tp,t0,80002cfc <test_12+0x4>
+ 80002d24: 00001eb7 lui t4,0x1
+ 80002d28: ff1e8e9b addiw t4,t4,-15
+ 80002d2c: 014e9e93 slli t4,t4,0x14
+ 80002d30: f0fe8e93 addi t4,t4,-241 # f0f <_start-0x7ffff0f1>
+ 80002d34: 00c00193 li gp,12
+ 80002d38: 37df1663 bne t5,t4,800030a4 <fail>
+
+0000000080002d3c <test_13>:
+ 80002d3c: 00000213 li tp,0
+ 80002d40: 0ff010b7 lui ra,0xff01
+ 80002d44: ff00809b addiw ra,ra,-16
+ 80002d48: 000f1137 lui sp,0xf1
+ 80002d4c: f0f1011b addiw sp,sp,-241
+ 80002d50: 00c11113 slli sp,sp,0xc
+ 80002d54: 0f010113 addi sp,sp,240 # f10f0 <_start-0x7ff0ef10>
+ 80002d58: 00000013 nop
+ 80002d5c: 0020ef33 or t5,ra,sp
+ 80002d60: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d64: 00200293 li t0,2
+ 80002d68: fc521ce3 bne tp,t0,80002d40 <test_13+0x4>
+ 80002d6c: 00010eb7 lui t4,0x10
+ 80002d70: ff1e8e9b addiw t4,t4,-15
+ 80002d74: 010e9e93 slli t4,t4,0x10
+ 80002d78: ff0e8e93 addi t4,t4,-16 # fff0 <_start-0x7fff0010>
+ 80002d7c: 00d00193 li gp,13
+ 80002d80: 33df1263 bne t5,t4,800030a4 <fail>
+
+0000000080002d84 <test_14>:
+ 80002d84: 00000213 li tp,0
+ 80002d88: 00ff00b7 lui ra,0xff0
+ 80002d8c: 0ff0809b addiw ra,ra,255
+ 80002d90: 0f0f1137 lui sp,0xf0f1
+ 80002d94: f0f1011b addiw sp,sp,-241
+ 80002d98: 00000013 nop
+ 80002d9c: 00000013 nop
+ 80002da0: 0020ef33 or t5,ra,sp
+ 80002da4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002da8: 00200293 li t0,2
+ 80002dac: fc521ee3 bne tp,t0,80002d88 <test_14+0x4>
+ 80002db0: 0fff1eb7 lui t4,0xfff1
+ 80002db4: fffe8e9b addiw t4,t4,-1
+ 80002db8: 00e00193 li gp,14
+ 80002dbc: 2fdf1463 bne t5,t4,800030a4 <fail>
+
+0000000080002dc0 <test_15>:
+ 80002dc0: 00000213 li tp,0
+ 80002dc4: 000100b7 lui ra,0x10
+ 80002dc8: f010809b addiw ra,ra,-255
+ 80002dcc: 01009093 slli ra,ra,0x10
+ 80002dd0: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 80002dd4: 00000013 nop
+ 80002dd8: 0f0f1137 lui sp,0xf0f1
+ 80002ddc: f0f1011b addiw sp,sp,-241
+ 80002de0: 0020ef33 or t5,ra,sp
+ 80002de4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002de8: 00200293 li t0,2
+ 80002dec: fc521ce3 bne tp,t0,80002dc4 <test_15+0x4>
+ 80002df0: 00001eb7 lui t4,0x1
+ 80002df4: ff1e8e9b addiw t4,t4,-15
+ 80002df8: 014e9e93 slli t4,t4,0x14
+ 80002dfc: f0fe8e93 addi t4,t4,-241 # f0f <_start-0x7ffff0f1>
+ 80002e00: 00f00193 li gp,15
+ 80002e04: 2bdf1063 bne t5,t4,800030a4 <fail>
+
+0000000080002e08 <test_16>:
+ 80002e08: 00000213 li tp,0
+ 80002e0c: 0ff010b7 lui ra,0xff01
+ 80002e10: ff00809b addiw ra,ra,-16
+ 80002e14: 00000013 nop
+ 80002e18: 000f1137 lui sp,0xf1
+ 80002e1c: f0f1011b addiw sp,sp,-241
+ 80002e20: 00c11113 slli sp,sp,0xc
+ 80002e24: 0f010113 addi sp,sp,240 # f10f0 <_start-0x7ff0ef10>
+ 80002e28: 00000013 nop
+ 80002e2c: 0020ef33 or t5,ra,sp
+ 80002e30: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e34: 00200293 li t0,2
+ 80002e38: fc521ae3 bne tp,t0,80002e0c <test_16+0x4>
+ 80002e3c: 00010eb7 lui t4,0x10
+ 80002e40: ff1e8e9b addiw t4,t4,-15
+ 80002e44: 010e9e93 slli t4,t4,0x10
+ 80002e48: ff0e8e93 addi t4,t4,-16 # fff0 <_start-0x7fff0010>
+ 80002e4c: 01000193 li gp,16
+ 80002e50: 25df1a63 bne t5,t4,800030a4 <fail>
+
+0000000080002e54 <test_17>:
+ 80002e54: 00000213 li tp,0
+ 80002e58: 00ff00b7 lui ra,0xff0
+ 80002e5c: 0ff0809b addiw ra,ra,255
+ 80002e60: 00000013 nop
+ 80002e64: 00000013 nop
+ 80002e68: 0f0f1137 lui sp,0xf0f1
+ 80002e6c: f0f1011b addiw sp,sp,-241
+ 80002e70: 0020ef33 or t5,ra,sp
+ 80002e74: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e78: 00200293 li t0,2
+ 80002e7c: fc521ee3 bne tp,t0,80002e58 <test_17+0x4>
+ 80002e80: 0fff1eb7 lui t4,0xfff1
+ 80002e84: fffe8e9b addiw t4,t4,-1
+ 80002e88: 01100193 li gp,17
+ 80002e8c: 21df1c63 bne t5,t4,800030a4 <fail>
+
+0000000080002e90 <test_18>:
+ 80002e90: 00000213 li tp,0
+ 80002e94: 0f0f1137 lui sp,0xf0f1
+ 80002e98: f0f1011b addiw sp,sp,-241
+ 80002e9c: 000100b7 lui ra,0x10
+ 80002ea0: f010809b addiw ra,ra,-255
+ 80002ea4: 01009093 slli ra,ra,0x10
+ 80002ea8: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 80002eac: 0020ef33 or t5,ra,sp
+ 80002eb0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002eb4: 00200293 li t0,2
+ 80002eb8: fc521ee3 bne tp,t0,80002e94 <test_18+0x4>
+ 80002ebc: 00001eb7 lui t4,0x1
+ 80002ec0: ff1e8e9b addiw t4,t4,-15
+ 80002ec4: 014e9e93 slli t4,t4,0x14
+ 80002ec8: f0fe8e93 addi t4,t4,-241 # f0f <_start-0x7ffff0f1>
+ 80002ecc: 01200193 li gp,18
+ 80002ed0: 1ddf1a63 bne t5,t4,800030a4 <fail>
+
+0000000080002ed4 <test_19>:
+ 80002ed4: 00000213 li tp,0
+ 80002ed8: 000f1137 lui sp,0xf1
+ 80002edc: f0f1011b addiw sp,sp,-241
+ 80002ee0: 00c11113 slli sp,sp,0xc
+ 80002ee4: 0f010113 addi sp,sp,240 # f10f0 <_start-0x7ff0ef10>
+ 80002ee8: 0ff010b7 lui ra,0xff01
+ 80002eec: ff00809b addiw ra,ra,-16
+ 80002ef0: 00000013 nop
+ 80002ef4: 0020ef33 or t5,ra,sp
+ 80002ef8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002efc: 00200293 li t0,2
+ 80002f00: fc521ce3 bne tp,t0,80002ed8 <test_19+0x4>
+ 80002f04: 00010eb7 lui t4,0x10
+ 80002f08: ff1e8e9b addiw t4,t4,-15
+ 80002f0c: 010e9e93 slli t4,t4,0x10
+ 80002f10: ff0e8e93 addi t4,t4,-16 # fff0 <_start-0x7fff0010>
+ 80002f14: 01300193 li gp,19
+ 80002f18: 19df1663 bne t5,t4,800030a4 <fail>
+
+0000000080002f1c <test_20>:
+ 80002f1c: 00000213 li tp,0
+ 80002f20: 0f0f1137 lui sp,0xf0f1
+ 80002f24: f0f1011b addiw sp,sp,-241
+ 80002f28: 00ff00b7 lui ra,0xff0
+ 80002f2c: 0ff0809b addiw ra,ra,255
+ 80002f30: 00000013 nop
+ 80002f34: 00000013 nop
+ 80002f38: 0020ef33 or t5,ra,sp
+ 80002f3c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002f40: 00200293 li t0,2
+ 80002f44: fc521ee3 bne tp,t0,80002f20 <test_20+0x4>
+ 80002f48: 0fff1eb7 lui t4,0xfff1
+ 80002f4c: fffe8e9b addiw t4,t4,-1
+ 80002f50: 01400193 li gp,20
+ 80002f54: 15df1863 bne t5,t4,800030a4 <fail>
+
+0000000080002f58 <test_21>:
+ 80002f58: 00000213 li tp,0
+ 80002f5c: 0f0f1137 lui sp,0xf0f1
+ 80002f60: f0f1011b addiw sp,sp,-241
+ 80002f64: 00000013 nop
+ 80002f68: 000100b7 lui ra,0x10
+ 80002f6c: f010809b addiw ra,ra,-255
+ 80002f70: 01009093 slli ra,ra,0x10
+ 80002f74: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 80002f78: 0020ef33 or t5,ra,sp
+ 80002f7c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002f80: 00200293 li t0,2
+ 80002f84: fc521ce3 bne tp,t0,80002f5c <test_21+0x4>
+ 80002f88: 00001eb7 lui t4,0x1
+ 80002f8c: ff1e8e9b addiw t4,t4,-15
+ 80002f90: 014e9e93 slli t4,t4,0x14
+ 80002f94: f0fe8e93 addi t4,t4,-241 # f0f <_start-0x7ffff0f1>
+ 80002f98: 01500193 li gp,21
+ 80002f9c: 11df1463 bne t5,t4,800030a4 <fail>
+
+0000000080002fa0 <test_22>:
+ 80002fa0: 00000213 li tp,0
+ 80002fa4: 000f1137 lui sp,0xf1
+ 80002fa8: f0f1011b addiw sp,sp,-241
+ 80002fac: 00c11113 slli sp,sp,0xc
+ 80002fb0: 0f010113 addi sp,sp,240 # f10f0 <_start-0x7ff0ef10>
+ 80002fb4: 00000013 nop
+ 80002fb8: 0ff010b7 lui ra,0xff01
+ 80002fbc: ff00809b addiw ra,ra,-16
+ 80002fc0: 00000013 nop
+ 80002fc4: 0020ef33 or t5,ra,sp
+ 80002fc8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002fcc: 00200293 li t0,2
+ 80002fd0: fc521ae3 bne tp,t0,80002fa4 <test_22+0x4>
+ 80002fd4: 00010eb7 lui t4,0x10
+ 80002fd8: ff1e8e9b addiw t4,t4,-15
+ 80002fdc: 010e9e93 slli t4,t4,0x10
+ 80002fe0: ff0e8e93 addi t4,t4,-16 # fff0 <_start-0x7fff0010>
+ 80002fe4: 01600193 li gp,22
+ 80002fe8: 0bdf1e63 bne t5,t4,800030a4 <fail>
+
+0000000080002fec <test_23>:
+ 80002fec: 00000213 li tp,0
+ 80002ff0: 0f0f1137 lui sp,0xf0f1
+ 80002ff4: f0f1011b addiw sp,sp,-241
+ 80002ff8: 00000013 nop
+ 80002ffc: 00000013 nop
+ 80003000: 00ff00b7 lui ra,0xff0
+ 80003004: 0ff0809b addiw ra,ra,255
+ 80003008: 0020ef33 or t5,ra,sp
+ 8000300c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80003010: 00200293 li t0,2
+ 80003014: fc521ee3 bne tp,t0,80002ff0 <test_23+0x4>
+ 80003018: 0fff1eb7 lui t4,0xfff1
+ 8000301c: fffe8e9b addiw t4,t4,-1
+ 80003020: 01700193 li gp,23
+ 80003024: 09df1063 bne t5,t4,800030a4 <fail>
+
+0000000080003028 <test_24>:
+ 80003028: 000100b7 lui ra,0x10
+ 8000302c: f010809b addiw ra,ra,-255
+ 80003030: 01009093 slli ra,ra,0x10
+ 80003034: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 80003038: 00106133 or sp,zero,ra
+ 8000303c: 00010eb7 lui t4,0x10
+ 80003040: f01e8e9b addiw t4,t4,-255
+ 80003044: 010e9e93 slli t4,t4,0x10
+ 80003048: f00e8e93 addi t4,t4,-256 # ff00 <_start-0x7fff0100>
+ 8000304c: 01800193 li gp,24
+ 80003050: 05d11a63 bne sp,t4,800030a4 <fail>
+
+0000000080003054 <test_25>:
+ 80003054: 00ff00b7 lui ra,0xff0
+ 80003058: 0ff0809b addiw ra,ra,255
+ 8000305c: 0000e133 or sp,ra,zero
+ 80003060: 00ff0eb7 lui t4,0xff0
+ 80003064: 0ffe8e9b addiw t4,t4,255
+ 80003068: 01900193 li gp,25
+ 8000306c: 03d11c63 bne sp,t4,800030a4 <fail>
+
+0000000080003070 <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>
+
+0000000080003080 <test_27>:
+ 80003080: 111110b7 lui ra,0x11111
+ 80003084: 1110809b addiw ra,ra,273
+ 80003088: 22222137 lui sp,0x22222
+ 8000308c: 2221011b addiw sp,sp,546
+ 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>
+
+00000000800030a4 <fail>:
+ 800030a4: 00119513 slli a0,gp,0x1
+ 800030a8: 00050063 beqz a0,800030a8 <fail+0x4>
+ 800030ac: 00156513 ori a0,a0,1
+ 800030b0: 00000073 ecall
+
+00000000800030b4 <pass>:
+ 800030b4: 00100513 li a0,1
+ 800030b8: 00000073 ecall
+ 800030bc: c0001073 unimp
diff --git a/test/tests/rv64ui-v-or.elf b/test/tests/rv64ui-v-or.elf
new file mode 100644
index 0000000..cf60140
--- /dev/null
+++ b/test/tests/rv64ui-v-or.elf
Binary files differ
diff --git a/test/tests/rv64ui-v-ori.dump b/test/tests/rv64ui-v-ori.dump
new file mode 100644
index 0000000..9b536c5
--- /dev/null
+++ b/test/tests/rv64ui-v-ori.dump
@@ -0,0 +1,987 @@
+
+rv64ui-v-ori: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <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: 6b810113 addi sp,sp,1720 # 800086d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00001617 auipc a2,0x1
+ 80002318: cec60613 addi a2,a2,-788 # 80003000 <begin_signature>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00005797 auipc a5,0x5
+ 80002334: 4b878793 addi a5,a5,1208 # 800077e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00005717 auipc a4,0x5
+ 80002348: 49c70713 addi a4,a4,1180 # 800077e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00005897 auipc a7,0x5
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800077e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00005797 auipc a5,0x5
+ 80002384: 07078793 addi a5,a5,112 # 800073f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf8810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00005797 auipc a5,0x5
+ 80002448: 3807be23 sd zero,924(a5) # 800077e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00001697 auipc a3,0x1
+ 8000245c: 87868693 addi a3,a3,-1928 # 80002cd0 <pass+0xc>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00001617 auipc a2,0x1
+ 800024b8: 8ac60613 addi a2,a2,-1876 # 80002d60 <pass+0x9c>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00001617 auipc a2,0x1
+ 80002508: 87460613 addi a2,a2,-1932 # 80002d78 <pass+0xb4>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00000697 auipc a3,0x0
+ 80002558: 7c468693 addi a3,a3,1988 # 80002d18 <pass+0x54>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00000697 auipc a3,0x0
+ 80002674: 7e068693 addi a3,a3,2016 # 80002e50 <pass+0x18c>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00000617 auipc a2,0x0
+ 800026cc: 76060613 addi a2,a2,1888 # 80002e28 <pass+0x164>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00005d17 auipc s10,0x5
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800073f0 <user_mapping>
+ 80002724: 00001b97 auipc s7,0x1
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80003000 <begin_signature>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00005a17 auipc s4,0x5
+ 80002738: 0aca0a13 addi s4,s4,172 # 800077e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00005717 auipc a4,0x5
+ 8000274c: 08f73c23 sd a5,152(a4) # 800077e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00005717 auipc a4,0x5
+ 800027d4: 00f73823 sd a5,16(a4) # 800077e0 <freelist_tail>
+ 800027d8: 00005717 auipc a4,0x5
+ 800027dc: 00f73823 sd a5,16(a4) # 800077e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 69468693 addi a3,a3,1684 # 80002e80 <pass+0x1bc>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 5b468693 addi a3,a3,1460 # 80002df0 <pass+0x12c>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 54468693 addi a3,a3,1348 # 80002db8 <pass+0xf4>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00001697 auipc a3,0x1
+ 800028e0: 72468693 addi a3,a3,1828 # 80004000 <begin_signature+0x1000>
+ 800028e4: 00002717 auipc a4,0x2
+ 800028e8: 71c70713 addi a4,a4,1820 # 80005000 <begin_signature+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00003797 auipc a5,0x3
+ 800028f8: 70c78793 addi a5,a5,1804 # 80006000 <begin_signature+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00000897 auipc a7,0x0
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80003000 <begin_signature>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00001697 auipc a3,0x1
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80003ff8 <begin_signature+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00000617 auipc a2,0x0
+ 80002938: 6cc60613 addi a2,a2,1740 # 80003000 <begin_signature>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00003697 auipc a3,0x3
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80005ff8 <begin_signature+0x2ff8>
+ 8000294c: 00001717 auipc a4,0x1
+ 80002950: 6af73a23 sd a5,1716(a4) # 80004000 <begin_signature+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00004697 auipc a3,0x4
+ 800029c0: 64468693 addi a3,a3,1604 # 80007000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00005617 auipc a2,0x5
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800077e8 <freelist_head>
+ 800029d4: 00005797 auipc a5,0x5
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800077e0 <freelist_tail>
+ 800029dc: 00005317 auipc t1,0x5
+ 800029e0: a1430313 addi t1,t1,-1516 # 800073f0 <user_mapping>
+ 800029e4: 00d00793 li a5,13
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00005797 auipc a5,0x5
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800073e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 0a6287b7 lui a5,0xa628
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: a5878793 addi a5,a5,-1448 # a627a58 <_start-0x759d85a8>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: ff0100b7 lui ra,0xff010
+ 80002acc: f000809b addiw ra,ra,-256
+ 80002ad0: f0f0ef13 ori t5,ra,-241
+ 80002ad4: f0f00e93 li t4,-241
+ 80002ad8: 00200193 li gp,2
+ 80002adc: 1ddf1c63 bne t5,t4,80002cb4 <fail>
+
+0000000080002ae0 <test_3>:
+ 80002ae0: 0ff010b7 lui ra,0xff01
+ 80002ae4: ff00809b addiw ra,ra,-16
+ 80002ae8: 0f00ef13 ori t5,ra,240
+ 80002aec: 0ff01eb7 lui t4,0xff01
+ 80002af0: ff0e8e9b addiw t4,t4,-16
+ 80002af4: 00300193 li gp,3
+ 80002af8: 1bdf1e63 bne t5,t4,80002cb4 <fail>
+
+0000000080002afc <test_4>:
+ 80002afc: 00ff00b7 lui ra,0xff0
+ 80002b00: 0ff0809b addiw ra,ra,255
+ 80002b04: 70f0ef13 ori t5,ra,1807
+ 80002b08: 00ff0eb7 lui t4,0xff0
+ 80002b0c: 7ffe8e9b addiw t4,t4,2047
+ 80002b10: 00400193 li gp,4
+ 80002b14: 1bdf1063 bne t5,t4,80002cb4 <fail>
+
+0000000080002b18 <test_5>:
+ 80002b18: f00ff0b7 lui ra,0xf00ff
+ 80002b1c: 00f0809b addiw ra,ra,15
+ 80002b20: 0f00ef13 ori t5,ra,240
+ 80002b24: f00ffeb7 lui t4,0xf00ff
+ 80002b28: 0ffe8e9b addiw t4,t4,255
+ 80002b2c: 00500193 li gp,5
+ 80002b30: 19df1263 bne t5,t4,80002cb4 <fail>
+
+0000000080002b34 <test_6>:
+ 80002b34: 000100b7 lui ra,0x10
+ 80002b38: f010809b addiw ra,ra,-255
+ 80002b3c: 01009093 slli ra,ra,0x10
+ 80002b40: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 80002b44: 0f00e093 ori ra,ra,240
+ 80002b48: 00010eb7 lui t4,0x10
+ 80002b4c: f01e8e9b addiw t4,t4,-255
+ 80002b50: 010e9e93 slli t4,t4,0x10
+ 80002b54: ff0e8e93 addi t4,t4,-16 # fff0 <_start-0x7fff0010>
+ 80002b58: 00600193 li gp,6
+ 80002b5c: 15d09c63 bne ra,t4,80002cb4 <fail>
+
+0000000080002b60 <test_7>:
+ 80002b60: 00000213 li tp,0
+ 80002b64: 0ff010b7 lui ra,0xff01
+ 80002b68: ff00809b addiw ra,ra,-16
+ 80002b6c: 0f00ef13 ori t5,ra,240
+ 80002b70: 000f0313 mv t1,t5
+ 80002b74: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002b78: 00200293 li t0,2
+ 80002b7c: fe5214e3 bne tp,t0,80002b64 <test_7+0x4>
+ 80002b80: 0ff01eb7 lui t4,0xff01
+ 80002b84: ff0e8e9b addiw t4,t4,-16
+ 80002b88: 00700193 li gp,7
+ 80002b8c: 13d31463 bne t1,t4,80002cb4 <fail>
+
+0000000080002b90 <test_8>:
+ 80002b90: 00000213 li tp,0
+ 80002b94: 00ff00b7 lui ra,0xff0
+ 80002b98: 0ff0809b addiw ra,ra,255
+ 80002b9c: 70f0ef13 ori t5,ra,1807
+ 80002ba0: 00000013 nop
+ 80002ba4: 000f0313 mv t1,t5
+ 80002ba8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002bac: 00200293 li t0,2
+ 80002bb0: fe5212e3 bne tp,t0,80002b94 <test_8+0x4>
+ 80002bb4: 00ff0eb7 lui t4,0xff0
+ 80002bb8: 7ffe8e9b addiw t4,t4,2047
+ 80002bbc: 00800193 li gp,8
+ 80002bc0: 0fd31a63 bne t1,t4,80002cb4 <fail>
+
+0000000080002bc4 <test_9>:
+ 80002bc4: 00000213 li tp,0
+ 80002bc8: f00ff0b7 lui ra,0xf00ff
+ 80002bcc: 00f0809b addiw ra,ra,15
+ 80002bd0: 0f00ef13 ori t5,ra,240
+ 80002bd4: 00000013 nop
+ 80002bd8: 00000013 nop
+ 80002bdc: 000f0313 mv t1,t5
+ 80002be0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002be4: 00200293 li t0,2
+ 80002be8: fe5210e3 bne tp,t0,80002bc8 <test_9+0x4>
+ 80002bec: f00ffeb7 lui t4,0xf00ff
+ 80002bf0: 0ffe8e9b addiw t4,t4,255
+ 80002bf4: 00900193 li gp,9
+ 80002bf8: 0bd31e63 bne t1,t4,80002cb4 <fail>
+
+0000000080002bfc <test_10>:
+ 80002bfc: 00000213 li tp,0
+ 80002c00: 0ff010b7 lui ra,0xff01
+ 80002c04: ff00809b addiw ra,ra,-16
+ 80002c08: 0f00ef13 ori t5,ra,240
+ 80002c0c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c10: 00200293 li t0,2
+ 80002c14: fe5216e3 bne tp,t0,80002c00 <test_10+0x4>
+ 80002c18: 0ff01eb7 lui t4,0xff01
+ 80002c1c: ff0e8e9b addiw t4,t4,-16
+ 80002c20: 00a00193 li gp,10
+ 80002c24: 09df1863 bne t5,t4,80002cb4 <fail>
+
+0000000080002c28 <test_11>:
+ 80002c28: 00000213 li tp,0
+ 80002c2c: 00ff00b7 lui ra,0xff0
+ 80002c30: 0ff0809b addiw ra,ra,255
+ 80002c34: 00000013 nop
+ 80002c38: f0f0ef13 ori t5,ra,-241
+ 80002c3c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c40: 00200293 li t0,2
+ 80002c44: fe5214e3 bne tp,t0,80002c2c <test_11+0x4>
+ 80002c48: fff00e93 li t4,-1
+ 80002c4c: 00b00193 li gp,11
+ 80002c50: 07df1263 bne t5,t4,80002cb4 <fail>
+
+0000000080002c54 <test_12>:
+ 80002c54: 00000213 li tp,0
+ 80002c58: f00ff0b7 lui ra,0xf00ff
+ 80002c5c: 00f0809b addiw ra,ra,15
+ 80002c60: 00000013 nop
+ 80002c64: 00000013 nop
+ 80002c68: 0f00ef13 ori t5,ra,240
+ 80002c6c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c70: 00200293 li t0,2
+ 80002c74: fe5212e3 bne tp,t0,80002c58 <test_12+0x4>
+ 80002c78: f00ffeb7 lui t4,0xf00ff
+ 80002c7c: 0ffe8e9b addiw t4,t4,255
+ 80002c80: 00c00193 li gp,12
+ 80002c84: 03df1863 bne t5,t4,80002cb4 <fail>
+
+0000000080002c88 <test_13>:
+ 80002c88: 0f006093 ori ra,zero,240
+ 80002c8c: 0f000e93 li t4,240
+ 80002c90: 00d00193 li gp,13
+ 80002c94: 03d09063 bne ra,t4,80002cb4 <fail>
+
+0000000080002c98 <test_14>:
+ 80002c98: 00ff00b7 lui ra,0xff0
+ 80002c9c: 0ff0809b addiw ra,ra,255
+ 80002ca0: 70f0e013 ori zero,ra,1807
+ 80002ca4: 00000e93 li t4,0
+ 80002ca8: 00e00193 li gp,14
+ 80002cac: 01d01463 bne zero,t4,80002cb4 <fail>
+ 80002cb0: 00301a63 bne zero,gp,80002cc4 <pass>
+
+0000000080002cb4 <fail>:
+ 80002cb4: 00119513 slli a0,gp,0x1
+ 80002cb8: 00050063 beqz a0,80002cb8 <fail+0x4>
+ 80002cbc: 00156513 ori a0,a0,1
+ 80002cc0: 00000073 ecall
+
+0000000080002cc4 <pass>:
+ 80002cc4: 00100513 li a0,1
+ 80002cc8: 00000073 ecall
+ 80002ccc: c0001073 unimp
diff --git a/test/tests/rv64ui-v-ori.elf b/test/tests/rv64ui-v-ori.elf
new file mode 100644
index 0000000..db589c1
--- /dev/null
+++ b/test/tests/rv64ui-v-ori.elf
Binary files differ
diff --git a/test/tests/rv64ui-v-sb.dump b/test/tests/rv64ui-v-sb.dump
new file mode 100644
index 0000000..52b1645
--- /dev/null
+++ b/test/tests/rv64ui-v-sb.dump
@@ -0,0 +1,1169 @@
+
+rv64ui-v-sb: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <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: 6b810113 addi sp,sp,1720 # 8000a6d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00003617 auipc a2,0x3
+ 80002318: cec60613 addi a2,a2,-788 # 80005000 <pt>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00007797 auipc a5,0x7
+ 80002334: 4b878793 addi a5,a5,1208 # 800097e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00007717 auipc a4,0x7
+ 80002348: 49c70713 addi a4,a4,1180 # 800097e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00007897 auipc a7,0x7
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800097e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00007797 auipc a5,0x7
+ 80002384: 07078793 addi a5,a5,112 # 800093f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf6810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00007797 auipc a5,0x7
+ 80002448: 3807be23 sd zero,924(a5) # 800097e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00001697 auipc a3,0x1
+ 8000245c: a8068693 addi a3,a3,-1408 # 80002ed8 <pass+0xc>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00001617 auipc a2,0x1
+ 800024b8: ab460613 addi a2,a2,-1356 # 80002f68 <pass+0x9c>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00001617 auipc a2,0x1
+ 80002508: a7c60613 addi a2,a2,-1412 # 80002f80 <pass+0xb4>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00001697 auipc a3,0x1
+ 80002558: 9cc68693 addi a3,a3,-1588 # 80002f20 <pass+0x54>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00001697 auipc a3,0x1
+ 80002674: 9e868693 addi a3,a3,-1560 # 80003058 <pass+0x18c>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00001617 auipc a2,0x1
+ 800026cc: 96860613 addi a2,a2,-1688 # 80003030 <pass+0x164>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00007d17 auipc s10,0x7
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800093f0 <user_mapping>
+ 80002724: 00003b97 auipc s7,0x3
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80005000 <pt>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00007a17 auipc s4,0x7
+ 80002738: 0aca0a13 addi s4,s4,172 # 800097e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00007717 auipc a4,0x7
+ 8000274c: 08f73c23 sd a5,152(a4) # 800097e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00007717 auipc a4,0x7
+ 800027d4: 00f73823 sd a5,16(a4) # 800097e0 <freelist_tail>
+ 800027d8: 00007717 auipc a4,0x7
+ 800027dc: 00f73823 sd a5,16(a4) # 800097e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00001697 auipc a3,0x1
+ 800027f0: 89c68693 addi a3,a3,-1892 # 80003088 <pass+0x1bc>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 7bc68693 addi a3,a3,1980 # 80002ff8 <pass+0x12c>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 74c68693 addi a3,a3,1868 # 80002fc0 <pass+0xf4>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00003697 auipc a3,0x3
+ 800028e0: 72468693 addi a3,a3,1828 # 80006000 <pt+0x1000>
+ 800028e4: 00004717 auipc a4,0x4
+ 800028e8: 71c70713 addi a4,a4,1820 # 80007000 <pt+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00005797 auipc a5,0x5
+ 800028f8: 70c78793 addi a5,a5,1804 # 80008000 <pt+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00002897 auipc a7,0x2
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80005000 <pt>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00003697 auipc a3,0x3
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80005ff8 <pt+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00002617 auipc a2,0x2
+ 80002938: 6cc60613 addi a2,a2,1740 # 80005000 <pt>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00005697 auipc a3,0x5
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80007ff8 <pt+0x2ff8>
+ 8000294c: 00003717 auipc a4,0x3
+ 80002950: 6af73a23 sd a5,1716(a4) # 80006000 <pt+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00006697 auipc a3,0x6
+ 800029c0: 64468693 addi a3,a3,1604 # 80009000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00007617 auipc a2,0x7
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800097e8 <freelist_head>
+ 800029d4: 00007797 auipc a5,0x7
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800097e0 <freelist_tail>
+ 800029dc: 00007317 auipc t1,0x7
+ 800029e0: a1430313 addi t1,t1,-1516 # 800093f0 <user_mapping>
+ 800029e4: 01300793 li a5,19
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00007797 auipc a5,0x7
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800093e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 061a97b7 lui a5,0x61a9
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: 7fc78793 addi a5,a5,2044 # 61a97fc <_start-0x79e56804>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 00001097 auipc ra,0x1
+ 80002acc: 53808093 addi ra,ra,1336 # 80004000 <begin_signature>
+ 80002ad0: faa00113 li sp,-86
+ 80002ad4: 00208023 sb sp,0(ra)
+ 80002ad8: 00008f03 lb t5,0(ra)
+ 80002adc: faa00e93 li t4,-86
+ 80002ae0: 00200193 li gp,2
+ 80002ae4: 3ddf1c63 bne t5,t4,80002ebc <fail>
+
+0000000080002ae8 <test_3>:
+ 80002ae8: 00001097 auipc ra,0x1
+ 80002aec: 51808093 addi ra,ra,1304 # 80004000 <begin_signature>
+ 80002af0: 00000113 li sp,0
+ 80002af4: 002080a3 sb sp,1(ra)
+ 80002af8: 00108f03 lb t5,1(ra)
+ 80002afc: 00000e93 li t4,0
+ 80002b00: 00300193 li gp,3
+ 80002b04: 3bdf1c63 bne t5,t4,80002ebc <fail>
+
+0000000080002b08 <test_4>:
+ 80002b08: 00001097 auipc ra,0x1
+ 80002b0c: 4f808093 addi ra,ra,1272 # 80004000 <begin_signature>
+ 80002b10: fffff137 lui sp,0xfffff
+ 80002b14: fa01011b addiw sp,sp,-96
+ 80002b18: 00208123 sb sp,2(ra)
+ 80002b1c: 00209f03 lh t5,2(ra)
+ 80002b20: fffffeb7 lui t4,0xfffff
+ 80002b24: fa0e8e9b addiw t4,t4,-96
+ 80002b28: 00400193 li gp,4
+ 80002b2c: 39df1863 bne t5,t4,80002ebc <fail>
+
+0000000080002b30 <test_5>:
+ 80002b30: 00001097 auipc ra,0x1
+ 80002b34: 4d008093 addi ra,ra,1232 # 80004000 <begin_signature>
+ 80002b38: 00a00113 li sp,10
+ 80002b3c: 002081a3 sb sp,3(ra)
+ 80002b40: 00308f03 lb t5,3(ra)
+ 80002b44: 00a00e93 li t4,10
+ 80002b48: 00500193 li gp,5
+ 80002b4c: 37df1863 bne t5,t4,80002ebc <fail>
+
+0000000080002b50 <test_6>:
+ 80002b50: 00001097 auipc ra,0x1
+ 80002b54: 4b708093 addi ra,ra,1207 # 80004007 <tdat8>
+ 80002b58: faa00113 li sp,-86
+ 80002b5c: fe208ea3 sb sp,-3(ra)
+ 80002b60: ffd08f03 lb t5,-3(ra)
+ 80002b64: faa00e93 li t4,-86
+ 80002b68: 00600193 li gp,6
+ 80002b6c: 35df1863 bne t5,t4,80002ebc <fail>
+
+0000000080002b70 <test_7>:
+ 80002b70: 00001097 auipc ra,0x1
+ 80002b74: 49708093 addi ra,ra,1175 # 80004007 <tdat8>
+ 80002b78: 00000113 li sp,0
+ 80002b7c: fe208f23 sb sp,-2(ra)
+ 80002b80: ffe08f03 lb t5,-2(ra)
+ 80002b84: 00000e93 li t4,0
+ 80002b88: 00700193 li gp,7
+ 80002b8c: 33df1863 bne t5,t4,80002ebc <fail>
+
+0000000080002b90 <test_8>:
+ 80002b90: 00001097 auipc ra,0x1
+ 80002b94: 47708093 addi ra,ra,1143 # 80004007 <tdat8>
+ 80002b98: fa000113 li sp,-96
+ 80002b9c: fe208fa3 sb sp,-1(ra)
+ 80002ba0: fff08f03 lb t5,-1(ra)
+ 80002ba4: fa000e93 li t4,-96
+ 80002ba8: 00800193 li gp,8
+ 80002bac: 31df1863 bne t5,t4,80002ebc <fail>
+
+0000000080002bb0 <test_9>:
+ 80002bb0: 00001097 auipc ra,0x1
+ 80002bb4: 45708093 addi ra,ra,1111 # 80004007 <tdat8>
+ 80002bb8: 00a00113 li sp,10
+ 80002bbc: 00208023 sb sp,0(ra)
+ 80002bc0: 00008f03 lb t5,0(ra)
+ 80002bc4: 00a00e93 li t4,10
+ 80002bc8: 00900193 li gp,9
+ 80002bcc: 2fdf1863 bne t5,t4,80002ebc <fail>
+
+0000000080002bd0 <test_10>:
+ 80002bd0: 00001097 auipc ra,0x1
+ 80002bd4: 43808093 addi ra,ra,1080 # 80004008 <tdat9>
+ 80002bd8: 12345137 lui sp,0x12345
+ 80002bdc: 6781011b addiw sp,sp,1656
+ 80002be0: fe008213 addi tp,ra,-32
+ 80002be4: 02220023 sb sp,32(tp) # 20 <_start-0x7fffffe0>
+ 80002be8: 00008283 lb t0,0(ra)
+ 80002bec: 07800e93 li t4,120
+ 80002bf0: 00a00193 li gp,10
+ 80002bf4: 2dd29463 bne t0,t4,80002ebc <fail>
+
+0000000080002bf8 <test_11>:
+ 80002bf8: 00001097 auipc ra,0x1
+ 80002bfc: 41008093 addi ra,ra,1040 # 80004008 <tdat9>
+ 80002c00: 00003137 lui sp,0x3
+ 80002c04: 0981011b addiw sp,sp,152
+ 80002c08: ffa08093 addi ra,ra,-6
+ 80002c0c: 002083a3 sb sp,7(ra)
+ 80002c10: 00001217 auipc tp,0x1
+ 80002c14: 3f920213 addi tp,tp,1017 # 80004009 <tdat10>
+ 80002c18: 00020283 lb t0,0(tp) # 0 <_start-0x80000000>
+ 80002c1c: f9800e93 li t4,-104
+ 80002c20: 00b00193 li gp,11
+ 80002c24: 29d29c63 bne t0,t4,80002ebc <fail>
+
+0000000080002c28 <test_12>:
+ 80002c28: 00c00193 li gp,12
+ 80002c2c: 00000213 li tp,0
+ 80002c30: fdd00093 li ra,-35
+ 80002c34: 00001117 auipc sp,0x1
+ 80002c38: 3cc10113 addi sp,sp,972 # 80004000 <begin_signature>
+ 80002c3c: 00110023 sb ra,0(sp)
+ 80002c40: 00010f03 lb t5,0(sp)
+ 80002c44: fdd00e93 li t4,-35
+ 80002c48: 27df1a63 bne t5,t4,80002ebc <fail>
+ 80002c4c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c50: 00200293 li t0,2
+ 80002c54: fc521ee3 bne tp,t0,80002c30 <test_12+0x8>
+
+0000000080002c58 <test_13>:
+ 80002c58: 00d00193 li gp,13
+ 80002c5c: 00000213 li tp,0
+ 80002c60: fcd00093 li ra,-51
+ 80002c64: 00001117 auipc sp,0x1
+ 80002c68: 39c10113 addi sp,sp,924 # 80004000 <begin_signature>
+ 80002c6c: 00000013 nop
+ 80002c70: 001100a3 sb ra,1(sp)
+ 80002c74: 00110f03 lb t5,1(sp)
+ 80002c78: fcd00e93 li t4,-51
+ 80002c7c: 25df1063 bne t5,t4,80002ebc <fail>
+ 80002c80: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c84: 00200293 li t0,2
+ 80002c88: fc521ce3 bne tp,t0,80002c60 <test_13+0x8>
+
+0000000080002c8c <test_14>:
+ 80002c8c: 00e00193 li gp,14
+ 80002c90: 00000213 li tp,0
+ 80002c94: fcc00093 li ra,-52
+ 80002c98: 00001117 auipc sp,0x1
+ 80002c9c: 36810113 addi sp,sp,872 # 80004000 <begin_signature>
+ 80002ca0: 00000013 nop
+ 80002ca4: 00000013 nop
+ 80002ca8: 00110123 sb ra,2(sp)
+ 80002cac: 00210f03 lb t5,2(sp)
+ 80002cb0: fcc00e93 li t4,-52
+ 80002cb4: 21df1463 bne t5,t4,80002ebc <fail>
+ 80002cb8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002cbc: 00200293 li t0,2
+ 80002cc0: fc521ae3 bne tp,t0,80002c94 <test_14+0x8>
+
+0000000080002cc4 <test_15>:
+ 80002cc4: 00f00193 li gp,15
+ 80002cc8: 00000213 li tp,0
+ 80002ccc: fbc00093 li ra,-68
+ 80002cd0: 00000013 nop
+ 80002cd4: 00001117 auipc sp,0x1
+ 80002cd8: 32c10113 addi sp,sp,812 # 80004000 <begin_signature>
+ 80002cdc: 001101a3 sb ra,3(sp)
+ 80002ce0: 00310f03 lb t5,3(sp)
+ 80002ce4: fbc00e93 li t4,-68
+ 80002ce8: 1ddf1a63 bne t5,t4,80002ebc <fail>
+ 80002cec: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002cf0: 00200293 li t0,2
+ 80002cf4: fc521ce3 bne tp,t0,80002ccc <test_15+0x8>
+
+0000000080002cf8 <test_16>:
+ 80002cf8: 01000193 li gp,16
+ 80002cfc: 00000213 li tp,0
+ 80002d00: fbb00093 li ra,-69
+ 80002d04: 00000013 nop
+ 80002d08: 00001117 auipc sp,0x1
+ 80002d0c: 2f810113 addi sp,sp,760 # 80004000 <begin_signature>
+ 80002d10: 00000013 nop
+ 80002d14: 00110223 sb ra,4(sp)
+ 80002d18: 00410f03 lb t5,4(sp)
+ 80002d1c: fbb00e93 li t4,-69
+ 80002d20: 19df1e63 bne t5,t4,80002ebc <fail>
+ 80002d24: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d28: 00200293 li t0,2
+ 80002d2c: fc521ae3 bne tp,t0,80002d00 <test_16+0x8>
+
+0000000080002d30 <test_17>:
+ 80002d30: 01100193 li gp,17
+ 80002d34: 00000213 li tp,0
+ 80002d38: fab00093 li ra,-85
+ 80002d3c: 00000013 nop
+ 80002d40: 00000013 nop
+ 80002d44: 00001117 auipc sp,0x1
+ 80002d48: 2bc10113 addi sp,sp,700 # 80004000 <begin_signature>
+ 80002d4c: 001102a3 sb ra,5(sp)
+ 80002d50: 00510f03 lb t5,5(sp)
+ 80002d54: fab00e93 li t4,-85
+ 80002d58: 17df1263 bne t5,t4,80002ebc <fail>
+ 80002d5c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d60: 00200293 li t0,2
+ 80002d64: fc521ae3 bne tp,t0,80002d38 <test_17+0x8>
+
+0000000080002d68 <test_18>:
+ 80002d68: 01200193 li gp,18
+ 80002d6c: 00000213 li tp,0
+ 80002d70: 00001117 auipc sp,0x1
+ 80002d74: 29010113 addi sp,sp,656 # 80004000 <begin_signature>
+ 80002d78: 03300093 li ra,51
+ 80002d7c: 00110023 sb ra,0(sp)
+ 80002d80: 00010f03 lb t5,0(sp)
+ 80002d84: 03300e93 li t4,51
+ 80002d88: 13df1a63 bne t5,t4,80002ebc <fail>
+ 80002d8c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d90: 00200293 li t0,2
+ 80002d94: fc521ee3 bne tp,t0,80002d70 <test_18+0x8>
+
+0000000080002d98 <test_19>:
+ 80002d98: 01300193 li gp,19
+ 80002d9c: 00000213 li tp,0
+ 80002da0: 00001117 auipc sp,0x1
+ 80002da4: 26010113 addi sp,sp,608 # 80004000 <begin_signature>
+ 80002da8: 02300093 li ra,35
+ 80002dac: 00000013 nop
+ 80002db0: 001100a3 sb ra,1(sp)
+ 80002db4: 00110f03 lb t5,1(sp)
+ 80002db8: 02300e93 li t4,35
+ 80002dbc: 11df1063 bne t5,t4,80002ebc <fail>
+ 80002dc0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002dc4: 00200293 li t0,2
+ 80002dc8: fc521ce3 bne tp,t0,80002da0 <test_19+0x8>
+
+0000000080002dcc <test_20>:
+ 80002dcc: 01400193 li gp,20
+ 80002dd0: 00000213 li tp,0
+ 80002dd4: 00001117 auipc sp,0x1
+ 80002dd8: 22c10113 addi sp,sp,556 # 80004000 <begin_signature>
+ 80002ddc: 02200093 li ra,34
+ 80002de0: 00000013 nop
+ 80002de4: 00000013 nop
+ 80002de8: 00110123 sb ra,2(sp)
+ 80002dec: 00210f03 lb t5,2(sp)
+ 80002df0: 02200e93 li t4,34
+ 80002df4: 0ddf1463 bne t5,t4,80002ebc <fail>
+ 80002df8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002dfc: 00200293 li t0,2
+ 80002e00: fc521ae3 bne tp,t0,80002dd4 <test_20+0x8>
+
+0000000080002e04 <test_21>:
+ 80002e04: 01500193 li gp,21
+ 80002e08: 00000213 li tp,0
+ 80002e0c: 00001117 auipc sp,0x1
+ 80002e10: 1f410113 addi sp,sp,500 # 80004000 <begin_signature>
+ 80002e14: 00000013 nop
+ 80002e18: 01200093 li ra,18
+ 80002e1c: 001101a3 sb ra,3(sp)
+ 80002e20: 00310f03 lb t5,3(sp)
+ 80002e24: 01200e93 li t4,18
+ 80002e28: 09df1a63 bne t5,t4,80002ebc <fail>
+ 80002e2c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e30: 00200293 li t0,2
+ 80002e34: fc521ce3 bne tp,t0,80002e0c <test_21+0x8>
+
+0000000080002e38 <test_22>:
+ 80002e38: 01600193 li gp,22
+ 80002e3c: 00000213 li tp,0
+ 80002e40: 00001117 auipc sp,0x1
+ 80002e44: 1c010113 addi sp,sp,448 # 80004000 <begin_signature>
+ 80002e48: 00000013 nop
+ 80002e4c: 01100093 li ra,17
+ 80002e50: 00000013 nop
+ 80002e54: 00110223 sb ra,4(sp)
+ 80002e58: 00410f03 lb t5,4(sp)
+ 80002e5c: 01100e93 li t4,17
+ 80002e60: 05df1e63 bne t5,t4,80002ebc <fail>
+ 80002e64: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e68: 00200293 li t0,2
+ 80002e6c: fc521ae3 bne tp,t0,80002e40 <test_22+0x8>
+
+0000000080002e70 <test_23>:
+ 80002e70: 01700193 li gp,23
+ 80002e74: 00000213 li tp,0
+ 80002e78: 00001117 auipc sp,0x1
+ 80002e7c: 18810113 addi sp,sp,392 # 80004000 <begin_signature>
+ 80002e80: 00000013 nop
+ 80002e84: 00000013 nop
+ 80002e88: 00100093 li ra,1
+ 80002e8c: 001102a3 sb ra,5(sp)
+ 80002e90: 00510f03 lb t5,5(sp)
+ 80002e94: 00100e93 li t4,1
+ 80002e98: 03df1263 bne t5,t4,80002ebc <fail>
+ 80002e9c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ea0: 00200293 li t0,2
+ 80002ea4: fc521ae3 bne tp,t0,80002e78 <test_23+0x8>
+ 80002ea8: 0ef00513 li a0,239
+ 80002eac: 00001597 auipc a1,0x1
+ 80002eb0: 15458593 addi a1,a1,340 # 80004000 <begin_signature>
+ 80002eb4: 00a581a3 sb a0,3(a1)
+ 80002eb8: 00301a63 bne zero,gp,80002ecc <pass>
+
+0000000080002ebc <fail>:
+ 80002ebc: 00119513 slli a0,gp,0x1
+ 80002ec0: 00050063 beqz a0,80002ec0 <fail+0x4>
+ 80002ec4: 00156513 ori a0,a0,1
+ 80002ec8: 00000073 ecall
+
+0000000080002ecc <pass>:
+ 80002ecc: 00100513 li a0,1
+ 80002ed0: 00000073 ecall
+ 80002ed4: c0001073 unimp
+
+Disassembly of section .data:
+
+0000000080004000 <begin_signature>:
+ 80004000: jal t6,800026fe <handle_trap+0x162>
+
+0000000080004001 <tdat2>:
+ 80004001: jal t6,800026ff <handle_trap+0x163>
+
+0000000080004002 <tdat3>:
+ 80004002: jal t6,80002700 <handle_trap+0x164>
+
+0000000080004003 <tdat4>:
+ 80004003: jal t6,80002701 <handle_trap+0x165>
+
+0000000080004004 <tdat5>:
+ 80004004: jal t6,80002702 <handle_trap+0x166>
+
+0000000080004005 <tdat6>:
+ 80004005: jal t6,80002703 <handle_trap+0x167>
+
+0000000080004006 <tdat7>:
+ 80004006: jal t6,80002704 <handle_trap+0x168>
+
+0000000080004007 <tdat8>:
+ 80004007: jal t6,80012007 <_end+0x8817>
+
+0000000080004008 <tdat9>:
+ 80004008: jal t6,80012008 <_end+0x8818>
+
+0000000080004009 <tdat10>:
+ 80004009: ef Address 0x0000000080004009 is out of bounds.
+
+ 8000400d:
diff --git a/test/tests/rv64ui-v-sb.elf b/test/tests/rv64ui-v-sb.elf
new file mode 100644
index 0000000..72d0ab5
--- /dev/null
+++ b/test/tests/rv64ui-v-sb.elf
Binary files differ
diff --git a/test/tests/rv64ui-v-sd.dump b/test/tests/rv64ui-v-sd.dump
new file mode 100644
index 0000000..3fc6298
--- /dev/null
+++ b/test/tests/rv64ui-v-sd.dump
@@ -0,0 +1,1325 @@
+
+rv64ui-v-sd: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <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: 6b810113 addi sp,sp,1720 # 8000a6d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00003617 auipc a2,0x3
+ 80002318: cec60613 addi a2,a2,-788 # 80005000 <pt>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00007797 auipc a5,0x7
+ 80002334: 4b878793 addi a5,a5,1208 # 800097e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00007717 auipc a4,0x7
+ 80002348: 49c70713 addi a4,a4,1180 # 800097e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00007897 auipc a7,0x7
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800097e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00007797 auipc a5,0x7
+ 80002384: 07078793 addi a5,a5,112 # 800093f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf6810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00007797 auipc a5,0x7
+ 80002448: 3807be23 sd zero,924(a5) # 800097e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00001697 auipc a3,0x1
+ 8000245c: cd068693 addi a3,a3,-816 # 80003128 <pass+0xc>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00001617 auipc a2,0x1
+ 800024b8: d0460613 addi a2,a2,-764 # 800031b8 <pass+0x9c>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00001617 auipc a2,0x1
+ 80002508: ccc60613 addi a2,a2,-820 # 800031d0 <pass+0xb4>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00001697 auipc a3,0x1
+ 80002558: c1c68693 addi a3,a3,-996 # 80003170 <pass+0x54>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00001697 auipc a3,0x1
+ 80002674: c3868693 addi a3,a3,-968 # 800032a8 <pass+0x18c>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00001617 auipc a2,0x1
+ 800026cc: bb860613 addi a2,a2,-1096 # 80003280 <pass+0x164>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00007d17 auipc s10,0x7
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800093f0 <user_mapping>
+ 80002724: 00003b97 auipc s7,0x3
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80005000 <pt>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00007a17 auipc s4,0x7
+ 80002738: 0aca0a13 addi s4,s4,172 # 800097e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00007717 auipc a4,0x7
+ 8000274c: 08f73c23 sd a5,152(a4) # 800097e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00007717 auipc a4,0x7
+ 800027d4: 00f73823 sd a5,16(a4) # 800097e0 <freelist_tail>
+ 800027d8: 00007717 auipc a4,0x7
+ 800027dc: 00f73823 sd a5,16(a4) # 800097e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00001697 auipc a3,0x1
+ 800027f0: aec68693 addi a3,a3,-1300 # 800032d8 <pass+0x1bc>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00001697 auipc a3,0x1
+ 80002840: a0c68693 addi a3,a3,-1524 # 80003248 <pass+0x12c>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00001697 auipc a3,0x1
+ 80002878: 99c68693 addi a3,a3,-1636 # 80003210 <pass+0xf4>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00003697 auipc a3,0x3
+ 800028e0: 72468693 addi a3,a3,1828 # 80006000 <pt+0x1000>
+ 800028e4: 00004717 auipc a4,0x4
+ 800028e8: 71c70713 addi a4,a4,1820 # 80007000 <pt+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00005797 auipc a5,0x5
+ 800028f8: 70c78793 addi a5,a5,1804 # 80008000 <pt+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00002897 auipc a7,0x2
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80005000 <pt>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00003697 auipc a3,0x3
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80005ff8 <pt+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00002617 auipc a2,0x2
+ 80002938: 6cc60613 addi a2,a2,1740 # 80005000 <pt>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00005697 auipc a3,0x5
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80007ff8 <pt+0x2ff8>
+ 8000294c: 00003717 auipc a4,0x3
+ 80002950: 6af73a23 sd a5,1716(a4) # 80006000 <pt+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00006697 auipc a3,0x6
+ 800029c0: 64468693 addi a3,a3,1604 # 80009000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00007617 auipc a2,0x7
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800097e8 <freelist_head>
+ 800029d4: 00007797 auipc a5,0x7
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800097e0 <freelist_tail>
+ 800029dc: 00007317 auipc t1,0x7
+ 800029e0: a1430313 addi t1,t1,-1516 # 800093f0 <user_mapping>
+ 800029e4: 00a00793 li a5,10
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00007797 auipc a5,0x7
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800093e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 036b47b7 lui a5,0x36b4
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: c8578793 addi a5,a5,-891 # 36b3c85 <_start-0x7c94c37b>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 00001097 auipc ra,0x1
+ 80002acc: 53808093 addi ra,ra,1336 # 80004000 <begin_signature>
+ 80002ad0: 00550137 lui sp,0x550
+ 80002ad4: 0551011b addiw sp,sp,85
+ 80002ad8: 01011113 slli sp,sp,0x10
+ 80002adc: 05510113 addi sp,sp,85 # 550055 <_start-0x7faaffab>
+ 80002ae0: 01111113 slli sp,sp,0x11
+ 80002ae4: 0aa10113 addi sp,sp,170
+ 80002ae8: 0020b023 sd sp,0(ra)
+ 80002aec: 0000bf03 ld t5,0(ra)
+ 80002af0: 00550eb7 lui t4,0x550
+ 80002af4: 055e8e9b addiw t4,t4,85
+ 80002af8: 010e9e93 slli t4,t4,0x10
+ 80002afc: 055e8e93 addi t4,t4,85 # 550055 <_start-0x7faaffab>
+ 80002b00: 011e9e93 slli t4,t4,0x11
+ 80002b04: 0aae8e93 addi t4,t4,170
+ 80002b08: 00200193 li gp,2
+ 80002b0c: 61df1063 bne t5,t4,8000310c <fail>
+
+0000000080002b10 <test_3>:
+ 80002b10: 00001097 auipc ra,0x1
+ 80002b14: 4f008093 addi ra,ra,1264 # 80004000 <begin_signature>
+ 80002b18: ffd50137 lui sp,0xffd50
+ 80002b1c: 0551011b addiw sp,sp,85
+ 80002b20: 01011113 slli sp,sp,0x10
+ 80002b24: 05510113 addi sp,sp,85 # ffffffffffd50055 <_end+0xffffffff7fd46865>
+ 80002b28: 00d11113 slli sp,sp,0xd
+ 80002b2c: 00b10113 addi sp,sp,11
+ 80002b30: 00c11113 slli sp,sp,0xc
+ 80002b34: a0010113 addi sp,sp,-1536
+ 80002b38: 0020b423 sd sp,8(ra)
+ 80002b3c: 0080bf03 ld t5,8(ra)
+ 80002b40: ffd50eb7 lui t4,0xffd50
+ 80002b44: 055e8e9b addiw t4,t4,85
+ 80002b48: 010e9e93 slli t4,t4,0x10
+ 80002b4c: 055e8e93 addi t4,t4,85 # ffffffffffd50055 <_end+0xffffffff7fd46865>
+ 80002b50: 00de9e93 slli t4,t4,0xd
+ 80002b54: 00be8e93 addi t4,t4,11
+ 80002b58: 00ce9e93 slli t4,t4,0xc
+ 80002b5c: a00e8e93 addi t4,t4,-1536
+ 80002b60: 00300193 li gp,3
+ 80002b64: 5bdf1463 bne t5,t4,8000310c <fail>
+
+0000000080002b68 <test_4>:
+ 80002b68: 00001097 auipc ra,0x1
+ 80002b6c: 49808093 addi ra,ra,1176 # 80004000 <begin_signature>
+ 80002b70: 00550137 lui sp,0x550
+ 80002b74: 0551011b addiw sp,sp,85
+ 80002b78: 00d11113 slli sp,sp,0xd
+ 80002b7c: 00b10113 addi sp,sp,11 # 55000b <_start-0x7faafff5>
+ 80002b80: 00c11113 slli sp,sp,0xc
+ 80002b84: a0110113 addi sp,sp,-1535
+ 80002b88: 00c11113 slli sp,sp,0xc
+ 80002b8c: aa010113 addi sp,sp,-1376
+ 80002b90: 0020b823 sd sp,16(ra)
+ 80002b94: 0100bf03 ld t5,16(ra)
+ 80002b98: 00550eb7 lui t4,0x550
+ 80002b9c: 055e8e9b addiw t4,t4,85
+ 80002ba0: 00de9e93 slli t4,t4,0xd
+ 80002ba4: 00be8e93 addi t4,t4,11 # 55000b <_start-0x7faafff5>
+ 80002ba8: 00ce9e93 slli t4,t4,0xc
+ 80002bac: a01e8e93 addi t4,t4,-1535
+ 80002bb0: 00ce9e93 slli t4,t4,0xc
+ 80002bb4: aa0e8e93 addi t4,t4,-1376
+ 80002bb8: 00400193 li gp,4
+ 80002bbc: 55df1863 bne t5,t4,8000310c <fail>
+
+0000000080002bc0 <test_5>:
+ 80002bc0: 00001097 auipc ra,0x1
+ 80002bc4: 44008093 addi ra,ra,1088 # 80004000 <begin_signature>
+ 80002bc8: fffd0137 lui sp,0xfffd0
+ 80002bcc: 0551011b addiw sp,sp,85
+ 80002bd0: 01011113 slli sp,sp,0x10
+ 80002bd4: 05510113 addi sp,sp,85 # fffffffffffd0055 <_end+0xffffffff7ffc6865>
+ 80002bd8: 01011113 slli sp,sp,0x10
+ 80002bdc: 05510113 addi sp,sp,85
+ 80002be0: 00d11113 slli sp,sp,0xd
+ 80002be4: 00a10113 addi sp,sp,10
+ 80002be8: 0020bc23 sd sp,24(ra)
+ 80002bec: 0180bf03 ld t5,24(ra)
+ 80002bf0: fffd0eb7 lui t4,0xfffd0
+ 80002bf4: 055e8e9b addiw t4,t4,85
+ 80002bf8: 010e9e93 slli t4,t4,0x10
+ 80002bfc: 055e8e93 addi t4,t4,85 # fffffffffffd0055 <_end+0xffffffff7ffc6865>
+ 80002c00: 010e9e93 slli t4,t4,0x10
+ 80002c04: 055e8e93 addi t4,t4,85
+ 80002c08: 00de9e93 slli t4,t4,0xd
+ 80002c0c: 00ae8e93 addi t4,t4,10
+ 80002c10: 00500193 li gp,5
+ 80002c14: 4fdf1c63 bne t5,t4,8000310c <fail>
+
+0000000080002c18 <test_6>:
+ 80002c18: 00001097 auipc ra,0x1
+ 80002c1c: 42008093 addi ra,ra,1056 # 80004038 <tdat8>
+ 80002c20: 00550137 lui sp,0x550
+ 80002c24: 0551011b addiw sp,sp,85
+ 80002c28: 01011113 slli sp,sp,0x10
+ 80002c2c: 05510113 addi sp,sp,85 # 550055 <_start-0x7faaffab>
+ 80002c30: 01111113 slli sp,sp,0x11
+ 80002c34: 0aa10113 addi sp,sp,170
+ 80002c38: fe20b423 sd sp,-24(ra)
+ 80002c3c: fe80bf03 ld t5,-24(ra)
+ 80002c40: 00550eb7 lui t4,0x550
+ 80002c44: 055e8e9b addiw t4,t4,85
+ 80002c48: 010e9e93 slli t4,t4,0x10
+ 80002c4c: 055e8e93 addi t4,t4,85 # 550055 <_start-0x7faaffab>
+ 80002c50: 011e9e93 slli t4,t4,0x11
+ 80002c54: 0aae8e93 addi t4,t4,170
+ 80002c58: 00600193 li gp,6
+ 80002c5c: 4bdf1863 bne t5,t4,8000310c <fail>
+
+0000000080002c60 <test_7>:
+ 80002c60: 00001097 auipc ra,0x1
+ 80002c64: 3d808093 addi ra,ra,984 # 80004038 <tdat8>
+ 80002c68: ffd50137 lui sp,0xffd50
+ 80002c6c: 0551011b addiw sp,sp,85
+ 80002c70: 01011113 slli sp,sp,0x10
+ 80002c74: 05510113 addi sp,sp,85 # ffffffffffd50055 <_end+0xffffffff7fd46865>
+ 80002c78: 00d11113 slli sp,sp,0xd
+ 80002c7c: 00b10113 addi sp,sp,11
+ 80002c80: 00c11113 slli sp,sp,0xc
+ 80002c84: a0010113 addi sp,sp,-1536
+ 80002c88: fe20b823 sd sp,-16(ra)
+ 80002c8c: ff00bf03 ld t5,-16(ra)
+ 80002c90: ffd50eb7 lui t4,0xffd50
+ 80002c94: 055e8e9b addiw t4,t4,85
+ 80002c98: 010e9e93 slli t4,t4,0x10
+ 80002c9c: 055e8e93 addi t4,t4,85 # ffffffffffd50055 <_end+0xffffffff7fd46865>
+ 80002ca0: 00de9e93 slli t4,t4,0xd
+ 80002ca4: 00be8e93 addi t4,t4,11
+ 80002ca8: 00ce9e93 slli t4,t4,0xc
+ 80002cac: a00e8e93 addi t4,t4,-1536
+ 80002cb0: 00700193 li gp,7
+ 80002cb4: 45df1c63 bne t5,t4,8000310c <fail>
+
+0000000080002cb8 <test_8>:
+ 80002cb8: 00001097 auipc ra,0x1
+ 80002cbc: 38008093 addi ra,ra,896 # 80004038 <tdat8>
+ 80002cc0: 00550137 lui sp,0x550
+ 80002cc4: 0551011b addiw sp,sp,85
+ 80002cc8: 00d11113 slli sp,sp,0xd
+ 80002ccc: 00b10113 addi sp,sp,11 # 55000b <_start-0x7faafff5>
+ 80002cd0: 00c11113 slli sp,sp,0xc
+ 80002cd4: a0110113 addi sp,sp,-1535
+ 80002cd8: 00c11113 slli sp,sp,0xc
+ 80002cdc: aa010113 addi sp,sp,-1376
+ 80002ce0: fe20bc23 sd sp,-8(ra)
+ 80002ce4: ff80bf03 ld t5,-8(ra)
+ 80002ce8: 00550eb7 lui t4,0x550
+ 80002cec: 055e8e9b addiw t4,t4,85
+ 80002cf0: 00de9e93 slli t4,t4,0xd
+ 80002cf4: 00be8e93 addi t4,t4,11 # 55000b <_start-0x7faafff5>
+ 80002cf8: 00ce9e93 slli t4,t4,0xc
+ 80002cfc: a01e8e93 addi t4,t4,-1535
+ 80002d00: 00ce9e93 slli t4,t4,0xc
+ 80002d04: aa0e8e93 addi t4,t4,-1376
+ 80002d08: 00800193 li gp,8
+ 80002d0c: 41df1063 bne t5,t4,8000310c <fail>
+
+0000000080002d10 <test_9>:
+ 80002d10: 00001097 auipc ra,0x1
+ 80002d14: 32808093 addi ra,ra,808 # 80004038 <tdat8>
+ 80002d18: fffd0137 lui sp,0xfffd0
+ 80002d1c: 0551011b addiw sp,sp,85
+ 80002d20: 01011113 slli sp,sp,0x10
+ 80002d24: 05510113 addi sp,sp,85 # fffffffffffd0055 <_end+0xffffffff7ffc6865>
+ 80002d28: 01011113 slli sp,sp,0x10
+ 80002d2c: 05510113 addi sp,sp,85
+ 80002d30: 00d11113 slli sp,sp,0xd
+ 80002d34: 00a10113 addi sp,sp,10
+ 80002d38: 0020b023 sd sp,0(ra)
+ 80002d3c: 0000bf03 ld t5,0(ra)
+ 80002d40: fffd0eb7 lui t4,0xfffd0
+ 80002d44: 055e8e9b addiw t4,t4,85
+ 80002d48: 010e9e93 slli t4,t4,0x10
+ 80002d4c: 055e8e93 addi t4,t4,85 # fffffffffffd0055 <_end+0xffffffff7ffc6865>
+ 80002d50: 010e9e93 slli t4,t4,0x10
+ 80002d54: 055e8e93 addi t4,t4,85
+ 80002d58: 00de9e93 slli t4,t4,0xd
+ 80002d5c: 00ae8e93 addi t4,t4,10
+ 80002d60: 00900193 li gp,9
+ 80002d64: 3bdf1463 bne t5,t4,8000310c <fail>
+
+0000000080002d68 <test_10>:
+ 80002d68: 00001097 auipc ra,0x1
+ 80002d6c: 2d808093 addi ra,ra,728 # 80004040 <tdat9>
+ 80002d70: 00247137 lui sp,0x247
+ 80002d74: 8ad1011b addiw sp,sp,-1875
+ 80002d78: 00e11113 slli sp,sp,0xe
+ 80002d7c: c0910113 addi sp,sp,-1015 # 246c09 <_start-0x7fdb93f7>
+ 80002d80: 00d11113 slli sp,sp,0xd
+ 80002d84: 34510113 addi sp,sp,837
+ 80002d88: 00c11113 slli sp,sp,0xc
+ 80002d8c: 67810113 addi sp,sp,1656
+ 80002d90: fe008213 addi tp,ra,-32
+ 80002d94: 02223023 sd sp,32(tp) # 20 <_start-0x7fffffe0>
+ 80002d98: 0000b283 ld t0,0(ra)
+ 80002d9c: 00247eb7 lui t4,0x247
+ 80002da0: 8ade8e9b addiw t4,t4,-1875
+ 80002da4: 00ee9e93 slli t4,t4,0xe
+ 80002da8: c09e8e93 addi t4,t4,-1015 # 246c09 <_start-0x7fdb93f7>
+ 80002dac: 00de9e93 slli t4,t4,0xd
+ 80002db0: 345e8e93 addi t4,t4,837
+ 80002db4: 00ce9e93 slli t4,t4,0xc
+ 80002db8: 678e8e93 addi t4,t4,1656
+ 80002dbc: 00a00193 li gp,10
+ 80002dc0: 35d29663 bne t0,t4,8000310c <fail>
+
+0000000080002dc4 <test_11>:
+ 80002dc4: 00001097 auipc ra,0x1
+ 80002dc8: 27c08093 addi ra,ra,636 # 80004040 <tdat9>
+ 80002dcc: 00b04137 lui sp,0xb04
+ 80002dd0: 2611011b addiw sp,sp,609
+ 80002dd4: 00c11113 slli sp,sp,0xc
+ 80002dd8: 30b10113 addi sp,sp,779 # b0430b <_start-0x7f4fbcf5>
+ 80002ddc: 00f11113 slli sp,sp,0xf
+ 80002de0: 21310113 addi sp,sp,531
+ 80002de4: 00c11113 slli sp,sp,0xc
+ 80002de8: 09810113 addi sp,sp,152
+ 80002dec: ffd08093 addi ra,ra,-3
+ 80002df0: 0020b5a3 sd sp,11(ra)
+ 80002df4: 00001217 auipc tp,0x1
+ 80002df8: 25420213 addi tp,tp,596 # 80004048 <tdat10>
+ 80002dfc: 00023283 ld t0,0(tp) # 0 <_start-0x80000000>
+ 80002e00: 00b04eb7 lui t4,0xb04
+ 80002e04: 261e8e9b addiw t4,t4,609
+ 80002e08: 00ce9e93 slli t4,t4,0xc
+ 80002e0c: 30be8e93 addi t4,t4,779 # b0430b <_start-0x7f4fbcf5>
+ 80002e10: 00fe9e93 slli t4,t4,0xf
+ 80002e14: 213e8e93 addi t4,t4,531
+ 80002e18: 00ce9e93 slli t4,t4,0xc
+ 80002e1c: 098e8e93 addi t4,t4,152
+ 80002e20: 00b00193 li gp,11
+ 80002e24: 2fd29463 bne t0,t4,8000310c <fail>
+
+0000000080002e28 <test_12>:
+ 80002e28: 00c00193 li gp,12
+ 80002e2c: 00000213 li tp,0
+ 80002e30: 0abbd0b7 lui ra,0xabbd
+ 80002e34: cdd0809b addiw ra,ra,-803
+ 80002e38: 00001117 auipc sp,0x1
+ 80002e3c: 1c810113 addi sp,sp,456 # 80004000 <begin_signature>
+ 80002e40: 00113023 sd ra,0(sp)
+ 80002e44: 00013f03 ld t5,0(sp)
+ 80002e48: 0abbdeb7 lui t4,0xabbd
+ 80002e4c: cdde8e9b addiw t4,t4,-803
+ 80002e50: 2bdf1e63 bne t5,t4,8000310c <fail>
+ 80002e54: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e58: 00200293 li t0,2
+ 80002e5c: fc521ae3 bne tp,t0,80002e30 <test_12+0x8>
+
+0000000080002e60 <test_13>:
+ 80002e60: 00d00193 li gp,13
+ 80002e64: 00000213 li tp,0
+ 80002e68: 0aabc0b7 lui ra,0xaabc
+ 80002e6c: ccd0809b addiw ra,ra,-819
+ 80002e70: 00001117 auipc sp,0x1
+ 80002e74: 19010113 addi sp,sp,400 # 80004000 <begin_signature>
+ 80002e78: 00000013 nop
+ 80002e7c: 00113423 sd ra,8(sp)
+ 80002e80: 00813f03 ld t5,8(sp)
+ 80002e84: 0aabceb7 lui t4,0xaabc
+ 80002e88: ccde8e9b addiw t4,t4,-819
+ 80002e8c: 29df1063 bne t5,t4,8000310c <fail>
+ 80002e90: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e94: 00200293 li t0,2
+ 80002e98: fc5218e3 bne tp,t0,80002e68 <test_13+0x8>
+
+0000000080002e9c <test_14>:
+ 80002e9c: 00e00193 li gp,14
+ 80002ea0: 00000213 li tp,0
+ 80002ea4: 0daac0b7 lui ra,0xdaac
+ 80002ea8: bcc0809b addiw ra,ra,-1076
+ 80002eac: 00001117 auipc sp,0x1
+ 80002eb0: 15410113 addi sp,sp,340 # 80004000 <begin_signature>
+ 80002eb4: 00000013 nop
+ 80002eb8: 00000013 nop
+ 80002ebc: 00113823 sd ra,16(sp)
+ 80002ec0: 01013f03 ld t5,16(sp)
+ 80002ec4: 0daaceb7 lui t4,0xdaac
+ 80002ec8: bcce8e9b addiw t4,t4,-1076
+ 80002ecc: 25df1063 bne t5,t4,8000310c <fail>
+ 80002ed0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ed4: 00200293 li t0,2
+ 80002ed8: fc5216e3 bne tp,t0,80002ea4 <test_14+0x8>
+
+0000000080002edc <test_15>:
+ 80002edc: 00f00193 li gp,15
+ 80002ee0: 00000213 li tp,0
+ 80002ee4: 0ddab0b7 lui ra,0xddab
+ 80002ee8: bbc0809b addiw ra,ra,-1092
+ 80002eec: 00000013 nop
+ 80002ef0: 00001117 auipc sp,0x1
+ 80002ef4: 11010113 addi sp,sp,272 # 80004000 <begin_signature>
+ 80002ef8: 00113c23 sd ra,24(sp)
+ 80002efc: 01813f03 ld t5,24(sp)
+ 80002f00: 0ddabeb7 lui t4,0xddab
+ 80002f04: bbce8e9b addiw t4,t4,-1092
+ 80002f08: 21df1263 bne t5,t4,8000310c <fail>
+ 80002f0c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002f10: 00200293 li t0,2
+ 80002f14: fc5218e3 bne tp,t0,80002ee4 <test_15+0x8>
+
+0000000080002f18 <test_16>:
+ 80002f18: 01000193 li gp,16
+ 80002f1c: 00000213 li tp,0
+ 80002f20: 0cddb0b7 lui ra,0xcddb
+ 80002f24: abb0809b addiw ra,ra,-1349
+ 80002f28: 00000013 nop
+ 80002f2c: 00001117 auipc sp,0x1
+ 80002f30: 0d410113 addi sp,sp,212 # 80004000 <begin_signature>
+ 80002f34: 00000013 nop
+ 80002f38: 02113023 sd ra,32(sp)
+ 80002f3c: 02013f03 ld t5,32(sp)
+ 80002f40: 0cddbeb7 lui t4,0xcddb
+ 80002f44: abbe8e9b addiw t4,t4,-1349
+ 80002f48: 1ddf1263 bne t5,t4,8000310c <fail>
+ 80002f4c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002f50: 00200293 li t0,2
+ 80002f54: fc5216e3 bne tp,t0,80002f20 <test_16+0x8>
+
+0000000080002f58 <test_17>:
+ 80002f58: 01100193 li gp,17
+ 80002f5c: 00000213 li tp,0
+ 80002f60: 0ccde0b7 lui ra,0xccde
+ 80002f64: aab0809b addiw ra,ra,-1365
+ 80002f68: 00000013 nop
+ 80002f6c: 00000013 nop
+ 80002f70: 00001117 auipc sp,0x1
+ 80002f74: 09010113 addi sp,sp,144 # 80004000 <begin_signature>
+ 80002f78: 02113423 sd ra,40(sp)
+ 80002f7c: 02813f03 ld t5,40(sp)
+ 80002f80: 0ccdeeb7 lui t4,0xccde
+ 80002f84: aabe8e9b addiw t4,t4,-1365
+ 80002f88: 19df1263 bne t5,t4,8000310c <fail>
+ 80002f8c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002f90: 00200293 li t0,2
+ 80002f94: fc5216e3 bne tp,t0,80002f60 <test_17+0x8>
+
+0000000080002f98 <test_18>:
+ 80002f98: 01200193 li gp,18
+ 80002f9c: 00000213 li tp,0
+ 80002fa0: 00001117 auipc sp,0x1
+ 80002fa4: 06010113 addi sp,sp,96 # 80004000 <begin_signature>
+ 80002fa8: 001120b7 lui ra,0x112
+ 80002fac: 2330809b addiw ra,ra,563
+ 80002fb0: 00113023 sd ra,0(sp)
+ 80002fb4: 00013f03 ld t5,0(sp)
+ 80002fb8: 00112eb7 lui t4,0x112
+ 80002fbc: 233e8e9b addiw t4,t4,563
+ 80002fc0: 15df1663 bne t5,t4,8000310c <fail>
+ 80002fc4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002fc8: 00200293 li t0,2
+ 80002fcc: fc521ae3 bne tp,t0,80002fa0 <test_18+0x8>
+
+0000000080002fd0 <test_19>:
+ 80002fd0: 01300193 li gp,19
+ 80002fd4: 00000213 li tp,0
+ 80002fd8: 00001117 auipc sp,0x1
+ 80002fdc: 02810113 addi sp,sp,40 # 80004000 <begin_signature>
+ 80002fe0: 300110b7 lui ra,0x30011
+ 80002fe4: 2230809b addiw ra,ra,547
+ 80002fe8: 00000013 nop
+ 80002fec: 00113423 sd ra,8(sp)
+ 80002ff0: 00813f03 ld t5,8(sp)
+ 80002ff4: 30011eb7 lui t4,0x30011
+ 80002ff8: 223e8e9b addiw t4,t4,547
+ 80002ffc: 11df1863 bne t5,t4,8000310c <fail>
+ 80003000: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80003004: 00200293 li t0,2
+ 80003008: fc5218e3 bne tp,t0,80002fd8 <test_19+0x8>
+
+000000008000300c <test_20>:
+ 8000300c: 01400193 li gp,20
+ 80003010: 00000213 li tp,0
+ 80003014: 00001117 auipc sp,0x1
+ 80003018: fec10113 addi sp,sp,-20 # 80004000 <begin_signature>
+ 8000301c: 330010b7 lui ra,0x33001
+ 80003020: 1220809b addiw ra,ra,290
+ 80003024: 00000013 nop
+ 80003028: 00000013 nop
+ 8000302c: 00113823 sd ra,16(sp)
+ 80003030: 01013f03 ld t5,16(sp)
+ 80003034: 33001eb7 lui t4,0x33001
+ 80003038: 122e8e9b addiw t4,t4,290
+ 8000303c: 0ddf1863 bne t5,t4,8000310c <fail>
+ 80003040: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80003044: 00200293 li t0,2
+ 80003048: fc5216e3 bne tp,t0,80003014 <test_20+0x8>
+
+000000008000304c <test_21>:
+ 8000304c: 01500193 li gp,21
+ 80003050: 00000213 li tp,0
+ 80003054: 00001117 auipc sp,0x1
+ 80003058: fac10113 addi sp,sp,-84 # 80004000 <begin_signature>
+ 8000305c: 00000013 nop
+ 80003060: 233000b7 lui ra,0x23300
+ 80003064: 1120809b addiw ra,ra,274
+ 80003068: 00113c23 sd ra,24(sp)
+ 8000306c: 01813f03 ld t5,24(sp)
+ 80003070: 23300eb7 lui t4,0x23300
+ 80003074: 112e8e9b addiw t4,t4,274
+ 80003078: 09df1a63 bne t5,t4,8000310c <fail>
+ 8000307c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80003080: 00200293 li t0,2
+ 80003084: fc5218e3 bne tp,t0,80003054 <test_21+0x8>
+
+0000000080003088 <test_22>:
+ 80003088: 01600193 li gp,22
+ 8000308c: 00000213 li tp,0
+ 80003090: 00001117 auipc sp,0x1
+ 80003094: f7010113 addi sp,sp,-144 # 80004000 <begin_signature>
+ 80003098: 00000013 nop
+ 8000309c: 223300b7 lui ra,0x22330
+ 800030a0: 0110809b addiw ra,ra,17
+ 800030a4: 00000013 nop
+ 800030a8: 02113023 sd ra,32(sp)
+ 800030ac: 02013f03 ld t5,32(sp)
+ 800030b0: 22330eb7 lui t4,0x22330
+ 800030b4: 011e8e9b addiw t4,t4,17
+ 800030b8: 05df1a63 bne t5,t4,8000310c <fail>
+ 800030bc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800030c0: 00200293 li t0,2
+ 800030c4: fc5216e3 bne tp,t0,80003090 <test_22+0x8>
+
+00000000800030c8 <test_23>:
+ 800030c8: 01700193 li gp,23
+ 800030cc: 00000213 li tp,0
+ 800030d0: 00001117 auipc sp,0x1
+ 800030d4: f3010113 addi sp,sp,-208 # 80004000 <begin_signature>
+ 800030d8: 00000013 nop
+ 800030dc: 00000013 nop
+ 800030e0: 122330b7 lui ra,0x12233
+ 800030e4: 0010809b addiw ra,ra,1
+ 800030e8: 02113423 sd ra,40(sp)
+ 800030ec: 02813f03 ld t5,40(sp)
+ 800030f0: 12233eb7 lui t4,0x12233
+ 800030f4: 001e8e9b addiw t4,t4,1
+ 800030f8: 01df1a63 bne t5,t4,8000310c <fail>
+ 800030fc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80003100: 00200293 li t0,2
+ 80003104: fc5216e3 bne tp,t0,800030d0 <test_23+0x8>
+ 80003108: 00301a63 bne zero,gp,8000311c <pass>
+
+000000008000310c <fail>:
+ 8000310c: 00119513 slli a0,gp,0x1
+ 80003110: 00050063 beqz a0,80003110 <fail+0x4>
+ 80003114: 00156513 ori a0,a0,1
+ 80003118: 00000073 ecall
+
+000000008000311c <pass>:
+ 8000311c: 00100513 li a0,1
+ 80003120: 00000073 ecall
+ 80003124: c0001073 unimp
+
+Disassembly of section .data:
+
+0000000080004000 <begin_signature>:
+ 80004000: deadbeef jal t4,7ffdf5ea <_start-0x20a16>
+ 80004004: deadbeef jal t4,7ffdf5ee <_start-0x20a12>
+
+0000000080004008 <tdat2>:
+ 80004008: deadbeef jal t4,7ffdf5f2 <_start-0x20a0e>
+ 8000400c: deadbeef jal t4,7ffdf5f6 <_start-0x20a0a>
+
+0000000080004010 <tdat3>:
+ 80004010: deadbeef jal t4,7ffdf5fa <_start-0x20a06>
+ 80004014: deadbeef jal t4,7ffdf5fe <_start-0x20a02>
+
+0000000080004018 <tdat4>:
+ 80004018: deadbeef jal t4,7ffdf602 <_start-0x209fe>
+ 8000401c: deadbeef jal t4,7ffdf606 <_start-0x209fa>
+
+0000000080004020 <tdat5>:
+ 80004020: deadbeef jal t4,7ffdf60a <_start-0x209f6>
+ 80004024: deadbeef jal t4,7ffdf60e <_start-0x209f2>
+
+0000000080004028 <tdat6>:
+ 80004028: deadbeef jal t4,7ffdf612 <_start-0x209ee>
+ 8000402c: deadbeef jal t4,7ffdf616 <_start-0x209ea>
+
+0000000080004030 <tdat7>:
+ 80004030: deadbeef jal t4,7ffdf61a <_start-0x209e6>
+ 80004034: deadbeef jal t4,7ffdf61e <_start-0x209e2>
+
+0000000080004038 <tdat8>:
+ 80004038: deadbeef jal t4,7ffdf622 <_start-0x209de>
+ 8000403c: deadbeef jal t4,7ffdf626 <_start-0x209da>
+
+0000000080004040 <tdat9>:
+ 80004040: deadbeef jal t4,7ffdf62a <_start-0x209d6>
+ 80004044: deadbeef jal t4,7ffdf62e <_start-0x209d2>
+
+0000000080004048 <tdat10>:
+ 80004048: deadbeef jal t4,7ffdf632 <_start-0x209ce>
+ 8000404c: deadbeef jal t4,7ffdf636 <_start-0x209ca>
diff --git a/test/tests/rv64ui-v-sd.elf b/test/tests/rv64ui-v-sd.elf
new file mode 100644
index 0000000..b1660db
--- /dev/null
+++ b/test/tests/rv64ui-v-sd.elf
Binary files differ
diff --git a/test/tests/rv64ui-v-sh.dump b/test/tests/rv64ui-v-sh.dump
new file mode 100644
index 0000000..62862d9
--- /dev/null
+++ b/test/tests/rv64ui-v-sh.dump
@@ -0,0 +1,1200 @@
+
+rv64ui-v-sh: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <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: 6b810113 addi sp,sp,1720 # 8000a6d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00003617 auipc a2,0x3
+ 80002318: cec60613 addi a2,a2,-788 # 80005000 <pt>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00007797 auipc a5,0x7
+ 80002334: 4b878793 addi a5,a5,1208 # 800097e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00007717 auipc a4,0x7
+ 80002348: 49c70713 addi a4,a4,1180 # 800097e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00007897 auipc a7,0x7
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800097e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00007797 auipc a5,0x7
+ 80002384: 07078793 addi a5,a5,112 # 800093f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf6810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00007797 auipc a5,0x7
+ 80002448: 3807be23 sd zero,924(a5) # 800097e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00001697 auipc a3,0x1
+ 8000245c: b0868693 addi a3,a3,-1272 # 80002f60 <pass+0x10>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00001617 auipc a2,0x1
+ 800024b8: b3c60613 addi a2,a2,-1220 # 80002ff0 <pass+0xa0>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00001617 auipc a2,0x1
+ 80002508: b0460613 addi a2,a2,-1276 # 80003008 <pass+0xb8>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00001697 auipc a3,0x1
+ 80002558: a5468693 addi a3,a3,-1452 # 80002fa8 <pass+0x58>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00001697 auipc a3,0x1
+ 80002674: a7068693 addi a3,a3,-1424 # 800030e0 <pass+0x190>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00001617 auipc a2,0x1
+ 800026cc: 9f060613 addi a2,a2,-1552 # 800030b8 <pass+0x168>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00007d17 auipc s10,0x7
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800093f0 <user_mapping>
+ 80002724: 00003b97 auipc s7,0x3
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80005000 <pt>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00007a17 auipc s4,0x7
+ 80002738: 0aca0a13 addi s4,s4,172 # 800097e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00007717 auipc a4,0x7
+ 8000274c: 08f73c23 sd a5,152(a4) # 800097e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00007717 auipc a4,0x7
+ 800027d4: 00f73823 sd a5,16(a4) # 800097e0 <freelist_tail>
+ 800027d8: 00007717 auipc a4,0x7
+ 800027dc: 00f73823 sd a5,16(a4) # 800097e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00001697 auipc a3,0x1
+ 800027f0: 92468693 addi a3,a3,-1756 # 80003110 <pass+0x1c0>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00001697 auipc a3,0x1
+ 80002840: 84468693 addi a3,a3,-1980 # 80003080 <pass+0x130>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 7d468693 addi a3,a3,2004 # 80003048 <pass+0xf8>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00003697 auipc a3,0x3
+ 800028e0: 72468693 addi a3,a3,1828 # 80006000 <pt+0x1000>
+ 800028e4: 00004717 auipc a4,0x4
+ 800028e8: 71c70713 addi a4,a4,1820 # 80007000 <pt+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00005797 auipc a5,0x5
+ 800028f8: 70c78793 addi a5,a5,1804 # 80008000 <pt+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00002897 auipc a7,0x2
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80005000 <pt>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00003697 auipc a3,0x3
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80005ff8 <pt+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00002617 auipc a2,0x2
+ 80002938: 6cc60613 addi a2,a2,1740 # 80005000 <pt>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00005697 auipc a3,0x5
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80007ff8 <pt+0x2ff8>
+ 8000294c: 00003717 auipc a4,0x3
+ 80002950: 6af73a23 sd a5,1716(a4) # 80006000 <pt+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00006697 auipc a3,0x6
+ 800029c0: 64468693 addi a3,a3,1604 # 80009000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00007617 auipc a2,0x7
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800097e8 <freelist_head>
+ 800029d4: 00007797 auipc a5,0x7
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800097e0 <freelist_tail>
+ 800029dc: 00007317 auipc t1,0x7
+ 800029e0: a1430313 addi t1,t1,-1516 # 800093f0 <user_mapping>
+ 800029e4: 03300793 li a5,51
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00007797 auipc a5,0x7
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800093e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 0adbd7b7 lui a5,0xadbd
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: 91078793 addi a5,a5,-1776 # adbc910 <_start-0x752436f0>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 00001097 auipc ra,0x1
+ 80002acc: 53808093 addi ra,ra,1336 # 80004000 <begin_signature>
+ 80002ad0: 0aa00113 li sp,170
+ 80002ad4: 00209023 sh sp,0(ra)
+ 80002ad8: 00009f03 lh t5,0(ra)
+ 80002adc: 0aa00e93 li t4,170
+ 80002ae0: 00200193 li gp,2
+ 80002ae4: 45df1e63 bne t5,t4,80002f40 <fail>
+
+0000000080002ae8 <test_3>:
+ 80002ae8: 00001097 auipc ra,0x1
+ 80002aec: 51808093 addi ra,ra,1304 # 80004000 <begin_signature>
+ 80002af0: ffffb137 lui sp,0xffffb
+ 80002af4: a001011b addiw sp,sp,-1536
+ 80002af8: 00209123 sh sp,2(ra)
+ 80002afc: 00209f03 lh t5,2(ra)
+ 80002b00: ffffbeb7 lui t4,0xffffb
+ 80002b04: a00e8e9b addiw t4,t4,-1536
+ 80002b08: 00300193 li gp,3
+ 80002b0c: 43df1a63 bne t5,t4,80002f40 <fail>
+
+0000000080002b10 <test_4>:
+ 80002b10: 00001097 auipc ra,0x1
+ 80002b14: 4f008093 addi ra,ra,1264 # 80004000 <begin_signature>
+ 80002b18: beef1137 lui sp,0xbeef1
+ 80002b1c: aa01011b addiw sp,sp,-1376
+ 80002b20: 00209223 sh sp,4(ra)
+ 80002b24: 0040af03 lw t5,4(ra)
+ 80002b28: beef1eb7 lui t4,0xbeef1
+ 80002b2c: aa0e8e9b addiw t4,t4,-1376
+ 80002b30: 00400193 li gp,4
+ 80002b34: 41df1663 bne t5,t4,80002f40 <fail>
+
+0000000080002b38 <test_5>:
+ 80002b38: 00001097 auipc ra,0x1
+ 80002b3c: 4c808093 addi ra,ra,1224 # 80004000 <begin_signature>
+ 80002b40: ffffa137 lui sp,0xffffa
+ 80002b44: 00a1011b addiw sp,sp,10
+ 80002b48: 00209323 sh sp,6(ra)
+ 80002b4c: 00609f03 lh t5,6(ra)
+ 80002b50: ffffaeb7 lui t4,0xffffa
+ 80002b54: 00ae8e9b addiw t4,t4,10
+ 80002b58: 00500193 li gp,5
+ 80002b5c: 3fdf1263 bne t5,t4,80002f40 <fail>
+
+0000000080002b60 <test_6>:
+ 80002b60: 00001097 auipc ra,0x1
+ 80002b64: 4ae08093 addi ra,ra,1198 # 8000400e <tdat8>
+ 80002b68: 0aa00113 li sp,170
+ 80002b6c: fe209d23 sh sp,-6(ra)
+ 80002b70: ffa09f03 lh t5,-6(ra)
+ 80002b74: 0aa00e93 li t4,170
+ 80002b78: 00600193 li gp,6
+ 80002b7c: 3ddf1263 bne t5,t4,80002f40 <fail>
+
+0000000080002b80 <test_7>:
+ 80002b80: 00001097 auipc ra,0x1
+ 80002b84: 48e08093 addi ra,ra,1166 # 8000400e <tdat8>
+ 80002b88: ffffb137 lui sp,0xffffb
+ 80002b8c: a001011b addiw sp,sp,-1536
+ 80002b90: fe209e23 sh sp,-4(ra)
+ 80002b94: ffc09f03 lh t5,-4(ra)
+ 80002b98: ffffbeb7 lui t4,0xffffb
+ 80002b9c: a00e8e9b addiw t4,t4,-1536
+ 80002ba0: 00700193 li gp,7
+ 80002ba4: 39df1e63 bne t5,t4,80002f40 <fail>
+
+0000000080002ba8 <test_8>:
+ 80002ba8: 00001097 auipc ra,0x1
+ 80002bac: 46608093 addi ra,ra,1126 # 8000400e <tdat8>
+ 80002bb0: 00001137 lui sp,0x1
+ 80002bb4: aa01011b addiw sp,sp,-1376
+ 80002bb8: fe209f23 sh sp,-2(ra)
+ 80002bbc: ffe09f03 lh t5,-2(ra)
+ 80002bc0: 00001eb7 lui t4,0x1
+ 80002bc4: aa0e8e9b addiw t4,t4,-1376
+ 80002bc8: 00800193 li gp,8
+ 80002bcc: 37df1a63 bne t5,t4,80002f40 <fail>
+
+0000000080002bd0 <test_9>:
+ 80002bd0: 00001097 auipc ra,0x1
+ 80002bd4: 43e08093 addi ra,ra,1086 # 8000400e <tdat8>
+ 80002bd8: ffffa137 lui sp,0xffffa
+ 80002bdc: 00a1011b addiw sp,sp,10
+ 80002be0: 00209023 sh sp,0(ra)
+ 80002be4: 00009f03 lh t5,0(ra)
+ 80002be8: ffffaeb7 lui t4,0xffffa
+ 80002bec: 00ae8e9b addiw t4,t4,10
+ 80002bf0: 00900193 li gp,9
+ 80002bf4: 35df1663 bne t5,t4,80002f40 <fail>
+
+0000000080002bf8 <test_10>:
+ 80002bf8: 00001097 auipc ra,0x1
+ 80002bfc: 41808093 addi ra,ra,1048 # 80004010 <tdat9>
+ 80002c00: 12345137 lui sp,0x12345
+ 80002c04: 6781011b addiw sp,sp,1656
+ 80002c08: fe008213 addi tp,ra,-32
+ 80002c0c: 02221023 sh sp,32(tp) # 20 <_start-0x7fffffe0>
+ 80002c10: 00009283 lh t0,0(ra)
+ 80002c14: 00005eb7 lui t4,0x5
+ 80002c18: 678e8e9b addiw t4,t4,1656
+ 80002c1c: 00a00193 li gp,10
+ 80002c20: 33d29063 bne t0,t4,80002f40 <fail>
+
+0000000080002c24 <test_11>:
+ 80002c24: 00001097 auipc ra,0x1
+ 80002c28: 3ec08093 addi ra,ra,1004 # 80004010 <tdat9>
+ 80002c2c: 00003137 lui sp,0x3
+ 80002c30: 0981011b addiw sp,sp,152
+ 80002c34: ffb08093 addi ra,ra,-5
+ 80002c38: 002093a3 sh sp,7(ra)
+ 80002c3c: 00001217 auipc tp,0x1
+ 80002c40: 3d620213 addi tp,tp,982 # 80004012 <tdat10>
+ 80002c44: 00021283 lh t0,0(tp) # 0 <_start-0x80000000>
+ 80002c48: 00003eb7 lui t4,0x3
+ 80002c4c: 098e8e9b addiw t4,t4,152
+ 80002c50: 00b00193 li gp,11
+ 80002c54: 2fd29663 bne t0,t4,80002f40 <fail>
+
+0000000080002c58 <test_12>:
+ 80002c58: 00c00193 li gp,12
+ 80002c5c: 00000213 li tp,0
+ 80002c60: ffffd0b7 lui ra,0xffffd
+ 80002c64: cdd0809b addiw ra,ra,-803
+ 80002c68: 00001117 auipc sp,0x1
+ 80002c6c: 39810113 addi sp,sp,920 # 80004000 <begin_signature>
+ 80002c70: 00111023 sh ra,0(sp)
+ 80002c74: 00011f03 lh t5,0(sp)
+ 80002c78: ffffdeb7 lui t4,0xffffd
+ 80002c7c: cdde8e9b addiw t4,t4,-803
+ 80002c80: 2ddf1063 bne t5,t4,80002f40 <fail>
+ 80002c84: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c88: 00200293 li t0,2
+ 80002c8c: fc521ae3 bne tp,t0,80002c60 <test_12+0x8>
+
+0000000080002c90 <test_13>:
+ 80002c90: 00d00193 li gp,13
+ 80002c94: 00000213 li tp,0
+ 80002c98: ffffc0b7 lui ra,0xffffc
+ 80002c9c: ccd0809b addiw ra,ra,-819
+ 80002ca0: 00001117 auipc sp,0x1
+ 80002ca4: 36010113 addi sp,sp,864 # 80004000 <begin_signature>
+ 80002ca8: 00000013 nop
+ 80002cac: 00111123 sh ra,2(sp)
+ 80002cb0: 00211f03 lh t5,2(sp)
+ 80002cb4: ffffceb7 lui t4,0xffffc
+ 80002cb8: ccde8e9b addiw t4,t4,-819
+ 80002cbc: 29df1263 bne t5,t4,80002f40 <fail>
+ 80002cc0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002cc4: 00200293 li t0,2
+ 80002cc8: fc5218e3 bne tp,t0,80002c98 <test_13+0x8>
+
+0000000080002ccc <test_14>:
+ 80002ccc: 00e00193 li gp,14
+ 80002cd0: 00000213 li tp,0
+ 80002cd4: ffffc0b7 lui ra,0xffffc
+ 80002cd8: bcc0809b addiw ra,ra,-1076
+ 80002cdc: 00001117 auipc sp,0x1
+ 80002ce0: 32410113 addi sp,sp,804 # 80004000 <begin_signature>
+ 80002ce4: 00000013 nop
+ 80002ce8: 00000013 nop
+ 80002cec: 00111223 sh ra,4(sp)
+ 80002cf0: 00411f03 lh t5,4(sp)
+ 80002cf4: ffffceb7 lui t4,0xffffc
+ 80002cf8: bcce8e9b addiw t4,t4,-1076
+ 80002cfc: 25df1263 bne t5,t4,80002f40 <fail>
+ 80002d00: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d04: 00200293 li t0,2
+ 80002d08: fc5216e3 bne tp,t0,80002cd4 <test_14+0x8>
+
+0000000080002d0c <test_15>:
+ 80002d0c: 00f00193 li gp,15
+ 80002d10: 00000213 li tp,0
+ 80002d14: ffffb0b7 lui ra,0xffffb
+ 80002d18: bbc0809b addiw ra,ra,-1092
+ 80002d1c: 00000013 nop
+ 80002d20: 00001117 auipc sp,0x1
+ 80002d24: 2e010113 addi sp,sp,736 # 80004000 <begin_signature>
+ 80002d28: 00111323 sh ra,6(sp)
+ 80002d2c: 00611f03 lh t5,6(sp)
+ 80002d30: ffffbeb7 lui t4,0xffffb
+ 80002d34: bbce8e9b addiw t4,t4,-1092
+ 80002d38: 21df1463 bne t5,t4,80002f40 <fail>
+ 80002d3c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d40: 00200293 li t0,2
+ 80002d44: fc5218e3 bne tp,t0,80002d14 <test_15+0x8>
+
+0000000080002d48 <test_16>:
+ 80002d48: 01000193 li gp,16
+ 80002d4c: 00000213 li tp,0
+ 80002d50: ffffb0b7 lui ra,0xffffb
+ 80002d54: abb0809b addiw ra,ra,-1349
+ 80002d58: 00000013 nop
+ 80002d5c: 00001117 auipc sp,0x1
+ 80002d60: 2a410113 addi sp,sp,676 # 80004000 <begin_signature>
+ 80002d64: 00000013 nop
+ 80002d68: 00111423 sh ra,8(sp)
+ 80002d6c: 00811f03 lh t5,8(sp)
+ 80002d70: ffffbeb7 lui t4,0xffffb
+ 80002d74: abbe8e9b addiw t4,t4,-1349
+ 80002d78: 1ddf1463 bne t5,t4,80002f40 <fail>
+ 80002d7c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d80: 00200293 li t0,2
+ 80002d84: fc5216e3 bne tp,t0,80002d50 <test_16+0x8>
+
+0000000080002d88 <test_17>:
+ 80002d88: 01100193 li gp,17
+ 80002d8c: 00000213 li tp,0
+ 80002d90: ffffe0b7 lui ra,0xffffe
+ 80002d94: aab0809b addiw ra,ra,-1365
+ 80002d98: 00000013 nop
+ 80002d9c: 00000013 nop
+ 80002da0: 00001117 auipc sp,0x1
+ 80002da4: 26010113 addi sp,sp,608 # 80004000 <begin_signature>
+ 80002da8: 00111523 sh ra,10(sp)
+ 80002dac: 00a11f03 lh t5,10(sp)
+ 80002db0: ffffeeb7 lui t4,0xffffe
+ 80002db4: aabe8e9b addiw t4,t4,-1365
+ 80002db8: 19df1463 bne t5,t4,80002f40 <fail>
+ 80002dbc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002dc0: 00200293 li t0,2
+ 80002dc4: fc5216e3 bne tp,t0,80002d90 <test_17+0x8>
+
+0000000080002dc8 <test_18>:
+ 80002dc8: 01200193 li gp,18
+ 80002dcc: 00000213 li tp,0
+ 80002dd0: 00001117 auipc sp,0x1
+ 80002dd4: 23010113 addi sp,sp,560 # 80004000 <begin_signature>
+ 80002dd8: 000020b7 lui ra,0x2
+ 80002ddc: 2330809b addiw ra,ra,563
+ 80002de0: 00111023 sh ra,0(sp)
+ 80002de4: 00011f03 lh t5,0(sp)
+ 80002de8: 00002eb7 lui t4,0x2
+ 80002dec: 233e8e9b addiw t4,t4,563
+ 80002df0: 15df1863 bne t5,t4,80002f40 <fail>
+ 80002df4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002df8: 00200293 li t0,2
+ 80002dfc: fc521ae3 bne tp,t0,80002dd0 <test_18+0x8>
+
+0000000080002e00 <test_19>:
+ 80002e00: 01300193 li gp,19
+ 80002e04: 00000213 li tp,0
+ 80002e08: 00001117 auipc sp,0x1
+ 80002e0c: 1f810113 addi sp,sp,504 # 80004000 <begin_signature>
+ 80002e10: 000010b7 lui ra,0x1
+ 80002e14: 2230809b addiw ra,ra,547
+ 80002e18: 00000013 nop
+ 80002e1c: 00111123 sh ra,2(sp)
+ 80002e20: 00211f03 lh t5,2(sp)
+ 80002e24: 00001eb7 lui t4,0x1
+ 80002e28: 223e8e9b addiw t4,t4,547
+ 80002e2c: 11df1a63 bne t5,t4,80002f40 <fail>
+ 80002e30: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e34: 00200293 li t0,2
+ 80002e38: fc5218e3 bne tp,t0,80002e08 <test_19+0x8>
+
+0000000080002e3c <test_20>:
+ 80002e3c: 01400193 li gp,20
+ 80002e40: 00000213 li tp,0
+ 80002e44: 00001117 auipc sp,0x1
+ 80002e48: 1bc10113 addi sp,sp,444 # 80004000 <begin_signature>
+ 80002e4c: 000010b7 lui ra,0x1
+ 80002e50: 1220809b addiw ra,ra,290
+ 80002e54: 00000013 nop
+ 80002e58: 00000013 nop
+ 80002e5c: 00111223 sh ra,4(sp)
+ 80002e60: 00411f03 lh t5,4(sp)
+ 80002e64: 00001eb7 lui t4,0x1
+ 80002e68: 122e8e9b addiw t4,t4,290
+ 80002e6c: 0ddf1a63 bne t5,t4,80002f40 <fail>
+ 80002e70: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e74: 00200293 li t0,2
+ 80002e78: fc5216e3 bne tp,t0,80002e44 <test_20+0x8>
+
+0000000080002e7c <test_21>:
+ 80002e7c: 01500193 li gp,21
+ 80002e80: 00000213 li tp,0
+ 80002e84: 00001117 auipc sp,0x1
+ 80002e88: 17c10113 addi sp,sp,380 # 80004000 <begin_signature>
+ 80002e8c: 00000013 nop
+ 80002e90: 11200093 li ra,274
+ 80002e94: 00111323 sh ra,6(sp)
+ 80002e98: 00611f03 lh t5,6(sp)
+ 80002e9c: 11200e93 li t4,274
+ 80002ea0: 0bdf1063 bne t5,t4,80002f40 <fail>
+ 80002ea4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ea8: 00200293 li t0,2
+ 80002eac: fc521ce3 bne tp,t0,80002e84 <test_21+0x8>
+
+0000000080002eb0 <test_22>:
+ 80002eb0: 01600193 li gp,22
+ 80002eb4: 00000213 li tp,0
+ 80002eb8: 00001117 auipc sp,0x1
+ 80002ebc: 14810113 addi sp,sp,328 # 80004000 <begin_signature>
+ 80002ec0: 00000013 nop
+ 80002ec4: 01100093 li ra,17
+ 80002ec8: 00000013 nop
+ 80002ecc: 00111423 sh ra,8(sp)
+ 80002ed0: 00811f03 lh t5,8(sp)
+ 80002ed4: 01100e93 li t4,17
+ 80002ed8: 07df1463 bne t5,t4,80002f40 <fail>
+ 80002edc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ee0: 00200293 li t0,2
+ 80002ee4: fc521ae3 bne tp,t0,80002eb8 <test_22+0x8>
+
+0000000080002ee8 <test_23>:
+ 80002ee8: 01700193 li gp,23
+ 80002eec: 00000213 li tp,0
+ 80002ef0: 00001117 auipc sp,0x1
+ 80002ef4: 11010113 addi sp,sp,272 # 80004000 <begin_signature>
+ 80002ef8: 00000013 nop
+ 80002efc: 00000013 nop
+ 80002f00: 000030b7 lui ra,0x3
+ 80002f04: 0010809b addiw ra,ra,1
+ 80002f08: 00111523 sh ra,10(sp)
+ 80002f0c: 00a11f03 lh t5,10(sp)
+ 80002f10: 00003eb7 lui t4,0x3
+ 80002f14: 001e8e9b addiw t4,t4,1
+ 80002f18: 03df1463 bne t5,t4,80002f40 <fail>
+ 80002f1c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002f20: 00200293 li t0,2
+ 80002f24: fc5216e3 bne tp,t0,80002ef0 <test_23+0x8>
+ 80002f28: 0000c537 lui a0,0xc
+ 80002f2c: eef5051b addiw a0,a0,-273
+ 80002f30: 00001597 auipc a1,0x1
+ 80002f34: 0d058593 addi a1,a1,208 # 80004000 <begin_signature>
+ 80002f38: 00a59323 sh a0,6(a1)
+ 80002f3c: 00301a63 bne zero,gp,80002f50 <pass>
+
+0000000080002f40 <fail>:
+ 80002f40: 00119513 slli a0,gp,0x1
+ 80002f44: 00050063 beqz a0,80002f44 <fail+0x4>
+ 80002f48: 00156513 ori a0,a0,1
+ 80002f4c: 00000073 ecall
+
+0000000080002f50 <pass>:
+ 80002f50: 00100513 li a0,1
+ 80002f54: 00000073 ecall
+ 80002f58: c0001073 unimp
+
+Disassembly of section .data:
+
+0000000080004000 <begin_signature>:
+ 80004000: jal t4,7ffff3ee <_start-0xc12>
+
+0000000080004002 <tdat2>:
+ 80004002: jal t4,7ffff3f0 <_start-0xc10>
+
+0000000080004004 <tdat3>:
+ 80004004: jal t4,7ffff3f2 <_start-0xc0e>
+
+0000000080004006 <tdat4>:
+ 80004006: jal t4,7ffff3f4 <_start-0xc0c>
+
+0000000080004008 <tdat5>:
+ 80004008: jal t4,7ffff3f6 <_start-0xc0a>
+
+000000008000400a <tdat6>:
+ 8000400a: jal t4,7ffff3f8 <_start-0xc08>
+
+000000008000400c <tdat7>:
+ 8000400c: jal t4,7ffff3fa <_start-0xc06>
+
+000000008000400e <tdat8>:
+ 8000400e: jal t4,7ffff3fc <_start-0xc04>
+
+0000000080004010 <tdat9>:
+ 80004010: jal t4,7ffff3fe <_start-0xc02>
+
+0000000080004012 <tdat10>:
+ 80004012: jal t4,8000f012 <_end+0x5822>
diff --git a/test/tests/rv64ui-v-sh.elf b/test/tests/rv64ui-v-sh.elf
new file mode 100644
index 0000000..a3a67da
--- /dev/null
+++ b/test/tests/rv64ui-v-sh.elf
Binary files differ
diff --git a/test/tests/rv64ui-v-simple.dump b/test/tests/rv64ui-v-simple.dump
new file mode 100644
index 0000000..0c3cc1c
--- /dev/null
+++ b/test/tests/rv64ui-v-simple.dump
@@ -0,0 +1,832 @@
+
+rv64ui-v-simple: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <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: 6b810113 addi sp,sp,1720 # 800086d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00001617 auipc a2,0x1
+ 80002318: cec60613 addi a2,a2,-788 # 80003000 <begin_signature>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00005797 auipc a5,0x5
+ 80002334: 4b878793 addi a5,a5,1208 # 800077e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00005717 auipc a4,0x5
+ 80002348: 49c70713 addi a4,a4,1180 # 800077e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00005897 auipc a7,0x5
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800077e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00005797 auipc a5,0x5
+ 80002384: 07078793 addi a5,a5,112 # 800073f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf8810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00005797 auipc a5,0x5
+ 80002448: 3807be23 sd zero,924(a5) # 800077e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00000697 auipc a3,0x0
+ 8000245c: 68068693 addi a3,a3,1664 # 80002ad8 <userstart+0x10>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00000617 auipc a2,0x0
+ 800024b8: 6b460613 addi a2,a2,1716 # 80002b68 <userstart+0xa0>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00000617 auipc a2,0x0
+ 80002508: 67c60613 addi a2,a2,1660 # 80002b80 <userstart+0xb8>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00000697 auipc a3,0x0
+ 80002558: 5cc68693 addi a3,a3,1484 # 80002b20 <userstart+0x58>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00000697 auipc a3,0x0
+ 80002674: 5e868693 addi a3,a3,1512 # 80002c58 <userstart+0x190>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00000617 auipc a2,0x0
+ 800026cc: 56860613 addi a2,a2,1384 # 80002c30 <userstart+0x168>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00005d17 auipc s10,0x5
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800073f0 <user_mapping>
+ 80002724: 00001b97 auipc s7,0x1
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80003000 <begin_signature>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00005a17 auipc s4,0x5
+ 80002738: 0aca0a13 addi s4,s4,172 # 800077e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00005717 auipc a4,0x5
+ 8000274c: 08f73c23 sd a5,152(a4) # 800077e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00005717 auipc a4,0x5
+ 800027d4: 00f73823 sd a5,16(a4) # 800077e0 <freelist_tail>
+ 800027d8: 00005717 auipc a4,0x5
+ 800027dc: 00f73823 sd a5,16(a4) # 800077e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 49c68693 addi a3,a3,1180 # 80002c88 <userstart+0x1c0>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 3bc68693 addi a3,a3,956 # 80002bf8 <userstart+0x130>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 34c68693 addi a3,a3,844 # 80002bc0 <userstart+0xf8>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00001697 auipc a3,0x1
+ 800028e0: 72468693 addi a3,a3,1828 # 80004000 <begin_signature+0x1000>
+ 800028e4: 00002717 auipc a4,0x2
+ 800028e8: 71c70713 addi a4,a4,1820 # 80005000 <begin_signature+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00003797 auipc a5,0x3
+ 800028f8: 70c78793 addi a5,a5,1804 # 80006000 <begin_signature+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00000897 auipc a7,0x0
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80003000 <begin_signature>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00001697 auipc a3,0x1
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80003ff8 <begin_signature+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00000617 auipc a2,0x0
+ 80002938: 6cc60613 addi a2,a2,1740 # 80003000 <begin_signature>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00003697 auipc a3,0x3
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80005ff8 <begin_signature+0x2ff8>
+ 8000294c: 00001717 auipc a4,0x1
+ 80002950: 6af73a23 sd a5,1716(a4) # 80004000 <begin_signature+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00004697 auipc a3,0x4
+ 800029c0: 64468693 addi a3,a3,1604 # 80007000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00005617 auipc a2,0x5
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800077e8 <freelist_head>
+ 800029d4: 00005797 auipc a5,0x5
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800077e0 <freelist_tail>
+ 800029dc: 00005317 auipc t1,0x5
+ 800029e0: a1430313 addi t1,t1,-1516 # 800073f0 <user_mapping>
+ 800029e4: 03000793 li a5,48
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00005797 auipc a5,0x5
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800073e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 07a657b7 lui a5,0x7a65
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: bab78793 addi a5,a5,-1109 # 7a64bab <_start-0x7859b455>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 00100513 li a0,1
+ 80002acc: 00000073 ecall
+ 80002ad0: c0001073 unimp
diff --git a/test/tests/rv64ui-v-simple.elf b/test/tests/rv64ui-v-simple.elf
new file mode 100644
index 0000000..04140b0
--- /dev/null
+++ b/test/tests/rv64ui-v-simple.elf
Binary files differ
diff --git a/test/tests/rv64ui-v-sll.dump b/test/tests/rv64ui-v-sll.dump
new file mode 100644
index 0000000..6b4b00b
--- /dev/null
+++ b/test/tests/rv64ui-v-sll.dump
@@ -0,0 +1,1315 @@
+
+rv64ui-v-sll: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <handle_reset>:
+ 8000000c: 00000297 auipc t0,0x0
+ 80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+ 80000014: 30529073 csrw mtvec,t0
+ 80000018: 00009117 auipc sp,0x9
+ 8000001c: 6b810113 addi sp,sp,1720 # 800096d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00002617 auipc a2,0x2
+ 80002318: cec60613 addi a2,a2,-788 # 80004000 <begin_signature>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00006797 auipc a5,0x6
+ 80002334: 4b878793 addi a5,a5,1208 # 800087e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00006717 auipc a4,0x6
+ 80002348: 49c70713 addi a4,a4,1180 # 800087e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00006897 auipc a7,0x6
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800087e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00006797 auipc a5,0x6
+ 80002384: 07078793 addi a5,a5,112 # 800083f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf7810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00006797 auipc a5,0x6
+ 80002448: 3807be23 sd zero,924(a5) # 800087e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00001697 auipc a3,0x1
+ 8000245c: c9868693 addi a3,a3,-872 # 800030f0 <pass+0xc>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00001617 auipc a2,0x1
+ 800024b8: ccc60613 addi a2,a2,-820 # 80003180 <pass+0x9c>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00001617 auipc a2,0x1
+ 80002508: c9460613 addi a2,a2,-876 # 80003198 <pass+0xb4>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00001697 auipc a3,0x1
+ 80002558: be468693 addi a3,a3,-1052 # 80003138 <pass+0x54>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00001697 auipc a3,0x1
+ 80002674: c0068693 addi a3,a3,-1024 # 80003270 <pass+0x18c>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00001617 auipc a2,0x1
+ 800026cc: b8060613 addi a2,a2,-1152 # 80003248 <pass+0x164>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00006d17 auipc s10,0x6
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800083f0 <user_mapping>
+ 80002724: 00002b97 auipc s7,0x2
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80004000 <begin_signature>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00006a17 auipc s4,0x6
+ 80002738: 0aca0a13 addi s4,s4,172 # 800087e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00006717 auipc a4,0x6
+ 8000274c: 08f73c23 sd a5,152(a4) # 800087e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00006717 auipc a4,0x6
+ 800027d4: 00f73823 sd a5,16(a4) # 800087e0 <freelist_tail>
+ 800027d8: 00006717 auipc a4,0x6
+ 800027dc: 00f73823 sd a5,16(a4) # 800087e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00001697 auipc a3,0x1
+ 800027f0: ab468693 addi a3,a3,-1356 # 800032a0 <pass+0x1bc>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00001697 auipc a3,0x1
+ 80002840: 9d468693 addi a3,a3,-1580 # 80003210 <pass+0x12c>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00001697 auipc a3,0x1
+ 80002878: 96468693 addi a3,a3,-1692 # 800031d8 <pass+0xf4>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00002697 auipc a3,0x2
+ 800028e0: 72468693 addi a3,a3,1828 # 80005000 <begin_signature+0x1000>
+ 800028e4: 00003717 auipc a4,0x3
+ 800028e8: 71c70713 addi a4,a4,1820 # 80006000 <begin_signature+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00004797 auipc a5,0x4
+ 800028f8: 70c78793 addi a5,a5,1804 # 80007000 <begin_signature+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00001897 auipc a7,0x1
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80004000 <begin_signature>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00002697 auipc a3,0x2
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80004ff8 <begin_signature+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00001617 auipc a2,0x1
+ 80002938: 6cc60613 addi a2,a2,1740 # 80004000 <begin_signature>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00004697 auipc a3,0x4
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80006ff8 <begin_signature+0x2ff8>
+ 8000294c: 00002717 auipc a4,0x2
+ 80002950: 6af73a23 sd a5,1716(a4) # 80005000 <begin_signature+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00005697 auipc a3,0x5
+ 800029c0: 64468693 addi a3,a3,1604 # 80008000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00006617 auipc a2,0x6
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800087e8 <freelist_head>
+ 800029d4: 00006797 auipc a5,0x6
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800087e0 <freelist_tail>
+ 800029dc: 00006317 auipc t1,0x6
+ 800029e0: a1430313 addi t1,t1,-1516 # 800083f0 <user_mapping>
+ 800029e4: 02b00793 li a5,43
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00006797 auipc a5,0x6
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800083e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 063c27b7 lui a5,0x63c2
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: 9ad78793 addi a5,a5,-1619 # 63c19ad <_start-0x79c3e653>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 00100093 li ra,1
+ 80002acc: 00000113 li sp,0
+ 80002ad0: 00209f33 sll t5,ra,sp
+ 80002ad4: 00100e93 li t4,1
+ 80002ad8: 00200193 li gp,2
+ 80002adc: 5fdf1c63 bne t5,t4,800030d4 <fail>
+
+0000000080002ae0 <test_3>:
+ 80002ae0: 00100093 li ra,1
+ 80002ae4: 00100113 li sp,1
+ 80002ae8: 00209f33 sll t5,ra,sp
+ 80002aec: 00200e93 li t4,2
+ 80002af0: 00300193 li gp,3
+ 80002af4: 5fdf1063 bne t5,t4,800030d4 <fail>
+
+0000000080002af8 <test_4>:
+ 80002af8: 00100093 li ra,1
+ 80002afc: 00700113 li sp,7
+ 80002b00: 00209f33 sll t5,ra,sp
+ 80002b04: 08000e93 li t4,128
+ 80002b08: 00400193 li gp,4
+ 80002b0c: 5ddf1463 bne t5,t4,800030d4 <fail>
+
+0000000080002b10 <test_5>:
+ 80002b10: 00100093 li ra,1
+ 80002b14: 00e00113 li sp,14
+ 80002b18: 00209f33 sll t5,ra,sp
+ 80002b1c: 00004eb7 lui t4,0x4
+ 80002b20: 00500193 li gp,5
+ 80002b24: 5bdf1863 bne t5,t4,800030d4 <fail>
+
+0000000080002b28 <test_6>:
+ 80002b28: 00100093 li ra,1
+ 80002b2c: 01f00113 li sp,31
+ 80002b30: 00209f33 sll t5,ra,sp
+ 80002b34: 00100e9b addiw t4,zero,1
+ 80002b38: 01fe9e93 slli t4,t4,0x1f
+ 80002b3c: 00600193 li gp,6
+ 80002b40: 59df1a63 bne t5,t4,800030d4 <fail>
+
+0000000080002b44 <test_7>:
+ 80002b44: fff00093 li ra,-1
+ 80002b48: 00000113 li sp,0
+ 80002b4c: 00209f33 sll t5,ra,sp
+ 80002b50: fff00e93 li t4,-1
+ 80002b54: 00700193 li gp,7
+ 80002b58: 57df1e63 bne t5,t4,800030d4 <fail>
+
+0000000080002b5c <test_8>:
+ 80002b5c: fff00093 li ra,-1
+ 80002b60: 00100113 li sp,1
+ 80002b64: 00209f33 sll t5,ra,sp
+ 80002b68: ffe00e93 li t4,-2
+ 80002b6c: 00800193 li gp,8
+ 80002b70: 57df1263 bne t5,t4,800030d4 <fail>
+
+0000000080002b74 <test_9>:
+ 80002b74: fff00093 li ra,-1
+ 80002b78: 00700113 li sp,7
+ 80002b7c: 00209f33 sll t5,ra,sp
+ 80002b80: f8000e93 li t4,-128
+ 80002b84: 00900193 li gp,9
+ 80002b88: 55df1663 bne t5,t4,800030d4 <fail>
+
+0000000080002b8c <test_10>:
+ 80002b8c: fff00093 li ra,-1
+ 80002b90: 00e00113 li sp,14
+ 80002b94: 00209f33 sll t5,ra,sp
+ 80002b98: ffffceb7 lui t4,0xffffc
+ 80002b9c: 00a00193 li gp,10
+ 80002ba0: 53df1a63 bne t5,t4,800030d4 <fail>
+
+0000000080002ba4 <test_11>:
+ 80002ba4: fff00093 li ra,-1
+ 80002ba8: 01f00113 li sp,31
+ 80002bac: 00209f33 sll t5,ra,sp
+ 80002bb0: 80000eb7 lui t4,0x80000
+ 80002bb4: 00b00193 li gp,11
+ 80002bb8: 51df1e63 bne t5,t4,800030d4 <fail>
+
+0000000080002bbc <test_12>:
+ 80002bbc: 212120b7 lui ra,0x21212
+ 80002bc0: 1210809b addiw ra,ra,289
+ 80002bc4: 00000113 li sp,0
+ 80002bc8: 00209f33 sll t5,ra,sp
+ 80002bcc: 21212eb7 lui t4,0x21212
+ 80002bd0: 121e8e9b addiw t4,t4,289
+ 80002bd4: 00c00193 li gp,12
+ 80002bd8: 4fdf1e63 bne t5,t4,800030d4 <fail>
+
+0000000080002bdc <test_13>:
+ 80002bdc: 212120b7 lui ra,0x21212
+ 80002be0: 1210809b addiw ra,ra,289
+ 80002be4: 00100113 li sp,1
+ 80002be8: 00209f33 sll t5,ra,sp
+ 80002bec: 42424eb7 lui t4,0x42424
+ 80002bf0: 242e8e9b addiw t4,t4,578
+ 80002bf4: 00d00193 li gp,13
+ 80002bf8: 4ddf1e63 bne t5,t4,800030d4 <fail>
+
+0000000080002bfc <test_14>:
+ 80002bfc: 212120b7 lui ra,0x21212
+ 80002c00: 1210809b addiw ra,ra,289
+ 80002c04: 00700113 li sp,7
+ 80002c08: 00209f33 sll t5,ra,sp
+ 80002c0c: 01091eb7 lui t4,0x1091
+ 80002c10: 909e8e9b addiw t4,t4,-1783
+ 80002c14: 00ce9e93 slli t4,t4,0xc
+ 80002c18: 080e8e93 addi t4,t4,128 # 1091080 <_start-0x7ef6ef80>
+ 80002c1c: 00e00193 li gp,14
+ 80002c20: 4bdf1a63 bne t5,t4,800030d4 <fail>
+
+0000000080002c24 <test_15>:
+ 80002c24: 212120b7 lui ra,0x21212
+ 80002c28: 1210809b addiw ra,ra,289
+ 80002c2c: 00e00113 li sp,14
+ 80002c30: 00209f33 sll t5,ra,sp
+ 80002c34: 21212eb7 lui t4,0x21212
+ 80002c38: 121e8e9b addiw t4,t4,289
+ 80002c3c: 00ee9e93 slli t4,t4,0xe
+ 80002c40: 00f00193 li gp,15
+ 80002c44: 49df1863 bne t5,t4,800030d4 <fail>
+
+0000000080002c48 <test_16>:
+ 80002c48: 212120b7 lui ra,0x21212
+ 80002c4c: 1210809b addiw ra,ra,289
+ 80002c50: 01f00113 li sp,31
+ 80002c54: 00209f33 sll t5,ra,sp
+ 80002c58: 21212eb7 lui t4,0x21212
+ 80002c5c: 121e8e9b addiw t4,t4,289
+ 80002c60: 01fe9e93 slli t4,t4,0x1f
+ 80002c64: 01000193 li gp,16
+ 80002c68: 47df1663 bne t5,t4,800030d4 <fail>
+
+0000000080002c6c <test_17>:
+ 80002c6c: 212120b7 lui ra,0x21212
+ 80002c70: 1210809b addiw ra,ra,289
+ 80002c74: fc000113 li sp,-64
+ 80002c78: 00209f33 sll t5,ra,sp
+ 80002c7c: 21212eb7 lui t4,0x21212
+ 80002c80: 121e8e9b addiw t4,t4,289
+ 80002c84: 01100193 li gp,17
+ 80002c88: 45df1663 bne t5,t4,800030d4 <fail>
+
+0000000080002c8c <test_18>:
+ 80002c8c: 212120b7 lui ra,0x21212
+ 80002c90: 1210809b addiw ra,ra,289
+ 80002c94: fc100113 li sp,-63
+ 80002c98: 00209f33 sll t5,ra,sp
+ 80002c9c: 42424eb7 lui t4,0x42424
+ 80002ca0: 242e8e9b addiw t4,t4,578
+ 80002ca4: 01200193 li gp,18
+ 80002ca8: 43df1663 bne t5,t4,800030d4 <fail>
+
+0000000080002cac <test_19>:
+ 80002cac: 212120b7 lui ra,0x21212
+ 80002cb0: 1210809b addiw ra,ra,289
+ 80002cb4: fc700113 li sp,-57
+ 80002cb8: 00209f33 sll t5,ra,sp
+ 80002cbc: 01091eb7 lui t4,0x1091
+ 80002cc0: 909e8e9b addiw t4,t4,-1783
+ 80002cc4: 00ce9e93 slli t4,t4,0xc
+ 80002cc8: 080e8e93 addi t4,t4,128 # 1091080 <_start-0x7ef6ef80>
+ 80002ccc: 01300193 li gp,19
+ 80002cd0: 41df1263 bne t5,t4,800030d4 <fail>
+
+0000000080002cd4 <test_20>:
+ 80002cd4: 212120b7 lui ra,0x21212
+ 80002cd8: 1210809b addiw ra,ra,289
+ 80002cdc: fce00113 li sp,-50
+ 80002ce0: 00209f33 sll t5,ra,sp
+ 80002ce4: 21212eb7 lui t4,0x21212
+ 80002ce8: 121e8e9b addiw t4,t4,289
+ 80002cec: 00ee9e93 slli t4,t4,0xe
+ 80002cf0: 01400193 li gp,20
+ 80002cf4: 3fdf1063 bne t5,t4,800030d4 <fail>
+
+0000000080002cf8 <test_21>:
+ 80002cf8: 212120b7 lui ra,0x21212
+ 80002cfc: 1210809b addiw ra,ra,289
+ 80002d00: fff00113 li sp,-1
+ 80002d04: 00209f33 sll t5,ra,sp
+ 80002d08: fff00e9b addiw t4,zero,-1
+ 80002d0c: 03fe9e93 slli t4,t4,0x3f
+ 80002d10: 01500193 li gp,21
+ 80002d14: 3ddf1063 bne t5,t4,800030d4 <fail>
+
+0000000080002d18 <test_50>:
+ 80002d18: 00100093 li ra,1
+ 80002d1c: 03f00113 li sp,63
+ 80002d20: 00209f33 sll t5,ra,sp
+ 80002d24: fff00e9b addiw t4,zero,-1
+ 80002d28: 03fe9e93 slli t4,t4,0x3f
+ 80002d2c: 03200193 li gp,50
+ 80002d30: 3bdf1263 bne t5,t4,800030d4 <fail>
+
+0000000080002d34 <test_51>:
+ 80002d34: fff00093 li ra,-1
+ 80002d38: 02700113 li sp,39
+ 80002d3c: 00209f33 sll t5,ra,sp
+ 80002d40: fff00e9b addiw t4,zero,-1
+ 80002d44: 027e9e93 slli t4,t4,0x27
+ 80002d48: 03300193 li gp,51
+ 80002d4c: 39df1463 bne t5,t4,800030d4 <fail>
+
+0000000080002d50 <test_52>:
+ 80002d50: 212120b7 lui ra,0x21212
+ 80002d54: 1210809b addiw ra,ra,289
+ 80002d58: 02b00113 li sp,43
+ 80002d5c: 00209f33 sll t5,ra,sp
+ 80002d60: 00012eb7 lui t4,0x12
+ 80002d64: 121e8e9b addiw t4,t4,289
+ 80002d68: 02be9e93 slli t4,t4,0x2b
+ 80002d6c: 03400193 li gp,52
+ 80002d70: 37df1263 bne t5,t4,800030d4 <fail>
+
+0000000080002d74 <test_22>:
+ 80002d74: 00100093 li ra,1
+ 80002d78: 00700113 li sp,7
+ 80002d7c: 002090b3 sll ra,ra,sp
+ 80002d80: 08000e93 li t4,128
+ 80002d84: 01600193 li gp,22
+ 80002d88: 35d09663 bne ra,t4,800030d4 <fail>
+
+0000000080002d8c <test_23>:
+ 80002d8c: 00100093 li ra,1
+ 80002d90: 00e00113 li sp,14
+ 80002d94: 00209133 sll sp,ra,sp
+ 80002d98: 00004eb7 lui t4,0x4
+ 80002d9c: 01700193 li gp,23
+ 80002da0: 33d11a63 bne sp,t4,800030d4 <fail>
+
+0000000080002da4 <test_24>:
+ 80002da4: 00300093 li ra,3
+ 80002da8: 001090b3 sll ra,ra,ra
+ 80002dac: 01800e93 li t4,24
+ 80002db0: 01800193 li gp,24
+ 80002db4: 33d09063 bne ra,t4,800030d4 <fail>
+
+0000000080002db8 <test_25>:
+ 80002db8: 00000213 li tp,0
+ 80002dbc: 00100093 li ra,1
+ 80002dc0: 00700113 li sp,7
+ 80002dc4: 00209f33 sll t5,ra,sp
+ 80002dc8: 000f0313 mv t1,t5
+ 80002dcc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002dd0: 00200293 li t0,2
+ 80002dd4: fe5214e3 bne tp,t0,80002dbc <test_25+0x4>
+ 80002dd8: 08000e93 li t4,128
+ 80002ddc: 01900193 li gp,25
+ 80002de0: 2fd31a63 bne t1,t4,800030d4 <fail>
+
+0000000080002de4 <test_26>:
+ 80002de4: 00000213 li tp,0
+ 80002de8: 00100093 li ra,1
+ 80002dec: 00e00113 li sp,14
+ 80002df0: 00209f33 sll t5,ra,sp
+ 80002df4: 00000013 nop
+ 80002df8: 000f0313 mv t1,t5
+ 80002dfc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e00: 00200293 li t0,2
+ 80002e04: fe5212e3 bne tp,t0,80002de8 <test_26+0x4>
+ 80002e08: 00004eb7 lui t4,0x4
+ 80002e0c: 01a00193 li gp,26
+ 80002e10: 2dd31263 bne t1,t4,800030d4 <fail>
+
+0000000080002e14 <test_27>:
+ 80002e14: 00000213 li tp,0
+ 80002e18: 00100093 li ra,1
+ 80002e1c: 01f00113 li sp,31
+ 80002e20: 00209f33 sll t5,ra,sp
+ 80002e24: 00000013 nop
+ 80002e28: 00000013 nop
+ 80002e2c: 000f0313 mv t1,t5
+ 80002e30: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e34: 00200293 li t0,2
+ 80002e38: fe5210e3 bne tp,t0,80002e18 <test_27+0x4>
+ 80002e3c: 00100e9b addiw t4,zero,1
+ 80002e40: 01fe9e93 slli t4,t4,0x1f
+ 80002e44: 01b00193 li gp,27
+ 80002e48: 29d31663 bne t1,t4,800030d4 <fail>
+
+0000000080002e4c <test_28>:
+ 80002e4c: 00000213 li tp,0
+ 80002e50: 00100093 li ra,1
+ 80002e54: 00700113 li sp,7
+ 80002e58: 00209f33 sll t5,ra,sp
+ 80002e5c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e60: 00200293 li t0,2
+ 80002e64: fe5216e3 bne tp,t0,80002e50 <test_28+0x4>
+ 80002e68: 08000e93 li t4,128
+ 80002e6c: 01c00193 li gp,28
+ 80002e70: 27df1263 bne t5,t4,800030d4 <fail>
+
+0000000080002e74 <test_29>:
+ 80002e74: 00000213 li tp,0
+ 80002e78: 00100093 li ra,1
+ 80002e7c: 00e00113 li sp,14
+ 80002e80: 00000013 nop
+ 80002e84: 00209f33 sll t5,ra,sp
+ 80002e88: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e8c: 00200293 li t0,2
+ 80002e90: fe5214e3 bne tp,t0,80002e78 <test_29+0x4>
+ 80002e94: 00004eb7 lui t4,0x4
+ 80002e98: 01d00193 li gp,29
+ 80002e9c: 23df1c63 bne t5,t4,800030d4 <fail>
+
+0000000080002ea0 <test_30>:
+ 80002ea0: 00000213 li tp,0
+ 80002ea4: 00100093 li ra,1
+ 80002ea8: 01f00113 li sp,31
+ 80002eac: 00000013 nop
+ 80002eb0: 00000013 nop
+ 80002eb4: 00209f33 sll t5,ra,sp
+ 80002eb8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ebc: 00200293 li t0,2
+ 80002ec0: fe5212e3 bne tp,t0,80002ea4 <test_30+0x4>
+ 80002ec4: 00100e9b addiw t4,zero,1
+ 80002ec8: 01fe9e93 slli t4,t4,0x1f
+ 80002ecc: 01e00193 li gp,30
+ 80002ed0: 21df1263 bne t5,t4,800030d4 <fail>
+
+0000000080002ed4 <test_31>:
+ 80002ed4: 00000213 li tp,0
+ 80002ed8: 00100093 li ra,1
+ 80002edc: 00000013 nop
+ 80002ee0: 00700113 li sp,7
+ 80002ee4: 00209f33 sll t5,ra,sp
+ 80002ee8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002eec: 00200293 li t0,2
+ 80002ef0: fe5214e3 bne tp,t0,80002ed8 <test_31+0x4>
+ 80002ef4: 08000e93 li t4,128
+ 80002ef8: 01f00193 li gp,31
+ 80002efc: 1ddf1c63 bne t5,t4,800030d4 <fail>
+
+0000000080002f00 <test_32>:
+ 80002f00: 00000213 li tp,0
+ 80002f04: 00100093 li ra,1
+ 80002f08: 00000013 nop
+ 80002f0c: 00e00113 li sp,14
+ 80002f10: 00000013 nop
+ 80002f14: 00209f33 sll t5,ra,sp
+ 80002f18: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002f1c: 00200293 li t0,2
+ 80002f20: fe5212e3 bne tp,t0,80002f04 <test_32+0x4>
+ 80002f24: 00004eb7 lui t4,0x4
+ 80002f28: 02000193 li gp,32
+ 80002f2c: 1bdf1463 bne t5,t4,800030d4 <fail>
+
+0000000080002f30 <test_33>:
+ 80002f30: 00000213 li tp,0
+ 80002f34: 00100093 li ra,1
+ 80002f38: 00000013 nop
+ 80002f3c: 00000013 nop
+ 80002f40: 01f00113 li sp,31
+ 80002f44: 00209f33 sll t5,ra,sp
+ 80002f48: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002f4c: 00200293 li t0,2
+ 80002f50: fe5212e3 bne tp,t0,80002f34 <test_33+0x4>
+ 80002f54: 00100e9b addiw t4,zero,1
+ 80002f58: 01fe9e93 slli t4,t4,0x1f
+ 80002f5c: 02100193 li gp,33
+ 80002f60: 17df1a63 bne t5,t4,800030d4 <fail>
+
+0000000080002f64 <test_34>:
+ 80002f64: 00000213 li tp,0
+ 80002f68: 00700113 li sp,7
+ 80002f6c: 00100093 li ra,1
+ 80002f70: 00209f33 sll t5,ra,sp
+ 80002f74: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002f78: 00200293 li t0,2
+ 80002f7c: fe5216e3 bne tp,t0,80002f68 <test_34+0x4>
+ 80002f80: 08000e93 li t4,128
+ 80002f84: 02200193 li gp,34
+ 80002f88: 15df1663 bne t5,t4,800030d4 <fail>
+
+0000000080002f8c <test_35>:
+ 80002f8c: 00000213 li tp,0
+ 80002f90: 00e00113 li sp,14
+ 80002f94: 00100093 li ra,1
+ 80002f98: 00000013 nop
+ 80002f9c: 00209f33 sll t5,ra,sp
+ 80002fa0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002fa4: 00200293 li t0,2
+ 80002fa8: fe5214e3 bne tp,t0,80002f90 <test_35+0x4>
+ 80002fac: 00004eb7 lui t4,0x4
+ 80002fb0: 02300193 li gp,35
+ 80002fb4: 13df1063 bne t5,t4,800030d4 <fail>
+
+0000000080002fb8 <test_36>:
+ 80002fb8: 00000213 li tp,0
+ 80002fbc: 01f00113 li sp,31
+ 80002fc0: 00100093 li ra,1
+ 80002fc4: 00000013 nop
+ 80002fc8: 00000013 nop
+ 80002fcc: 00209f33 sll t5,ra,sp
+ 80002fd0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002fd4: 00200293 li t0,2
+ 80002fd8: fe5212e3 bne tp,t0,80002fbc <test_36+0x4>
+ 80002fdc: 00100e9b addiw t4,zero,1
+ 80002fe0: 01fe9e93 slli t4,t4,0x1f
+ 80002fe4: 02400193 li gp,36
+ 80002fe8: 0fdf1663 bne t5,t4,800030d4 <fail>
+
+0000000080002fec <test_37>:
+ 80002fec: 00000213 li tp,0
+ 80002ff0: 00700113 li sp,7
+ 80002ff4: 00000013 nop
+ 80002ff8: 00100093 li ra,1
+ 80002ffc: 00209f33 sll t5,ra,sp
+ 80003000: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80003004: 00200293 li t0,2
+ 80003008: fe5214e3 bne tp,t0,80002ff0 <test_37+0x4>
+ 8000300c: 08000e93 li t4,128
+ 80003010: 02500193 li gp,37
+ 80003014: 0ddf1063 bne t5,t4,800030d4 <fail>
+
+0000000080003018 <test_38>:
+ 80003018: 00000213 li tp,0
+ 8000301c: 00e00113 li sp,14
+ 80003020: 00000013 nop
+ 80003024: 00100093 li ra,1
+ 80003028: 00000013 nop
+ 8000302c: 00209f33 sll t5,ra,sp
+ 80003030: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80003034: 00200293 li t0,2
+ 80003038: fe5212e3 bne tp,t0,8000301c <test_38+0x4>
+ 8000303c: 00004eb7 lui t4,0x4
+ 80003040: 02600193 li gp,38
+ 80003044: 09df1863 bne t5,t4,800030d4 <fail>
+
+0000000080003048 <test_39>:
+ 80003048: 00000213 li tp,0
+ 8000304c: 01f00113 li sp,31
+ 80003050: 00000013 nop
+ 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: fe5212e3 bne tp,t0,8000304c <test_39+0x4>
+ 8000306c: 00100e9b addiw t4,zero,1
+ 80003070: 01fe9e93 slli t4,t4,0x1f
+ 80003074: 02700193 li gp,39
+ 80003078: 05df1e63 bne t5,t4,800030d4 <fail>
+
+000000008000307c <test_40>:
+ 8000307c: 00f00093 li ra,15
+ 80003080: 00101133 sll sp,zero,ra
+ 80003084: 00000e93 li t4,0
+ 80003088: 02800193 li gp,40
+ 8000308c: 05d11463 bne sp,t4,800030d4 <fail>
+
+0000000080003090 <test_41>:
+ 80003090: 02000093 li ra,32
+ 80003094: 00009133 sll sp,ra,zero
+ 80003098: 02000e93 li t4,32
+ 8000309c: 02900193 li gp,41
+ 800030a0: 03d11a63 bne sp,t4,800030d4 <fail>
+
+00000000800030a4 <test_42>:
+ 800030a4: 000010b3 sll ra,zero,zero
+ 800030a8: 00000e93 li t4,0
+ 800030ac: 02a00193 li gp,42
+ 800030b0: 03d09263 bne ra,t4,800030d4 <fail>
+
+00000000800030b4 <test_43>:
+ 800030b4: 40000093 li ra,1024
+ 800030b8: 00001137 lui sp,0x1
+ 800030bc: 8001011b addiw sp,sp,-2048
+ 800030c0: 00209033 sll zero,ra,sp
+ 800030c4: 00000e93 li t4,0
+ 800030c8: 02b00193 li gp,43
+ 800030cc: 01d01463 bne zero,t4,800030d4 <fail>
+ 800030d0: 00301a63 bne zero,gp,800030e4 <pass>
+
+00000000800030d4 <fail>:
+ 800030d4: 00119513 slli a0,gp,0x1
+ 800030d8: 00050063 beqz a0,800030d8 <fail+0x4>
+ 800030dc: 00156513 ori a0,a0,1
+ 800030e0: 00000073 ecall
+
+00000000800030e4 <pass>:
+ 800030e4: 00100513 li a0,1
+ 800030e8: 00000073 ecall
+ 800030ec: c0001073 unimp
diff --git a/test/tests/rv64ui-v-sll.elf b/test/tests/rv64ui-v-sll.elf
new file mode 100644
index 0000000..a32b39e
--- /dev/null
+++ b/test/tests/rv64ui-v-sll.elf
Binary files differ
diff --git a/test/tests/rv64ui-v-slli.dump b/test/tests/rv64ui-v-slli.dump
new file mode 100644
index 0000000..2808442
--- /dev/null
+++ b/test/tests/rv64ui-v-slli.dump
@@ -0,0 +1,1082 @@
+
+rv64ui-v-slli: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <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: 6b810113 addi sp,sp,1720 # 800086d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00001617 auipc a2,0x1
+ 80002318: cec60613 addi a2,a2,-788 # 80003000 <begin_signature>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00005797 auipc a5,0x5
+ 80002334: 4b878793 addi a5,a5,1208 # 800077e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00005717 auipc a4,0x5
+ 80002348: 49c70713 addi a4,a4,1180 # 800077e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00005897 auipc a7,0x5
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800077e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00005797 auipc a5,0x5
+ 80002384: 07078793 addi a5,a5,112 # 800073f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf8810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00005797 auipc a5,0x5
+ 80002448: 3807be23 sd zero,924(a5) # 800077e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00001697 auipc a3,0x1
+ 8000245c: 98868693 addi a3,a3,-1656 # 80002de0 <pass+0x10>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00001617 auipc a2,0x1
+ 800024b8: 9bc60613 addi a2,a2,-1604 # 80002e70 <pass+0xa0>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00001617 auipc a2,0x1
+ 80002508: 98460613 addi a2,a2,-1660 # 80002e88 <pass+0xb8>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00001697 auipc a3,0x1
+ 80002558: 8d468693 addi a3,a3,-1836 # 80002e28 <pass+0x58>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00001697 auipc a3,0x1
+ 80002674: 8f068693 addi a3,a3,-1808 # 80002f60 <pass+0x190>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00001617 auipc a2,0x1
+ 800026cc: 87060613 addi a2,a2,-1936 # 80002f38 <pass+0x168>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00005d17 auipc s10,0x5
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800073f0 <user_mapping>
+ 80002724: 00001b97 auipc s7,0x1
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80003000 <begin_signature>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00005a17 auipc s4,0x5
+ 80002738: 0aca0a13 addi s4,s4,172 # 800077e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00005717 auipc a4,0x5
+ 8000274c: 08f73c23 sd a5,152(a4) # 800077e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00005717 auipc a4,0x5
+ 800027d4: 00f73823 sd a5,16(a4) # 800077e0 <freelist_tail>
+ 800027d8: 00005717 auipc a4,0x5
+ 800027dc: 00f73823 sd a5,16(a4) # 800077e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 7a468693 addi a3,a3,1956 # 80002f90 <pass+0x1c0>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 6c468693 addi a3,a3,1732 # 80002f00 <pass+0x130>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 65468693 addi a3,a3,1620 # 80002ec8 <pass+0xf8>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00001697 auipc a3,0x1
+ 800028e0: 72468693 addi a3,a3,1828 # 80004000 <begin_signature+0x1000>
+ 800028e4: 00002717 auipc a4,0x2
+ 800028e8: 71c70713 addi a4,a4,1820 # 80005000 <begin_signature+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00003797 auipc a5,0x3
+ 800028f8: 70c78793 addi a5,a5,1804 # 80006000 <begin_signature+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00000897 auipc a7,0x0
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80003000 <begin_signature>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00001697 auipc a3,0x1
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80003ff8 <begin_signature+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00000617 auipc a2,0x0
+ 80002938: 6cc60613 addi a2,a2,1740 # 80003000 <begin_signature>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00003697 auipc a3,0x3
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80005ff8 <begin_signature+0x2ff8>
+ 8000294c: 00001717 auipc a4,0x1
+ 80002950: 6af73a23 sd a5,1716(a4) # 80004000 <begin_signature+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00004697 auipc a3,0x4
+ 800029c0: 64468693 addi a3,a3,1604 # 80007000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00005617 auipc a2,0x5
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800077e8 <freelist_head>
+ 800029d4: 00005797 auipc a5,0x5
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800077e0 <freelist_tail>
+ 800029dc: 00005317 auipc t1,0x5
+ 800029e0: a1430313 addi t1,t1,-1516 # 800073f0 <user_mapping>
+ 800029e4: 02100793 li a5,33
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00005797 auipc a5,0x5
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800073e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 0f9957b7 lui a5,0xf995
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: 0d278793 addi a5,a5,210 # f9950d2 <_start-0x7066af2e>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 00100093 li ra,1
+ 80002acc: 00009f13 slli t5,ra,0x0
+ 80002ad0: 00100e93 li t4,1
+ 80002ad4: 00200193 li gp,2
+ 80002ad8: 2fdf1463 bne t5,t4,80002dc0 <fail>
+
+0000000080002adc <test_3>:
+ 80002adc: 00100093 li ra,1
+ 80002ae0: 00109f13 slli t5,ra,0x1
+ 80002ae4: 00200e93 li t4,2
+ 80002ae8: 00300193 li gp,3
+ 80002aec: 2ddf1a63 bne t5,t4,80002dc0 <fail>
+
+0000000080002af0 <test_4>:
+ 80002af0: 00100093 li ra,1
+ 80002af4: 00709f13 slli t5,ra,0x7
+ 80002af8: 08000e93 li t4,128
+ 80002afc: 00400193 li gp,4
+ 80002b00: 2ddf1063 bne t5,t4,80002dc0 <fail>
+
+0000000080002b04 <test_5>:
+ 80002b04: 00100093 li ra,1
+ 80002b08: 00e09f13 slli t5,ra,0xe
+ 80002b0c: 00004eb7 lui t4,0x4
+ 80002b10: 00500193 li gp,5
+ 80002b14: 2bdf1663 bne t5,t4,80002dc0 <fail>
+
+0000000080002b18 <test_6>:
+ 80002b18: 00100093 li ra,1
+ 80002b1c: 01f09f13 slli t5,ra,0x1f
+ 80002b20: 00100e9b addiw t4,zero,1
+ 80002b24: 01fe9e93 slli t4,t4,0x1f
+ 80002b28: 00600193 li gp,6
+ 80002b2c: 29df1a63 bne t5,t4,80002dc0 <fail>
+
+0000000080002b30 <test_7>:
+ 80002b30: fff00093 li ra,-1
+ 80002b34: 00009f13 slli t5,ra,0x0
+ 80002b38: fff00e93 li t4,-1
+ 80002b3c: 00700193 li gp,7
+ 80002b40: 29df1063 bne t5,t4,80002dc0 <fail>
+
+0000000080002b44 <test_8>:
+ 80002b44: fff00093 li ra,-1
+ 80002b48: 00109f13 slli t5,ra,0x1
+ 80002b4c: ffe00e93 li t4,-2
+ 80002b50: 00800193 li gp,8
+ 80002b54: 27df1663 bne t5,t4,80002dc0 <fail>
+
+0000000080002b58 <test_9>:
+ 80002b58: fff00093 li ra,-1
+ 80002b5c: 00709f13 slli t5,ra,0x7
+ 80002b60: f8000e93 li t4,-128
+ 80002b64: 00900193 li gp,9
+ 80002b68: 25df1c63 bne t5,t4,80002dc0 <fail>
+
+0000000080002b6c <test_10>:
+ 80002b6c: fff00093 li ra,-1
+ 80002b70: 00e09f13 slli t5,ra,0xe
+ 80002b74: ffffceb7 lui t4,0xffffc
+ 80002b78: 00a00193 li gp,10
+ 80002b7c: 25df1263 bne t5,t4,80002dc0 <fail>
+
+0000000080002b80 <test_11>:
+ 80002b80: fff00093 li ra,-1
+ 80002b84: 01f09f13 slli t5,ra,0x1f
+ 80002b88: 80000eb7 lui t4,0x80000
+ 80002b8c: 00b00193 li gp,11
+ 80002b90: 23df1863 bne t5,t4,80002dc0 <fail>
+
+0000000080002b94 <test_12>:
+ 80002b94: 212120b7 lui ra,0x21212
+ 80002b98: 1210809b addiw ra,ra,289
+ 80002b9c: 00009f13 slli t5,ra,0x0
+ 80002ba0: 21212eb7 lui t4,0x21212
+ 80002ba4: 121e8e9b addiw t4,t4,289
+ 80002ba8: 00c00193 li gp,12
+ 80002bac: 21df1a63 bne t5,t4,80002dc0 <fail>
+
+0000000080002bb0 <test_13>:
+ 80002bb0: 212120b7 lui ra,0x21212
+ 80002bb4: 1210809b addiw ra,ra,289
+ 80002bb8: 00109f13 slli t5,ra,0x1
+ 80002bbc: 42424eb7 lui t4,0x42424
+ 80002bc0: 242e8e9b addiw t4,t4,578
+ 80002bc4: 00d00193 li gp,13
+ 80002bc8: 1fdf1c63 bne t5,t4,80002dc0 <fail>
+
+0000000080002bcc <test_14>:
+ 80002bcc: 212120b7 lui ra,0x21212
+ 80002bd0: 1210809b addiw ra,ra,289
+ 80002bd4: 00709f13 slli t5,ra,0x7
+ 80002bd8: 01091eb7 lui t4,0x1091
+ 80002bdc: 909e8e9b addiw t4,t4,-1783
+ 80002be0: 00ce9e93 slli t4,t4,0xc
+ 80002be4: 080e8e93 addi t4,t4,128 # 1091080 <_start-0x7ef6ef80>
+ 80002be8: 00e00193 li gp,14
+ 80002bec: 1ddf1a63 bne t5,t4,80002dc0 <fail>
+
+0000000080002bf0 <test_15>:
+ 80002bf0: 212120b7 lui ra,0x21212
+ 80002bf4: 1210809b addiw ra,ra,289
+ 80002bf8: 00e09f13 slli t5,ra,0xe
+ 80002bfc: 21212eb7 lui t4,0x21212
+ 80002c00: 121e8e9b addiw t4,t4,289
+ 80002c04: 00ee9e93 slli t4,t4,0xe
+ 80002c08: 00f00193 li gp,15
+ 80002c0c: 1bdf1a63 bne t5,t4,80002dc0 <fail>
+
+0000000080002c10 <test_16>:
+ 80002c10: 212120b7 lui ra,0x21212
+ 80002c14: 1210809b addiw ra,ra,289
+ 80002c18: 01f09f13 slli t5,ra,0x1f
+ 80002c1c: 21212eb7 lui t4,0x21212
+ 80002c20: 121e8e9b addiw t4,t4,289
+ 80002c24: 01fe9e93 slli t4,t4,0x1f
+ 80002c28: 01000193 li gp,16
+ 80002c2c: 19df1a63 bne t5,t4,80002dc0 <fail>
+
+0000000080002c30 <test_50>:
+ 80002c30: 00100093 li ra,1
+ 80002c34: 03f09f13 slli t5,ra,0x3f
+ 80002c38: fff00e9b addiw t4,zero,-1
+ 80002c3c: 03fe9e93 slli t4,t4,0x3f
+ 80002c40: 03200193 li gp,50
+ 80002c44: 17df1e63 bne t5,t4,80002dc0 <fail>
+
+0000000080002c48 <test_51>:
+ 80002c48: fff00093 li ra,-1
+ 80002c4c: 02709f13 slli t5,ra,0x27
+ 80002c50: fff00e9b addiw t4,zero,-1
+ 80002c54: 027e9e93 slli t4,t4,0x27
+ 80002c58: 03300193 li gp,51
+ 80002c5c: 17df1263 bne t5,t4,80002dc0 <fail>
+
+0000000080002c60 <test_52>:
+ 80002c60: 212120b7 lui ra,0x21212
+ 80002c64: 1210809b addiw ra,ra,289
+ 80002c68: 02b09f13 slli t5,ra,0x2b
+ 80002c6c: 00012eb7 lui t4,0x12
+ 80002c70: 121e8e9b addiw t4,t4,289
+ 80002c74: 02be9e93 slli t4,t4,0x2b
+ 80002c78: 03400193 li gp,52
+ 80002c7c: 15df1263 bne t5,t4,80002dc0 <fail>
+
+0000000080002c80 <test_17>:
+ 80002c80: 00100093 li ra,1
+ 80002c84: 00709093 slli ra,ra,0x7
+ 80002c88: 08000e93 li t4,128
+ 80002c8c: 01100193 li gp,17
+ 80002c90: 13d09863 bne ra,t4,80002dc0 <fail>
+
+0000000080002c94 <test_18>:
+ 80002c94: 00000213 li tp,0
+ 80002c98: 00100093 li ra,1
+ 80002c9c: 00709f13 slli t5,ra,0x7
+ 80002ca0: 000f0313 mv t1,t5
+ 80002ca4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ca8: 00200293 li t0,2
+ 80002cac: fe5216e3 bne tp,t0,80002c98 <test_18+0x4>
+ 80002cb0: 08000e93 li t4,128
+ 80002cb4: 01200193 li gp,18
+ 80002cb8: 11d31463 bne t1,t4,80002dc0 <fail>
+
+0000000080002cbc <test_19>:
+ 80002cbc: 00000213 li tp,0
+ 80002cc0: 00100093 li ra,1
+ 80002cc4: 00e09f13 slli t5,ra,0xe
+ 80002cc8: 00000013 nop
+ 80002ccc: 000f0313 mv t1,t5
+ 80002cd0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002cd4: 00200293 li t0,2
+ 80002cd8: fe5214e3 bne tp,t0,80002cc0 <test_19+0x4>
+ 80002cdc: 00004eb7 lui t4,0x4
+ 80002ce0: 01300193 li gp,19
+ 80002ce4: 0dd31e63 bne t1,t4,80002dc0 <fail>
+
+0000000080002ce8 <test_20>:
+ 80002ce8: 00000213 li tp,0
+ 80002cec: 00100093 li ra,1
+ 80002cf0: 01f09f13 slli t5,ra,0x1f
+ 80002cf4: 00000013 nop
+ 80002cf8: 00000013 nop
+ 80002cfc: 000f0313 mv t1,t5
+ 80002d00: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d04: 00200293 li t0,2
+ 80002d08: fe5212e3 bne tp,t0,80002cec <test_20+0x4>
+ 80002d0c: 00100e9b addiw t4,zero,1
+ 80002d10: 01fe9e93 slli t4,t4,0x1f
+ 80002d14: 01400193 li gp,20
+ 80002d18: 0bd31463 bne t1,t4,80002dc0 <fail>
+
+0000000080002d1c <test_21>:
+ 80002d1c: 00000213 li tp,0
+ 80002d20: 00100093 li ra,1
+ 80002d24: 00709f13 slli t5,ra,0x7
+ 80002d28: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d2c: 00200293 li t0,2
+ 80002d30: fe5218e3 bne tp,t0,80002d20 <test_21+0x4>
+ 80002d34: 08000e93 li t4,128
+ 80002d38: 01500193 li gp,21
+ 80002d3c: 09df1263 bne t5,t4,80002dc0 <fail>
+
+0000000080002d40 <test_22>:
+ 80002d40: 00000213 li tp,0
+ 80002d44: 00100093 li ra,1
+ 80002d48: 00000013 nop
+ 80002d4c: 00e09f13 slli t5,ra,0xe
+ 80002d50: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d54: 00200293 li t0,2
+ 80002d58: fe5216e3 bne tp,t0,80002d44 <test_22+0x4>
+ 80002d5c: 00004eb7 lui t4,0x4
+ 80002d60: 01600193 li gp,22
+ 80002d64: 05df1e63 bne t5,t4,80002dc0 <fail>
+
+0000000080002d68 <test_23>:
+ 80002d68: 00000213 li tp,0
+ 80002d6c: 00100093 li ra,1
+ 80002d70: 00000013 nop
+ 80002d74: 00000013 nop
+ 80002d78: 01f09f13 slli t5,ra,0x1f
+ 80002d7c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d80: 00200293 li t0,2
+ 80002d84: fe5214e3 bne tp,t0,80002d6c <test_23+0x4>
+ 80002d88: 00100e9b addiw t4,zero,1
+ 80002d8c: 01fe9e93 slli t4,t4,0x1f
+ 80002d90: 01700193 li gp,23
+ 80002d94: 03df1663 bne t5,t4,80002dc0 <fail>
+
+0000000080002d98 <test_24>:
+ 80002d98: 01f01093 slli ra,zero,0x1f
+ 80002d9c: 00000e93 li t4,0
+ 80002da0: 01800193 li gp,24
+ 80002da4: 01d09e63 bne ra,t4,80002dc0 <fail>
+
+0000000080002da8 <test_25>:
+ 80002da8: 02100093 li ra,33
+ 80002dac: 01409013 slli zero,ra,0x14
+ 80002db0: 00000e93 li t4,0
+ 80002db4: 01900193 li gp,25
+ 80002db8: 01d01463 bne zero,t4,80002dc0 <fail>
+ 80002dbc: 00301a63 bne zero,gp,80002dd0 <pass>
+
+0000000080002dc0 <fail>:
+ 80002dc0: 00119513 slli a0,gp,0x1
+ 80002dc4: 00050063 beqz a0,80002dc4 <fail+0x4>
+ 80002dc8: 00156513 ori a0,a0,1
+ 80002dcc: 00000073 ecall
+
+0000000080002dd0 <pass>:
+ 80002dd0: 00100513 li a0,1
+ 80002dd4: 00000073 ecall
+ 80002dd8: c0001073 unimp
diff --git a/test/tests/rv64ui-v-slli.elf b/test/tests/rv64ui-v-slli.elf
new file mode 100644
index 0000000..2b9e327
--- /dev/null
+++ b/test/tests/rv64ui-v-slli.elf
Binary files differ
diff --git a/test/tests/rv64ui-v-slliw.dump b/test/tests/rv64ui-v-slliw.dump
new file mode 100644
index 0000000..25efc0d
--- /dev/null
+++ b/test/tests/rv64ui-v-slliw.dump
@@ -0,0 +1,1047 @@
+
+rv64ui-v-slliw: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <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: 6b810113 addi sp,sp,1720 # 800086d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00001617 auipc a2,0x1
+ 80002318: cec60613 addi a2,a2,-788 # 80003000 <begin_signature>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00005797 auipc a5,0x5
+ 80002334: 4b878793 addi a5,a5,1208 # 800077e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00005717 auipc a4,0x5
+ 80002348: 49c70713 addi a4,a4,1180 # 800077e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00005897 auipc a7,0x5
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800077e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00005797 auipc a5,0x5
+ 80002384: 07078793 addi a5,a5,112 # 800073f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf8810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00005797 auipc a5,0x5
+ 80002448: 3807be23 sd zero,924(a5) # 800077e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00001697 auipc a3,0x1
+ 8000245c: 91068693 addi a3,a3,-1776 # 80002d68 <pass+0xc>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00001617 auipc a2,0x1
+ 800024b8: 94460613 addi a2,a2,-1724 # 80002df8 <pass+0x9c>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00001617 auipc a2,0x1
+ 80002508: 90c60613 addi a2,a2,-1780 # 80002e10 <pass+0xb4>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00001697 auipc a3,0x1
+ 80002558: 85c68693 addi a3,a3,-1956 # 80002db0 <pass+0x54>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00001697 auipc a3,0x1
+ 80002674: 87868693 addi a3,a3,-1928 # 80002ee8 <pass+0x18c>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00000617 auipc a2,0x0
+ 800026cc: 7f860613 addi a2,a2,2040 # 80002ec0 <pass+0x164>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00005d17 auipc s10,0x5
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800073f0 <user_mapping>
+ 80002724: 00001b97 auipc s7,0x1
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80003000 <begin_signature>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00005a17 auipc s4,0x5
+ 80002738: 0aca0a13 addi s4,s4,172 # 800077e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00005717 auipc a4,0x5
+ 8000274c: 08f73c23 sd a5,152(a4) # 800077e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00005717 auipc a4,0x5
+ 800027d4: 00f73823 sd a5,16(a4) # 800077e0 <freelist_tail>
+ 800027d8: 00005717 auipc a4,0x5
+ 800027dc: 00f73823 sd a5,16(a4) # 800077e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 72c68693 addi a3,a3,1836 # 80002f18 <pass+0x1bc>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 64c68693 addi a3,a3,1612 # 80002e88 <pass+0x12c>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 5dc68693 addi a3,a3,1500 # 80002e50 <pass+0xf4>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00001697 auipc a3,0x1
+ 800028e0: 72468693 addi a3,a3,1828 # 80004000 <begin_signature+0x1000>
+ 800028e4: 00002717 auipc a4,0x2
+ 800028e8: 71c70713 addi a4,a4,1820 # 80005000 <begin_signature+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00003797 auipc a5,0x3
+ 800028f8: 70c78793 addi a5,a5,1804 # 80006000 <begin_signature+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00000897 auipc a7,0x0
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80003000 <begin_signature>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00001697 auipc a3,0x1
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80003ff8 <begin_signature+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00000617 auipc a2,0x0
+ 80002938: 6cc60613 addi a2,a2,1740 # 80003000 <begin_signature>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00003697 auipc a3,0x3
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80005ff8 <begin_signature+0x2ff8>
+ 8000294c: 00001717 auipc a4,0x1
+ 80002950: 6af73a23 sd a5,1716(a4) # 80004000 <begin_signature+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00004697 auipc a3,0x4
+ 800029c0: 64468693 addi a3,a3,1604 # 80007000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00005617 auipc a2,0x5
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800077e8 <freelist_head>
+ 800029d4: 00005797 auipc a5,0x5
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800077e0 <freelist_tail>
+ 800029dc: 00005317 auipc t1,0x5
+ 800029e0: a1430313 addi t1,t1,-1516 # 800073f0 <user_mapping>
+ 800029e4: 01000793 li a5,16
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00005797 auipc a5,0x5
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800073e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 0a2947b7 lui a5,0xa294
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: def78793 addi a5,a5,-529 # a293def <_start-0x75d6c211>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 00100093 li ra,1
+ 80002acc: 00009f1b slliw t5,ra,0x0
+ 80002ad0: 00100e93 li t4,1
+ 80002ad4: 00200193 li gp,2
+ 80002ad8: 27df1a63 bne t5,t4,80002d4c <fail>
+
+0000000080002adc <test_3>:
+ 80002adc: 00100093 li ra,1
+ 80002ae0: 00109f1b slliw t5,ra,0x1
+ 80002ae4: 00200e93 li t4,2
+ 80002ae8: 00300193 li gp,3
+ 80002aec: 27df1063 bne t5,t4,80002d4c <fail>
+
+0000000080002af0 <test_4>:
+ 80002af0: 00100093 li ra,1
+ 80002af4: 00709f1b slliw t5,ra,0x7
+ 80002af8: 08000e93 li t4,128
+ 80002afc: 00400193 li gp,4
+ 80002b00: 25df1663 bne t5,t4,80002d4c <fail>
+
+0000000080002b04 <test_5>:
+ 80002b04: 00100093 li ra,1
+ 80002b08: 00e09f1b slliw t5,ra,0xe
+ 80002b0c: 00004eb7 lui t4,0x4
+ 80002b10: 00500193 li gp,5
+ 80002b14: 23df1c63 bne t5,t4,80002d4c <fail>
+
+0000000080002b18 <test_6>:
+ 80002b18: 00100093 li ra,1
+ 80002b1c: 01f09f1b slliw t5,ra,0x1f
+ 80002b20: 80000eb7 lui t4,0x80000
+ 80002b24: 00600193 li gp,6
+ 80002b28: 23df1263 bne t5,t4,80002d4c <fail>
+
+0000000080002b2c <test_7>:
+ 80002b2c: fff00093 li ra,-1
+ 80002b30: 00009f1b slliw t5,ra,0x0
+ 80002b34: fff00e93 li t4,-1
+ 80002b38: 00700193 li gp,7
+ 80002b3c: 21df1863 bne t5,t4,80002d4c <fail>
+
+0000000080002b40 <test_8>:
+ 80002b40: fff00093 li ra,-1
+ 80002b44: 00109f1b slliw t5,ra,0x1
+ 80002b48: ffe00e93 li t4,-2
+ 80002b4c: 00800193 li gp,8
+ 80002b50: 1fdf1e63 bne t5,t4,80002d4c <fail>
+
+0000000080002b54 <test_9>:
+ 80002b54: fff00093 li ra,-1
+ 80002b58: 00709f1b slliw t5,ra,0x7
+ 80002b5c: f8000e93 li t4,-128
+ 80002b60: 00900193 li gp,9
+ 80002b64: 1fdf1463 bne t5,t4,80002d4c <fail>
+
+0000000080002b68 <test_10>:
+ 80002b68: fff00093 li ra,-1
+ 80002b6c: 00e09f1b slliw t5,ra,0xe
+ 80002b70: ffffceb7 lui t4,0xffffc
+ 80002b74: 00a00193 li gp,10
+ 80002b78: 1ddf1a63 bne t5,t4,80002d4c <fail>
+
+0000000080002b7c <test_11>:
+ 80002b7c: fff00093 li ra,-1
+ 80002b80: 01f09f1b slliw t5,ra,0x1f
+ 80002b84: 80000eb7 lui t4,0x80000
+ 80002b88: 00b00193 li gp,11
+ 80002b8c: 1ddf1063 bne t5,t4,80002d4c <fail>
+
+0000000080002b90 <test_12>:
+ 80002b90: 212120b7 lui ra,0x21212
+ 80002b94: 1210809b addiw ra,ra,289
+ 80002b98: 00009f1b slliw t5,ra,0x0
+ 80002b9c: 21212eb7 lui t4,0x21212
+ 80002ba0: 121e8e9b addiw t4,t4,289
+ 80002ba4: 00c00193 li gp,12
+ 80002ba8: 1bdf1263 bne t5,t4,80002d4c <fail>
+
+0000000080002bac <test_13>:
+ 80002bac: 212120b7 lui ra,0x21212
+ 80002bb0: 1210809b addiw ra,ra,289
+ 80002bb4: 00109f1b slliw t5,ra,0x1
+ 80002bb8: 42424eb7 lui t4,0x42424
+ 80002bbc: 242e8e9b addiw t4,t4,578
+ 80002bc0: 00d00193 li gp,13
+ 80002bc4: 19df1463 bne t5,t4,80002d4c <fail>
+
+0000000080002bc8 <test_14>:
+ 80002bc8: 212120b7 lui ra,0x21212
+ 80002bcc: 1210809b addiw ra,ra,289
+ 80002bd0: 00709f1b slliw t5,ra,0x7
+ 80002bd4: 90909eb7 lui t4,0x90909
+ 80002bd8: 080e8e9b addiw t4,t4,128
+ 80002bdc: 00e00193 li gp,14
+ 80002be0: 17df1663 bne t5,t4,80002d4c <fail>
+
+0000000080002be4 <test_15>:
+ 80002be4: 212120b7 lui ra,0x21212
+ 80002be8: 1210809b addiw ra,ra,289
+ 80002bec: 00e09f1b slliw t5,ra,0xe
+ 80002bf0: 48484eb7 lui t4,0x48484
+ 80002bf4: 00f00193 li gp,15
+ 80002bf8: 15df1a63 bne t5,t4,80002d4c <fail>
+
+0000000080002bfc <test_16>:
+ 80002bfc: 212120b7 lui ra,0x21212
+ 80002c00: 1210809b addiw ra,ra,289
+ 80002c04: 01f09f1b slliw t5,ra,0x1f
+ 80002c08: 80000eb7 lui t4,0x80000
+ 80002c0c: 01000193 li gp,16
+ 80002c10: 13df1e63 bne t5,t4,80002d4c <fail>
+
+0000000080002c14 <test_17>:
+ 80002c14: 00100093 li ra,1
+ 80002c18: 0070909b slliw ra,ra,0x7
+ 80002c1c: 08000e93 li t4,128
+ 80002c20: 01100193 li gp,17
+ 80002c24: 13d09463 bne ra,t4,80002d4c <fail>
+
+0000000080002c28 <test_18>:
+ 80002c28: 00000213 li tp,0
+ 80002c2c: 00100093 li ra,1
+ 80002c30: 00709f1b slliw t5,ra,0x7
+ 80002c34: 000f0313 mv t1,t5
+ 80002c38: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c3c: 00200293 li t0,2
+ 80002c40: fe5216e3 bne tp,t0,80002c2c <test_18+0x4>
+ 80002c44: 08000e93 li t4,128
+ 80002c48: 01200193 li gp,18
+ 80002c4c: 11d31063 bne t1,t4,80002d4c <fail>
+
+0000000080002c50 <test_19>:
+ 80002c50: 00000213 li tp,0
+ 80002c54: 00100093 li ra,1
+ 80002c58: 00e09f1b slliw t5,ra,0xe
+ 80002c5c: 00000013 nop
+ 80002c60: 000f0313 mv t1,t5
+ 80002c64: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c68: 00200293 li t0,2
+ 80002c6c: fe5214e3 bne tp,t0,80002c54 <test_19+0x4>
+ 80002c70: 00004eb7 lui t4,0x4
+ 80002c74: 01300193 li gp,19
+ 80002c78: 0dd31a63 bne t1,t4,80002d4c <fail>
+
+0000000080002c7c <test_20>:
+ 80002c7c: 00000213 li tp,0
+ 80002c80: 00100093 li ra,1
+ 80002c84: 01f09f1b slliw t5,ra,0x1f
+ 80002c88: 00000013 nop
+ 80002c8c: 00000013 nop
+ 80002c90: 000f0313 mv t1,t5
+ 80002c94: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c98: 00200293 li t0,2
+ 80002c9c: fe5212e3 bne tp,t0,80002c80 <test_20+0x4>
+ 80002ca0: 80000eb7 lui t4,0x80000
+ 80002ca4: 01400193 li gp,20
+ 80002ca8: 0bd31263 bne t1,t4,80002d4c <fail>
+
+0000000080002cac <test_21>:
+ 80002cac: 00000213 li tp,0
+ 80002cb0: 00100093 li ra,1
+ 80002cb4: 00709f1b slliw t5,ra,0x7
+ 80002cb8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002cbc: 00200293 li t0,2
+ 80002cc0: fe5218e3 bne tp,t0,80002cb0 <test_21+0x4>
+ 80002cc4: 08000e93 li t4,128
+ 80002cc8: 01500193 li gp,21
+ 80002ccc: 09df1063 bne t5,t4,80002d4c <fail>
+
+0000000080002cd0 <test_22>:
+ 80002cd0: 00000213 li tp,0
+ 80002cd4: 00100093 li ra,1
+ 80002cd8: 00000013 nop
+ 80002cdc: 00e09f1b slliw t5,ra,0xe
+ 80002ce0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ce4: 00200293 li t0,2
+ 80002ce8: fe5216e3 bne tp,t0,80002cd4 <test_22+0x4>
+ 80002cec: 00004eb7 lui t4,0x4
+ 80002cf0: 01600193 li gp,22
+ 80002cf4: 05df1c63 bne t5,t4,80002d4c <fail>
+
+0000000080002cf8 <test_23>:
+ 80002cf8: 00000213 li tp,0
+ 80002cfc: 00100093 li ra,1
+ 80002d00: 00000013 nop
+ 80002d04: 00000013 nop
+ 80002d08: 01f09f1b slliw t5,ra,0x1f
+ 80002d0c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d10: 00200293 li t0,2
+ 80002d14: fe5214e3 bne tp,t0,80002cfc <test_23+0x4>
+ 80002d18: 80000eb7 lui t4,0x80000
+ 80002d1c: 01700193 li gp,23
+ 80002d20: 03df1663 bne t5,t4,80002d4c <fail>
+
+0000000080002d24 <test_24>:
+ 80002d24: 01f0109b slliw ra,zero,0x1f
+ 80002d28: 00000e93 li t4,0
+ 80002d2c: 01800193 li gp,24
+ 80002d30: 01d09e63 bne ra,t4,80002d4c <fail>
+
+0000000080002d34 <test_25>:
+ 80002d34: 01f00093 li ra,31
+ 80002d38: 01c0901b slliw zero,ra,0x1c
+ 80002d3c: 00000e93 li t4,0
+ 80002d40: 01900193 li gp,25
+ 80002d44: 01d01463 bne zero,t4,80002d4c <fail>
+ 80002d48: 00301a63 bne zero,gp,80002d5c <pass>
+
+0000000080002d4c <fail>:
+ 80002d4c: 00119513 slli a0,gp,0x1
+ 80002d50: 00050063 beqz a0,80002d50 <fail+0x4>
+ 80002d54: 00156513 ori a0,a0,1
+ 80002d58: 00000073 ecall
+
+0000000080002d5c <pass>:
+ 80002d5c: 00100513 li a0,1
+ 80002d60: 00000073 ecall
+ 80002d64: c0001073 unimp
diff --git a/test/tests/rv64ui-v-slliw.elf b/test/tests/rv64ui-v-slliw.elf
new file mode 100644
index 0000000..dd80f11
--- /dev/null
+++ b/test/tests/rv64ui-v-slliw.elf
Binary files differ
diff --git a/test/tests/rv64ui-v-sllw.dump b/test/tests/rv64ui-v-sllw.dump
new file mode 100644
index 0000000..e44d86e
--- /dev/null
+++ b/test/tests/rv64ui-v-sllw.dump
@@ -0,0 +1,1269 @@
+
+rv64ui-v-sllw: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <handle_reset>:
+ 8000000c: 00000297 auipc t0,0x0
+ 80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+ 80000014: 30529073 csrw mtvec,t0
+ 80000018: 00009117 auipc sp,0x9
+ 8000001c: 6b810113 addi sp,sp,1720 # 800096d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00002617 auipc a2,0x2
+ 80002318: cec60613 addi a2,a2,-788 # 80004000 <begin_signature>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00006797 auipc a5,0x6
+ 80002334: 4b878793 addi a5,a5,1208 # 800087e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00006717 auipc a4,0x6
+ 80002348: 49c70713 addi a4,a4,1180 # 800087e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00006897 auipc a7,0x6
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800087e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00006797 auipc a5,0x6
+ 80002384: 07078793 addi a5,a5,112 # 800083f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf7810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00006797 auipc a5,0x6
+ 80002448: 3807be23 sd zero,924(a5) # 800087e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00001697 auipc a3,0x1
+ 8000245c: bf868693 addi a3,a3,-1032 # 80003050 <pass+0xc>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00001617 auipc a2,0x1
+ 800024b8: c2c60613 addi a2,a2,-980 # 800030e0 <pass+0x9c>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00001617 auipc a2,0x1
+ 80002508: bf460613 addi a2,a2,-1036 # 800030f8 <pass+0xb4>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00001697 auipc a3,0x1
+ 80002558: b4468693 addi a3,a3,-1212 # 80003098 <pass+0x54>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00001697 auipc a3,0x1
+ 80002674: b6068693 addi a3,a3,-1184 # 800031d0 <pass+0x18c>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00001617 auipc a2,0x1
+ 800026cc: ae060613 addi a2,a2,-1312 # 800031a8 <pass+0x164>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00006d17 auipc s10,0x6
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800083f0 <user_mapping>
+ 80002724: 00002b97 auipc s7,0x2
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80004000 <begin_signature>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00006a17 auipc s4,0x6
+ 80002738: 0aca0a13 addi s4,s4,172 # 800087e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00006717 auipc a4,0x6
+ 8000274c: 08f73c23 sd a5,152(a4) # 800087e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00006717 auipc a4,0x6
+ 800027d4: 00f73823 sd a5,16(a4) # 800087e0 <freelist_tail>
+ 800027d8: 00006717 auipc a4,0x6
+ 800027dc: 00f73823 sd a5,16(a4) # 800087e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00001697 auipc a3,0x1
+ 800027f0: a1468693 addi a3,a3,-1516 # 80003200 <pass+0x1bc>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00001697 auipc a3,0x1
+ 80002840: 93468693 addi a3,a3,-1740 # 80003170 <pass+0x12c>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00001697 auipc a3,0x1
+ 80002878: 8c468693 addi a3,a3,-1852 # 80003138 <pass+0xf4>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00002697 auipc a3,0x2
+ 800028e0: 72468693 addi a3,a3,1828 # 80005000 <begin_signature+0x1000>
+ 800028e4: 00003717 auipc a4,0x3
+ 800028e8: 71c70713 addi a4,a4,1820 # 80006000 <begin_signature+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00004797 auipc a5,0x4
+ 800028f8: 70c78793 addi a5,a5,1804 # 80007000 <begin_signature+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00001897 auipc a7,0x1
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80004000 <begin_signature>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00002697 auipc a3,0x2
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80004ff8 <begin_signature+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00001617 auipc a2,0x1
+ 80002938: 6cc60613 addi a2,a2,1740 # 80004000 <begin_signature>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00004697 auipc a3,0x4
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80006ff8 <begin_signature+0x2ff8>
+ 8000294c: 00002717 auipc a4,0x2
+ 80002950: 6af73a23 sd a5,1716(a4) # 80005000 <begin_signature+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00005697 auipc a3,0x5
+ 800029c0: 64468693 addi a3,a3,1604 # 80008000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00006617 auipc a2,0x6
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800087e8 <freelist_head>
+ 800029d4: 00006797 auipc a5,0x6
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800087e0 <freelist_tail>
+ 800029dc: 00006317 auipc t1,0x6
+ 800029e0: a1430313 addi t1,t1,-1516 # 800083f0 <user_mapping>
+ 800029e4: 02f00793 li a5,47
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00006797 auipc a5,0x6
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800083e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 09afd7b7 lui a5,0x9afd
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: 1b578793 addi a5,a5,437 # 9afd1b5 <_start-0x76502e4b>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 00100093 li ra,1
+ 80002acc: 00000113 li sp,0
+ 80002ad0: 00209f3b sllw t5,ra,sp
+ 80002ad4: 00100e93 li t4,1
+ 80002ad8: 00200193 li gp,2
+ 80002adc: 55df1c63 bne t5,t4,80003034 <fail>
+
+0000000080002ae0 <test_3>:
+ 80002ae0: 00100093 li ra,1
+ 80002ae4: 00100113 li sp,1
+ 80002ae8: 00209f3b sllw t5,ra,sp
+ 80002aec: 00200e93 li t4,2
+ 80002af0: 00300193 li gp,3
+ 80002af4: 55df1063 bne t5,t4,80003034 <fail>
+
+0000000080002af8 <test_4>:
+ 80002af8: 00100093 li ra,1
+ 80002afc: 00700113 li sp,7
+ 80002b00: 00209f3b sllw t5,ra,sp
+ 80002b04: 08000e93 li t4,128
+ 80002b08: 00400193 li gp,4
+ 80002b0c: 53df1463 bne t5,t4,80003034 <fail>
+
+0000000080002b10 <test_5>:
+ 80002b10: 00100093 li ra,1
+ 80002b14: 00e00113 li sp,14
+ 80002b18: 00209f3b sllw t5,ra,sp
+ 80002b1c: 00004eb7 lui t4,0x4
+ 80002b20: 00500193 li gp,5
+ 80002b24: 51df1863 bne t5,t4,80003034 <fail>
+
+0000000080002b28 <test_6>:
+ 80002b28: 00100093 li ra,1
+ 80002b2c: 01f00113 li sp,31
+ 80002b30: 00209f3b sllw t5,ra,sp
+ 80002b34: 80000eb7 lui t4,0x80000
+ 80002b38: 00600193 li gp,6
+ 80002b3c: 4fdf1c63 bne t5,t4,80003034 <fail>
+
+0000000080002b40 <test_7>:
+ 80002b40: fff00093 li ra,-1
+ 80002b44: 00000113 li sp,0
+ 80002b48: 00209f3b sllw t5,ra,sp
+ 80002b4c: fff00e93 li t4,-1
+ 80002b50: 00700193 li gp,7
+ 80002b54: 4fdf1063 bne t5,t4,80003034 <fail>
+
+0000000080002b58 <test_8>:
+ 80002b58: fff00093 li ra,-1
+ 80002b5c: 00100113 li sp,1
+ 80002b60: 00209f3b sllw t5,ra,sp
+ 80002b64: ffe00e93 li t4,-2
+ 80002b68: 00800193 li gp,8
+ 80002b6c: 4ddf1463 bne t5,t4,80003034 <fail>
+
+0000000080002b70 <test_9>:
+ 80002b70: fff00093 li ra,-1
+ 80002b74: 00700113 li sp,7
+ 80002b78: 00209f3b sllw t5,ra,sp
+ 80002b7c: f8000e93 li t4,-128
+ 80002b80: 00900193 li gp,9
+ 80002b84: 4bdf1863 bne t5,t4,80003034 <fail>
+
+0000000080002b88 <test_10>:
+ 80002b88: fff00093 li ra,-1
+ 80002b8c: 00e00113 li sp,14
+ 80002b90: 00209f3b sllw t5,ra,sp
+ 80002b94: ffffceb7 lui t4,0xffffc
+ 80002b98: 00a00193 li gp,10
+ 80002b9c: 49df1c63 bne t5,t4,80003034 <fail>
+
+0000000080002ba0 <test_11>:
+ 80002ba0: fff00093 li ra,-1
+ 80002ba4: 01f00113 li sp,31
+ 80002ba8: 00209f3b sllw t5,ra,sp
+ 80002bac: 80000eb7 lui t4,0x80000
+ 80002bb0: 00b00193 li gp,11
+ 80002bb4: 49df1063 bne t5,t4,80003034 <fail>
+
+0000000080002bb8 <test_12>:
+ 80002bb8: 212120b7 lui ra,0x21212
+ 80002bbc: 1210809b addiw ra,ra,289
+ 80002bc0: 00000113 li sp,0
+ 80002bc4: 00209f3b sllw t5,ra,sp
+ 80002bc8: 21212eb7 lui t4,0x21212
+ 80002bcc: 121e8e9b addiw t4,t4,289
+ 80002bd0: 00c00193 li gp,12
+ 80002bd4: 47df1063 bne t5,t4,80003034 <fail>
+
+0000000080002bd8 <test_13>:
+ 80002bd8: 212120b7 lui ra,0x21212
+ 80002bdc: 1210809b addiw ra,ra,289
+ 80002be0: 00100113 li sp,1
+ 80002be4: 00209f3b sllw t5,ra,sp
+ 80002be8: 42424eb7 lui t4,0x42424
+ 80002bec: 242e8e9b addiw t4,t4,578
+ 80002bf0: 00d00193 li gp,13
+ 80002bf4: 45df1063 bne t5,t4,80003034 <fail>
+
+0000000080002bf8 <test_14>:
+ 80002bf8: 212120b7 lui ra,0x21212
+ 80002bfc: 1210809b addiw ra,ra,289
+ 80002c00: 00700113 li sp,7
+ 80002c04: 00209f3b sllw t5,ra,sp
+ 80002c08: 90909eb7 lui t4,0x90909
+ 80002c0c: 080e8e9b addiw t4,t4,128
+ 80002c10: 00e00193 li gp,14
+ 80002c14: 43df1063 bne t5,t4,80003034 <fail>
+
+0000000080002c18 <test_15>:
+ 80002c18: 212120b7 lui ra,0x21212
+ 80002c1c: 1210809b addiw ra,ra,289
+ 80002c20: 00e00113 li sp,14
+ 80002c24: 00209f3b sllw t5,ra,sp
+ 80002c28: 48484eb7 lui t4,0x48484
+ 80002c2c: 00f00193 li gp,15
+ 80002c30: 41df1263 bne t5,t4,80003034 <fail>
+
+0000000080002c34 <test_16>:
+ 80002c34: 212120b7 lui ra,0x21212
+ 80002c38: 1210809b addiw ra,ra,289
+ 80002c3c: 01f00113 li sp,31
+ 80002c40: 00209f3b sllw t5,ra,sp
+ 80002c44: 80000eb7 lui t4,0x80000
+ 80002c48: 01000193 li gp,16
+ 80002c4c: 3fdf1463 bne t5,t4,80003034 <fail>
+
+0000000080002c50 <test_17>:
+ 80002c50: 212120b7 lui ra,0x21212
+ 80002c54: 1210809b addiw ra,ra,289
+ 80002c58: fe000113 li sp,-32
+ 80002c5c: 00209f3b sllw t5,ra,sp
+ 80002c60: 21212eb7 lui t4,0x21212
+ 80002c64: 121e8e9b addiw t4,t4,289
+ 80002c68: 01100193 li gp,17
+ 80002c6c: 3ddf1463 bne t5,t4,80003034 <fail>
+
+0000000080002c70 <test_18>:
+ 80002c70: 212120b7 lui ra,0x21212
+ 80002c74: 1210809b addiw ra,ra,289
+ 80002c78: fe100113 li sp,-31
+ 80002c7c: 00209f3b sllw t5,ra,sp
+ 80002c80: 42424eb7 lui t4,0x42424
+ 80002c84: 242e8e9b addiw t4,t4,578
+ 80002c88: 01200193 li gp,18
+ 80002c8c: 3bdf1463 bne t5,t4,80003034 <fail>
+
+0000000080002c90 <test_19>:
+ 80002c90: 212120b7 lui ra,0x21212
+ 80002c94: 1210809b addiw ra,ra,289
+ 80002c98: fe700113 li sp,-25
+ 80002c9c: 00209f3b sllw t5,ra,sp
+ 80002ca0: 90909eb7 lui t4,0x90909
+ 80002ca4: 080e8e9b addiw t4,t4,128
+ 80002ca8: 01300193 li gp,19
+ 80002cac: 39df1463 bne t5,t4,80003034 <fail>
+
+0000000080002cb0 <test_20>:
+ 80002cb0: 212120b7 lui ra,0x21212
+ 80002cb4: 1210809b addiw ra,ra,289
+ 80002cb8: fee00113 li sp,-18
+ 80002cbc: 00209f3b sllw t5,ra,sp
+ 80002cc0: 48484eb7 lui t4,0x48484
+ 80002cc4: 01400193 li gp,20
+ 80002cc8: 37df1663 bne t5,t4,80003034 <fail>
+
+0000000080002ccc <test_21>:
+ 80002ccc: 212120b7 lui ra,0x21212
+ 80002cd0: 1210809b addiw ra,ra,289
+ 80002cd4: fff00113 li sp,-1
+ 80002cd8: 00209f3b sllw t5,ra,sp
+ 80002cdc: 80000eb7 lui t4,0x80000
+ 80002ce0: 01500193 li gp,21
+ 80002ce4: 35df1863 bne t5,t4,80003034 <fail>
+
+0000000080002ce8 <test_22>:
+ 80002ce8: 00100093 li ra,1
+ 80002cec: 00700113 li sp,7
+ 80002cf0: 002090bb sllw ra,ra,sp
+ 80002cf4: 08000e93 li t4,128
+ 80002cf8: 01600193 li gp,22
+ 80002cfc: 33d09c63 bne ra,t4,80003034 <fail>
+
+0000000080002d00 <test_23>:
+ 80002d00: 00100093 li ra,1
+ 80002d04: 00e00113 li sp,14
+ 80002d08: 0020913b sllw sp,ra,sp
+ 80002d0c: 00004eb7 lui t4,0x4
+ 80002d10: 01700193 li gp,23
+ 80002d14: 33d11063 bne sp,t4,80003034 <fail>
+
+0000000080002d18 <test_24>:
+ 80002d18: 00300093 li ra,3
+ 80002d1c: 001090bb sllw ra,ra,ra
+ 80002d20: 01800e93 li t4,24
+ 80002d24: 01800193 li gp,24
+ 80002d28: 31d09663 bne ra,t4,80003034 <fail>
+
+0000000080002d2c <test_25>:
+ 80002d2c: 00000213 li tp,0
+ 80002d30: 00100093 li ra,1
+ 80002d34: 00700113 li sp,7
+ 80002d38: 00209f3b sllw t5,ra,sp
+ 80002d3c: 000f0313 mv t1,t5
+ 80002d40: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d44: 00200293 li t0,2
+ 80002d48: fe5214e3 bne tp,t0,80002d30 <test_25+0x4>
+ 80002d4c: 08000e93 li t4,128
+ 80002d50: 01900193 li gp,25
+ 80002d54: 2fd31063 bne t1,t4,80003034 <fail>
+
+0000000080002d58 <test_26>:
+ 80002d58: 00000213 li tp,0
+ 80002d5c: 00100093 li ra,1
+ 80002d60: 00e00113 li sp,14
+ 80002d64: 00209f3b sllw t5,ra,sp
+ 80002d68: 00000013 nop
+ 80002d6c: 000f0313 mv t1,t5
+ 80002d70: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d74: 00200293 li t0,2
+ 80002d78: fe5212e3 bne tp,t0,80002d5c <test_26+0x4>
+ 80002d7c: 00004eb7 lui t4,0x4
+ 80002d80: 01a00193 li gp,26
+ 80002d84: 2bd31863 bne t1,t4,80003034 <fail>
+
+0000000080002d88 <test_27>:
+ 80002d88: 00000213 li tp,0
+ 80002d8c: 00100093 li ra,1
+ 80002d90: 01f00113 li sp,31
+ 80002d94: 00209f3b sllw t5,ra,sp
+ 80002d98: 00000013 nop
+ 80002d9c: 00000013 nop
+ 80002da0: 000f0313 mv t1,t5
+ 80002da4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002da8: 00200293 li t0,2
+ 80002dac: fe5210e3 bne tp,t0,80002d8c <test_27+0x4>
+ 80002db0: 80000eb7 lui t4,0x80000
+ 80002db4: 01b00193 li gp,27
+ 80002db8: 27d31e63 bne t1,t4,80003034 <fail>
+
+0000000080002dbc <test_28>:
+ 80002dbc: 00000213 li tp,0
+ 80002dc0: 00100093 li ra,1
+ 80002dc4: 00700113 li sp,7
+ 80002dc8: 00209f3b sllw t5,ra,sp
+ 80002dcc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002dd0: 00200293 li t0,2
+ 80002dd4: fe5216e3 bne tp,t0,80002dc0 <test_28+0x4>
+ 80002dd8: 08000e93 li t4,128
+ 80002ddc: 01c00193 li gp,28
+ 80002de0: 25df1a63 bne t5,t4,80003034 <fail>
+
+0000000080002de4 <test_29>:
+ 80002de4: 00000213 li tp,0
+ 80002de8: 00100093 li ra,1
+ 80002dec: 00e00113 li sp,14
+ 80002df0: 00000013 nop
+ 80002df4: 00209f3b sllw t5,ra,sp
+ 80002df8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002dfc: 00200293 li t0,2
+ 80002e00: fe5214e3 bne tp,t0,80002de8 <test_29+0x4>
+ 80002e04: 00004eb7 lui t4,0x4
+ 80002e08: 01d00193 li gp,29
+ 80002e0c: 23df1463 bne t5,t4,80003034 <fail>
+
+0000000080002e10 <test_30>:
+ 80002e10: 00000213 li tp,0
+ 80002e14: 00100093 li ra,1
+ 80002e18: 01f00113 li sp,31
+ 80002e1c: 00000013 nop
+ 80002e20: 00000013 nop
+ 80002e24: 00209f3b sllw t5,ra,sp
+ 80002e28: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e2c: 00200293 li t0,2
+ 80002e30: fe5212e3 bne tp,t0,80002e14 <test_30+0x4>
+ 80002e34: 80000eb7 lui t4,0x80000
+ 80002e38: 01e00193 li gp,30
+ 80002e3c: 1fdf1c63 bne t5,t4,80003034 <fail>
+
+0000000080002e40 <test_31>:
+ 80002e40: 00000213 li tp,0
+ 80002e44: 00100093 li ra,1
+ 80002e48: 00000013 nop
+ 80002e4c: 00700113 li sp,7
+ 80002e50: 00209f3b sllw t5,ra,sp
+ 80002e54: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e58: 00200293 li t0,2
+ 80002e5c: fe5214e3 bne tp,t0,80002e44 <test_31+0x4>
+ 80002e60: 08000e93 li t4,128
+ 80002e64: 01f00193 li gp,31
+ 80002e68: 1ddf1663 bne t5,t4,80003034 <fail>
+
+0000000080002e6c <test_32>:
+ 80002e6c: 00000213 li tp,0
+ 80002e70: 00100093 li ra,1
+ 80002e74: 00000013 nop
+ 80002e78: 00e00113 li sp,14
+ 80002e7c: 00000013 nop
+ 80002e80: 00209f3b sllw t5,ra,sp
+ 80002e84: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e88: 00200293 li t0,2
+ 80002e8c: fe5212e3 bne tp,t0,80002e70 <test_32+0x4>
+ 80002e90: 00004eb7 lui t4,0x4
+ 80002e94: 02000193 li gp,32
+ 80002e98: 19df1e63 bne t5,t4,80003034 <fail>
+
+0000000080002e9c <test_33>:
+ 80002e9c: 00000213 li tp,0
+ 80002ea0: 00100093 li ra,1
+ 80002ea4: 00000013 nop
+ 80002ea8: 00000013 nop
+ 80002eac: 01f00113 li sp,31
+ 80002eb0: 00209f3b sllw t5,ra,sp
+ 80002eb4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002eb8: 00200293 li t0,2
+ 80002ebc: fe5212e3 bne tp,t0,80002ea0 <test_33+0x4>
+ 80002ec0: 80000eb7 lui t4,0x80000
+ 80002ec4: 02100193 li gp,33
+ 80002ec8: 17df1663 bne t5,t4,80003034 <fail>
+
+0000000080002ecc <test_34>:
+ 80002ecc: 00000213 li tp,0
+ 80002ed0: 00700113 li sp,7
+ 80002ed4: 00100093 li ra,1
+ 80002ed8: 00209f3b sllw t5,ra,sp
+ 80002edc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ee0: 00200293 li t0,2
+ 80002ee4: fe5216e3 bne tp,t0,80002ed0 <test_34+0x4>
+ 80002ee8: 08000e93 li t4,128
+ 80002eec: 02200193 li gp,34
+ 80002ef0: 15df1263 bne t5,t4,80003034 <fail>
+
+0000000080002ef4 <test_35>:
+ 80002ef4: 00000213 li tp,0
+ 80002ef8: 00e00113 li sp,14
+ 80002efc: 00100093 li ra,1
+ 80002f00: 00000013 nop
+ 80002f04: 00209f3b sllw t5,ra,sp
+ 80002f08: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002f0c: 00200293 li t0,2
+ 80002f10: fe5214e3 bne tp,t0,80002ef8 <test_35+0x4>
+ 80002f14: 00004eb7 lui t4,0x4
+ 80002f18: 02300193 li gp,35
+ 80002f1c: 11df1c63 bne t5,t4,80003034 <fail>
+
+0000000080002f20 <test_36>:
+ 80002f20: 00000213 li tp,0
+ 80002f24: 01f00113 li sp,31
+ 80002f28: 00100093 li ra,1
+ 80002f2c: 00000013 nop
+ 80002f30: 00000013 nop
+ 80002f34: 00209f3b sllw t5,ra,sp
+ 80002f38: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002f3c: 00200293 li t0,2
+ 80002f40: fe5212e3 bne tp,t0,80002f24 <test_36+0x4>
+ 80002f44: 80000eb7 lui t4,0x80000
+ 80002f48: 02400193 li gp,36
+ 80002f4c: 0fdf1463 bne t5,t4,80003034 <fail>
+
+0000000080002f50 <test_37>:
+ 80002f50: 00000213 li tp,0
+ 80002f54: 00700113 li sp,7
+ 80002f58: 00000013 nop
+ 80002f5c: 00100093 li ra,1
+ 80002f60: 00209f3b sllw t5,ra,sp
+ 80002f64: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002f68: 00200293 li t0,2
+ 80002f6c: fe5214e3 bne tp,t0,80002f54 <test_37+0x4>
+ 80002f70: 08000e93 li t4,128
+ 80002f74: 02500193 li gp,37
+ 80002f78: 0bdf1e63 bne t5,t4,80003034 <fail>
+
+0000000080002f7c <test_38>:
+ 80002f7c: 00000213 li tp,0
+ 80002f80: 00e00113 li sp,14
+ 80002f84: 00000013 nop
+ 80002f88: 00100093 li ra,1
+ 80002f8c: 00000013 nop
+ 80002f90: 00209f3b sllw t5,ra,sp
+ 80002f94: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002f98: 00200293 li t0,2
+ 80002f9c: fe5212e3 bne tp,t0,80002f80 <test_38+0x4>
+ 80002fa0: 00004eb7 lui t4,0x4
+ 80002fa4: 02600193 li gp,38
+ 80002fa8: 09df1663 bne t5,t4,80003034 <fail>
+
+0000000080002fac <test_39>:
+ 80002fac: 00000213 li tp,0
+ 80002fb0: 01f00113 li sp,31
+ 80002fb4: 00000013 nop
+ 80002fb8: 00000013 nop
+ 80002fbc: 00100093 li ra,1
+ 80002fc0: 00209f3b sllw t5,ra,sp
+ 80002fc4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002fc8: 00200293 li t0,2
+ 80002fcc: fe5212e3 bne tp,t0,80002fb0 <test_39+0x4>
+ 80002fd0: 80000eb7 lui t4,0x80000
+ 80002fd4: 02700193 li gp,39
+ 80002fd8: 05df1e63 bne t5,t4,80003034 <fail>
+
+0000000080002fdc <test_40>:
+ 80002fdc: 00f00093 li ra,15
+ 80002fe0: 0010113b sllw sp,zero,ra
+ 80002fe4: 00000e93 li t4,0
+ 80002fe8: 02800193 li gp,40
+ 80002fec: 05d11463 bne sp,t4,80003034 <fail>
+
+0000000080002ff0 <test_41>:
+ 80002ff0: 02000093 li ra,32
+ 80002ff4: 0000913b sllw sp,ra,zero
+ 80002ff8: 02000e93 li t4,32
+ 80002ffc: 02900193 li gp,41
+ 80003000: 03d11a63 bne sp,t4,80003034 <fail>
+
+0000000080003004 <test_42>:
+ 80003004: 000010bb sllw ra,zero,zero
+ 80003008: 00000e93 li t4,0
+ 8000300c: 02a00193 li gp,42
+ 80003010: 03d09263 bne ra,t4,80003034 <fail>
+
+0000000080003014 <test_43>:
+ 80003014: 40000093 li ra,1024
+ 80003018: 00001137 lui sp,0x1
+ 8000301c: 8001011b addiw sp,sp,-2048
+ 80003020: 0020903b sllw zero,ra,sp
+ 80003024: 00000e93 li t4,0
+ 80003028: 02b00193 li gp,43
+ 8000302c: 01d01463 bne zero,t4,80003034 <fail>
+ 80003030: 00301a63 bne zero,gp,80003044 <pass>
+
+0000000080003034 <fail>:
+ 80003034: 00119513 slli a0,gp,0x1
+ 80003038: 00050063 beqz a0,80003038 <fail+0x4>
+ 8000303c: 00156513 ori a0,a0,1
+ 80003040: 00000073 ecall
+
+0000000080003044 <pass>:
+ 80003044: 00100513 li a0,1
+ 80003048: 00000073 ecall
+ 8000304c: c0001073 unimp
diff --git a/test/tests/rv64ui-v-sllw.elf b/test/tests/rv64ui-v-sllw.elf
new file mode 100644
index 0000000..9ae693b
--- /dev/null
+++ b/test/tests/rv64ui-v-sllw.elf
Binary files differ
diff --git a/test/tests/rv64ui-v-slt.dump b/test/tests/rv64ui-v-slt.dump
new file mode 100644
index 0000000..dd39ae7
--- /dev/null
+++ b/test/tests/rv64ui-v-slt.dump
@@ -0,0 +1,1218 @@
+
+rv64ui-v-slt: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <handle_reset>:
+ 8000000c: 00000297 auipc t0,0x0
+ 80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+ 80000014: 30529073 csrw mtvec,t0
+ 80000018: 00009117 auipc sp,0x9
+ 8000001c: 6b810113 addi sp,sp,1720 # 800096d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00002617 auipc a2,0x2
+ 80002318: cec60613 addi a2,a2,-788 # 80004000 <begin_signature>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00006797 auipc a5,0x6
+ 80002334: 4b878793 addi a5,a5,1208 # 800087e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00006717 auipc a4,0x6
+ 80002348: 49c70713 addi a4,a4,1180 # 800087e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00006897 auipc a7,0x6
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800087e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00006797 auipc a5,0x6
+ 80002384: 07078793 addi a5,a5,112 # 800083f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf7810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00006797 auipc a5,0x6
+ 80002448: 3807be23 sd zero,924(a5) # 800087e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00001697 auipc a3,0x1
+ 8000245c: b5868693 addi a3,a3,-1192 # 80002fb0 <pass+0x10>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00001617 auipc a2,0x1
+ 800024b8: b8c60613 addi a2,a2,-1140 # 80003040 <pass+0xa0>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00001617 auipc a2,0x1
+ 80002508: b5460613 addi a2,a2,-1196 # 80003058 <pass+0xb8>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00001697 auipc a3,0x1
+ 80002558: aa468693 addi a3,a3,-1372 # 80002ff8 <pass+0x58>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00001697 auipc a3,0x1
+ 80002674: ac068693 addi a3,a3,-1344 # 80003130 <pass+0x190>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00001617 auipc a2,0x1
+ 800026cc: a4060613 addi a2,a2,-1472 # 80003108 <pass+0x168>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00006d17 auipc s10,0x6
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800083f0 <user_mapping>
+ 80002724: 00002b97 auipc s7,0x2
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80004000 <begin_signature>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00006a17 auipc s4,0x6
+ 80002738: 0aca0a13 addi s4,s4,172 # 800087e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00006717 auipc a4,0x6
+ 8000274c: 08f73c23 sd a5,152(a4) # 800087e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00006717 auipc a4,0x6
+ 800027d4: 00f73823 sd a5,16(a4) # 800087e0 <freelist_tail>
+ 800027d8: 00006717 auipc a4,0x6
+ 800027dc: 00f73823 sd a5,16(a4) # 800087e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00001697 auipc a3,0x1
+ 800027f0: 97468693 addi a3,a3,-1676 # 80003160 <pass+0x1c0>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00001697 auipc a3,0x1
+ 80002840: 89468693 addi a3,a3,-1900 # 800030d0 <pass+0x130>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00001697 auipc a3,0x1
+ 80002878: 82468693 addi a3,a3,-2012 # 80003098 <pass+0xf8>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00002697 auipc a3,0x2
+ 800028e0: 72468693 addi a3,a3,1828 # 80005000 <begin_signature+0x1000>
+ 800028e4: 00003717 auipc a4,0x3
+ 800028e8: 71c70713 addi a4,a4,1820 # 80006000 <begin_signature+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00004797 auipc a5,0x4
+ 800028f8: 70c78793 addi a5,a5,1804 # 80007000 <begin_signature+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00001897 auipc a7,0x1
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80004000 <begin_signature>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00002697 auipc a3,0x2
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80004ff8 <begin_signature+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00001617 auipc a2,0x1
+ 80002938: 6cc60613 addi a2,a2,1740 # 80004000 <begin_signature>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00004697 auipc a3,0x4
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80006ff8 <begin_signature+0x2ff8>
+ 8000294c: 00002717 auipc a4,0x2
+ 80002950: 6af73a23 sd a5,1716(a4) # 80005000 <begin_signature+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00005697 auipc a3,0x5
+ 800029c0: 64468693 addi a3,a3,1604 # 80008000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00006617 auipc a2,0x6
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800087e8 <freelist_head>
+ 800029d4: 00006797 auipc a5,0x6
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800087e0 <freelist_tail>
+ 800029dc: 00006317 auipc t1,0x6
+ 800029e0: a1430313 addi t1,t1,-1516 # 800083f0 <user_mapping>
+ 800029e4: 00300793 li a5,3
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00006797 auipc a5,0x6
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800083e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 0c8c27b7 lui a5,0xc8c2
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: a2878793 addi a5,a5,-1496 # c8c1a28 <_start-0x7373e5d8>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 00000093 li ra,0
+ 80002acc: 00000113 li sp,0
+ 80002ad0: 0020af33 slt t5,ra,sp
+ 80002ad4: 00000e93 li t4,0
+ 80002ad8: 00200193 li gp,2
+ 80002adc: 4bdf1a63 bne t5,t4,80002f90 <fail>
+
+0000000080002ae0 <test_3>:
+ 80002ae0: 00100093 li ra,1
+ 80002ae4: 00100113 li sp,1
+ 80002ae8: 0020af33 slt t5,ra,sp
+ 80002aec: 00000e93 li t4,0
+ 80002af0: 00300193 li gp,3
+ 80002af4: 49df1e63 bne t5,t4,80002f90 <fail>
+
+0000000080002af8 <test_4>:
+ 80002af8: 00300093 li ra,3
+ 80002afc: 00700113 li sp,7
+ 80002b00: 0020af33 slt t5,ra,sp
+ 80002b04: 00100e93 li t4,1
+ 80002b08: 00400193 li gp,4
+ 80002b0c: 49df1263 bne t5,t4,80002f90 <fail>
+
+0000000080002b10 <test_5>:
+ 80002b10: 00700093 li ra,7
+ 80002b14: 00300113 li sp,3
+ 80002b18: 0020af33 slt t5,ra,sp
+ 80002b1c: 00000e93 li t4,0
+ 80002b20: 00500193 li gp,5
+ 80002b24: 47df1663 bne t5,t4,80002f90 <fail>
+
+0000000080002b28 <test_6>:
+ 80002b28: 00000093 li ra,0
+ 80002b2c: ffff8137 lui sp,0xffff8
+ 80002b30: 0020af33 slt t5,ra,sp
+ 80002b34: 00000e93 li t4,0
+ 80002b38: 00600193 li gp,6
+ 80002b3c: 45df1a63 bne t5,t4,80002f90 <fail>
+
+0000000080002b40 <test_7>:
+ 80002b40: 800000b7 lui ra,0x80000
+ 80002b44: 00000113 li sp,0
+ 80002b48: 0020af33 slt t5,ra,sp
+ 80002b4c: 00100e93 li t4,1
+ 80002b50: 00700193 li gp,7
+ 80002b54: 43df1e63 bne t5,t4,80002f90 <fail>
+
+0000000080002b58 <test_8>:
+ 80002b58: 800000b7 lui ra,0x80000
+ 80002b5c: ffff8137 lui sp,0xffff8
+ 80002b60: 0020af33 slt t5,ra,sp
+ 80002b64: 00100e93 li t4,1
+ 80002b68: 00800193 li gp,8
+ 80002b6c: 43df1263 bne t5,t4,80002f90 <fail>
+
+0000000080002b70 <test_9>:
+ 80002b70: 00000093 li ra,0
+ 80002b74: 00008137 lui sp,0x8
+ 80002b78: fff1011b addiw sp,sp,-1
+ 80002b7c: 0020af33 slt t5,ra,sp
+ 80002b80: 00100e93 li t4,1
+ 80002b84: 00900193 li gp,9
+ 80002b88: 41df1463 bne t5,t4,80002f90 <fail>
+
+0000000080002b8c <test_10>:
+ 80002b8c: 800000b7 lui ra,0x80000
+ 80002b90: fff0809b addiw ra,ra,-1
+ 80002b94: 00000113 li sp,0
+ 80002b98: 0020af33 slt t5,ra,sp
+ 80002b9c: 00000e93 li t4,0
+ 80002ba0: 00a00193 li gp,10
+ 80002ba4: 3fdf1663 bne t5,t4,80002f90 <fail>
+
+0000000080002ba8 <test_11>:
+ 80002ba8: 800000b7 lui ra,0x80000
+ 80002bac: fff0809b addiw ra,ra,-1
+ 80002bb0: 00008137 lui sp,0x8
+ 80002bb4: fff1011b addiw sp,sp,-1
+ 80002bb8: 0020af33 slt t5,ra,sp
+ 80002bbc: 00000e93 li t4,0
+ 80002bc0: 00b00193 li gp,11
+ 80002bc4: 3ddf1663 bne t5,t4,80002f90 <fail>
+
+0000000080002bc8 <test_12>:
+ 80002bc8: 800000b7 lui ra,0x80000
+ 80002bcc: 00008137 lui sp,0x8
+ 80002bd0: fff1011b addiw sp,sp,-1
+ 80002bd4: 0020af33 slt t5,ra,sp
+ 80002bd8: 00100e93 li t4,1
+ 80002bdc: 00c00193 li gp,12
+ 80002be0: 3bdf1863 bne t5,t4,80002f90 <fail>
+
+0000000080002be4 <test_13>:
+ 80002be4: 800000b7 lui ra,0x80000
+ 80002be8: fff0809b addiw ra,ra,-1
+ 80002bec: ffff8137 lui sp,0xffff8
+ 80002bf0: 0020af33 slt t5,ra,sp
+ 80002bf4: 00000e93 li t4,0
+ 80002bf8: 00d00193 li gp,13
+ 80002bfc: 39df1a63 bne t5,t4,80002f90 <fail>
+
+0000000080002c00 <test_14>:
+ 80002c00: 00000093 li ra,0
+ 80002c04: fff00113 li sp,-1
+ 80002c08: 0020af33 slt t5,ra,sp
+ 80002c0c: 00000e93 li t4,0
+ 80002c10: 00e00193 li gp,14
+ 80002c14: 37df1e63 bne t5,t4,80002f90 <fail>
+
+0000000080002c18 <test_15>:
+ 80002c18: fff00093 li ra,-1
+ 80002c1c: 00100113 li sp,1
+ 80002c20: 0020af33 slt t5,ra,sp
+ 80002c24: 00100e93 li t4,1
+ 80002c28: 00f00193 li gp,15
+ 80002c2c: 37df1263 bne t5,t4,80002f90 <fail>
+
+0000000080002c30 <test_16>:
+ 80002c30: fff00093 li ra,-1
+ 80002c34: fff00113 li sp,-1
+ 80002c38: 0020af33 slt t5,ra,sp
+ 80002c3c: 00000e93 li t4,0
+ 80002c40: 01000193 li gp,16
+ 80002c44: 35df1663 bne t5,t4,80002f90 <fail>
+
+0000000080002c48 <test_17>:
+ 80002c48: 00e00093 li ra,14
+ 80002c4c: 00d00113 li sp,13
+ 80002c50: 0020a0b3 slt ra,ra,sp
+ 80002c54: 00000e93 li t4,0
+ 80002c58: 01100193 li gp,17
+ 80002c5c: 33d09a63 bne ra,t4,80002f90 <fail>
+
+0000000080002c60 <test_18>:
+ 80002c60: 00b00093 li ra,11
+ 80002c64: 00d00113 li sp,13
+ 80002c68: 0020a133 slt sp,ra,sp
+ 80002c6c: 00100e93 li t4,1
+ 80002c70: 01200193 li gp,18
+ 80002c74: 31d11e63 bne sp,t4,80002f90 <fail>
+
+0000000080002c78 <test_19>:
+ 80002c78: 00d00093 li ra,13
+ 80002c7c: 0010a0b3 slt ra,ra,ra
+ 80002c80: 00000e93 li t4,0
+ 80002c84: 01300193 li gp,19
+ 80002c88: 31d09463 bne ra,t4,80002f90 <fail>
+
+0000000080002c8c <test_20>:
+ 80002c8c: 00000213 li tp,0
+ 80002c90: 00b00093 li ra,11
+ 80002c94: 00d00113 li sp,13
+ 80002c98: 0020af33 slt t5,ra,sp
+ 80002c9c: 000f0313 mv t1,t5
+ 80002ca0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ca4: 00200293 li t0,2
+ 80002ca8: fe5214e3 bne tp,t0,80002c90 <test_20+0x4>
+ 80002cac: 00100e93 li t4,1
+ 80002cb0: 01400193 li gp,20
+ 80002cb4: 2dd31e63 bne t1,t4,80002f90 <fail>
+
+0000000080002cb8 <test_21>:
+ 80002cb8: 00000213 li tp,0
+ 80002cbc: 00e00093 li ra,14
+ 80002cc0: 00d00113 li sp,13
+ 80002cc4: 0020af33 slt t5,ra,sp
+ 80002cc8: 00000013 nop
+ 80002ccc: 000f0313 mv t1,t5
+ 80002cd0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002cd4: 00200293 li t0,2
+ 80002cd8: fe5212e3 bne tp,t0,80002cbc <test_21+0x4>
+ 80002cdc: 00000e93 li t4,0
+ 80002ce0: 01500193 li gp,21
+ 80002ce4: 2bd31663 bne t1,t4,80002f90 <fail>
+
+0000000080002ce8 <test_22>:
+ 80002ce8: 00000213 li tp,0
+ 80002cec: 00c00093 li ra,12
+ 80002cf0: 00d00113 li sp,13
+ 80002cf4: 0020af33 slt t5,ra,sp
+ 80002cf8: 00000013 nop
+ 80002cfc: 00000013 nop
+ 80002d00: 000f0313 mv t1,t5
+ 80002d04: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d08: 00200293 li t0,2
+ 80002d0c: fe5210e3 bne tp,t0,80002cec <test_22+0x4>
+ 80002d10: 00100e93 li t4,1
+ 80002d14: 01600193 li gp,22
+ 80002d18: 27d31c63 bne t1,t4,80002f90 <fail>
+
+0000000080002d1c <test_23>:
+ 80002d1c: 00000213 li tp,0
+ 80002d20: 00e00093 li ra,14
+ 80002d24: 00d00113 li sp,13
+ 80002d28: 0020af33 slt t5,ra,sp
+ 80002d2c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d30: 00200293 li t0,2
+ 80002d34: fe5216e3 bne tp,t0,80002d20 <test_23+0x4>
+ 80002d38: 00000e93 li t4,0
+ 80002d3c: 01700193 li gp,23
+ 80002d40: 25df1863 bne t5,t4,80002f90 <fail>
+
+0000000080002d44 <test_24>:
+ 80002d44: 00000213 li tp,0
+ 80002d48: 00b00093 li ra,11
+ 80002d4c: 00d00113 li sp,13
+ 80002d50: 00000013 nop
+ 80002d54: 0020af33 slt t5,ra,sp
+ 80002d58: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d5c: 00200293 li t0,2
+ 80002d60: fe5214e3 bne tp,t0,80002d48 <test_24+0x4>
+ 80002d64: 00100e93 li t4,1
+ 80002d68: 01800193 li gp,24
+ 80002d6c: 23df1263 bne t5,t4,80002f90 <fail>
+
+0000000080002d70 <test_25>:
+ 80002d70: 00000213 li tp,0
+ 80002d74: 00f00093 li ra,15
+ 80002d78: 00d00113 li sp,13
+ 80002d7c: 00000013 nop
+ 80002d80: 00000013 nop
+ 80002d84: 0020af33 slt t5,ra,sp
+ 80002d88: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d8c: 00200293 li t0,2
+ 80002d90: fe5212e3 bne tp,t0,80002d74 <test_25+0x4>
+ 80002d94: 00000e93 li t4,0
+ 80002d98: 01900193 li gp,25
+ 80002d9c: 1fdf1a63 bne t5,t4,80002f90 <fail>
+
+0000000080002da0 <test_26>:
+ 80002da0: 00000213 li tp,0
+ 80002da4: 00a00093 li ra,10
+ 80002da8: 00000013 nop
+ 80002dac: 00d00113 li sp,13
+ 80002db0: 0020af33 slt t5,ra,sp
+ 80002db4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002db8: 00200293 li t0,2
+ 80002dbc: fe5214e3 bne tp,t0,80002da4 <test_26+0x4>
+ 80002dc0: 00100e93 li t4,1
+ 80002dc4: 01a00193 li gp,26
+ 80002dc8: 1ddf1463 bne t5,t4,80002f90 <fail>
+
+0000000080002dcc <test_27>:
+ 80002dcc: 00000213 li tp,0
+ 80002dd0: 01000093 li ra,16
+ 80002dd4: 00000013 nop
+ 80002dd8: 00d00113 li sp,13
+ 80002ddc: 00000013 nop
+ 80002de0: 0020af33 slt t5,ra,sp
+ 80002de4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002de8: 00200293 li t0,2
+ 80002dec: fe5212e3 bne tp,t0,80002dd0 <test_27+0x4>
+ 80002df0: 00000e93 li t4,0
+ 80002df4: 01b00193 li gp,27
+ 80002df8: 19df1c63 bne t5,t4,80002f90 <fail>
+
+0000000080002dfc <test_28>:
+ 80002dfc: 00000213 li tp,0
+ 80002e00: 00900093 li ra,9
+ 80002e04: 00000013 nop
+ 80002e08: 00000013 nop
+ 80002e0c: 00d00113 li sp,13
+ 80002e10: 0020af33 slt t5,ra,sp
+ 80002e14: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e18: 00200293 li t0,2
+ 80002e1c: fe5212e3 bne tp,t0,80002e00 <test_28+0x4>
+ 80002e20: 00100e93 li t4,1
+ 80002e24: 01c00193 li gp,28
+ 80002e28: 17df1463 bne t5,t4,80002f90 <fail>
+
+0000000080002e2c <test_29>:
+ 80002e2c: 00000213 li tp,0
+ 80002e30: 00d00113 li sp,13
+ 80002e34: 01100093 li ra,17
+ 80002e38: 0020af33 slt t5,ra,sp
+ 80002e3c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e40: 00200293 li t0,2
+ 80002e44: fe5216e3 bne tp,t0,80002e30 <test_29+0x4>
+ 80002e48: 00000e93 li t4,0
+ 80002e4c: 01d00193 li gp,29
+ 80002e50: 15df1063 bne t5,t4,80002f90 <fail>
+
+0000000080002e54 <test_30>:
+ 80002e54: 00000213 li tp,0
+ 80002e58: 00d00113 li sp,13
+ 80002e5c: 00800093 li ra,8
+ 80002e60: 00000013 nop
+ 80002e64: 0020af33 slt t5,ra,sp
+ 80002e68: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e6c: 00200293 li t0,2
+ 80002e70: fe5214e3 bne tp,t0,80002e58 <test_30+0x4>
+ 80002e74: 00100e93 li t4,1
+ 80002e78: 01e00193 li gp,30
+ 80002e7c: 11df1a63 bne t5,t4,80002f90 <fail>
+
+0000000080002e80 <test_31>:
+ 80002e80: 00000213 li tp,0
+ 80002e84: 00d00113 li sp,13
+ 80002e88: 01200093 li ra,18
+ 80002e8c: 00000013 nop
+ 80002e90: 00000013 nop
+ 80002e94: 0020af33 slt t5,ra,sp
+ 80002e98: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e9c: 00200293 li t0,2
+ 80002ea0: fe5212e3 bne tp,t0,80002e84 <test_31+0x4>
+ 80002ea4: 00000e93 li t4,0
+ 80002ea8: 01f00193 li gp,31
+ 80002eac: 0fdf1263 bne t5,t4,80002f90 <fail>
+
+0000000080002eb0 <test_32>:
+ 80002eb0: 00000213 li tp,0
+ 80002eb4: 00d00113 li sp,13
+ 80002eb8: 00000013 nop
+ 80002ebc: 00700093 li ra,7
+ 80002ec0: 0020af33 slt t5,ra,sp
+ 80002ec4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ec8: 00200293 li t0,2
+ 80002ecc: fe5214e3 bne tp,t0,80002eb4 <test_32+0x4>
+ 80002ed0: 00100e93 li t4,1
+ 80002ed4: 02000193 li gp,32
+ 80002ed8: 0bdf1c63 bne t5,t4,80002f90 <fail>
+
+0000000080002edc <test_33>:
+ 80002edc: 00000213 li tp,0
+ 80002ee0: 00d00113 li sp,13
+ 80002ee4: 00000013 nop
+ 80002ee8: 01300093 li ra,19
+ 80002eec: 00000013 nop
+ 80002ef0: 0020af33 slt t5,ra,sp
+ 80002ef4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ef8: 00200293 li t0,2
+ 80002efc: fe5212e3 bne tp,t0,80002ee0 <test_33+0x4>
+ 80002f00: 00000e93 li t4,0
+ 80002f04: 02100193 li gp,33
+ 80002f08: 09df1463 bne t5,t4,80002f90 <fail>
+
+0000000080002f0c <test_34>:
+ 80002f0c: 00000213 li tp,0
+ 80002f10: 00d00113 li sp,13
+ 80002f14: 00000013 nop
+ 80002f18: 00000013 nop
+ 80002f1c: 00600093 li ra,6
+ 80002f20: 0020af33 slt t5,ra,sp
+ 80002f24: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002f28: 00200293 li t0,2
+ 80002f2c: fe5212e3 bne tp,t0,80002f10 <test_34+0x4>
+ 80002f30: 00100e93 li t4,1
+ 80002f34: 02200193 li gp,34
+ 80002f38: 05df1c63 bne t5,t4,80002f90 <fail>
+
+0000000080002f3c <test_35>:
+ 80002f3c: fff00093 li ra,-1
+ 80002f40: 00102133 sgtz sp,ra
+ 80002f44: 00000e93 li t4,0
+ 80002f48: 02300193 li gp,35
+ 80002f4c: 05d11263 bne sp,t4,80002f90 <fail>
+
+0000000080002f50 <test_36>:
+ 80002f50: fff00093 li ra,-1
+ 80002f54: 0000a133 sltz sp,ra
+ 80002f58: 00100e93 li t4,1
+ 80002f5c: 02400193 li gp,36
+ 80002f60: 03d11863 bne sp,t4,80002f90 <fail>
+
+0000000080002f64 <test_37>:
+ 80002f64: 000020b3 sltz ra,zero
+ 80002f68: 00000e93 li t4,0
+ 80002f6c: 02500193 li gp,37
+ 80002f70: 03d09063 bne ra,t4,80002f90 <fail>
+
+0000000080002f74 <test_38>:
+ 80002f74: 01000093 li ra,16
+ 80002f78: 01e00113 li sp,30
+ 80002f7c: 0020a033 slt zero,ra,sp
+ 80002f80: 00000e93 li t4,0
+ 80002f84: 02600193 li gp,38
+ 80002f88: 01d01463 bne zero,t4,80002f90 <fail>
+ 80002f8c: 00301a63 bne zero,gp,80002fa0 <pass>
+
+0000000080002f90 <fail>:
+ 80002f90: 00119513 slli a0,gp,0x1
+ 80002f94: 00050063 beqz a0,80002f94 <fail+0x4>
+ 80002f98: 00156513 ori a0,a0,1
+ 80002f9c: 00000073 ecall
+
+0000000080002fa0 <pass>:
+ 80002fa0: 00100513 li a0,1
+ 80002fa4: 00000073 ecall
+ 80002fa8: c0001073 unimp
diff --git a/test/tests/rv64ui-v-slt.elf b/test/tests/rv64ui-v-slt.elf
new file mode 100644
index 0000000..318b70d
--- /dev/null
+++ b/test/tests/rv64ui-v-slt.elf
Binary files differ
diff --git a/test/tests/rv64ui-v-slti.dump b/test/tests/rv64ui-v-slti.dump
new file mode 100644
index 0000000..56b3965
--- /dev/null
+++ b/test/tests/rv64ui-v-slti.dump
@@ -0,0 +1,1043 @@
+
+rv64ui-v-slti: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <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: 6b810113 addi sp,sp,1720 # 800086d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00001617 auipc a2,0x1
+ 80002318: cec60613 addi a2,a2,-788 # 80003000 <begin_signature>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00005797 auipc a5,0x5
+ 80002334: 4b878793 addi a5,a5,1208 # 800077e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00005717 auipc a4,0x5
+ 80002348: 49c70713 addi a4,a4,1180 # 800077e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00005897 auipc a7,0x5
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800077e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00005797 auipc a5,0x5
+ 80002384: 07078793 addi a5,a5,112 # 800073f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf8810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00005797 auipc a5,0x5
+ 80002448: 3807be23 sd zero,924(a5) # 800077e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00001697 auipc a3,0x1
+ 8000245c: 90068693 addi a3,a3,-1792 # 80002d58 <pass+0xc>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00001617 auipc a2,0x1
+ 800024b8: 93460613 addi a2,a2,-1740 # 80002de8 <pass+0x9c>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00001617 auipc a2,0x1
+ 80002508: 8fc60613 addi a2,a2,-1796 # 80002e00 <pass+0xb4>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00001697 auipc a3,0x1
+ 80002558: 84c68693 addi a3,a3,-1972 # 80002da0 <pass+0x54>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00001697 auipc a3,0x1
+ 80002674: 86868693 addi a3,a3,-1944 # 80002ed8 <pass+0x18c>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00000617 auipc a2,0x0
+ 800026cc: 7e860613 addi a2,a2,2024 # 80002eb0 <pass+0x164>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00005d17 auipc s10,0x5
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800073f0 <user_mapping>
+ 80002724: 00001b97 auipc s7,0x1
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80003000 <begin_signature>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00005a17 auipc s4,0x5
+ 80002738: 0aca0a13 addi s4,s4,172 # 800077e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00005717 auipc a4,0x5
+ 8000274c: 08f73c23 sd a5,152(a4) # 800077e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00005717 auipc a4,0x5
+ 800027d4: 00f73823 sd a5,16(a4) # 800077e0 <freelist_tail>
+ 800027d8: 00005717 auipc a4,0x5
+ 800027dc: 00f73823 sd a5,16(a4) # 800077e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 71c68693 addi a3,a3,1820 # 80002f08 <pass+0x1bc>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 63c68693 addi a3,a3,1596 # 80002e78 <pass+0x12c>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 5cc68693 addi a3,a3,1484 # 80002e40 <pass+0xf4>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00001697 auipc a3,0x1
+ 800028e0: 72468693 addi a3,a3,1828 # 80004000 <begin_signature+0x1000>
+ 800028e4: 00002717 auipc a4,0x2
+ 800028e8: 71c70713 addi a4,a4,1820 # 80005000 <begin_signature+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00003797 auipc a5,0x3
+ 800028f8: 70c78793 addi a5,a5,1804 # 80006000 <begin_signature+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00000897 auipc a7,0x0
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80003000 <begin_signature>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00001697 auipc a3,0x1
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80003ff8 <begin_signature+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00000617 auipc a2,0x0
+ 80002938: 6cc60613 addi a2,a2,1740 # 80003000 <begin_signature>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00003697 auipc a3,0x3
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80005ff8 <begin_signature+0x2ff8>
+ 8000294c: 00001717 auipc a4,0x1
+ 80002950: 6af73a23 sd a5,1716(a4) # 80004000 <begin_signature+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00004697 auipc a3,0x4
+ 800029c0: 64468693 addi a3,a3,1604 # 80007000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00005617 auipc a2,0x5
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800077e8 <freelist_head>
+ 800029d4: 00005797 auipc a5,0x5
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800077e0 <freelist_tail>
+ 800029dc: 00005317 auipc t1,0x5
+ 800029e0: a1430313 addi t1,t1,-1516 # 800073f0 <user_mapping>
+ 800029e4: 00800793 li a5,8
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00005797 auipc a5,0x5
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800073e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 01e147b7 lui a5,0x1e14
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: 4e578793 addi a5,a5,1253 # 1e144e5 <_start-0x7e1ebb1b>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 00000093 li ra,0
+ 80002acc: 0000af13 slti t5,ra,0
+ 80002ad0: 00000e93 li t4,0
+ 80002ad4: 00200193 li gp,2
+ 80002ad8: 27df1263 bne t5,t4,80002d3c <fail>
+
+0000000080002adc <test_3>:
+ 80002adc: 00100093 li ra,1
+ 80002ae0: 0010af13 slti t5,ra,1
+ 80002ae4: 00000e93 li t4,0
+ 80002ae8: 00300193 li gp,3
+ 80002aec: 25df1863 bne t5,t4,80002d3c <fail>
+
+0000000080002af0 <test_4>:
+ 80002af0: 00300093 li ra,3
+ 80002af4: 0070af13 slti t5,ra,7
+ 80002af8: 00100e93 li t4,1
+ 80002afc: 00400193 li gp,4
+ 80002b00: 23df1e63 bne t5,t4,80002d3c <fail>
+
+0000000080002b04 <test_5>:
+ 80002b04: 00700093 li ra,7
+ 80002b08: 0030af13 slti t5,ra,3
+ 80002b0c: 00000e93 li t4,0
+ 80002b10: 00500193 li gp,5
+ 80002b14: 23df1463 bne t5,t4,80002d3c <fail>
+
+0000000080002b18 <test_6>:
+ 80002b18: 00000093 li ra,0
+ 80002b1c: 8000af13 slti t5,ra,-2048
+ 80002b20: 00000e93 li t4,0
+ 80002b24: 00600193 li gp,6
+ 80002b28: 21df1a63 bne t5,t4,80002d3c <fail>
+
+0000000080002b2c <test_7>:
+ 80002b2c: 800000b7 lui ra,0x80000
+ 80002b30: 0000af13 slti t5,ra,0
+ 80002b34: 00100e93 li t4,1
+ 80002b38: 00700193 li gp,7
+ 80002b3c: 21df1063 bne t5,t4,80002d3c <fail>
+
+0000000080002b40 <test_8>:
+ 80002b40: 800000b7 lui ra,0x80000
+ 80002b44: 8000af13 slti t5,ra,-2048
+ 80002b48: 00100e93 li t4,1
+ 80002b4c: 00800193 li gp,8
+ 80002b50: 1fdf1663 bne t5,t4,80002d3c <fail>
+
+0000000080002b54 <test_9>:
+ 80002b54: 00000093 li ra,0
+ 80002b58: 7ff0af13 slti t5,ra,2047
+ 80002b5c: 00100e93 li t4,1
+ 80002b60: 00900193 li gp,9
+ 80002b64: 1ddf1c63 bne t5,t4,80002d3c <fail>
+
+0000000080002b68 <test_10>:
+ 80002b68: 800000b7 lui ra,0x80000
+ 80002b6c: fff0809b addiw ra,ra,-1
+ 80002b70: 0000af13 slti t5,ra,0
+ 80002b74: 00000e93 li t4,0
+ 80002b78: 00a00193 li gp,10
+ 80002b7c: 1ddf1063 bne t5,t4,80002d3c <fail>
+
+0000000080002b80 <test_11>:
+ 80002b80: 800000b7 lui ra,0x80000
+ 80002b84: fff0809b addiw ra,ra,-1
+ 80002b88: 7ff0af13 slti t5,ra,2047
+ 80002b8c: 00000e93 li t4,0
+ 80002b90: 00b00193 li gp,11
+ 80002b94: 1bdf1463 bne t5,t4,80002d3c <fail>
+
+0000000080002b98 <test_12>:
+ 80002b98: 800000b7 lui ra,0x80000
+ 80002b9c: 7ff0af13 slti t5,ra,2047
+ 80002ba0: 00100e93 li t4,1
+ 80002ba4: 00c00193 li gp,12
+ 80002ba8: 19df1a63 bne t5,t4,80002d3c <fail>
+
+0000000080002bac <test_13>:
+ 80002bac: 800000b7 lui ra,0x80000
+ 80002bb0: fff0809b addiw ra,ra,-1
+ 80002bb4: 8000af13 slti t5,ra,-2048
+ 80002bb8: 00000e93 li t4,0
+ 80002bbc: 00d00193 li gp,13
+ 80002bc0: 17df1e63 bne t5,t4,80002d3c <fail>
+
+0000000080002bc4 <test_14>:
+ 80002bc4: 00000093 li ra,0
+ 80002bc8: fff0af13 slti t5,ra,-1
+ 80002bcc: 00000e93 li t4,0
+ 80002bd0: 00e00193 li gp,14
+ 80002bd4: 17df1463 bne t5,t4,80002d3c <fail>
+
+0000000080002bd8 <test_15>:
+ 80002bd8: fff00093 li ra,-1
+ 80002bdc: 0010af13 slti t5,ra,1
+ 80002be0: 00100e93 li t4,1
+ 80002be4: 00f00193 li gp,15
+ 80002be8: 15df1a63 bne t5,t4,80002d3c <fail>
+
+0000000080002bec <test_16>:
+ 80002bec: fff00093 li ra,-1
+ 80002bf0: fff0af13 slti t5,ra,-1
+ 80002bf4: 00000e93 li t4,0
+ 80002bf8: 01000193 li gp,16
+ 80002bfc: 15df1063 bne t5,t4,80002d3c <fail>
+
+0000000080002c00 <test_17>:
+ 80002c00: 00b00093 li ra,11
+ 80002c04: 00d0a093 slti ra,ra,13
+ 80002c08: 00100e93 li t4,1
+ 80002c0c: 01100193 li gp,17
+ 80002c10: 13d09663 bne ra,t4,80002d3c <fail>
+
+0000000080002c14 <test_18>:
+ 80002c14: 00000213 li tp,0
+ 80002c18: 00f00093 li ra,15
+ 80002c1c: 00a0af13 slti t5,ra,10
+ 80002c20: 000f0313 mv t1,t5
+ 80002c24: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c28: 00200293 li t0,2
+ 80002c2c: fe5216e3 bne tp,t0,80002c18 <test_18+0x4>
+ 80002c30: 00000e93 li t4,0
+ 80002c34: 01200193 li gp,18
+ 80002c38: 11d31263 bne t1,t4,80002d3c <fail>
+
+0000000080002c3c <test_19>:
+ 80002c3c: 00000213 li tp,0
+ 80002c40: 00a00093 li ra,10
+ 80002c44: 0100af13 slti t5,ra,16
+ 80002c48: 00000013 nop
+ 80002c4c: 000f0313 mv t1,t5
+ 80002c50: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c54: 00200293 li t0,2
+ 80002c58: fe5214e3 bne tp,t0,80002c40 <test_19+0x4>
+ 80002c5c: 00100e93 li t4,1
+ 80002c60: 01300193 li gp,19
+ 80002c64: 0dd31c63 bne t1,t4,80002d3c <fail>
+
+0000000080002c68 <test_20>:
+ 80002c68: 00000213 li tp,0
+ 80002c6c: 01000093 li ra,16
+ 80002c70: 0090af13 slti t5,ra,9
+ 80002c74: 00000013 nop
+ 80002c78: 00000013 nop
+ 80002c7c: 000f0313 mv t1,t5
+ 80002c80: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c84: 00200293 li t0,2
+ 80002c88: fe5212e3 bne tp,t0,80002c6c <test_20+0x4>
+ 80002c8c: 00000e93 li t4,0
+ 80002c90: 01400193 li gp,20
+ 80002c94: 0bd31463 bne t1,t4,80002d3c <fail>
+
+0000000080002c98 <test_21>:
+ 80002c98: 00000213 li tp,0
+ 80002c9c: 00b00093 li ra,11
+ 80002ca0: 00f0af13 slti t5,ra,15
+ 80002ca4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ca8: 00200293 li t0,2
+ 80002cac: fe5218e3 bne tp,t0,80002c9c <test_21+0x4>
+ 80002cb0: 00100e93 li t4,1
+ 80002cb4: 01500193 li gp,21
+ 80002cb8: 09df1263 bne t5,t4,80002d3c <fail>
+
+0000000080002cbc <test_22>:
+ 80002cbc: 00000213 li tp,0
+ 80002cc0: 01100093 li ra,17
+ 80002cc4: 00000013 nop
+ 80002cc8: 0080af13 slti t5,ra,8
+ 80002ccc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002cd0: 00200293 li t0,2
+ 80002cd4: fe5216e3 bne tp,t0,80002cc0 <test_22+0x4>
+ 80002cd8: 00000e93 li t4,0
+ 80002cdc: 01600193 li gp,22
+ 80002ce0: 05df1e63 bne t5,t4,80002d3c <fail>
+
+0000000080002ce4 <test_23>:
+ 80002ce4: 00000213 li tp,0
+ 80002ce8: 00c00093 li ra,12
+ 80002cec: 00000013 nop
+ 80002cf0: 00000013 nop
+ 80002cf4: 00e0af13 slti t5,ra,14
+ 80002cf8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002cfc: 00200293 li t0,2
+ 80002d00: fe5214e3 bne tp,t0,80002ce8 <test_23+0x4>
+ 80002d04: 00100e93 li t4,1
+ 80002d08: 01700193 li gp,23
+ 80002d0c: 03df1863 bne t5,t4,80002d3c <fail>
+
+0000000080002d10 <test_24>:
+ 80002d10: fff02093 slti ra,zero,-1
+ 80002d14: 00000e93 li t4,0
+ 80002d18: 01800193 li gp,24
+ 80002d1c: 03d09063 bne ra,t4,80002d3c <fail>
+
+0000000080002d20 <test_25>:
+ 80002d20: 00ff00b7 lui ra,0xff0
+ 80002d24: 0ff0809b addiw ra,ra,255
+ 80002d28: fff0a013 slti zero,ra,-1
+ 80002d2c: 00000e93 li t4,0
+ 80002d30: 01900193 li gp,25
+ 80002d34: 01d01463 bne zero,t4,80002d3c <fail>
+ 80002d38: 00301a63 bne zero,gp,80002d4c <pass>
+
+0000000080002d3c <fail>:
+ 80002d3c: 00119513 slli a0,gp,0x1
+ 80002d40: 00050063 beqz a0,80002d40 <fail+0x4>
+ 80002d44: 00156513 ori a0,a0,1
+ 80002d48: 00000073 ecall
+
+0000000080002d4c <pass>:
+ 80002d4c: 00100513 li a0,1
+ 80002d50: 00000073 ecall
+ 80002d54: c0001073 unimp
diff --git a/test/tests/rv64ui-v-slti.elf b/test/tests/rv64ui-v-slti.elf
new file mode 100644
index 0000000..477b704
--- /dev/null
+++ b/test/tests/rv64ui-v-slti.elf
Binary files differ
diff --git a/test/tests/rv64ui-v-sltiu.dump b/test/tests/rv64ui-v-sltiu.dump
new file mode 100644
index 0000000..98f8b1a
--- /dev/null
+++ b/test/tests/rv64ui-v-sltiu.dump
@@ -0,0 +1,1043 @@
+
+rv64ui-v-sltiu: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <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: 6b810113 addi sp,sp,1720 # 800086d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00001617 auipc a2,0x1
+ 80002318: cec60613 addi a2,a2,-788 # 80003000 <begin_signature>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00005797 auipc a5,0x5
+ 80002334: 4b878793 addi a5,a5,1208 # 800077e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00005717 auipc a4,0x5
+ 80002348: 49c70713 addi a4,a4,1180 # 800077e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00005897 auipc a7,0x5
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800077e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00005797 auipc a5,0x5
+ 80002384: 07078793 addi a5,a5,112 # 800073f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf8810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00005797 auipc a5,0x5
+ 80002448: 3807be23 sd zero,924(a5) # 800077e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00001697 auipc a3,0x1
+ 8000245c: 90068693 addi a3,a3,-1792 # 80002d58 <pass+0xc>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00001617 auipc a2,0x1
+ 800024b8: 93460613 addi a2,a2,-1740 # 80002de8 <pass+0x9c>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00001617 auipc a2,0x1
+ 80002508: 8fc60613 addi a2,a2,-1796 # 80002e00 <pass+0xb4>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00001697 auipc a3,0x1
+ 80002558: 84c68693 addi a3,a3,-1972 # 80002da0 <pass+0x54>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00001697 auipc a3,0x1
+ 80002674: 86868693 addi a3,a3,-1944 # 80002ed8 <pass+0x18c>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00000617 auipc a2,0x0
+ 800026cc: 7e860613 addi a2,a2,2024 # 80002eb0 <pass+0x164>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00005d17 auipc s10,0x5
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800073f0 <user_mapping>
+ 80002724: 00001b97 auipc s7,0x1
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80003000 <begin_signature>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00005a17 auipc s4,0x5
+ 80002738: 0aca0a13 addi s4,s4,172 # 800077e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00005717 auipc a4,0x5
+ 8000274c: 08f73c23 sd a5,152(a4) # 800077e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00005717 auipc a4,0x5
+ 800027d4: 00f73823 sd a5,16(a4) # 800077e0 <freelist_tail>
+ 800027d8: 00005717 auipc a4,0x5
+ 800027dc: 00f73823 sd a5,16(a4) # 800077e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 71c68693 addi a3,a3,1820 # 80002f08 <pass+0x1bc>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 63c68693 addi a3,a3,1596 # 80002e78 <pass+0x12c>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 5cc68693 addi a3,a3,1484 # 80002e40 <pass+0xf4>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00001697 auipc a3,0x1
+ 800028e0: 72468693 addi a3,a3,1828 # 80004000 <begin_signature+0x1000>
+ 800028e4: 00002717 auipc a4,0x2
+ 800028e8: 71c70713 addi a4,a4,1820 # 80005000 <begin_signature+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00003797 auipc a5,0x3
+ 800028f8: 70c78793 addi a5,a5,1804 # 80006000 <begin_signature+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00000897 auipc a7,0x0
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80003000 <begin_signature>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00001697 auipc a3,0x1
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80003ff8 <begin_signature+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00000617 auipc a2,0x0
+ 80002938: 6cc60613 addi a2,a2,1740 # 80003000 <begin_signature>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00003697 auipc a3,0x3
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80005ff8 <begin_signature+0x2ff8>
+ 8000294c: 00001717 auipc a4,0x1
+ 80002950: 6af73a23 sd a5,1716(a4) # 80004000 <begin_signature+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00004697 auipc a3,0x4
+ 800029c0: 64468693 addi a3,a3,1604 # 80007000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00005617 auipc a2,0x5
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800077e8 <freelist_head>
+ 800029d4: 00005797 auipc a5,0x5
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800077e0 <freelist_tail>
+ 800029dc: 00005317 auipc t1,0x5
+ 800029e0: a1430313 addi t1,t1,-1516 # 800073f0 <user_mapping>
+ 800029e4: 02100793 li a5,33
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00005797 auipc a5,0x5
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800073e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 04ec47b7 lui a5,0x4ec4
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: b3078793 addi a5,a5,-1232 # 4ec3b30 <_start-0x7b13c4d0>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 00000093 li ra,0
+ 80002acc: 0000bf13 sltiu t5,ra,0
+ 80002ad0: 00000e93 li t4,0
+ 80002ad4: 00200193 li gp,2
+ 80002ad8: 27df1263 bne t5,t4,80002d3c <fail>
+
+0000000080002adc <test_3>:
+ 80002adc: 00100093 li ra,1
+ 80002ae0: 0010bf13 seqz t5,ra
+ 80002ae4: 00000e93 li t4,0
+ 80002ae8: 00300193 li gp,3
+ 80002aec: 25df1863 bne t5,t4,80002d3c <fail>
+
+0000000080002af0 <test_4>:
+ 80002af0: 00300093 li ra,3
+ 80002af4: 0070bf13 sltiu t5,ra,7
+ 80002af8: 00100e93 li t4,1
+ 80002afc: 00400193 li gp,4
+ 80002b00: 23df1e63 bne t5,t4,80002d3c <fail>
+
+0000000080002b04 <test_5>:
+ 80002b04: 00700093 li ra,7
+ 80002b08: 0030bf13 sltiu t5,ra,3
+ 80002b0c: 00000e93 li t4,0
+ 80002b10: 00500193 li gp,5
+ 80002b14: 23df1463 bne t5,t4,80002d3c <fail>
+
+0000000080002b18 <test_6>:
+ 80002b18: 00000093 li ra,0
+ 80002b1c: 8000bf13 sltiu t5,ra,-2048
+ 80002b20: 00100e93 li t4,1
+ 80002b24: 00600193 li gp,6
+ 80002b28: 21df1a63 bne t5,t4,80002d3c <fail>
+
+0000000080002b2c <test_7>:
+ 80002b2c: 800000b7 lui ra,0x80000
+ 80002b30: 0000bf13 sltiu t5,ra,0
+ 80002b34: 00000e93 li t4,0
+ 80002b38: 00700193 li gp,7
+ 80002b3c: 21df1063 bne t5,t4,80002d3c <fail>
+
+0000000080002b40 <test_8>:
+ 80002b40: 800000b7 lui ra,0x80000
+ 80002b44: 8000bf13 sltiu t5,ra,-2048
+ 80002b48: 00100e93 li t4,1
+ 80002b4c: 00800193 li gp,8
+ 80002b50: 1fdf1663 bne t5,t4,80002d3c <fail>
+
+0000000080002b54 <test_9>:
+ 80002b54: 00000093 li ra,0
+ 80002b58: 7ff0bf13 sltiu t5,ra,2047
+ 80002b5c: 00100e93 li t4,1
+ 80002b60: 00900193 li gp,9
+ 80002b64: 1ddf1c63 bne t5,t4,80002d3c <fail>
+
+0000000080002b68 <test_10>:
+ 80002b68: 800000b7 lui ra,0x80000
+ 80002b6c: fff0809b addiw ra,ra,-1
+ 80002b70: 0000bf13 sltiu t5,ra,0
+ 80002b74: 00000e93 li t4,0
+ 80002b78: 00a00193 li gp,10
+ 80002b7c: 1ddf1063 bne t5,t4,80002d3c <fail>
+
+0000000080002b80 <test_11>:
+ 80002b80: 800000b7 lui ra,0x80000
+ 80002b84: fff0809b addiw ra,ra,-1
+ 80002b88: 7ff0bf13 sltiu t5,ra,2047
+ 80002b8c: 00000e93 li t4,0
+ 80002b90: 00b00193 li gp,11
+ 80002b94: 1bdf1463 bne t5,t4,80002d3c <fail>
+
+0000000080002b98 <test_12>:
+ 80002b98: 800000b7 lui ra,0x80000
+ 80002b9c: 7ff0bf13 sltiu t5,ra,2047
+ 80002ba0: 00000e93 li t4,0
+ 80002ba4: 00c00193 li gp,12
+ 80002ba8: 19df1a63 bne t5,t4,80002d3c <fail>
+
+0000000080002bac <test_13>:
+ 80002bac: 800000b7 lui ra,0x80000
+ 80002bb0: fff0809b addiw ra,ra,-1
+ 80002bb4: 8000bf13 sltiu t5,ra,-2048
+ 80002bb8: 00100e93 li t4,1
+ 80002bbc: 00d00193 li gp,13
+ 80002bc0: 17df1e63 bne t5,t4,80002d3c <fail>
+
+0000000080002bc4 <test_14>:
+ 80002bc4: 00000093 li ra,0
+ 80002bc8: fff0bf13 sltiu t5,ra,-1
+ 80002bcc: 00100e93 li t4,1
+ 80002bd0: 00e00193 li gp,14
+ 80002bd4: 17df1463 bne t5,t4,80002d3c <fail>
+
+0000000080002bd8 <test_15>:
+ 80002bd8: fff00093 li ra,-1
+ 80002bdc: 0010bf13 seqz t5,ra
+ 80002be0: 00000e93 li t4,0
+ 80002be4: 00f00193 li gp,15
+ 80002be8: 15df1a63 bne t5,t4,80002d3c <fail>
+
+0000000080002bec <test_16>:
+ 80002bec: fff00093 li ra,-1
+ 80002bf0: fff0bf13 sltiu t5,ra,-1
+ 80002bf4: 00000e93 li t4,0
+ 80002bf8: 01000193 li gp,16
+ 80002bfc: 15df1063 bne t5,t4,80002d3c <fail>
+
+0000000080002c00 <test_17>:
+ 80002c00: 00b00093 li ra,11
+ 80002c04: 00d0b093 sltiu ra,ra,13
+ 80002c08: 00100e93 li t4,1
+ 80002c0c: 01100193 li gp,17
+ 80002c10: 13d09663 bne ra,t4,80002d3c <fail>
+
+0000000080002c14 <test_18>:
+ 80002c14: 00000213 li tp,0
+ 80002c18: 00f00093 li ra,15
+ 80002c1c: 00a0bf13 sltiu t5,ra,10
+ 80002c20: 000f0313 mv t1,t5
+ 80002c24: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c28: 00200293 li t0,2
+ 80002c2c: fe5216e3 bne tp,t0,80002c18 <test_18+0x4>
+ 80002c30: 00000e93 li t4,0
+ 80002c34: 01200193 li gp,18
+ 80002c38: 11d31263 bne t1,t4,80002d3c <fail>
+
+0000000080002c3c <test_19>:
+ 80002c3c: 00000213 li tp,0
+ 80002c40: 00a00093 li ra,10
+ 80002c44: 0100bf13 sltiu t5,ra,16
+ 80002c48: 00000013 nop
+ 80002c4c: 000f0313 mv t1,t5
+ 80002c50: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c54: 00200293 li t0,2
+ 80002c58: fe5214e3 bne tp,t0,80002c40 <test_19+0x4>
+ 80002c5c: 00100e93 li t4,1
+ 80002c60: 01300193 li gp,19
+ 80002c64: 0dd31c63 bne t1,t4,80002d3c <fail>
+
+0000000080002c68 <test_20>:
+ 80002c68: 00000213 li tp,0
+ 80002c6c: 01000093 li ra,16
+ 80002c70: 0090bf13 sltiu t5,ra,9
+ 80002c74: 00000013 nop
+ 80002c78: 00000013 nop
+ 80002c7c: 000f0313 mv t1,t5
+ 80002c80: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c84: 00200293 li t0,2
+ 80002c88: fe5212e3 bne tp,t0,80002c6c <test_20+0x4>
+ 80002c8c: 00000e93 li t4,0
+ 80002c90: 01400193 li gp,20
+ 80002c94: 0bd31463 bne t1,t4,80002d3c <fail>
+
+0000000080002c98 <test_21>:
+ 80002c98: 00000213 li tp,0
+ 80002c9c: 00b00093 li ra,11
+ 80002ca0: 00f0bf13 sltiu t5,ra,15
+ 80002ca4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ca8: 00200293 li t0,2
+ 80002cac: fe5218e3 bne tp,t0,80002c9c <test_21+0x4>
+ 80002cb0: 00100e93 li t4,1
+ 80002cb4: 01500193 li gp,21
+ 80002cb8: 09df1263 bne t5,t4,80002d3c <fail>
+
+0000000080002cbc <test_22>:
+ 80002cbc: 00000213 li tp,0
+ 80002cc0: 01100093 li ra,17
+ 80002cc4: 00000013 nop
+ 80002cc8: 0080bf13 sltiu t5,ra,8
+ 80002ccc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002cd0: 00200293 li t0,2
+ 80002cd4: fe5216e3 bne tp,t0,80002cc0 <test_22+0x4>
+ 80002cd8: 00000e93 li t4,0
+ 80002cdc: 01600193 li gp,22
+ 80002ce0: 05df1e63 bne t5,t4,80002d3c <fail>
+
+0000000080002ce4 <test_23>:
+ 80002ce4: 00000213 li tp,0
+ 80002ce8: 00c00093 li ra,12
+ 80002cec: 00000013 nop
+ 80002cf0: 00000013 nop
+ 80002cf4: 00e0bf13 sltiu t5,ra,14
+ 80002cf8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002cfc: 00200293 li t0,2
+ 80002d00: fe5214e3 bne tp,t0,80002ce8 <test_23+0x4>
+ 80002d04: 00100e93 li t4,1
+ 80002d08: 01700193 li gp,23
+ 80002d0c: 03df1863 bne t5,t4,80002d3c <fail>
+
+0000000080002d10 <test_24>:
+ 80002d10: fff03093 sltiu ra,zero,-1
+ 80002d14: 00100e93 li t4,1
+ 80002d18: 01800193 li gp,24
+ 80002d1c: 03d09063 bne ra,t4,80002d3c <fail>
+
+0000000080002d20 <test_25>:
+ 80002d20: 00ff00b7 lui ra,0xff0
+ 80002d24: 0ff0809b addiw ra,ra,255
+ 80002d28: fff0b013 sltiu zero,ra,-1
+ 80002d2c: 00000e93 li t4,0
+ 80002d30: 01900193 li gp,25
+ 80002d34: 01d01463 bne zero,t4,80002d3c <fail>
+ 80002d38: 00301a63 bne zero,gp,80002d4c <pass>
+
+0000000080002d3c <fail>:
+ 80002d3c: 00119513 slli a0,gp,0x1
+ 80002d40: 00050063 beqz a0,80002d40 <fail+0x4>
+ 80002d44: 00156513 ori a0,a0,1
+ 80002d48: 00000073 ecall
+
+0000000080002d4c <pass>:
+ 80002d4c: 00100513 li a0,1
+ 80002d50: 00000073 ecall
+ 80002d54: c0001073 unimp
diff --git a/test/tests/rv64ui-v-sltiu.elf b/test/tests/rv64ui-v-sltiu.elf
new file mode 100644
index 0000000..197c500
--- /dev/null
+++ b/test/tests/rv64ui-v-sltiu.elf
Binary files differ
diff --git a/test/tests/rv64ui-v-sltu.dump b/test/tests/rv64ui-v-sltu.dump
new file mode 100644
index 0000000..281d657
--- /dev/null
+++ b/test/tests/rv64ui-v-sltu.dump
@@ -0,0 +1,1235 @@
+
+rv64ui-v-sltu: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <handle_reset>:
+ 8000000c: 00000297 auipc t0,0x0
+ 80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+ 80000014: 30529073 csrw mtvec,t0
+ 80000018: 00009117 auipc sp,0x9
+ 8000001c: 6b810113 addi sp,sp,1720 # 800096d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00002617 auipc a2,0x2
+ 80002318: cec60613 addi a2,a2,-788 # 80004000 <begin_signature>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00006797 auipc a5,0x6
+ 80002334: 4b878793 addi a5,a5,1208 # 800087e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00006717 auipc a4,0x6
+ 80002348: 49c70713 addi a4,a4,1180 # 800087e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00006897 auipc a7,0x6
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800087e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00006797 auipc a5,0x6
+ 80002384: 07078793 addi a5,a5,112 # 800083f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf7810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00006797 auipc a5,0x6
+ 80002448: 3807be23 sd zero,924(a5) # 800087e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00001697 auipc a3,0x1
+ 8000245c: b9868693 addi a3,a3,-1128 # 80002ff0 <pass+0xc>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00001617 auipc a2,0x1
+ 800024b8: bcc60613 addi a2,a2,-1076 # 80003080 <pass+0x9c>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00001617 auipc a2,0x1
+ 80002508: b9460613 addi a2,a2,-1132 # 80003098 <pass+0xb4>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00001697 auipc a3,0x1
+ 80002558: ae468693 addi a3,a3,-1308 # 80003038 <pass+0x54>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00001697 auipc a3,0x1
+ 80002674: b0068693 addi a3,a3,-1280 # 80003170 <pass+0x18c>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00001617 auipc a2,0x1
+ 800026cc: a8060613 addi a2,a2,-1408 # 80003148 <pass+0x164>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00006d17 auipc s10,0x6
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800083f0 <user_mapping>
+ 80002724: 00002b97 auipc s7,0x2
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80004000 <begin_signature>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00006a17 auipc s4,0x6
+ 80002738: 0aca0a13 addi s4,s4,172 # 800087e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00006717 auipc a4,0x6
+ 8000274c: 08f73c23 sd a5,152(a4) # 800087e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00006717 auipc a4,0x6
+ 800027d4: 00f73823 sd a5,16(a4) # 800087e0 <freelist_tail>
+ 800027d8: 00006717 auipc a4,0x6
+ 800027dc: 00f73823 sd a5,16(a4) # 800087e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00001697 auipc a3,0x1
+ 800027f0: 9b468693 addi a3,a3,-1612 # 800031a0 <pass+0x1bc>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00001697 auipc a3,0x1
+ 80002840: 8d468693 addi a3,a3,-1836 # 80003110 <pass+0x12c>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00001697 auipc a3,0x1
+ 80002878: 86468693 addi a3,a3,-1948 # 800030d8 <pass+0xf4>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00002697 auipc a3,0x2
+ 800028e0: 72468693 addi a3,a3,1828 # 80005000 <begin_signature+0x1000>
+ 800028e4: 00003717 auipc a4,0x3
+ 800028e8: 71c70713 addi a4,a4,1820 # 80006000 <begin_signature+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00004797 auipc a5,0x4
+ 800028f8: 70c78793 addi a5,a5,1804 # 80007000 <begin_signature+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00001897 auipc a7,0x1
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80004000 <begin_signature>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00002697 auipc a3,0x2
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80004ff8 <begin_signature+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00001617 auipc a2,0x1
+ 80002938: 6cc60613 addi a2,a2,1740 # 80004000 <begin_signature>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00004697 auipc a3,0x4
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80006ff8 <begin_signature+0x2ff8>
+ 8000294c: 00002717 auipc a4,0x2
+ 80002950: 6af73a23 sd a5,1716(a4) # 80005000 <begin_signature+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00005697 auipc a3,0x5
+ 800029c0: 64468693 addi a3,a3,1604 # 80008000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00006617 auipc a2,0x6
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800087e8 <freelist_head>
+ 800029d4: 00006797 auipc a5,0x6
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800087e0 <freelist_tail>
+ 800029dc: 00006317 auipc t1,0x6
+ 800029e0: a1430313 addi t1,t1,-1516 # 800083f0 <user_mapping>
+ 800029e4: 00c00793 li a5,12
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00006797 auipc a5,0x6
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800083e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 069e57b7 lui a5,0x69e5
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: 8d578793 addi a5,a5,-1835 # 69e48d5 <_start-0x7961b72b>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 00000093 li ra,0
+ 80002acc: 00000113 li sp,0
+ 80002ad0: 0020bf33 sltu t5,ra,sp
+ 80002ad4: 00000e93 li t4,0
+ 80002ad8: 00200193 li gp,2
+ 80002adc: 4fdf1c63 bne t5,t4,80002fd4 <fail>
+
+0000000080002ae0 <test_3>:
+ 80002ae0: 00100093 li ra,1
+ 80002ae4: 00100113 li sp,1
+ 80002ae8: 0020bf33 sltu t5,ra,sp
+ 80002aec: 00000e93 li t4,0
+ 80002af0: 00300193 li gp,3
+ 80002af4: 4fdf1063 bne t5,t4,80002fd4 <fail>
+
+0000000080002af8 <test_4>:
+ 80002af8: 00300093 li ra,3
+ 80002afc: 00700113 li sp,7
+ 80002b00: 0020bf33 sltu t5,ra,sp
+ 80002b04: 00100e93 li t4,1
+ 80002b08: 00400193 li gp,4
+ 80002b0c: 4ddf1463 bne t5,t4,80002fd4 <fail>
+
+0000000080002b10 <test_5>:
+ 80002b10: 00700093 li ra,7
+ 80002b14: 00300113 li sp,3
+ 80002b18: 0020bf33 sltu t5,ra,sp
+ 80002b1c: 00000e93 li t4,0
+ 80002b20: 00500193 li gp,5
+ 80002b24: 4bdf1863 bne t5,t4,80002fd4 <fail>
+
+0000000080002b28 <test_6>:
+ 80002b28: 00000093 li ra,0
+ 80002b2c: 00020137 lui sp,0x20
+ 80002b30: fff1011b addiw sp,sp,-1
+ 80002b34: 00f11113 slli sp,sp,0xf
+ 80002b38: 0020bf33 sltu t5,ra,sp
+ 80002b3c: 00100e93 li t4,1
+ 80002b40: 00600193 li gp,6
+ 80002b44: 49df1863 bne t5,t4,80002fd4 <fail>
+
+0000000080002b48 <test_7>:
+ 80002b48: 0010009b addiw ra,zero,1
+ 80002b4c: 01f09093 slli ra,ra,0x1f
+ 80002b50: 00000113 li sp,0
+ 80002b54: 0020bf33 sltu t5,ra,sp
+ 80002b58: 00000e93 li t4,0
+ 80002b5c: 00700193 li gp,7
+ 80002b60: 47df1a63 bne t5,t4,80002fd4 <fail>
+
+0000000080002b64 <test_8>:
+ 80002b64: 0010009b addiw ra,zero,1
+ 80002b68: 01f09093 slli ra,ra,0x1f
+ 80002b6c: 00020137 lui sp,0x20
+ 80002b70: fff1011b addiw sp,sp,-1
+ 80002b74: 00f11113 slli sp,sp,0xf
+ 80002b78: 0020bf33 sltu t5,ra,sp
+ 80002b7c: 00100e93 li t4,1
+ 80002b80: 00800193 li gp,8
+ 80002b84: 45df1863 bne t5,t4,80002fd4 <fail>
+
+0000000080002b88 <test_9>:
+ 80002b88: 00000093 li ra,0
+ 80002b8c: 00008137 lui sp,0x8
+ 80002b90: fff1011b addiw sp,sp,-1
+ 80002b94: 0020bf33 sltu t5,ra,sp
+ 80002b98: 00100e93 li t4,1
+ 80002b9c: 00900193 li gp,9
+ 80002ba0: 43df1a63 bne t5,t4,80002fd4 <fail>
+
+0000000080002ba4 <test_10>:
+ 80002ba4: 800000b7 lui ra,0x80000
+ 80002ba8: fff0809b addiw ra,ra,-1
+ 80002bac: 00000113 li sp,0
+ 80002bb0: 0020bf33 sltu t5,ra,sp
+ 80002bb4: 00000e93 li t4,0
+ 80002bb8: 00a00193 li gp,10
+ 80002bbc: 41df1c63 bne t5,t4,80002fd4 <fail>
+
+0000000080002bc0 <test_11>:
+ 80002bc0: 800000b7 lui ra,0x80000
+ 80002bc4: fff0809b addiw ra,ra,-1
+ 80002bc8: 00008137 lui sp,0x8
+ 80002bcc: fff1011b addiw sp,sp,-1
+ 80002bd0: 0020bf33 sltu t5,ra,sp
+ 80002bd4: 00000e93 li t4,0
+ 80002bd8: 00b00193 li gp,11
+ 80002bdc: 3fdf1c63 bne t5,t4,80002fd4 <fail>
+
+0000000080002be0 <test_12>:
+ 80002be0: 0010009b addiw ra,zero,1
+ 80002be4: 01f09093 slli ra,ra,0x1f
+ 80002be8: 00008137 lui sp,0x8
+ 80002bec: fff1011b addiw sp,sp,-1
+ 80002bf0: 0020bf33 sltu t5,ra,sp
+ 80002bf4: 00000e93 li t4,0
+ 80002bf8: 00c00193 li gp,12
+ 80002bfc: 3ddf1c63 bne t5,t4,80002fd4 <fail>
+
+0000000080002c00 <test_13>:
+ 80002c00: 800000b7 lui ra,0x80000
+ 80002c04: fff0809b addiw ra,ra,-1
+ 80002c08: 00020137 lui sp,0x20
+ 80002c0c: fff1011b addiw sp,sp,-1
+ 80002c10: 00f11113 slli sp,sp,0xf
+ 80002c14: 0020bf33 sltu t5,ra,sp
+ 80002c18: 00100e93 li t4,1
+ 80002c1c: 00d00193 li gp,13
+ 80002c20: 3bdf1a63 bne t5,t4,80002fd4 <fail>
+
+0000000080002c24 <test_14>:
+ 80002c24: 00000093 li ra,0
+ 80002c28: 0010011b addiw sp,zero,1
+ 80002c2c: 02011113 slli sp,sp,0x20
+ 80002c30: fff10113 addi sp,sp,-1 # 1ffff <_start-0x7ffe0001>
+ 80002c34: 0020bf33 sltu t5,ra,sp
+ 80002c38: 00100e93 li t4,1
+ 80002c3c: 00e00193 li gp,14
+ 80002c40: 39df1a63 bne t5,t4,80002fd4 <fail>
+
+0000000080002c44 <test_15>:
+ 80002c44: 0010009b addiw ra,zero,1
+ 80002c48: 02009093 slli ra,ra,0x20
+ 80002c4c: fff08093 addi ra,ra,-1 # ffffffff7fffffff <_end+0xfffffffeffff780f>
+ 80002c50: 00100113 li sp,1
+ 80002c54: 0020bf33 sltu t5,ra,sp
+ 80002c58: 00000e93 li t4,0
+ 80002c5c: 00f00193 li gp,15
+ 80002c60: 37df1a63 bne t5,t4,80002fd4 <fail>
+
+0000000080002c64 <test_16>:
+ 80002c64: 0010009b addiw ra,zero,1
+ 80002c68: 02009093 slli ra,ra,0x20
+ 80002c6c: fff08093 addi ra,ra,-1
+ 80002c70: 0010011b addiw sp,zero,1
+ 80002c74: 02011113 slli sp,sp,0x20
+ 80002c78: fff10113 addi sp,sp,-1
+ 80002c7c: 0020bf33 sltu t5,ra,sp
+ 80002c80: 00000e93 li t4,0
+ 80002c84: 01000193 li gp,16
+ 80002c88: 35df1663 bne t5,t4,80002fd4 <fail>
+
+0000000080002c8c <test_17>:
+ 80002c8c: 00e00093 li ra,14
+ 80002c90: 00d00113 li sp,13
+ 80002c94: 0020b0b3 sltu ra,ra,sp
+ 80002c98: 00000e93 li t4,0
+ 80002c9c: 01100193 li gp,17
+ 80002ca0: 33d09a63 bne ra,t4,80002fd4 <fail>
+
+0000000080002ca4 <test_18>:
+ 80002ca4: 00b00093 li ra,11
+ 80002ca8: 00d00113 li sp,13
+ 80002cac: 0020b133 sltu sp,ra,sp
+ 80002cb0: 00100e93 li t4,1
+ 80002cb4: 01200193 li gp,18
+ 80002cb8: 31d11e63 bne sp,t4,80002fd4 <fail>
+
+0000000080002cbc <test_19>:
+ 80002cbc: 00d00093 li ra,13
+ 80002cc0: 0010b0b3 sltu ra,ra,ra
+ 80002cc4: 00000e93 li t4,0
+ 80002cc8: 01300193 li gp,19
+ 80002ccc: 31d09463 bne ra,t4,80002fd4 <fail>
+
+0000000080002cd0 <test_20>:
+ 80002cd0: 00000213 li tp,0
+ 80002cd4: 00b00093 li ra,11
+ 80002cd8: 00d00113 li sp,13
+ 80002cdc: 0020bf33 sltu t5,ra,sp
+ 80002ce0: 000f0313 mv t1,t5
+ 80002ce4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ce8: 00200293 li t0,2
+ 80002cec: fe5214e3 bne tp,t0,80002cd4 <test_20+0x4>
+ 80002cf0: 00100e93 li t4,1
+ 80002cf4: 01400193 li gp,20
+ 80002cf8: 2dd31e63 bne t1,t4,80002fd4 <fail>
+
+0000000080002cfc <test_21>:
+ 80002cfc: 00000213 li tp,0
+ 80002d00: 00e00093 li ra,14
+ 80002d04: 00d00113 li sp,13
+ 80002d08: 0020bf33 sltu t5,ra,sp
+ 80002d0c: 00000013 nop
+ 80002d10: 000f0313 mv t1,t5
+ 80002d14: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d18: 00200293 li t0,2
+ 80002d1c: fe5212e3 bne tp,t0,80002d00 <test_21+0x4>
+ 80002d20: 00000e93 li t4,0
+ 80002d24: 01500193 li gp,21
+ 80002d28: 2bd31663 bne t1,t4,80002fd4 <fail>
+
+0000000080002d2c <test_22>:
+ 80002d2c: 00000213 li tp,0
+ 80002d30: 00c00093 li ra,12
+ 80002d34: 00d00113 li sp,13
+ 80002d38: 0020bf33 sltu t5,ra,sp
+ 80002d3c: 00000013 nop
+ 80002d40: 00000013 nop
+ 80002d44: 000f0313 mv t1,t5
+ 80002d48: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d4c: 00200293 li t0,2
+ 80002d50: fe5210e3 bne tp,t0,80002d30 <test_22+0x4>
+ 80002d54: 00100e93 li t4,1
+ 80002d58: 01600193 li gp,22
+ 80002d5c: 27d31c63 bne t1,t4,80002fd4 <fail>
+
+0000000080002d60 <test_23>:
+ 80002d60: 00000213 li tp,0
+ 80002d64: 00e00093 li ra,14
+ 80002d68: 00d00113 li sp,13
+ 80002d6c: 0020bf33 sltu t5,ra,sp
+ 80002d70: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d74: 00200293 li t0,2
+ 80002d78: fe5216e3 bne tp,t0,80002d64 <test_23+0x4>
+ 80002d7c: 00000e93 li t4,0
+ 80002d80: 01700193 li gp,23
+ 80002d84: 25df1863 bne t5,t4,80002fd4 <fail>
+
+0000000080002d88 <test_24>:
+ 80002d88: 00000213 li tp,0
+ 80002d8c: 00b00093 li ra,11
+ 80002d90: 00d00113 li sp,13
+ 80002d94: 00000013 nop
+ 80002d98: 0020bf33 sltu t5,ra,sp
+ 80002d9c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002da0: 00200293 li t0,2
+ 80002da4: fe5214e3 bne tp,t0,80002d8c <test_24+0x4>
+ 80002da8: 00100e93 li t4,1
+ 80002dac: 01800193 li gp,24
+ 80002db0: 23df1263 bne t5,t4,80002fd4 <fail>
+
+0000000080002db4 <test_25>:
+ 80002db4: 00000213 li tp,0
+ 80002db8: 00f00093 li ra,15
+ 80002dbc: 00d00113 li sp,13
+ 80002dc0: 00000013 nop
+ 80002dc4: 00000013 nop
+ 80002dc8: 0020bf33 sltu t5,ra,sp
+ 80002dcc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002dd0: 00200293 li t0,2
+ 80002dd4: fe5212e3 bne tp,t0,80002db8 <test_25+0x4>
+ 80002dd8: 00000e93 li t4,0
+ 80002ddc: 01900193 li gp,25
+ 80002de0: 1fdf1a63 bne t5,t4,80002fd4 <fail>
+
+0000000080002de4 <test_26>:
+ 80002de4: 00000213 li tp,0
+ 80002de8: 00a00093 li ra,10
+ 80002dec: 00000013 nop
+ 80002df0: 00d00113 li sp,13
+ 80002df4: 0020bf33 sltu t5,ra,sp
+ 80002df8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002dfc: 00200293 li t0,2
+ 80002e00: fe5214e3 bne tp,t0,80002de8 <test_26+0x4>
+ 80002e04: 00100e93 li t4,1
+ 80002e08: 01a00193 li gp,26
+ 80002e0c: 1ddf1463 bne t5,t4,80002fd4 <fail>
+
+0000000080002e10 <test_27>:
+ 80002e10: 00000213 li tp,0
+ 80002e14: 01000093 li ra,16
+ 80002e18: 00000013 nop
+ 80002e1c: 00d00113 li sp,13
+ 80002e20: 00000013 nop
+ 80002e24: 0020bf33 sltu t5,ra,sp
+ 80002e28: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e2c: 00200293 li t0,2
+ 80002e30: fe5212e3 bne tp,t0,80002e14 <test_27+0x4>
+ 80002e34: 00000e93 li t4,0
+ 80002e38: 01b00193 li gp,27
+ 80002e3c: 19df1c63 bne t5,t4,80002fd4 <fail>
+
+0000000080002e40 <test_28>:
+ 80002e40: 00000213 li tp,0
+ 80002e44: 00900093 li ra,9
+ 80002e48: 00000013 nop
+ 80002e4c: 00000013 nop
+ 80002e50: 00d00113 li sp,13
+ 80002e54: 0020bf33 sltu t5,ra,sp
+ 80002e58: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e5c: 00200293 li t0,2
+ 80002e60: fe5212e3 bne tp,t0,80002e44 <test_28+0x4>
+ 80002e64: 00100e93 li t4,1
+ 80002e68: 01c00193 li gp,28
+ 80002e6c: 17df1463 bne t5,t4,80002fd4 <fail>
+
+0000000080002e70 <test_29>:
+ 80002e70: 00000213 li tp,0
+ 80002e74: 00d00113 li sp,13
+ 80002e78: 01100093 li ra,17
+ 80002e7c: 0020bf33 sltu t5,ra,sp
+ 80002e80: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e84: 00200293 li t0,2
+ 80002e88: fe5216e3 bne tp,t0,80002e74 <test_29+0x4>
+ 80002e8c: 00000e93 li t4,0
+ 80002e90: 01d00193 li gp,29
+ 80002e94: 15df1063 bne t5,t4,80002fd4 <fail>
+
+0000000080002e98 <test_30>:
+ 80002e98: 00000213 li tp,0
+ 80002e9c: 00d00113 li sp,13
+ 80002ea0: 00800093 li ra,8
+ 80002ea4: 00000013 nop
+ 80002ea8: 0020bf33 sltu t5,ra,sp
+ 80002eac: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002eb0: 00200293 li t0,2
+ 80002eb4: fe5214e3 bne tp,t0,80002e9c <test_30+0x4>
+ 80002eb8: 00100e93 li t4,1
+ 80002ebc: 01e00193 li gp,30
+ 80002ec0: 11df1a63 bne t5,t4,80002fd4 <fail>
+
+0000000080002ec4 <test_31>:
+ 80002ec4: 00000213 li tp,0
+ 80002ec8: 00d00113 li sp,13
+ 80002ecc: 01200093 li ra,18
+ 80002ed0: 00000013 nop
+ 80002ed4: 00000013 nop
+ 80002ed8: 0020bf33 sltu t5,ra,sp
+ 80002edc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ee0: 00200293 li t0,2
+ 80002ee4: fe5212e3 bne tp,t0,80002ec8 <test_31+0x4>
+ 80002ee8: 00000e93 li t4,0
+ 80002eec: 01f00193 li gp,31
+ 80002ef0: 0fdf1263 bne t5,t4,80002fd4 <fail>
+
+0000000080002ef4 <test_32>:
+ 80002ef4: 00000213 li tp,0
+ 80002ef8: 00d00113 li sp,13
+ 80002efc: 00000013 nop
+ 80002f00: 00700093 li ra,7
+ 80002f04: 0020bf33 sltu t5,ra,sp
+ 80002f08: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002f0c: 00200293 li t0,2
+ 80002f10: fe5214e3 bne tp,t0,80002ef8 <test_32+0x4>
+ 80002f14: 00100e93 li t4,1
+ 80002f18: 02000193 li gp,32
+ 80002f1c: 0bdf1c63 bne t5,t4,80002fd4 <fail>
+
+0000000080002f20 <test_33>:
+ 80002f20: 00000213 li tp,0
+ 80002f24: 00d00113 li sp,13
+ 80002f28: 00000013 nop
+ 80002f2c: 01300093 li ra,19
+ 80002f30: 00000013 nop
+ 80002f34: 0020bf33 sltu t5,ra,sp
+ 80002f38: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002f3c: 00200293 li t0,2
+ 80002f40: fe5212e3 bne tp,t0,80002f24 <test_33+0x4>
+ 80002f44: 00000e93 li t4,0
+ 80002f48: 02100193 li gp,33
+ 80002f4c: 09df1463 bne t5,t4,80002fd4 <fail>
+
+0000000080002f50 <test_34>:
+ 80002f50: 00000213 li tp,0
+ 80002f54: 00d00113 li sp,13
+ 80002f58: 00000013 nop
+ 80002f5c: 00000013 nop
+ 80002f60: 00600093 li ra,6
+ 80002f64: 0020bf33 sltu t5,ra,sp
+ 80002f68: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002f6c: 00200293 li t0,2
+ 80002f70: fe5212e3 bne tp,t0,80002f54 <test_34+0x4>
+ 80002f74: 00100e93 li t4,1
+ 80002f78: 02200193 li gp,34
+ 80002f7c: 05df1c63 bne t5,t4,80002fd4 <fail>
+
+0000000080002f80 <test_35>:
+ 80002f80: fff00093 li ra,-1
+ 80002f84: 00103133 snez sp,ra
+ 80002f88: 00100e93 li t4,1
+ 80002f8c: 02300193 li gp,35
+ 80002f90: 05d11263 bne sp,t4,80002fd4 <fail>
+
+0000000080002f94 <test_36>:
+ 80002f94: fff00093 li ra,-1
+ 80002f98: 0000b133 sltu sp,ra,zero
+ 80002f9c: 00000e93 li t4,0
+ 80002fa0: 02400193 li gp,36
+ 80002fa4: 03d11863 bne sp,t4,80002fd4 <fail>
+
+0000000080002fa8 <test_37>:
+ 80002fa8: 000030b3 snez ra,zero
+ 80002fac: 00000e93 li t4,0
+ 80002fb0: 02500193 li gp,37
+ 80002fb4: 03d09063 bne ra,t4,80002fd4 <fail>
+
+0000000080002fb8 <test_38>:
+ 80002fb8: 01000093 li ra,16
+ 80002fbc: 01e00113 li sp,30
+ 80002fc0: 0020b033 sltu zero,ra,sp
+ 80002fc4: 00000e93 li t4,0
+ 80002fc8: 02600193 li gp,38
+ 80002fcc: 01d01463 bne zero,t4,80002fd4 <fail>
+ 80002fd0: 00301a63 bne zero,gp,80002fe4 <pass>
+
+0000000080002fd4 <fail>:
+ 80002fd4: 00119513 slli a0,gp,0x1
+ 80002fd8: 00050063 beqz a0,80002fd8 <fail+0x4>
+ 80002fdc: 00156513 ori a0,a0,1
+ 80002fe0: 00000073 ecall
+
+0000000080002fe4 <pass>:
+ 80002fe4: 00100513 li a0,1
+ 80002fe8: 00000073 ecall
+ 80002fec: c0001073 unimp
diff --git a/test/tests/rv64ui-v-sltu.elf b/test/tests/rv64ui-v-sltu.elf
new file mode 100644
index 0000000..0bd9f90
--- /dev/null
+++ b/test/tests/rv64ui-v-sltu.elf
Binary files differ
diff --git a/test/tests/rv64ui-v-sra.dump b/test/tests/rv64ui-v-sra.dump
new file mode 100644
index 0000000..37705cb
--- /dev/null
+++ b/test/tests/rv64ui-v-sra.dump
@@ -0,0 +1,1281 @@
+
+rv64ui-v-sra: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <handle_reset>:
+ 8000000c: 00000297 auipc t0,0x0
+ 80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+ 80000014: 30529073 csrw mtvec,t0
+ 80000018: 00009117 auipc sp,0x9
+ 8000001c: 6b810113 addi sp,sp,1720 # 800096d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00002617 auipc a2,0x2
+ 80002318: cec60613 addi a2,a2,-788 # 80004000 <begin_signature>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00006797 auipc a5,0x6
+ 80002334: 4b878793 addi a5,a5,1208 # 800087e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00006717 auipc a4,0x6
+ 80002348: 49c70713 addi a4,a4,1180 # 800087e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00006897 auipc a7,0x6
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800087e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00006797 auipc a5,0x6
+ 80002384: 07078793 addi a5,a5,112 # 800083f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf7810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00006797 auipc a5,0x6
+ 80002448: 3807be23 sd zero,924(a5) # 800087e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00001697 auipc a3,0x1
+ 8000245c: c2868693 addi a3,a3,-984 # 80003080 <pass+0xc>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00001617 auipc a2,0x1
+ 800024b8: c5c60613 addi a2,a2,-932 # 80003110 <pass+0x9c>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00001617 auipc a2,0x1
+ 80002508: c2460613 addi a2,a2,-988 # 80003128 <pass+0xb4>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00001697 auipc a3,0x1
+ 80002558: b7468693 addi a3,a3,-1164 # 800030c8 <pass+0x54>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00001697 auipc a3,0x1
+ 80002674: b9068693 addi a3,a3,-1136 # 80003200 <pass+0x18c>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00001617 auipc a2,0x1
+ 800026cc: b1060613 addi a2,a2,-1264 # 800031d8 <pass+0x164>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00006d17 auipc s10,0x6
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800083f0 <user_mapping>
+ 80002724: 00002b97 auipc s7,0x2
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80004000 <begin_signature>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00006a17 auipc s4,0x6
+ 80002738: 0aca0a13 addi s4,s4,172 # 800087e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00006717 auipc a4,0x6
+ 8000274c: 08f73c23 sd a5,152(a4) # 800087e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00006717 auipc a4,0x6
+ 800027d4: 00f73823 sd a5,16(a4) # 800087e0 <freelist_tail>
+ 800027d8: 00006717 auipc a4,0x6
+ 800027dc: 00f73823 sd a5,16(a4) # 800087e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00001697 auipc a3,0x1
+ 800027f0: a4468693 addi a3,a3,-1468 # 80003230 <pass+0x1bc>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00001697 auipc a3,0x1
+ 80002840: 96468693 addi a3,a3,-1692 # 800031a0 <pass+0x12c>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00001697 auipc a3,0x1
+ 80002878: 8f468693 addi a3,a3,-1804 # 80003168 <pass+0xf4>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00002697 auipc a3,0x2
+ 800028e0: 72468693 addi a3,a3,1828 # 80005000 <begin_signature+0x1000>
+ 800028e4: 00003717 auipc a4,0x3
+ 800028e8: 71c70713 addi a4,a4,1820 # 80006000 <begin_signature+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00004797 auipc a5,0x4
+ 800028f8: 70c78793 addi a5,a5,1804 # 80007000 <begin_signature+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00001897 auipc a7,0x1
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80004000 <begin_signature>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00002697 auipc a3,0x2
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80004ff8 <begin_signature+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00001617 auipc a2,0x1
+ 80002938: 6cc60613 addi a2,a2,1740 # 80004000 <begin_signature>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00004697 auipc a3,0x4
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80006ff8 <begin_signature+0x2ff8>
+ 8000294c: 00002717 auipc a4,0x2
+ 80002950: 6af73a23 sd a5,1716(a4) # 80005000 <begin_signature+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00005697 auipc a3,0x5
+ 800029c0: 64468693 addi a3,a3,1604 # 80008000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00006617 auipc a2,0x6
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800087e8 <freelist_head>
+ 800029d4: 00006797 auipc a5,0x6
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800087e0 <freelist_tail>
+ 800029dc: 00006317 auipc t1,0x6
+ 800029e0: a1430313 addi t1,t1,-1516 # 800083f0 <user_mapping>
+ 800029e4: 02e00793 li a5,46
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00006797 auipc a5,0x6
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800083e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 0a2f77b7 lui a5,0xa2f7
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: 09e78793 addi a5,a5,158 # a2f709e <_start-0x75d08f62>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 800000b7 lui ra,0x80000
+ 80002acc: 00000113 li sp,0
+ 80002ad0: 4020df33 sra t5,ra,sp
+ 80002ad4: 80000eb7 lui t4,0x80000
+ 80002ad8: 00200193 li gp,2
+ 80002adc: 59df1463 bne t5,t4,80003064 <fail>
+
+0000000080002ae0 <test_3>:
+ 80002ae0: 800000b7 lui ra,0x80000
+ 80002ae4: 00100113 li sp,1
+ 80002ae8: 4020df33 sra t5,ra,sp
+ 80002aec: c0000eb7 lui t4,0xc0000
+ 80002af0: 00300193 li gp,3
+ 80002af4: 57df1863 bne t5,t4,80003064 <fail>
+
+0000000080002af8 <test_4>:
+ 80002af8: 800000b7 lui ra,0x80000
+ 80002afc: 00700113 li sp,7
+ 80002b00: 4020df33 sra t5,ra,sp
+ 80002b04: ff000eb7 lui t4,0xff000
+ 80002b08: 00400193 li gp,4
+ 80002b0c: 55df1c63 bne t5,t4,80003064 <fail>
+
+0000000080002b10 <test_5>:
+ 80002b10: 800000b7 lui ra,0x80000
+ 80002b14: 00e00113 li sp,14
+ 80002b18: 4020df33 sra t5,ra,sp
+ 80002b1c: fffe0eb7 lui t4,0xfffe0
+ 80002b20: 00500193 li gp,5
+ 80002b24: 55df1063 bne t5,t4,80003064 <fail>
+
+0000000080002b28 <test_6>:
+ 80002b28: 800000b7 lui ra,0x80000
+ 80002b2c: 0010809b addiw ra,ra,1
+ 80002b30: 01f00113 li sp,31
+ 80002b34: 4020df33 sra t5,ra,sp
+ 80002b38: fff00e93 li t4,-1
+ 80002b3c: 00600193 li gp,6
+ 80002b40: 53df1263 bne t5,t4,80003064 <fail>
+
+0000000080002b44 <test_7>:
+ 80002b44: 800000b7 lui ra,0x80000
+ 80002b48: fff0809b addiw ra,ra,-1
+ 80002b4c: 00000113 li sp,0
+ 80002b50: 4020df33 sra t5,ra,sp
+ 80002b54: 80000eb7 lui t4,0x80000
+ 80002b58: fffe8e9b addiw t4,t4,-1
+ 80002b5c: 00700193 li gp,7
+ 80002b60: 51df1263 bne t5,t4,80003064 <fail>
+
+0000000080002b64 <test_8>:
+ 80002b64: 800000b7 lui ra,0x80000
+ 80002b68: fff0809b addiw ra,ra,-1
+ 80002b6c: 00100113 li sp,1
+ 80002b70: 4020df33 sra t5,ra,sp
+ 80002b74: 40000eb7 lui t4,0x40000
+ 80002b78: fffe8e9b addiw t4,t4,-1
+ 80002b7c: 00800193 li gp,8
+ 80002b80: 4fdf1263 bne t5,t4,80003064 <fail>
+
+0000000080002b84 <test_9>:
+ 80002b84: 800000b7 lui ra,0x80000
+ 80002b88: fff0809b addiw ra,ra,-1
+ 80002b8c: 00700113 li sp,7
+ 80002b90: 4020df33 sra t5,ra,sp
+ 80002b94: 01000eb7 lui t4,0x1000
+ 80002b98: fffe8e9b addiw t4,t4,-1
+ 80002b9c: 00900193 li gp,9
+ 80002ba0: 4ddf1263 bne t5,t4,80003064 <fail>
+
+0000000080002ba4 <test_10>:
+ 80002ba4: 800000b7 lui ra,0x80000
+ 80002ba8: fff0809b addiw ra,ra,-1
+ 80002bac: 00e00113 li sp,14
+ 80002bb0: 4020df33 sra t5,ra,sp
+ 80002bb4: 00020eb7 lui t4,0x20
+ 80002bb8: fffe8e9b addiw t4,t4,-1
+ 80002bbc: 00a00193 li gp,10
+ 80002bc0: 4bdf1263 bne t5,t4,80003064 <fail>
+
+0000000080002bc4 <test_11>:
+ 80002bc4: 800000b7 lui ra,0x80000
+ 80002bc8: fff0809b addiw ra,ra,-1
+ 80002bcc: 01f00113 li sp,31
+ 80002bd0: 4020df33 sra t5,ra,sp
+ 80002bd4: 00000e93 li t4,0
+ 80002bd8: 00b00193 li gp,11
+ 80002bdc: 49df1463 bne t5,t4,80003064 <fail>
+
+0000000080002be0 <test_12>:
+ 80002be0: 818180b7 lui ra,0x81818
+ 80002be4: 1810809b addiw ra,ra,385
+ 80002be8: 00000113 li sp,0
+ 80002bec: 4020df33 sra t5,ra,sp
+ 80002bf0: 81818eb7 lui t4,0x81818
+ 80002bf4: 181e8e9b addiw t4,t4,385
+ 80002bf8: 00c00193 li gp,12
+ 80002bfc: 47df1463 bne t5,t4,80003064 <fail>
+
+0000000080002c00 <test_13>:
+ 80002c00: 818180b7 lui ra,0x81818
+ 80002c04: 1810809b addiw ra,ra,385
+ 80002c08: 00100113 li sp,1
+ 80002c0c: 4020df33 sra t5,ra,sp
+ 80002c10: c0c0ceb7 lui t4,0xc0c0c
+ 80002c14: 0c0e8e9b addiw t4,t4,192
+ 80002c18: 00d00193 li gp,13
+ 80002c1c: 45df1463 bne t5,t4,80003064 <fail>
+
+0000000080002c20 <test_14>:
+ 80002c20: 818180b7 lui ra,0x81818
+ 80002c24: 1810809b addiw ra,ra,385
+ 80002c28: 00700113 li sp,7
+ 80002c2c: 4020df33 sra t5,ra,sp
+ 80002c30: ff030eb7 lui t4,0xff030
+ 80002c34: 303e8e9b addiw t4,t4,771
+ 80002c38: 00e00193 li gp,14
+ 80002c3c: 43df1463 bne t5,t4,80003064 <fail>
+
+0000000080002c40 <test_15>:
+ 80002c40: 818180b7 lui ra,0x81818
+ 80002c44: 1810809b addiw ra,ra,385
+ 80002c48: 00e00113 li sp,14
+ 80002c4c: 4020df33 sra t5,ra,sp
+ 80002c50: fffe0eb7 lui t4,0xfffe0
+ 80002c54: 606e8e9b addiw t4,t4,1542
+ 80002c58: 00f00193 li gp,15
+ 80002c5c: 41df1463 bne t5,t4,80003064 <fail>
+
+0000000080002c60 <test_16>:
+ 80002c60: 818180b7 lui ra,0x81818
+ 80002c64: 1810809b addiw ra,ra,385
+ 80002c68: 01f00113 li sp,31
+ 80002c6c: 4020df33 sra t5,ra,sp
+ 80002c70: fff00e93 li t4,-1
+ 80002c74: 01000193 li gp,16
+ 80002c78: 3fdf1663 bne t5,t4,80003064 <fail>
+
+0000000080002c7c <test_17>:
+ 80002c7c: 818180b7 lui ra,0x81818
+ 80002c80: 1810809b addiw ra,ra,385
+ 80002c84: fc000113 li sp,-64
+ 80002c88: 4020df33 sra t5,ra,sp
+ 80002c8c: 81818eb7 lui t4,0x81818
+ 80002c90: 181e8e9b addiw t4,t4,385
+ 80002c94: 01100193 li gp,17
+ 80002c98: 3ddf1663 bne t5,t4,80003064 <fail>
+
+0000000080002c9c <test_18>:
+ 80002c9c: 818180b7 lui ra,0x81818
+ 80002ca0: 1810809b addiw ra,ra,385
+ 80002ca4: fc100113 li sp,-63
+ 80002ca8: 4020df33 sra t5,ra,sp
+ 80002cac: c0c0ceb7 lui t4,0xc0c0c
+ 80002cb0: 0c0e8e9b addiw t4,t4,192
+ 80002cb4: 01200193 li gp,18
+ 80002cb8: 3bdf1663 bne t5,t4,80003064 <fail>
+
+0000000080002cbc <test_19>:
+ 80002cbc: 818180b7 lui ra,0x81818
+ 80002cc0: 1810809b addiw ra,ra,385
+ 80002cc4: fc700113 li sp,-57
+ 80002cc8: 4020df33 sra t5,ra,sp
+ 80002ccc: ff030eb7 lui t4,0xff030
+ 80002cd0: 303e8e9b addiw t4,t4,771
+ 80002cd4: 01300193 li gp,19
+ 80002cd8: 39df1663 bne t5,t4,80003064 <fail>
+
+0000000080002cdc <test_20>:
+ 80002cdc: 818180b7 lui ra,0x81818
+ 80002ce0: 1810809b addiw ra,ra,385
+ 80002ce4: fce00113 li sp,-50
+ 80002ce8: 4020df33 sra t5,ra,sp
+ 80002cec: fffe0eb7 lui t4,0xfffe0
+ 80002cf0: 606e8e9b addiw t4,t4,1542
+ 80002cf4: 01400193 li gp,20
+ 80002cf8: 37df1663 bne t5,t4,80003064 <fail>
+
+0000000080002cfc <test_21>:
+ 80002cfc: 818180b7 lui ra,0x81818
+ 80002d00: 1810809b addiw ra,ra,385
+ 80002d04: fff00113 li sp,-1
+ 80002d08: 4020df33 sra t5,ra,sp
+ 80002d0c: fff00e93 li t4,-1
+ 80002d10: 01500193 li gp,21
+ 80002d14: 35df1863 bne t5,t4,80003064 <fail>
+
+0000000080002d18 <test_22>:
+ 80002d18: 800000b7 lui ra,0x80000
+ 80002d1c: 00700113 li sp,7
+ 80002d20: 4020d0b3 sra ra,ra,sp
+ 80002d24: ff000eb7 lui t4,0xff000
+ 80002d28: 01600193 li gp,22
+ 80002d2c: 33d09c63 bne ra,t4,80003064 <fail>
+
+0000000080002d30 <test_23>:
+ 80002d30: 800000b7 lui ra,0x80000
+ 80002d34: 00e00113 li sp,14
+ 80002d38: 4020d133 sra sp,ra,sp
+ 80002d3c: fffe0eb7 lui t4,0xfffe0
+ 80002d40: 01700193 li gp,23
+ 80002d44: 33d11063 bne sp,t4,80003064 <fail>
+
+0000000080002d48 <test_24>:
+ 80002d48: 00700093 li ra,7
+ 80002d4c: 4010d0b3 sra ra,ra,ra
+ 80002d50: 00000e93 li t4,0
+ 80002d54: 01800193 li gp,24
+ 80002d58: 31d09663 bne ra,t4,80003064 <fail>
+
+0000000080002d5c <test_25>:
+ 80002d5c: 00000213 li tp,0
+ 80002d60: 800000b7 lui ra,0x80000
+ 80002d64: 00700113 li sp,7
+ 80002d68: 4020df33 sra t5,ra,sp
+ 80002d6c: 000f0313 mv t1,t5
+ 80002d70: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d74: 00200293 li t0,2
+ 80002d78: fe5214e3 bne tp,t0,80002d60 <test_25+0x4>
+ 80002d7c: ff000eb7 lui t4,0xff000
+ 80002d80: 01900193 li gp,25
+ 80002d84: 2fd31063 bne t1,t4,80003064 <fail>
+
+0000000080002d88 <test_26>:
+ 80002d88: 00000213 li tp,0
+ 80002d8c: 800000b7 lui ra,0x80000
+ 80002d90: 00e00113 li sp,14
+ 80002d94: 4020df33 sra t5,ra,sp
+ 80002d98: 00000013 nop
+ 80002d9c: 000f0313 mv t1,t5
+ 80002da0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002da4: 00200293 li t0,2
+ 80002da8: fe5212e3 bne tp,t0,80002d8c <test_26+0x4>
+ 80002dac: fffe0eb7 lui t4,0xfffe0
+ 80002db0: 01a00193 li gp,26
+ 80002db4: 2bd31863 bne t1,t4,80003064 <fail>
+
+0000000080002db8 <test_27>:
+ 80002db8: 00000213 li tp,0
+ 80002dbc: 800000b7 lui ra,0x80000
+ 80002dc0: 01f00113 li sp,31
+ 80002dc4: 4020df33 sra t5,ra,sp
+ 80002dc8: 00000013 nop
+ 80002dcc: 00000013 nop
+ 80002dd0: 000f0313 mv t1,t5
+ 80002dd4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002dd8: 00200293 li t0,2
+ 80002ddc: fe5210e3 bne tp,t0,80002dbc <test_27+0x4>
+ 80002de0: fff00e93 li t4,-1
+ 80002de4: 01b00193 li gp,27
+ 80002de8: 27d31e63 bne t1,t4,80003064 <fail>
+
+0000000080002dec <test_28>:
+ 80002dec: 00000213 li tp,0
+ 80002df0: 800000b7 lui ra,0x80000
+ 80002df4: 00700113 li sp,7
+ 80002df8: 4020df33 sra t5,ra,sp
+ 80002dfc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e00: 00200293 li t0,2
+ 80002e04: fe5216e3 bne tp,t0,80002df0 <test_28+0x4>
+ 80002e08: ff000eb7 lui t4,0xff000
+ 80002e0c: 01c00193 li gp,28
+ 80002e10: 25df1a63 bne t5,t4,80003064 <fail>
+
+0000000080002e14 <test_29>:
+ 80002e14: 00000213 li tp,0
+ 80002e18: 800000b7 lui ra,0x80000
+ 80002e1c: 00e00113 li sp,14
+ 80002e20: 00000013 nop
+ 80002e24: 4020df33 sra t5,ra,sp
+ 80002e28: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e2c: 00200293 li t0,2
+ 80002e30: fe5214e3 bne tp,t0,80002e18 <test_29+0x4>
+ 80002e34: fffe0eb7 lui t4,0xfffe0
+ 80002e38: 01d00193 li gp,29
+ 80002e3c: 23df1463 bne t5,t4,80003064 <fail>
+
+0000000080002e40 <test_30>:
+ 80002e40: 00000213 li tp,0
+ 80002e44: 800000b7 lui ra,0x80000
+ 80002e48: 01f00113 li sp,31
+ 80002e4c: 00000013 nop
+ 80002e50: 00000013 nop
+ 80002e54: 4020df33 sra t5,ra,sp
+ 80002e58: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e5c: 00200293 li t0,2
+ 80002e60: fe5212e3 bne tp,t0,80002e44 <test_30+0x4>
+ 80002e64: fff00e93 li t4,-1
+ 80002e68: 01e00193 li gp,30
+ 80002e6c: 1fdf1c63 bne t5,t4,80003064 <fail>
+
+0000000080002e70 <test_31>:
+ 80002e70: 00000213 li tp,0
+ 80002e74: 800000b7 lui ra,0x80000
+ 80002e78: 00000013 nop
+ 80002e7c: 00700113 li sp,7
+ 80002e80: 4020df33 sra t5,ra,sp
+ 80002e84: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e88: 00200293 li t0,2
+ 80002e8c: fe5214e3 bne tp,t0,80002e74 <test_31+0x4>
+ 80002e90: ff000eb7 lui t4,0xff000
+ 80002e94: 01f00193 li gp,31
+ 80002e98: 1ddf1663 bne t5,t4,80003064 <fail>
+
+0000000080002e9c <test_32>:
+ 80002e9c: 00000213 li tp,0
+ 80002ea0: 800000b7 lui ra,0x80000
+ 80002ea4: 00000013 nop
+ 80002ea8: 00e00113 li sp,14
+ 80002eac: 00000013 nop
+ 80002eb0: 4020df33 sra t5,ra,sp
+ 80002eb4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002eb8: 00200293 li t0,2
+ 80002ebc: fe5212e3 bne tp,t0,80002ea0 <test_32+0x4>
+ 80002ec0: fffe0eb7 lui t4,0xfffe0
+ 80002ec4: 02000193 li gp,32
+ 80002ec8: 19df1e63 bne t5,t4,80003064 <fail>
+
+0000000080002ecc <test_33>:
+ 80002ecc: 00000213 li tp,0
+ 80002ed0: 800000b7 lui ra,0x80000
+ 80002ed4: 00000013 nop
+ 80002ed8: 00000013 nop
+ 80002edc: 01f00113 li sp,31
+ 80002ee0: 4020df33 sra t5,ra,sp
+ 80002ee4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ee8: 00200293 li t0,2
+ 80002eec: fe5212e3 bne tp,t0,80002ed0 <test_33+0x4>
+ 80002ef0: fff00e93 li t4,-1
+ 80002ef4: 02100193 li gp,33
+ 80002ef8: 17df1663 bne t5,t4,80003064 <fail>
+
+0000000080002efc <test_34>:
+ 80002efc: 00000213 li tp,0
+ 80002f00: 00700113 li sp,7
+ 80002f04: 800000b7 lui ra,0x80000
+ 80002f08: 4020df33 sra t5,ra,sp
+ 80002f0c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002f10: 00200293 li t0,2
+ 80002f14: fe5216e3 bne tp,t0,80002f00 <test_34+0x4>
+ 80002f18: ff000eb7 lui t4,0xff000
+ 80002f1c: 02200193 li gp,34
+ 80002f20: 15df1263 bne t5,t4,80003064 <fail>
+
+0000000080002f24 <test_35>:
+ 80002f24: 00000213 li tp,0
+ 80002f28: 00e00113 li sp,14
+ 80002f2c: 800000b7 lui ra,0x80000
+ 80002f30: 00000013 nop
+ 80002f34: 4020df33 sra t5,ra,sp
+ 80002f38: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002f3c: 00200293 li t0,2
+ 80002f40: fe5214e3 bne tp,t0,80002f28 <test_35+0x4>
+ 80002f44: fffe0eb7 lui t4,0xfffe0
+ 80002f48: 02300193 li gp,35
+ 80002f4c: 11df1c63 bne t5,t4,80003064 <fail>
+
+0000000080002f50 <test_36>:
+ 80002f50: 00000213 li tp,0
+ 80002f54: 01f00113 li sp,31
+ 80002f58: 800000b7 lui ra,0x80000
+ 80002f5c: 00000013 nop
+ 80002f60: 00000013 nop
+ 80002f64: 4020df33 sra t5,ra,sp
+ 80002f68: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002f6c: 00200293 li t0,2
+ 80002f70: fe5212e3 bne tp,t0,80002f54 <test_36+0x4>
+ 80002f74: fff00e93 li t4,-1
+ 80002f78: 02400193 li gp,36
+ 80002f7c: 0fdf1463 bne t5,t4,80003064 <fail>
+
+0000000080002f80 <test_37>:
+ 80002f80: 00000213 li tp,0
+ 80002f84: 00700113 li sp,7
+ 80002f88: 00000013 nop
+ 80002f8c: 800000b7 lui ra,0x80000
+ 80002f90: 4020df33 sra t5,ra,sp
+ 80002f94: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002f98: 00200293 li t0,2
+ 80002f9c: fe5214e3 bne tp,t0,80002f84 <test_37+0x4>
+ 80002fa0: ff000eb7 lui t4,0xff000
+ 80002fa4: 02500193 li gp,37
+ 80002fa8: 0bdf1e63 bne t5,t4,80003064 <fail>
+
+0000000080002fac <test_38>:
+ 80002fac: 00000213 li tp,0
+ 80002fb0: 00e00113 li sp,14
+ 80002fb4: 00000013 nop
+ 80002fb8: 800000b7 lui ra,0x80000
+ 80002fbc: 00000013 nop
+ 80002fc0: 4020df33 sra t5,ra,sp
+ 80002fc4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002fc8: 00200293 li t0,2
+ 80002fcc: fe5212e3 bne tp,t0,80002fb0 <test_38+0x4>
+ 80002fd0: fffe0eb7 lui t4,0xfffe0
+ 80002fd4: 02600193 li gp,38
+ 80002fd8: 09df1663 bne t5,t4,80003064 <fail>
+
+0000000080002fdc <test_39>:
+ 80002fdc: 00000213 li tp,0
+ 80002fe0: 01f00113 li sp,31
+ 80002fe4: 00000013 nop
+ 80002fe8: 00000013 nop
+ 80002fec: 800000b7 lui ra,0x80000
+ 80002ff0: 4020df33 sra t5,ra,sp
+ 80002ff4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ff8: 00200293 li t0,2
+ 80002ffc: fe5212e3 bne tp,t0,80002fe0 <test_39+0x4>
+ 80003000: fff00e93 li t4,-1
+ 80003004: 02700193 li gp,39
+ 80003008: 05df1e63 bne t5,t4,80003064 <fail>
+
+000000008000300c <test_40>:
+ 8000300c: 00f00093 li ra,15
+ 80003010: 40105133 sra sp,zero,ra
+ 80003014: 00000e93 li t4,0
+ 80003018: 02800193 li gp,40
+ 8000301c: 05d11463 bne sp,t4,80003064 <fail>
+
+0000000080003020 <test_41>:
+ 80003020: 02000093 li ra,32
+ 80003024: 4000d133 sra sp,ra,zero
+ 80003028: 02000e93 li t4,32
+ 8000302c: 02900193 li gp,41
+ 80003030: 03d11a63 bne sp,t4,80003064 <fail>
+
+0000000080003034 <test_42>:
+ 80003034: 400050b3 sra ra,zero,zero
+ 80003038: 00000e93 li t4,0
+ 8000303c: 02a00193 li gp,42
+ 80003040: 03d09263 bne ra,t4,80003064 <fail>
+
+0000000080003044 <test_43>:
+ 80003044: 40000093 li ra,1024
+ 80003048: 00001137 lui sp,0x1
+ 8000304c: 8001011b addiw sp,sp,-2048
+ 80003050: 4020d033 sra zero,ra,sp
+ 80003054: 00000e93 li t4,0
+ 80003058: 02b00193 li gp,43
+ 8000305c: 01d01463 bne zero,t4,80003064 <fail>
+ 80003060: 00301a63 bne zero,gp,80003074 <pass>
+
+0000000080003064 <fail>:
+ 80003064: 00119513 slli a0,gp,0x1
+ 80003068: 00050063 beqz a0,80003068 <fail+0x4>
+ 8000306c: 00156513 ori a0,a0,1
+ 80003070: 00000073 ecall
+
+0000000080003074 <pass>:
+ 80003074: 00100513 li a0,1
+ 80003078: 00000073 ecall
+ 8000307c: c0001073 unimp
diff --git a/test/tests/rv64ui-v-sra.elf b/test/tests/rv64ui-v-sra.elf
new file mode 100644
index 0000000..bfbb9dc
--- /dev/null
+++ b/test/tests/rv64ui-v-sra.elf
Binary files differ
diff --git a/test/tests/rv64ui-v-srai.dump b/test/tests/rv64ui-v-srai.dump
new file mode 100644
index 0000000..8926e55
--- /dev/null
+++ b/test/tests/rv64ui-v-srai.dump
@@ -0,0 +1,1062 @@
+
+rv64ui-v-srai: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <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: 6b810113 addi sp,sp,1720 # 800086d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00001617 auipc a2,0x1
+ 80002318: cec60613 addi a2,a2,-788 # 80003000 <begin_signature>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00005797 auipc a5,0x5
+ 80002334: 4b878793 addi a5,a5,1208 # 800077e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00005717 auipc a4,0x5
+ 80002348: 49c70713 addi a4,a4,1180 # 800077e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00005897 auipc a7,0x5
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800077e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00005797 auipc a5,0x5
+ 80002384: 07078793 addi a5,a5,112 # 800073f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf8810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00005797 auipc a5,0x5
+ 80002448: 3807be23 sd zero,924(a5) # 800077e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00001697 auipc a3,0x1
+ 8000245c: 95068693 addi a3,a3,-1712 # 80002da8 <pass+0x10>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00001617 auipc a2,0x1
+ 800024b8: 98460613 addi a2,a2,-1660 # 80002e38 <pass+0xa0>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00001617 auipc a2,0x1
+ 80002508: 94c60613 addi a2,a2,-1716 # 80002e50 <pass+0xb8>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00001697 auipc a3,0x1
+ 80002558: 89c68693 addi a3,a3,-1892 # 80002df0 <pass+0x58>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00001697 auipc a3,0x1
+ 80002674: 8b868693 addi a3,a3,-1864 # 80002f28 <pass+0x190>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00001617 auipc a2,0x1
+ 800026cc: 83860613 addi a2,a2,-1992 # 80002f00 <pass+0x168>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00005d17 auipc s10,0x5
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800073f0 <user_mapping>
+ 80002724: 00001b97 auipc s7,0x1
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80003000 <begin_signature>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00005a17 auipc s4,0x5
+ 80002738: 0aca0a13 addi s4,s4,172 # 800077e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00005717 auipc a4,0x5
+ 8000274c: 08f73c23 sd a5,152(a4) # 800077e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00005717 auipc a4,0x5
+ 800027d4: 00f73823 sd a5,16(a4) # 800077e0 <freelist_tail>
+ 800027d8: 00005717 auipc a4,0x5
+ 800027dc: 00f73823 sd a5,16(a4) # 800077e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 76c68693 addi a3,a3,1900 # 80002f58 <pass+0x1c0>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 68c68693 addi a3,a3,1676 # 80002ec8 <pass+0x130>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 61c68693 addi a3,a3,1564 # 80002e90 <pass+0xf8>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00001697 auipc a3,0x1
+ 800028e0: 72468693 addi a3,a3,1828 # 80004000 <begin_signature+0x1000>
+ 800028e4: 00002717 auipc a4,0x2
+ 800028e8: 71c70713 addi a4,a4,1820 # 80005000 <begin_signature+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00003797 auipc a5,0x3
+ 800028f8: 70c78793 addi a5,a5,1804 # 80006000 <begin_signature+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00000897 auipc a7,0x0
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80003000 <begin_signature>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00001697 auipc a3,0x1
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80003ff8 <begin_signature+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00000617 auipc a2,0x0
+ 80002938: 6cc60613 addi a2,a2,1740 # 80003000 <begin_signature>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00003697 auipc a3,0x3
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80005ff8 <begin_signature+0x2ff8>
+ 8000294c: 00001717 auipc a4,0x1
+ 80002950: 6af73a23 sd a5,1716(a4) # 80004000 <begin_signature+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00004697 auipc a3,0x4
+ 800029c0: 64468693 addi a3,a3,1604 # 80007000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00005617 auipc a2,0x5
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800077e8 <freelist_head>
+ 800029d4: 00005797 auipc a5,0x5
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800077e0 <freelist_tail>
+ 800029dc: 00005317 auipc t1,0x5
+ 800029e0: a1430313 addi t1,t1,-1516 # 800073f0 <user_mapping>
+ 800029e4: 00400793 li a5,4
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00005797 auipc a5,0x5
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800073e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 00a547b7 lui a5,0xa54
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: f8778793 addi a5,a5,-121 # a53f87 <_start-0x7f5ac079>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: fff0009b addiw ra,zero,-1
+ 80002acc: 02709093 slli ra,ra,0x27
+ 80002ad0: 4000df13 srai t5,ra,0x0
+ 80002ad4: fff00e9b addiw t4,zero,-1
+ 80002ad8: 027e9e93 slli t4,t4,0x27
+ 80002adc: 00200193 li gp,2
+ 80002ae0: 2bdf1463 bne t5,t4,80002d88 <fail>
+
+0000000080002ae4 <test_3>:
+ 80002ae4: 800000b7 lui ra,0x80000
+ 80002ae8: 4010df13 srai t5,ra,0x1
+ 80002aec: c0000eb7 lui t4,0xc0000
+ 80002af0: 00300193 li gp,3
+ 80002af4: 29df1a63 bne t5,t4,80002d88 <fail>
+
+0000000080002af8 <test_4>:
+ 80002af8: 800000b7 lui ra,0x80000
+ 80002afc: 4070df13 srai t5,ra,0x7
+ 80002b00: ff000eb7 lui t4,0xff000
+ 80002b04: 00400193 li gp,4
+ 80002b08: 29df1063 bne t5,t4,80002d88 <fail>
+
+0000000080002b0c <test_5>:
+ 80002b0c: 800000b7 lui ra,0x80000
+ 80002b10: 40e0df13 srai t5,ra,0xe
+ 80002b14: fffe0eb7 lui t4,0xfffe0
+ 80002b18: 00500193 li gp,5
+ 80002b1c: 27df1663 bne t5,t4,80002d88 <fail>
+
+0000000080002b20 <test_6>:
+ 80002b20: 800000b7 lui ra,0x80000
+ 80002b24: 0010809b addiw ra,ra,1
+ 80002b28: 41f0df13 srai t5,ra,0x1f
+ 80002b2c: fff00e93 li t4,-1
+ 80002b30: 00600193 li gp,6
+ 80002b34: 25df1a63 bne t5,t4,80002d88 <fail>
+
+0000000080002b38 <test_7>:
+ 80002b38: 800000b7 lui ra,0x80000
+ 80002b3c: fff0809b addiw ra,ra,-1
+ 80002b40: 4000df13 srai t5,ra,0x0
+ 80002b44: 80000eb7 lui t4,0x80000
+ 80002b48: fffe8e9b addiw t4,t4,-1
+ 80002b4c: 00700193 li gp,7
+ 80002b50: 23df1c63 bne t5,t4,80002d88 <fail>
+
+0000000080002b54 <test_8>:
+ 80002b54: 800000b7 lui ra,0x80000
+ 80002b58: fff0809b addiw ra,ra,-1
+ 80002b5c: 4010df13 srai t5,ra,0x1
+ 80002b60: 40000eb7 lui t4,0x40000
+ 80002b64: fffe8e9b addiw t4,t4,-1
+ 80002b68: 00800193 li gp,8
+ 80002b6c: 21df1e63 bne t5,t4,80002d88 <fail>
+
+0000000080002b70 <test_9>:
+ 80002b70: 800000b7 lui ra,0x80000
+ 80002b74: fff0809b addiw ra,ra,-1
+ 80002b78: 4070df13 srai t5,ra,0x7
+ 80002b7c: 01000eb7 lui t4,0x1000
+ 80002b80: fffe8e9b addiw t4,t4,-1
+ 80002b84: 00900193 li gp,9
+ 80002b88: 21df1063 bne t5,t4,80002d88 <fail>
+
+0000000080002b8c <test_10>:
+ 80002b8c: 800000b7 lui ra,0x80000
+ 80002b90: fff0809b addiw ra,ra,-1
+ 80002b94: 40e0df13 srai t5,ra,0xe
+ 80002b98: 00020eb7 lui t4,0x20
+ 80002b9c: fffe8e9b addiw t4,t4,-1
+ 80002ba0: 00a00193 li gp,10
+ 80002ba4: 1fdf1263 bne t5,t4,80002d88 <fail>
+
+0000000080002ba8 <test_11>:
+ 80002ba8: 800000b7 lui ra,0x80000
+ 80002bac: fff0809b addiw ra,ra,-1
+ 80002bb0: 41f0df13 srai t5,ra,0x1f
+ 80002bb4: 00000e93 li t4,0
+ 80002bb8: 00b00193 li gp,11
+ 80002bbc: 1ddf1663 bne t5,t4,80002d88 <fail>
+
+0000000080002bc0 <test_12>:
+ 80002bc0: 818180b7 lui ra,0x81818
+ 80002bc4: 1810809b addiw ra,ra,385
+ 80002bc8: 4000df13 srai t5,ra,0x0
+ 80002bcc: 81818eb7 lui t4,0x81818
+ 80002bd0: 181e8e9b addiw t4,t4,385
+ 80002bd4: 00c00193 li gp,12
+ 80002bd8: 1bdf1863 bne t5,t4,80002d88 <fail>
+
+0000000080002bdc <test_13>:
+ 80002bdc: 818180b7 lui ra,0x81818
+ 80002be0: 1810809b addiw ra,ra,385
+ 80002be4: 4010df13 srai t5,ra,0x1
+ 80002be8: c0c0ceb7 lui t4,0xc0c0c
+ 80002bec: 0c0e8e9b addiw t4,t4,192
+ 80002bf0: 00d00193 li gp,13
+ 80002bf4: 19df1a63 bne t5,t4,80002d88 <fail>
+
+0000000080002bf8 <test_14>:
+ 80002bf8: 818180b7 lui ra,0x81818
+ 80002bfc: 1810809b addiw ra,ra,385
+ 80002c00: 4070df13 srai t5,ra,0x7
+ 80002c04: ff030eb7 lui t4,0xff030
+ 80002c08: 303e8e9b addiw t4,t4,771
+ 80002c0c: 00e00193 li gp,14
+ 80002c10: 17df1c63 bne t5,t4,80002d88 <fail>
+
+0000000080002c14 <test_15>:
+ 80002c14: 818180b7 lui ra,0x81818
+ 80002c18: 1810809b addiw ra,ra,385
+ 80002c1c: 40e0df13 srai t5,ra,0xe
+ 80002c20: fffe0eb7 lui t4,0xfffe0
+ 80002c24: 606e8e9b addiw t4,t4,1542
+ 80002c28: 00f00193 li gp,15
+ 80002c2c: 15df1e63 bne t5,t4,80002d88 <fail>
+
+0000000080002c30 <test_16>:
+ 80002c30: 818180b7 lui ra,0x81818
+ 80002c34: 1810809b addiw ra,ra,385
+ 80002c38: 41f0df13 srai t5,ra,0x1f
+ 80002c3c: fff00e93 li t4,-1
+ 80002c40: 01000193 li gp,16
+ 80002c44: 15df1263 bne t5,t4,80002d88 <fail>
+
+0000000080002c48 <test_17>:
+ 80002c48: 800000b7 lui ra,0x80000
+ 80002c4c: 4070d093 srai ra,ra,0x7
+ 80002c50: ff000eb7 lui t4,0xff000
+ 80002c54: 01100193 li gp,17
+ 80002c58: 13d09863 bne ra,t4,80002d88 <fail>
+
+0000000080002c5c <test_18>:
+ 80002c5c: 00000213 li tp,0
+ 80002c60: 800000b7 lui ra,0x80000
+ 80002c64: 4070df13 srai t5,ra,0x7
+ 80002c68: 000f0313 mv t1,t5
+ 80002c6c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c70: 00200293 li t0,2
+ 80002c74: fe5216e3 bne tp,t0,80002c60 <test_18+0x4>
+ 80002c78: ff000eb7 lui t4,0xff000
+ 80002c7c: 01200193 li gp,18
+ 80002c80: 11d31463 bne t1,t4,80002d88 <fail>
+
+0000000080002c84 <test_19>:
+ 80002c84: 00000213 li tp,0
+ 80002c88: 800000b7 lui ra,0x80000
+ 80002c8c: 40e0df13 srai t5,ra,0xe
+ 80002c90: 00000013 nop
+ 80002c94: 000f0313 mv t1,t5
+ 80002c98: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c9c: 00200293 li t0,2
+ 80002ca0: fe5214e3 bne tp,t0,80002c88 <test_19+0x4>
+ 80002ca4: fffe0eb7 lui t4,0xfffe0
+ 80002ca8: 01300193 li gp,19
+ 80002cac: 0dd31e63 bne t1,t4,80002d88 <fail>
+
+0000000080002cb0 <test_20>:
+ 80002cb0: 00000213 li tp,0
+ 80002cb4: 800000b7 lui ra,0x80000
+ 80002cb8: 0010809b addiw ra,ra,1
+ 80002cbc: 41f0df13 srai t5,ra,0x1f
+ 80002cc0: 00000013 nop
+ 80002cc4: 00000013 nop
+ 80002cc8: 000f0313 mv t1,t5
+ 80002ccc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002cd0: 00200293 li t0,2
+ 80002cd4: fe5210e3 bne tp,t0,80002cb4 <test_20+0x4>
+ 80002cd8: fff00e93 li t4,-1
+ 80002cdc: 01400193 li gp,20
+ 80002ce0: 0bd31463 bne t1,t4,80002d88 <fail>
+
+0000000080002ce4 <test_21>:
+ 80002ce4: 00000213 li tp,0
+ 80002ce8: 800000b7 lui ra,0x80000
+ 80002cec: 4070df13 srai t5,ra,0x7
+ 80002cf0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002cf4: 00200293 li t0,2
+ 80002cf8: fe5218e3 bne tp,t0,80002ce8 <test_21+0x4>
+ 80002cfc: ff000eb7 lui t4,0xff000
+ 80002d00: 01500193 li gp,21
+ 80002d04: 09df1263 bne t5,t4,80002d88 <fail>
+
+0000000080002d08 <test_22>:
+ 80002d08: 00000213 li tp,0
+ 80002d0c: 800000b7 lui ra,0x80000
+ 80002d10: 00000013 nop
+ 80002d14: 40e0df13 srai t5,ra,0xe
+ 80002d18: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d1c: 00200293 li t0,2
+ 80002d20: fe5216e3 bne tp,t0,80002d0c <test_22+0x4>
+ 80002d24: fffe0eb7 lui t4,0xfffe0
+ 80002d28: 01600193 li gp,22
+ 80002d2c: 05df1e63 bne t5,t4,80002d88 <fail>
+
+0000000080002d30 <test_23>:
+ 80002d30: 00000213 li tp,0
+ 80002d34: 800000b7 lui ra,0x80000
+ 80002d38: 0010809b addiw ra,ra,1
+ 80002d3c: 00000013 nop
+ 80002d40: 00000013 nop
+ 80002d44: 41f0df13 srai t5,ra,0x1f
+ 80002d48: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d4c: 00200293 li t0,2
+ 80002d50: fe5212e3 bne tp,t0,80002d34 <test_23+0x4>
+ 80002d54: fff00e93 li t4,-1
+ 80002d58: 01700193 li gp,23
+ 80002d5c: 03df1663 bne t5,t4,80002d88 <fail>
+
+0000000080002d60 <test_24>:
+ 80002d60: 40405093 srai ra,zero,0x4
+ 80002d64: 00000e93 li t4,0
+ 80002d68: 01800193 li gp,24
+ 80002d6c: 01d09e63 bne ra,t4,80002d88 <fail>
+
+0000000080002d70 <test_25>:
+ 80002d70: 02100093 li ra,33
+ 80002d74: 40a0d013 srai zero,ra,0xa
+ 80002d78: 00000e93 li t4,0
+ 80002d7c: 01900193 li gp,25
+ 80002d80: 01d01463 bne zero,t4,80002d88 <fail>
+ 80002d84: 00301a63 bne zero,gp,80002d98 <pass>
+
+0000000080002d88 <fail>:
+ 80002d88: 00119513 slli a0,gp,0x1
+ 80002d8c: 00050063 beqz a0,80002d8c <fail+0x4>
+ 80002d90: 00156513 ori a0,a0,1
+ 80002d94: 00000073 ecall
+
+0000000080002d98 <pass>:
+ 80002d98: 00100513 li a0,1
+ 80002d9c: 00000073 ecall
+ 80002da0: c0001073 unimp
diff --git a/test/tests/rv64ui-v-srai.elf b/test/tests/rv64ui-v-srai.elf
new file mode 100644
index 0000000..a84338f
--- /dev/null
+++ b/test/tests/rv64ui-v-srai.elf
Binary files differ
diff --git a/test/tests/rv64ui-v-sraiw.dump b/test/tests/rv64ui-v-sraiw.dump
new file mode 100644
index 0000000..276de6b
--- /dev/null
+++ b/test/tests/rv64ui-v-sraiw.dump
@@ -0,0 +1,1076 @@
+
+rv64ui-v-sraiw: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <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: 6b810113 addi sp,sp,1720 # 800086d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00001617 auipc a2,0x1
+ 80002318: cec60613 addi a2,a2,-788 # 80003000 <begin_signature>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00005797 auipc a5,0x5
+ 80002334: 4b878793 addi a5,a5,1208 # 800077e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00005717 auipc a4,0x5
+ 80002348: 49c70713 addi a4,a4,1180 # 800077e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00005897 auipc a7,0x5
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800077e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00005797 auipc a5,0x5
+ 80002384: 07078793 addi a5,a5,112 # 800073f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf8810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00005797 auipc a5,0x5
+ 80002448: 3807be23 sd zero,924(a5) # 800077e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00001697 auipc a3,0x1
+ 8000245c: 97868693 addi a3,a3,-1672 # 80002dd0 <pass+0x10>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00001617 auipc a2,0x1
+ 800024b8: 9ac60613 addi a2,a2,-1620 # 80002e60 <pass+0xa0>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00001617 auipc a2,0x1
+ 80002508: 97460613 addi a2,a2,-1676 # 80002e78 <pass+0xb8>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00001697 auipc a3,0x1
+ 80002558: 8c468693 addi a3,a3,-1852 # 80002e18 <pass+0x58>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00001697 auipc a3,0x1
+ 80002674: 8e068693 addi a3,a3,-1824 # 80002f50 <pass+0x190>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00001617 auipc a2,0x1
+ 800026cc: 86060613 addi a2,a2,-1952 # 80002f28 <pass+0x168>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00005d17 auipc s10,0x5
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800073f0 <user_mapping>
+ 80002724: 00001b97 auipc s7,0x1
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80003000 <begin_signature>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00005a17 auipc s4,0x5
+ 80002738: 0aca0a13 addi s4,s4,172 # 800077e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00005717 auipc a4,0x5
+ 8000274c: 08f73c23 sd a5,152(a4) # 800077e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00005717 auipc a4,0x5
+ 800027d4: 00f73823 sd a5,16(a4) # 800077e0 <freelist_tail>
+ 800027d8: 00005717 auipc a4,0x5
+ 800027dc: 00f73823 sd a5,16(a4) # 800077e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 79468693 addi a3,a3,1940 # 80002f80 <pass+0x1c0>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 6b468693 addi a3,a3,1716 # 80002ef0 <pass+0x130>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 64468693 addi a3,a3,1604 # 80002eb8 <pass+0xf8>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00001697 auipc a3,0x1
+ 800028e0: 72468693 addi a3,a3,1828 # 80004000 <begin_signature+0x1000>
+ 800028e4: 00002717 auipc a4,0x2
+ 800028e8: 71c70713 addi a4,a4,1820 # 80005000 <begin_signature+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00003797 auipc a5,0x3
+ 800028f8: 70c78793 addi a5,a5,1804 # 80006000 <begin_signature+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00000897 auipc a7,0x0
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80003000 <begin_signature>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00001697 auipc a3,0x1
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80003ff8 <begin_signature+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00000617 auipc a2,0x0
+ 80002938: 6cc60613 addi a2,a2,1740 # 80003000 <begin_signature>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00003697 auipc a3,0x3
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80005ff8 <begin_signature+0x2ff8>
+ 8000294c: 00001717 auipc a4,0x1
+ 80002950: 6af73a23 sd a5,1716(a4) # 80004000 <begin_signature+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00004697 auipc a3,0x4
+ 800029c0: 64468693 addi a3,a3,1604 # 80007000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00005617 auipc a2,0x5
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800077e8 <freelist_head>
+ 800029d4: 00005797 auipc a5,0x5
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800077e0 <freelist_tail>
+ 800029dc: 00005317 auipc t1,0x5
+ 800029e0: a1430313 addi t1,t1,-1516 # 800073f0 <user_mapping>
+ 800029e4: 00800793 li a5,8
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00005797 auipc a5,0x5
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800073e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 0e8fe7b7 lui a5,0xe8fe
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: ca478793 addi a5,a5,-860 # e8fdca4 <_start-0x7170235c>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 800000b7 lui ra,0x80000
+ 80002acc: 4000df1b sraiw t5,ra,0x0
+ 80002ad0: 80000eb7 lui t4,0x80000
+ 80002ad4: 00200193 li gp,2
+ 80002ad8: 2ddf1c63 bne t5,t4,80002db0 <fail>
+
+0000000080002adc <test_3>:
+ 80002adc: 800000b7 lui ra,0x80000
+ 80002ae0: 4010df1b sraiw t5,ra,0x1
+ 80002ae4: c0000eb7 lui t4,0xc0000
+ 80002ae8: 00300193 li gp,3
+ 80002aec: 2ddf1263 bne t5,t4,80002db0 <fail>
+
+0000000080002af0 <test_4>:
+ 80002af0: 800000b7 lui ra,0x80000
+ 80002af4: 4070df1b sraiw t5,ra,0x7
+ 80002af8: ff000eb7 lui t4,0xff000
+ 80002afc: 00400193 li gp,4
+ 80002b00: 2bdf1863 bne t5,t4,80002db0 <fail>
+
+0000000080002b04 <test_5>:
+ 80002b04: 800000b7 lui ra,0x80000
+ 80002b08: 40e0df1b sraiw t5,ra,0xe
+ 80002b0c: fffe0eb7 lui t4,0xfffe0
+ 80002b10: 00500193 li gp,5
+ 80002b14: 29df1e63 bne t5,t4,80002db0 <fail>
+
+0000000080002b18 <test_6>:
+ 80002b18: 800000b7 lui ra,0x80000
+ 80002b1c: 0010809b addiw ra,ra,1
+ 80002b20: 41f0df1b sraiw t5,ra,0x1f
+ 80002b24: fff00e93 li t4,-1
+ 80002b28: 00600193 li gp,6
+ 80002b2c: 29df1263 bne t5,t4,80002db0 <fail>
+
+0000000080002b30 <test_7>:
+ 80002b30: 800000b7 lui ra,0x80000
+ 80002b34: fff0809b addiw ra,ra,-1
+ 80002b38: 4000df1b sraiw t5,ra,0x0
+ 80002b3c: 80000eb7 lui t4,0x80000
+ 80002b40: fffe8e9b addiw t4,t4,-1
+ 80002b44: 00700193 li gp,7
+ 80002b48: 27df1463 bne t5,t4,80002db0 <fail>
+
+0000000080002b4c <test_8>:
+ 80002b4c: 800000b7 lui ra,0x80000
+ 80002b50: fff0809b addiw ra,ra,-1
+ 80002b54: 4010df1b sraiw t5,ra,0x1
+ 80002b58: 40000eb7 lui t4,0x40000
+ 80002b5c: fffe8e9b addiw t4,t4,-1
+ 80002b60: 00800193 li gp,8
+ 80002b64: 25df1663 bne t5,t4,80002db0 <fail>
+
+0000000080002b68 <test_9>:
+ 80002b68: 800000b7 lui ra,0x80000
+ 80002b6c: fff0809b addiw ra,ra,-1
+ 80002b70: 4070df1b sraiw t5,ra,0x7
+ 80002b74: 01000eb7 lui t4,0x1000
+ 80002b78: fffe8e9b addiw t4,t4,-1
+ 80002b7c: 00900193 li gp,9
+ 80002b80: 23df1863 bne t5,t4,80002db0 <fail>
+
+0000000080002b84 <test_10>:
+ 80002b84: 800000b7 lui ra,0x80000
+ 80002b88: fff0809b addiw ra,ra,-1
+ 80002b8c: 40e0df1b sraiw t5,ra,0xe
+ 80002b90: 00020eb7 lui t4,0x20
+ 80002b94: fffe8e9b addiw t4,t4,-1
+ 80002b98: 00a00193 li gp,10
+ 80002b9c: 21df1a63 bne t5,t4,80002db0 <fail>
+
+0000000080002ba0 <test_11>:
+ 80002ba0: 800000b7 lui ra,0x80000
+ 80002ba4: fff0809b addiw ra,ra,-1
+ 80002ba8: 41f0df1b sraiw t5,ra,0x1f
+ 80002bac: 00000e93 li t4,0
+ 80002bb0: 00b00193 li gp,11
+ 80002bb4: 1fdf1e63 bne t5,t4,80002db0 <fail>
+
+0000000080002bb8 <test_12>:
+ 80002bb8: 818180b7 lui ra,0x81818
+ 80002bbc: 1810809b addiw ra,ra,385
+ 80002bc0: 4000df1b sraiw t5,ra,0x0
+ 80002bc4: 81818eb7 lui t4,0x81818
+ 80002bc8: 181e8e9b addiw t4,t4,385
+ 80002bcc: 00c00193 li gp,12
+ 80002bd0: 1fdf1063 bne t5,t4,80002db0 <fail>
+
+0000000080002bd4 <test_13>:
+ 80002bd4: 818180b7 lui ra,0x81818
+ 80002bd8: 1810809b addiw ra,ra,385
+ 80002bdc: 4010df1b sraiw t5,ra,0x1
+ 80002be0: c0c0ceb7 lui t4,0xc0c0c
+ 80002be4: 0c0e8e9b addiw t4,t4,192
+ 80002be8: 00d00193 li gp,13
+ 80002bec: 1ddf1263 bne t5,t4,80002db0 <fail>
+
+0000000080002bf0 <test_14>:
+ 80002bf0: 818180b7 lui ra,0x81818
+ 80002bf4: 1810809b addiw ra,ra,385
+ 80002bf8: 4070df1b sraiw t5,ra,0x7
+ 80002bfc: ff030eb7 lui t4,0xff030
+ 80002c00: 303e8e9b addiw t4,t4,771
+ 80002c04: 00e00193 li gp,14
+ 80002c08: 1bdf1463 bne t5,t4,80002db0 <fail>
+
+0000000080002c0c <test_15>:
+ 80002c0c: 818180b7 lui ra,0x81818
+ 80002c10: 1810809b addiw ra,ra,385
+ 80002c14: 40e0df1b sraiw t5,ra,0xe
+ 80002c18: fffe0eb7 lui t4,0xfffe0
+ 80002c1c: 606e8e9b addiw t4,t4,1542
+ 80002c20: 00f00193 li gp,15
+ 80002c24: 19df1663 bne t5,t4,80002db0 <fail>
+
+0000000080002c28 <test_16>:
+ 80002c28: 818180b7 lui ra,0x81818
+ 80002c2c: 1810809b addiw ra,ra,385
+ 80002c30: 41f0df1b sraiw t5,ra,0x1f
+ 80002c34: fff00e93 li t4,-1
+ 80002c38: 01000193 li gp,16
+ 80002c3c: 17df1a63 bne t5,t4,80002db0 <fail>
+
+0000000080002c40 <test_17>:
+ 80002c40: 800000b7 lui ra,0x80000
+ 80002c44: 4070d09b sraiw ra,ra,0x7
+ 80002c48: ff000eb7 lui t4,0xff000
+ 80002c4c: 01100193 li gp,17
+ 80002c50: 17d09063 bne ra,t4,80002db0 <fail>
+
+0000000080002c54 <test_18>:
+ 80002c54: 00000213 li tp,0
+ 80002c58: 800000b7 lui ra,0x80000
+ 80002c5c: 4070df1b sraiw t5,ra,0x7
+ 80002c60: 000f0313 mv t1,t5
+ 80002c64: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c68: 00200293 li t0,2
+ 80002c6c: fe5216e3 bne tp,t0,80002c58 <test_18+0x4>
+ 80002c70: ff000eb7 lui t4,0xff000
+ 80002c74: 01200193 li gp,18
+ 80002c78: 13d31c63 bne t1,t4,80002db0 <fail>
+
+0000000080002c7c <test_19>:
+ 80002c7c: 00000213 li tp,0
+ 80002c80: 800000b7 lui ra,0x80000
+ 80002c84: 40e0df1b sraiw t5,ra,0xe
+ 80002c88: 00000013 nop
+ 80002c8c: 000f0313 mv t1,t5
+ 80002c90: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c94: 00200293 li t0,2
+ 80002c98: fe5214e3 bne tp,t0,80002c80 <test_19+0x4>
+ 80002c9c: fffe0eb7 lui t4,0xfffe0
+ 80002ca0: 01300193 li gp,19
+ 80002ca4: 11d31663 bne t1,t4,80002db0 <fail>
+
+0000000080002ca8 <test_20>:
+ 80002ca8: 00000213 li tp,0
+ 80002cac: 800000b7 lui ra,0x80000
+ 80002cb0: 0010809b addiw ra,ra,1
+ 80002cb4: 41f0df1b sraiw t5,ra,0x1f
+ 80002cb8: 00000013 nop
+ 80002cbc: 00000013 nop
+ 80002cc0: 000f0313 mv t1,t5
+ 80002cc4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002cc8: 00200293 li t0,2
+ 80002ccc: fe5210e3 bne tp,t0,80002cac <test_20+0x4>
+ 80002cd0: fff00e93 li t4,-1
+ 80002cd4: 01400193 li gp,20
+ 80002cd8: 0dd31c63 bne t1,t4,80002db0 <fail>
+
+0000000080002cdc <test_21>:
+ 80002cdc: 00000213 li tp,0
+ 80002ce0: 800000b7 lui ra,0x80000
+ 80002ce4: 4070df1b sraiw t5,ra,0x7
+ 80002ce8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002cec: 00200293 li t0,2
+ 80002cf0: fe5218e3 bne tp,t0,80002ce0 <test_21+0x4>
+ 80002cf4: ff000eb7 lui t4,0xff000
+ 80002cf8: 01500193 li gp,21
+ 80002cfc: 0bdf1a63 bne t5,t4,80002db0 <fail>
+
+0000000080002d00 <test_22>:
+ 80002d00: 00000213 li tp,0
+ 80002d04: 800000b7 lui ra,0x80000
+ 80002d08: 00000013 nop
+ 80002d0c: 40e0df1b sraiw t5,ra,0xe
+ 80002d10: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d14: 00200293 li t0,2
+ 80002d18: fe5216e3 bne tp,t0,80002d04 <test_22+0x4>
+ 80002d1c: fffe0eb7 lui t4,0xfffe0
+ 80002d20: 01600193 li gp,22
+ 80002d24: 09df1663 bne t5,t4,80002db0 <fail>
+
+0000000080002d28 <test_23>:
+ 80002d28: 00000213 li tp,0
+ 80002d2c: 800000b7 lui ra,0x80000
+ 80002d30: 0010809b addiw ra,ra,1
+ 80002d34: 00000013 nop
+ 80002d38: 00000013 nop
+ 80002d3c: 41f0df1b sraiw t5,ra,0x1f
+ 80002d40: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d44: 00200293 li t0,2
+ 80002d48: fe5212e3 bne tp,t0,80002d2c <test_23+0x4>
+ 80002d4c: fff00e93 li t4,-1
+ 80002d50: 01700193 li gp,23
+ 80002d54: 05df1e63 bne t5,t4,80002db0 <fail>
+
+0000000080002d58 <test_24>:
+ 80002d58: 41f0509b sraiw ra,zero,0x1f
+ 80002d5c: 00000e93 li t4,0
+ 80002d60: 01800193 li gp,24
+ 80002d64: 05d09663 bne ra,t4,80002db0 <fail>
+
+0000000080002d68 <test_25>:
+ 80002d68: 01f00093 li ra,31
+ 80002d6c: 41c0d01b sraiw zero,ra,0x1c
+ 80002d70: 00000e93 li t4,0
+ 80002d74: 01900193 li gp,25
+ 80002d78: 03d01c63 bne zero,t4,80002db0 <fail>
+
+0000000080002d7c <test_26>:
+ 80002d7c: 0070009b addiw ra,zero,7
+ 80002d80: 03509093 slli ra,ra,0x35
+ 80002d84: 41c0df1b sraiw t5,ra,0x1c
+ 80002d88: 00000e93 li t4,0
+ 80002d8c: 01a00193 li gp,26
+ 80002d90: 03df1063 bne t5,t4,80002db0 <fail>
+
+0000000080002d94 <test_27>:
+ 80002d94: 00f0009b addiw ra,zero,15
+ 80002d98: 01c09093 slli ra,ra,0x1c
+ 80002d9c: 4040df1b sraiw t5,ra,0x4
+ 80002da0: ff000eb7 lui t4,0xff000
+ 80002da4: 01b00193 li gp,27
+ 80002da8: 01df1463 bne t5,t4,80002db0 <fail>
+ 80002dac: 00301a63 bne zero,gp,80002dc0 <pass>
+
+0000000080002db0 <fail>:
+ 80002db0: 00119513 slli a0,gp,0x1
+ 80002db4: 00050063 beqz a0,80002db4 <fail+0x4>
+ 80002db8: 00156513 ori a0,a0,1
+ 80002dbc: 00000073 ecall
+
+0000000080002dc0 <pass>:
+ 80002dc0: 00100513 li a0,1
+ 80002dc4: 00000073 ecall
+ 80002dc8: c0001073 unimp
diff --git a/test/tests/rv64ui-v-sraiw.elf b/test/tests/rv64ui-v-sraiw.elf
new file mode 100644
index 0000000..9a16cd8
--- /dev/null
+++ b/test/tests/rv64ui-v-sraiw.elf
Binary files differ
diff --git a/test/tests/rv64ui-v-sraw.dump b/test/tests/rv64ui-v-sraw.dump
new file mode 100644
index 0000000..a2eaf36
--- /dev/null
+++ b/test/tests/rv64ui-v-sraw.dump
@@ -0,0 +1,1281 @@
+
+rv64ui-v-sraw: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <handle_reset>:
+ 8000000c: 00000297 auipc t0,0x0
+ 80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+ 80000014: 30529073 csrw mtvec,t0
+ 80000018: 00009117 auipc sp,0x9
+ 8000001c: 6b810113 addi sp,sp,1720 # 800096d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00002617 auipc a2,0x2
+ 80002318: cec60613 addi a2,a2,-788 # 80004000 <begin_signature>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00006797 auipc a5,0x6
+ 80002334: 4b878793 addi a5,a5,1208 # 800087e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00006717 auipc a4,0x6
+ 80002348: 49c70713 addi a4,a4,1180 # 800087e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00006897 auipc a7,0x6
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800087e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00006797 auipc a5,0x6
+ 80002384: 07078793 addi a5,a5,112 # 800083f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf7810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00006797 auipc a5,0x6
+ 80002448: 3807be23 sd zero,924(a5) # 800087e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00001697 auipc a3,0x1
+ 8000245c: c2868693 addi a3,a3,-984 # 80003080 <pass+0xc>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00001617 auipc a2,0x1
+ 800024b8: c5c60613 addi a2,a2,-932 # 80003110 <pass+0x9c>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00001617 auipc a2,0x1
+ 80002508: c2460613 addi a2,a2,-988 # 80003128 <pass+0xb4>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00001697 auipc a3,0x1
+ 80002558: b7468693 addi a3,a3,-1164 # 800030c8 <pass+0x54>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00001697 auipc a3,0x1
+ 80002674: b9068693 addi a3,a3,-1136 # 80003200 <pass+0x18c>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00001617 auipc a2,0x1
+ 800026cc: b1060613 addi a2,a2,-1264 # 800031d8 <pass+0x164>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00006d17 auipc s10,0x6
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800083f0 <user_mapping>
+ 80002724: 00002b97 auipc s7,0x2
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80004000 <begin_signature>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00006a17 auipc s4,0x6
+ 80002738: 0aca0a13 addi s4,s4,172 # 800087e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00006717 auipc a4,0x6
+ 8000274c: 08f73c23 sd a5,152(a4) # 800087e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00006717 auipc a4,0x6
+ 800027d4: 00f73823 sd a5,16(a4) # 800087e0 <freelist_tail>
+ 800027d8: 00006717 auipc a4,0x6
+ 800027dc: 00f73823 sd a5,16(a4) # 800087e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00001697 auipc a3,0x1
+ 800027f0: a4468693 addi a3,a3,-1468 # 80003230 <pass+0x1bc>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00001697 auipc a3,0x1
+ 80002840: 96468693 addi a3,a3,-1692 # 800031a0 <pass+0x12c>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00001697 auipc a3,0x1
+ 80002878: 8f468693 addi a3,a3,-1804 # 80003168 <pass+0xf4>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00002697 auipc a3,0x2
+ 800028e0: 72468693 addi a3,a3,1828 # 80005000 <begin_signature+0x1000>
+ 800028e4: 00003717 auipc a4,0x3
+ 800028e8: 71c70713 addi a4,a4,1820 # 80006000 <begin_signature+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00004797 auipc a5,0x4
+ 800028f8: 70c78793 addi a5,a5,1804 # 80007000 <begin_signature+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00001897 auipc a7,0x1
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80004000 <begin_signature>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00002697 auipc a3,0x2
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80004ff8 <begin_signature+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00001617 auipc a2,0x1
+ 80002938: 6cc60613 addi a2,a2,1740 # 80004000 <begin_signature>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00004697 auipc a3,0x4
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80006ff8 <begin_signature+0x2ff8>
+ 8000294c: 00002717 auipc a4,0x2
+ 80002950: 6af73a23 sd a5,1716(a4) # 80005000 <begin_signature+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00005697 auipc a3,0x5
+ 800029c0: 64468693 addi a3,a3,1604 # 80008000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00006617 auipc a2,0x6
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800087e8 <freelist_head>
+ 800029d4: 00006797 auipc a5,0x6
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800087e0 <freelist_tail>
+ 800029dc: 00006317 auipc t1,0x6
+ 800029e0: a1430313 addi t1,t1,-1516 # 800083f0 <user_mapping>
+ 800029e4: 03400793 li a5,52
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00006797 auipc a5,0x6
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800083e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 077137b7 lui a5,0x7713
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: 07b78793 addi a5,a5,123 # 771307b <_start-0x788ecf85>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 800000b7 lui ra,0x80000
+ 80002acc: 00000113 li sp,0
+ 80002ad0: 4020df3b sraw t5,ra,sp
+ 80002ad4: 80000eb7 lui t4,0x80000
+ 80002ad8: 00200193 li gp,2
+ 80002adc: 59df1463 bne t5,t4,80003064 <fail>
+
+0000000080002ae0 <test_3>:
+ 80002ae0: 800000b7 lui ra,0x80000
+ 80002ae4: 00100113 li sp,1
+ 80002ae8: 4020df3b sraw t5,ra,sp
+ 80002aec: c0000eb7 lui t4,0xc0000
+ 80002af0: 00300193 li gp,3
+ 80002af4: 57df1863 bne t5,t4,80003064 <fail>
+
+0000000080002af8 <test_4>:
+ 80002af8: 800000b7 lui ra,0x80000
+ 80002afc: 00700113 li sp,7
+ 80002b00: 4020df3b sraw t5,ra,sp
+ 80002b04: ff000eb7 lui t4,0xff000
+ 80002b08: 00400193 li gp,4
+ 80002b0c: 55df1c63 bne t5,t4,80003064 <fail>
+
+0000000080002b10 <test_5>:
+ 80002b10: 800000b7 lui ra,0x80000
+ 80002b14: 00e00113 li sp,14
+ 80002b18: 4020df3b sraw t5,ra,sp
+ 80002b1c: fffe0eb7 lui t4,0xfffe0
+ 80002b20: 00500193 li gp,5
+ 80002b24: 55df1063 bne t5,t4,80003064 <fail>
+
+0000000080002b28 <test_6>:
+ 80002b28: 800000b7 lui ra,0x80000
+ 80002b2c: 0010809b addiw ra,ra,1
+ 80002b30: 01f00113 li sp,31
+ 80002b34: 4020df3b sraw t5,ra,sp
+ 80002b38: fff00e93 li t4,-1
+ 80002b3c: 00600193 li gp,6
+ 80002b40: 53df1263 bne t5,t4,80003064 <fail>
+
+0000000080002b44 <test_7>:
+ 80002b44: 800000b7 lui ra,0x80000
+ 80002b48: fff0809b addiw ra,ra,-1
+ 80002b4c: 00000113 li sp,0
+ 80002b50: 4020df3b sraw t5,ra,sp
+ 80002b54: 80000eb7 lui t4,0x80000
+ 80002b58: fffe8e9b addiw t4,t4,-1
+ 80002b5c: 00700193 li gp,7
+ 80002b60: 51df1263 bne t5,t4,80003064 <fail>
+
+0000000080002b64 <test_8>:
+ 80002b64: 800000b7 lui ra,0x80000
+ 80002b68: fff0809b addiw ra,ra,-1
+ 80002b6c: 00100113 li sp,1
+ 80002b70: 4020df3b sraw t5,ra,sp
+ 80002b74: 40000eb7 lui t4,0x40000
+ 80002b78: fffe8e9b addiw t4,t4,-1
+ 80002b7c: 00800193 li gp,8
+ 80002b80: 4fdf1263 bne t5,t4,80003064 <fail>
+
+0000000080002b84 <test_9>:
+ 80002b84: 800000b7 lui ra,0x80000
+ 80002b88: fff0809b addiw ra,ra,-1
+ 80002b8c: 00700113 li sp,7
+ 80002b90: 4020df3b sraw t5,ra,sp
+ 80002b94: 01000eb7 lui t4,0x1000
+ 80002b98: fffe8e9b addiw t4,t4,-1
+ 80002b9c: 00900193 li gp,9
+ 80002ba0: 4ddf1263 bne t5,t4,80003064 <fail>
+
+0000000080002ba4 <test_10>:
+ 80002ba4: 800000b7 lui ra,0x80000
+ 80002ba8: fff0809b addiw ra,ra,-1
+ 80002bac: 00e00113 li sp,14
+ 80002bb0: 4020df3b sraw t5,ra,sp
+ 80002bb4: 00020eb7 lui t4,0x20
+ 80002bb8: fffe8e9b addiw t4,t4,-1
+ 80002bbc: 00a00193 li gp,10
+ 80002bc0: 4bdf1263 bne t5,t4,80003064 <fail>
+
+0000000080002bc4 <test_11>:
+ 80002bc4: 800000b7 lui ra,0x80000
+ 80002bc8: fff0809b addiw ra,ra,-1
+ 80002bcc: 01f00113 li sp,31
+ 80002bd0: 4020df3b sraw t5,ra,sp
+ 80002bd4: 00000e93 li t4,0
+ 80002bd8: 00b00193 li gp,11
+ 80002bdc: 49df1463 bne t5,t4,80003064 <fail>
+
+0000000080002be0 <test_12>:
+ 80002be0: 818180b7 lui ra,0x81818
+ 80002be4: 1810809b addiw ra,ra,385
+ 80002be8: 00000113 li sp,0
+ 80002bec: 4020df3b sraw t5,ra,sp
+ 80002bf0: 81818eb7 lui t4,0x81818
+ 80002bf4: 181e8e9b addiw t4,t4,385
+ 80002bf8: 00c00193 li gp,12
+ 80002bfc: 47df1463 bne t5,t4,80003064 <fail>
+
+0000000080002c00 <test_13>:
+ 80002c00: 818180b7 lui ra,0x81818
+ 80002c04: 1810809b addiw ra,ra,385
+ 80002c08: 00100113 li sp,1
+ 80002c0c: 4020df3b sraw t5,ra,sp
+ 80002c10: c0c0ceb7 lui t4,0xc0c0c
+ 80002c14: 0c0e8e9b addiw t4,t4,192
+ 80002c18: 00d00193 li gp,13
+ 80002c1c: 45df1463 bne t5,t4,80003064 <fail>
+
+0000000080002c20 <test_14>:
+ 80002c20: 818180b7 lui ra,0x81818
+ 80002c24: 1810809b addiw ra,ra,385
+ 80002c28: 00700113 li sp,7
+ 80002c2c: 4020df3b sraw t5,ra,sp
+ 80002c30: ff030eb7 lui t4,0xff030
+ 80002c34: 303e8e9b addiw t4,t4,771
+ 80002c38: 00e00193 li gp,14
+ 80002c3c: 43df1463 bne t5,t4,80003064 <fail>
+
+0000000080002c40 <test_15>:
+ 80002c40: 818180b7 lui ra,0x81818
+ 80002c44: 1810809b addiw ra,ra,385
+ 80002c48: 00e00113 li sp,14
+ 80002c4c: 4020df3b sraw t5,ra,sp
+ 80002c50: fffe0eb7 lui t4,0xfffe0
+ 80002c54: 606e8e9b addiw t4,t4,1542
+ 80002c58: 00f00193 li gp,15
+ 80002c5c: 41df1463 bne t5,t4,80003064 <fail>
+
+0000000080002c60 <test_16>:
+ 80002c60: 818180b7 lui ra,0x81818
+ 80002c64: 1810809b addiw ra,ra,385
+ 80002c68: 01f00113 li sp,31
+ 80002c6c: 4020df3b sraw t5,ra,sp
+ 80002c70: fff00e93 li t4,-1
+ 80002c74: 01000193 li gp,16
+ 80002c78: 3fdf1663 bne t5,t4,80003064 <fail>
+
+0000000080002c7c <test_17>:
+ 80002c7c: 818180b7 lui ra,0x81818
+ 80002c80: 1810809b addiw ra,ra,385
+ 80002c84: fe000113 li sp,-32
+ 80002c88: 4020df3b sraw t5,ra,sp
+ 80002c8c: 81818eb7 lui t4,0x81818
+ 80002c90: 181e8e9b addiw t4,t4,385
+ 80002c94: 01100193 li gp,17
+ 80002c98: 3ddf1663 bne t5,t4,80003064 <fail>
+
+0000000080002c9c <test_18>:
+ 80002c9c: 818180b7 lui ra,0x81818
+ 80002ca0: 1810809b addiw ra,ra,385
+ 80002ca4: fe100113 li sp,-31
+ 80002ca8: 4020df3b sraw t5,ra,sp
+ 80002cac: c0c0ceb7 lui t4,0xc0c0c
+ 80002cb0: 0c0e8e9b addiw t4,t4,192
+ 80002cb4: 01200193 li gp,18
+ 80002cb8: 3bdf1663 bne t5,t4,80003064 <fail>
+
+0000000080002cbc <test_19>:
+ 80002cbc: 818180b7 lui ra,0x81818
+ 80002cc0: 1810809b addiw ra,ra,385
+ 80002cc4: fe700113 li sp,-25
+ 80002cc8: 4020df3b sraw t5,ra,sp
+ 80002ccc: ff030eb7 lui t4,0xff030
+ 80002cd0: 303e8e9b addiw t4,t4,771
+ 80002cd4: 01300193 li gp,19
+ 80002cd8: 39df1663 bne t5,t4,80003064 <fail>
+
+0000000080002cdc <test_20>:
+ 80002cdc: 818180b7 lui ra,0x81818
+ 80002ce0: 1810809b addiw ra,ra,385
+ 80002ce4: fee00113 li sp,-18
+ 80002ce8: 4020df3b sraw t5,ra,sp
+ 80002cec: fffe0eb7 lui t4,0xfffe0
+ 80002cf0: 606e8e9b addiw t4,t4,1542
+ 80002cf4: 01400193 li gp,20
+ 80002cf8: 37df1663 bne t5,t4,80003064 <fail>
+
+0000000080002cfc <test_21>:
+ 80002cfc: 818180b7 lui ra,0x81818
+ 80002d00: 1810809b addiw ra,ra,385
+ 80002d04: fff00113 li sp,-1
+ 80002d08: 4020df3b sraw t5,ra,sp
+ 80002d0c: fff00e93 li t4,-1
+ 80002d10: 01500193 li gp,21
+ 80002d14: 35df1863 bne t5,t4,80003064 <fail>
+
+0000000080002d18 <test_22>:
+ 80002d18: 800000b7 lui ra,0x80000
+ 80002d1c: 00700113 li sp,7
+ 80002d20: 4020d0bb sraw ra,ra,sp
+ 80002d24: ff000eb7 lui t4,0xff000
+ 80002d28: 01600193 li gp,22
+ 80002d2c: 33d09c63 bne ra,t4,80003064 <fail>
+
+0000000080002d30 <test_23>:
+ 80002d30: 800000b7 lui ra,0x80000
+ 80002d34: 00e00113 li sp,14
+ 80002d38: 4020d13b sraw sp,ra,sp
+ 80002d3c: fffe0eb7 lui t4,0xfffe0
+ 80002d40: 01700193 li gp,23
+ 80002d44: 33d11063 bne sp,t4,80003064 <fail>
+
+0000000080002d48 <test_24>:
+ 80002d48: 00700093 li ra,7
+ 80002d4c: 4010d0bb sraw ra,ra,ra
+ 80002d50: 00000e93 li t4,0
+ 80002d54: 01800193 li gp,24
+ 80002d58: 31d09663 bne ra,t4,80003064 <fail>
+
+0000000080002d5c <test_25>:
+ 80002d5c: 00000213 li tp,0
+ 80002d60: 800000b7 lui ra,0x80000
+ 80002d64: 00700113 li sp,7
+ 80002d68: 4020df3b sraw t5,ra,sp
+ 80002d6c: 000f0313 mv t1,t5
+ 80002d70: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d74: 00200293 li t0,2
+ 80002d78: fe5214e3 bne tp,t0,80002d60 <test_25+0x4>
+ 80002d7c: ff000eb7 lui t4,0xff000
+ 80002d80: 01900193 li gp,25
+ 80002d84: 2fd31063 bne t1,t4,80003064 <fail>
+
+0000000080002d88 <test_26>:
+ 80002d88: 00000213 li tp,0
+ 80002d8c: 800000b7 lui ra,0x80000
+ 80002d90: 00e00113 li sp,14
+ 80002d94: 4020df3b sraw t5,ra,sp
+ 80002d98: 00000013 nop
+ 80002d9c: 000f0313 mv t1,t5
+ 80002da0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002da4: 00200293 li t0,2
+ 80002da8: fe5212e3 bne tp,t0,80002d8c <test_26+0x4>
+ 80002dac: fffe0eb7 lui t4,0xfffe0
+ 80002db0: 01a00193 li gp,26
+ 80002db4: 2bd31863 bne t1,t4,80003064 <fail>
+
+0000000080002db8 <test_27>:
+ 80002db8: 00000213 li tp,0
+ 80002dbc: 800000b7 lui ra,0x80000
+ 80002dc0: 01f00113 li sp,31
+ 80002dc4: 4020df3b sraw t5,ra,sp
+ 80002dc8: 00000013 nop
+ 80002dcc: 00000013 nop
+ 80002dd0: 000f0313 mv t1,t5
+ 80002dd4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002dd8: 00200293 li t0,2
+ 80002ddc: fe5210e3 bne tp,t0,80002dbc <test_27+0x4>
+ 80002de0: fff00e93 li t4,-1
+ 80002de4: 01b00193 li gp,27
+ 80002de8: 27d31e63 bne t1,t4,80003064 <fail>
+
+0000000080002dec <test_28>:
+ 80002dec: 00000213 li tp,0
+ 80002df0: 800000b7 lui ra,0x80000
+ 80002df4: 00700113 li sp,7
+ 80002df8: 4020df3b sraw t5,ra,sp
+ 80002dfc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e00: 00200293 li t0,2
+ 80002e04: fe5216e3 bne tp,t0,80002df0 <test_28+0x4>
+ 80002e08: ff000eb7 lui t4,0xff000
+ 80002e0c: 01c00193 li gp,28
+ 80002e10: 25df1a63 bne t5,t4,80003064 <fail>
+
+0000000080002e14 <test_29>:
+ 80002e14: 00000213 li tp,0
+ 80002e18: 800000b7 lui ra,0x80000
+ 80002e1c: 00e00113 li sp,14
+ 80002e20: 00000013 nop
+ 80002e24: 4020df3b sraw t5,ra,sp
+ 80002e28: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e2c: 00200293 li t0,2
+ 80002e30: fe5214e3 bne tp,t0,80002e18 <test_29+0x4>
+ 80002e34: fffe0eb7 lui t4,0xfffe0
+ 80002e38: 01d00193 li gp,29
+ 80002e3c: 23df1463 bne t5,t4,80003064 <fail>
+
+0000000080002e40 <test_30>:
+ 80002e40: 00000213 li tp,0
+ 80002e44: 800000b7 lui ra,0x80000
+ 80002e48: 01f00113 li sp,31
+ 80002e4c: 00000013 nop
+ 80002e50: 00000013 nop
+ 80002e54: 4020df3b sraw t5,ra,sp
+ 80002e58: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e5c: 00200293 li t0,2
+ 80002e60: fe5212e3 bne tp,t0,80002e44 <test_30+0x4>
+ 80002e64: fff00e93 li t4,-1
+ 80002e68: 01e00193 li gp,30
+ 80002e6c: 1fdf1c63 bne t5,t4,80003064 <fail>
+
+0000000080002e70 <test_31>:
+ 80002e70: 00000213 li tp,0
+ 80002e74: 800000b7 lui ra,0x80000
+ 80002e78: 00000013 nop
+ 80002e7c: 00700113 li sp,7
+ 80002e80: 4020df3b sraw t5,ra,sp
+ 80002e84: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e88: 00200293 li t0,2
+ 80002e8c: fe5214e3 bne tp,t0,80002e74 <test_31+0x4>
+ 80002e90: ff000eb7 lui t4,0xff000
+ 80002e94: 01f00193 li gp,31
+ 80002e98: 1ddf1663 bne t5,t4,80003064 <fail>
+
+0000000080002e9c <test_32>:
+ 80002e9c: 00000213 li tp,0
+ 80002ea0: 800000b7 lui ra,0x80000
+ 80002ea4: 00000013 nop
+ 80002ea8: 00e00113 li sp,14
+ 80002eac: 00000013 nop
+ 80002eb0: 4020df3b sraw t5,ra,sp
+ 80002eb4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002eb8: 00200293 li t0,2
+ 80002ebc: fe5212e3 bne tp,t0,80002ea0 <test_32+0x4>
+ 80002ec0: fffe0eb7 lui t4,0xfffe0
+ 80002ec4: 02000193 li gp,32
+ 80002ec8: 19df1e63 bne t5,t4,80003064 <fail>
+
+0000000080002ecc <test_33>:
+ 80002ecc: 00000213 li tp,0
+ 80002ed0: 800000b7 lui ra,0x80000
+ 80002ed4: 00000013 nop
+ 80002ed8: 00000013 nop
+ 80002edc: 01f00113 li sp,31
+ 80002ee0: 4020df3b sraw t5,ra,sp
+ 80002ee4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ee8: 00200293 li t0,2
+ 80002eec: fe5212e3 bne tp,t0,80002ed0 <test_33+0x4>
+ 80002ef0: fff00e93 li t4,-1
+ 80002ef4: 02100193 li gp,33
+ 80002ef8: 17df1663 bne t5,t4,80003064 <fail>
+
+0000000080002efc <test_34>:
+ 80002efc: 00000213 li tp,0
+ 80002f00: 00700113 li sp,7
+ 80002f04: 800000b7 lui ra,0x80000
+ 80002f08: 4020df3b sraw t5,ra,sp
+ 80002f0c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002f10: 00200293 li t0,2
+ 80002f14: fe5216e3 bne tp,t0,80002f00 <test_34+0x4>
+ 80002f18: ff000eb7 lui t4,0xff000
+ 80002f1c: 02200193 li gp,34
+ 80002f20: 15df1263 bne t5,t4,80003064 <fail>
+
+0000000080002f24 <test_35>:
+ 80002f24: 00000213 li tp,0
+ 80002f28: 00e00113 li sp,14
+ 80002f2c: 800000b7 lui ra,0x80000
+ 80002f30: 00000013 nop
+ 80002f34: 4020df3b sraw t5,ra,sp
+ 80002f38: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002f3c: 00200293 li t0,2
+ 80002f40: fe5214e3 bne tp,t0,80002f28 <test_35+0x4>
+ 80002f44: fffe0eb7 lui t4,0xfffe0
+ 80002f48: 02300193 li gp,35
+ 80002f4c: 11df1c63 bne t5,t4,80003064 <fail>
+
+0000000080002f50 <test_36>:
+ 80002f50: 00000213 li tp,0
+ 80002f54: 01f00113 li sp,31
+ 80002f58: 800000b7 lui ra,0x80000
+ 80002f5c: 00000013 nop
+ 80002f60: 00000013 nop
+ 80002f64: 4020df3b sraw t5,ra,sp
+ 80002f68: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002f6c: 00200293 li t0,2
+ 80002f70: fe5212e3 bne tp,t0,80002f54 <test_36+0x4>
+ 80002f74: fff00e93 li t4,-1
+ 80002f78: 02400193 li gp,36
+ 80002f7c: 0fdf1463 bne t5,t4,80003064 <fail>
+
+0000000080002f80 <test_37>:
+ 80002f80: 00000213 li tp,0
+ 80002f84: 00700113 li sp,7
+ 80002f88: 00000013 nop
+ 80002f8c: 800000b7 lui ra,0x80000
+ 80002f90: 4020df3b sraw t5,ra,sp
+ 80002f94: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002f98: 00200293 li t0,2
+ 80002f9c: fe5214e3 bne tp,t0,80002f84 <test_37+0x4>
+ 80002fa0: ff000eb7 lui t4,0xff000
+ 80002fa4: 02500193 li gp,37
+ 80002fa8: 0bdf1e63 bne t5,t4,80003064 <fail>
+
+0000000080002fac <test_38>:
+ 80002fac: 00000213 li tp,0
+ 80002fb0: 00e00113 li sp,14
+ 80002fb4: 00000013 nop
+ 80002fb8: 800000b7 lui ra,0x80000
+ 80002fbc: 00000013 nop
+ 80002fc0: 4020df3b sraw t5,ra,sp
+ 80002fc4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002fc8: 00200293 li t0,2
+ 80002fcc: fe5212e3 bne tp,t0,80002fb0 <test_38+0x4>
+ 80002fd0: fffe0eb7 lui t4,0xfffe0
+ 80002fd4: 02600193 li gp,38
+ 80002fd8: 09df1663 bne t5,t4,80003064 <fail>
+
+0000000080002fdc <test_39>:
+ 80002fdc: 00000213 li tp,0
+ 80002fe0: 01f00113 li sp,31
+ 80002fe4: 00000013 nop
+ 80002fe8: 00000013 nop
+ 80002fec: 800000b7 lui ra,0x80000
+ 80002ff0: 4020df3b sraw t5,ra,sp
+ 80002ff4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ff8: 00200293 li t0,2
+ 80002ffc: fe5212e3 bne tp,t0,80002fe0 <test_39+0x4>
+ 80003000: fff00e93 li t4,-1
+ 80003004: 02700193 li gp,39
+ 80003008: 05df1e63 bne t5,t4,80003064 <fail>
+
+000000008000300c <test_40>:
+ 8000300c: 00f00093 li ra,15
+ 80003010: 4010513b sraw sp,zero,ra
+ 80003014: 00000e93 li t4,0
+ 80003018: 02800193 li gp,40
+ 8000301c: 05d11463 bne sp,t4,80003064 <fail>
+
+0000000080003020 <test_41>:
+ 80003020: 02000093 li ra,32
+ 80003024: 4000d13b sraw sp,ra,zero
+ 80003028: 02000e93 li t4,32
+ 8000302c: 02900193 li gp,41
+ 80003030: 03d11a63 bne sp,t4,80003064 <fail>
+
+0000000080003034 <test_42>:
+ 80003034: 400050bb sraw ra,zero,zero
+ 80003038: 00000e93 li t4,0
+ 8000303c: 02a00193 li gp,42
+ 80003040: 03d09263 bne ra,t4,80003064 <fail>
+
+0000000080003044 <test_43>:
+ 80003044: 40000093 li ra,1024
+ 80003048: 00001137 lui sp,0x1
+ 8000304c: 8001011b addiw sp,sp,-2048
+ 80003050: 4020d03b sraw zero,ra,sp
+ 80003054: 00000e93 li t4,0
+ 80003058: 02b00193 li gp,43
+ 8000305c: 01d01463 bne zero,t4,80003064 <fail>
+ 80003060: 00301a63 bne zero,gp,80003074 <pass>
+
+0000000080003064 <fail>:
+ 80003064: 00119513 slli a0,gp,0x1
+ 80003068: 00050063 beqz a0,80003068 <fail+0x4>
+ 8000306c: 00156513 ori a0,a0,1
+ 80003070: 00000073 ecall
+
+0000000080003074 <pass>:
+ 80003074: 00100513 li a0,1
+ 80003078: 00000073 ecall
+ 8000307c: c0001073 unimp
diff --git a/test/tests/rv64ui-v-sraw.elf b/test/tests/rv64ui-v-sraw.elf
new file mode 100644
index 0000000..8894a1c
--- /dev/null
+++ b/test/tests/rv64ui-v-sraw.elf
Binary files differ
diff --git a/test/tests/rv64ui-v-srl.dump b/test/tests/rv64ui-v-srl.dump
new file mode 100644
index 0000000..1fb24ac
--- /dev/null
+++ b/test/tests/rv64ui-v-srl.dump
@@ -0,0 +1,1308 @@
+
+rv64ui-v-srl: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <handle_reset>:
+ 8000000c: 00000297 auipc t0,0x0
+ 80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+ 80000014: 30529073 csrw mtvec,t0
+ 80000018: 00009117 auipc sp,0x9
+ 8000001c: 6b810113 addi sp,sp,1720 # 800096d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00002617 auipc a2,0x2
+ 80002318: cec60613 addi a2,a2,-788 # 80004000 <begin_signature>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00006797 auipc a5,0x6
+ 80002334: 4b878793 addi a5,a5,1208 # 800087e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00006717 auipc a4,0x6
+ 80002348: 49c70713 addi a4,a4,1180 # 800087e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00006897 auipc a7,0x6
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800087e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00006797 auipc a5,0x6
+ 80002384: 07078793 addi a5,a5,112 # 800083f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf7810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00006797 auipc a5,0x6
+ 80002448: 3807be23 sd zero,924(a5) # 800087e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00001697 auipc a3,0x1
+ 8000245c: c9868693 addi a3,a3,-872 # 800030f0 <pass+0x10>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00001617 auipc a2,0x1
+ 800024b8: ccc60613 addi a2,a2,-820 # 80003180 <pass+0xa0>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00001617 auipc a2,0x1
+ 80002508: c9460613 addi a2,a2,-876 # 80003198 <pass+0xb8>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00001697 auipc a3,0x1
+ 80002558: be468693 addi a3,a3,-1052 # 80003138 <pass+0x58>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00001697 auipc a3,0x1
+ 80002674: c0068693 addi a3,a3,-1024 # 80003270 <pass+0x190>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00001617 auipc a2,0x1
+ 800026cc: b8060613 addi a2,a2,-1152 # 80003248 <pass+0x168>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00006d17 auipc s10,0x6
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800083f0 <user_mapping>
+ 80002724: 00002b97 auipc s7,0x2
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80004000 <begin_signature>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00006a17 auipc s4,0x6
+ 80002738: 0aca0a13 addi s4,s4,172 # 800087e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00006717 auipc a4,0x6
+ 8000274c: 08f73c23 sd a5,152(a4) # 800087e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00006717 auipc a4,0x6
+ 800027d4: 00f73823 sd a5,16(a4) # 800087e0 <freelist_tail>
+ 800027d8: 00006717 auipc a4,0x6
+ 800027dc: 00f73823 sd a5,16(a4) # 800087e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00001697 auipc a3,0x1
+ 800027f0: ab468693 addi a3,a3,-1356 # 800032a0 <pass+0x1c0>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00001697 auipc a3,0x1
+ 80002840: 9d468693 addi a3,a3,-1580 # 80003210 <pass+0x130>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00001697 auipc a3,0x1
+ 80002878: 96468693 addi a3,a3,-1692 # 800031d8 <pass+0xf8>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00002697 auipc a3,0x2
+ 800028e0: 72468693 addi a3,a3,1828 # 80005000 <begin_signature+0x1000>
+ 800028e4: 00003717 auipc a4,0x3
+ 800028e8: 71c70713 addi a4,a4,1820 # 80006000 <begin_signature+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00004797 auipc a5,0x4
+ 800028f8: 70c78793 addi a5,a5,1804 # 80007000 <begin_signature+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00001897 auipc a7,0x1
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80004000 <begin_signature>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00002697 auipc a3,0x2
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80004ff8 <begin_signature+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00001617 auipc a2,0x1
+ 80002938: 6cc60613 addi a2,a2,1740 # 80004000 <begin_signature>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00004697 auipc a3,0x4
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80006ff8 <begin_signature+0x2ff8>
+ 8000294c: 00002717 auipc a4,0x2
+ 80002950: 6af73a23 sd a5,1716(a4) # 80005000 <begin_signature+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00005697 auipc a3,0x5
+ 800029c0: 64468693 addi a3,a3,1604 # 80008000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00006617 auipc a2,0x6
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800087e8 <freelist_head>
+ 800029d4: 00006797 auipc a5,0x6
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800087e0 <freelist_tail>
+ 800029dc: 00006317 auipc t1,0x6
+ 800029e0: a1430313 addi t1,t1,-1516 # 800083f0 <user_mapping>
+ 800029e4: 02700793 li a5,39
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00006797 auipc a5,0x6
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800083e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 01e8a7b7 lui a5,0x1e8a
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: 84078793 addi a5,a5,-1984 # 1e89840 <_start-0x7e1767c0>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 800000b7 lui ra,0x80000
+ 80002acc: 00000113 li sp,0
+ 80002ad0: 0020df33 srl t5,ra,sp
+ 80002ad4: 80000eb7 lui t4,0x80000
+ 80002ad8: 00200193 li gp,2
+ 80002adc: 5fdf1a63 bne t5,t4,800030d0 <fail>
+
+0000000080002ae0 <test_3>:
+ 80002ae0: 800000b7 lui ra,0x80000
+ 80002ae4: 00100113 li sp,1
+ 80002ae8: 0020df33 srl t5,ra,sp
+ 80002aec: 00100e9b addiw t4,zero,1
+ 80002af0: 021e9e93 slli t4,t4,0x21
+ 80002af4: fffe8e93 addi t4,t4,-1 # ffffffff7fffffff <_end+0xfffffffeffff780f>
+ 80002af8: 01ee9e93 slli t4,t4,0x1e
+ 80002afc: 00300193 li gp,3
+ 80002b00: 5ddf1863 bne t5,t4,800030d0 <fail>
+
+0000000080002b04 <test_4>:
+ 80002b04: 800000b7 lui ra,0x80000
+ 80002b08: 00700113 li sp,7
+ 80002b0c: 0020df33 srl t5,ra,sp
+ 80002b10: 00100e9b addiw t4,zero,1
+ 80002b14: 021e9e93 slli t4,t4,0x21
+ 80002b18: fffe8e93 addi t4,t4,-1
+ 80002b1c: 018e9e93 slli t4,t4,0x18
+ 80002b20: 00400193 li gp,4
+ 80002b24: 5bdf1663 bne t5,t4,800030d0 <fail>
+
+0000000080002b28 <test_5>:
+ 80002b28: 800000b7 lui ra,0x80000
+ 80002b2c: 00e00113 li sp,14
+ 80002b30: 0020df33 srl t5,ra,sp
+ 80002b34: 00100e9b addiw t4,zero,1
+ 80002b38: 021e9e93 slli t4,t4,0x21
+ 80002b3c: fffe8e93 addi t4,t4,-1
+ 80002b40: 011e9e93 slli t4,t4,0x11
+ 80002b44: 00500193 li gp,5
+ 80002b48: 59df1463 bne t5,t4,800030d0 <fail>
+
+0000000080002b4c <test_6>:
+ 80002b4c: 800000b7 lui ra,0x80000
+ 80002b50: 0010809b addiw ra,ra,1
+ 80002b54: 01f00113 li sp,31
+ 80002b58: 0020df33 srl t5,ra,sp
+ 80002b5c: 00100e9b addiw t4,zero,1
+ 80002b60: 021e9e93 slli t4,t4,0x21
+ 80002b64: fffe8e93 addi t4,t4,-1
+ 80002b68: 00600193 li gp,6
+ 80002b6c: 57df1263 bne t5,t4,800030d0 <fail>
+
+0000000080002b70 <test_7>:
+ 80002b70: fff00093 li ra,-1
+ 80002b74: 00000113 li sp,0
+ 80002b78: 0020df33 srl t5,ra,sp
+ 80002b7c: fff00e93 li t4,-1
+ 80002b80: 00700193 li gp,7
+ 80002b84: 55df1663 bne t5,t4,800030d0 <fail>
+
+0000000080002b88 <test_8>:
+ 80002b88: fff00093 li ra,-1
+ 80002b8c: 00100113 li sp,1
+ 80002b90: 0020df33 srl t5,ra,sp
+ 80002b94: fff00e9b addiw t4,zero,-1
+ 80002b98: 03fe9e93 slli t4,t4,0x3f
+ 80002b9c: fffe8e93 addi t4,t4,-1
+ 80002ba0: 00800193 li gp,8
+ 80002ba4: 53df1663 bne t5,t4,800030d0 <fail>
+
+0000000080002ba8 <test_9>:
+ 80002ba8: fff00093 li ra,-1
+ 80002bac: 00700113 li sp,7
+ 80002bb0: 0020df33 srl t5,ra,sp
+ 80002bb4: 00100e9b addiw t4,zero,1
+ 80002bb8: 039e9e93 slli t4,t4,0x39
+ 80002bbc: fffe8e93 addi t4,t4,-1
+ 80002bc0: 00900193 li gp,9
+ 80002bc4: 51df1663 bne t5,t4,800030d0 <fail>
+
+0000000080002bc8 <test_10>:
+ 80002bc8: fff00093 li ra,-1
+ 80002bcc: 00e00113 li sp,14
+ 80002bd0: 0020df33 srl t5,ra,sp
+ 80002bd4: 00100e9b addiw t4,zero,1
+ 80002bd8: 032e9e93 slli t4,t4,0x32
+ 80002bdc: fffe8e93 addi t4,t4,-1
+ 80002be0: 00a00193 li gp,10
+ 80002be4: 4fdf1663 bne t5,t4,800030d0 <fail>
+
+0000000080002be8 <test_11>:
+ 80002be8: fff00093 li ra,-1
+ 80002bec: 01f00113 li sp,31
+ 80002bf0: 0020df33 srl t5,ra,sp
+ 80002bf4: 00100e9b addiw t4,zero,1
+ 80002bf8: 021e9e93 slli t4,t4,0x21
+ 80002bfc: fffe8e93 addi t4,t4,-1
+ 80002c00: 00b00193 li gp,11
+ 80002c04: 4ddf1663 bne t5,t4,800030d0 <fail>
+
+0000000080002c08 <test_12>:
+ 80002c08: 212120b7 lui ra,0x21212
+ 80002c0c: 1210809b addiw ra,ra,289
+ 80002c10: 00000113 li sp,0
+ 80002c14: 0020df33 srl t5,ra,sp
+ 80002c18: 21212eb7 lui t4,0x21212
+ 80002c1c: 121e8e9b addiw t4,t4,289
+ 80002c20: 00c00193 li gp,12
+ 80002c24: 4bdf1663 bne t5,t4,800030d0 <fail>
+
+0000000080002c28 <test_13>:
+ 80002c28: 212120b7 lui ra,0x21212
+ 80002c2c: 1210809b addiw ra,ra,289
+ 80002c30: 00100113 li sp,1
+ 80002c34: 0020df33 srl t5,ra,sp
+ 80002c38: 10909eb7 lui t4,0x10909
+ 80002c3c: 090e8e9b addiw t4,t4,144
+ 80002c40: 00d00193 li gp,13
+ 80002c44: 49df1663 bne t5,t4,800030d0 <fail>
+
+0000000080002c48 <test_14>:
+ 80002c48: 212120b7 lui ra,0x21212
+ 80002c4c: 1210809b addiw ra,ra,289
+ 80002c50: 00700113 li sp,7
+ 80002c54: 0020df33 srl t5,ra,sp
+ 80002c58: 00424eb7 lui t4,0x424
+ 80002c5c: 242e8e9b addiw t4,t4,578
+ 80002c60: 00e00193 li gp,14
+ 80002c64: 47df1663 bne t5,t4,800030d0 <fail>
+
+0000000080002c68 <test_15>:
+ 80002c68: 212120b7 lui ra,0x21212
+ 80002c6c: 1210809b addiw ra,ra,289
+ 80002c70: 00e00113 li sp,14
+ 80002c74: 0020df33 srl t5,ra,sp
+ 80002c78: 00008eb7 lui t4,0x8
+ 80002c7c: 484e8e9b addiw t4,t4,1156
+ 80002c80: 00f00193 li gp,15
+ 80002c84: 45df1663 bne t5,t4,800030d0 <fail>
+
+0000000080002c88 <test_16>:
+ 80002c88: 212120b7 lui ra,0x21212
+ 80002c8c: 1210809b addiw ra,ra,289
+ 80002c90: 01f00113 li sp,31
+ 80002c94: 0020df33 srl t5,ra,sp
+ 80002c98: 00000e93 li t4,0
+ 80002c9c: 01000193 li gp,16
+ 80002ca0: 43df1863 bne t5,t4,800030d0 <fail>
+
+0000000080002ca4 <test_17>:
+ 80002ca4: 212120b7 lui ra,0x21212
+ 80002ca8: 1210809b addiw ra,ra,289
+ 80002cac: fc000113 li sp,-64
+ 80002cb0: 0020df33 srl t5,ra,sp
+ 80002cb4: 21212eb7 lui t4,0x21212
+ 80002cb8: 121e8e9b addiw t4,t4,289
+ 80002cbc: 01100193 li gp,17
+ 80002cc0: 41df1863 bne t5,t4,800030d0 <fail>
+
+0000000080002cc4 <test_18>:
+ 80002cc4: 212120b7 lui ra,0x21212
+ 80002cc8: 1210809b addiw ra,ra,289
+ 80002ccc: fc100113 li sp,-63
+ 80002cd0: 0020df33 srl t5,ra,sp
+ 80002cd4: 10909eb7 lui t4,0x10909
+ 80002cd8: 090e8e9b addiw t4,t4,144
+ 80002cdc: 01200193 li gp,18
+ 80002ce0: 3fdf1863 bne t5,t4,800030d0 <fail>
+
+0000000080002ce4 <test_19>:
+ 80002ce4: 212120b7 lui ra,0x21212
+ 80002ce8: 1210809b addiw ra,ra,289
+ 80002cec: fc700113 li sp,-57
+ 80002cf0: 0020df33 srl t5,ra,sp
+ 80002cf4: 00424eb7 lui t4,0x424
+ 80002cf8: 242e8e9b addiw t4,t4,578
+ 80002cfc: 01300193 li gp,19
+ 80002d00: 3ddf1863 bne t5,t4,800030d0 <fail>
+
+0000000080002d04 <test_20>:
+ 80002d04: 212120b7 lui ra,0x21212
+ 80002d08: 1210809b addiw ra,ra,289
+ 80002d0c: fce00113 li sp,-50
+ 80002d10: 0020df33 srl t5,ra,sp
+ 80002d14: 00008eb7 lui t4,0x8
+ 80002d18: 484e8e9b addiw t4,t4,1156
+ 80002d1c: 01400193 li gp,20
+ 80002d20: 3bdf1863 bne t5,t4,800030d0 <fail>
+
+0000000080002d24 <test_21>:
+ 80002d24: 212120b7 lui ra,0x21212
+ 80002d28: 1210809b addiw ra,ra,289
+ 80002d2c: fff00113 li sp,-1
+ 80002d30: 0020df33 srl t5,ra,sp
+ 80002d34: 00000e93 li t4,0
+ 80002d38: 01500193 li gp,21
+ 80002d3c: 39df1a63 bne t5,t4,800030d0 <fail>
+
+0000000080002d40 <test_22>:
+ 80002d40: 0010009b addiw ra,zero,1
+ 80002d44: 01f09093 slli ra,ra,0x1f
+ 80002d48: 00700113 li sp,7
+ 80002d4c: 0020d0b3 srl ra,ra,sp
+ 80002d50: 01000eb7 lui t4,0x1000
+ 80002d54: 01600193 li gp,22
+ 80002d58: 37d09c63 bne ra,t4,800030d0 <fail>
+
+0000000080002d5c <test_23>:
+ 80002d5c: 0010009b addiw ra,zero,1
+ 80002d60: 01f09093 slli ra,ra,0x1f
+ 80002d64: 00e00113 li sp,14
+ 80002d68: 0020d133 srl sp,ra,sp
+ 80002d6c: 00020eb7 lui t4,0x20
+ 80002d70: 01700193 li gp,23
+ 80002d74: 35d11e63 bne sp,t4,800030d0 <fail>
+
+0000000080002d78 <test_24>:
+ 80002d78: 00700093 li ra,7
+ 80002d7c: 0010d0b3 srl ra,ra,ra
+ 80002d80: 00000e93 li t4,0
+ 80002d84: 01800193 li gp,24
+ 80002d88: 35d09463 bne ra,t4,800030d0 <fail>
+
+0000000080002d8c <test_25>:
+ 80002d8c: 00000213 li tp,0
+ 80002d90: 0010009b addiw ra,zero,1
+ 80002d94: 01f09093 slli ra,ra,0x1f
+ 80002d98: 00700113 li sp,7
+ 80002d9c: 0020df33 srl t5,ra,sp
+ 80002da0: 000f0313 mv t1,t5
+ 80002da4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002da8: 00200293 li t0,2
+ 80002dac: fe5212e3 bne tp,t0,80002d90 <test_25+0x4>
+ 80002db0: 01000eb7 lui t4,0x1000
+ 80002db4: 01900193 li gp,25
+ 80002db8: 31d31c63 bne t1,t4,800030d0 <fail>
+
+0000000080002dbc <test_26>:
+ 80002dbc: 00000213 li tp,0
+ 80002dc0: 0010009b addiw ra,zero,1
+ 80002dc4: 01f09093 slli ra,ra,0x1f
+ 80002dc8: 00e00113 li sp,14
+ 80002dcc: 0020df33 srl t5,ra,sp
+ 80002dd0: 00000013 nop
+ 80002dd4: 000f0313 mv t1,t5
+ 80002dd8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ddc: 00200293 li t0,2
+ 80002de0: fe5210e3 bne tp,t0,80002dc0 <test_26+0x4>
+ 80002de4: 00020eb7 lui t4,0x20
+ 80002de8: 01a00193 li gp,26
+ 80002dec: 2fd31263 bne t1,t4,800030d0 <fail>
+
+0000000080002df0 <test_27>:
+ 80002df0: 00000213 li tp,0
+ 80002df4: 0010009b addiw ra,zero,1
+ 80002df8: 01f09093 slli ra,ra,0x1f
+ 80002dfc: 01f00113 li sp,31
+ 80002e00: 0020df33 srl t5,ra,sp
+ 80002e04: 00000013 nop
+ 80002e08: 00000013 nop
+ 80002e0c: 000f0313 mv t1,t5
+ 80002e10: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e14: 00200293 li t0,2
+ 80002e18: fc521ee3 bne tp,t0,80002df4 <test_27+0x4>
+ 80002e1c: 00100e93 li t4,1
+ 80002e20: 01b00193 li gp,27
+ 80002e24: 2bd31663 bne t1,t4,800030d0 <fail>
+
+0000000080002e28 <test_28>:
+ 80002e28: 00000213 li tp,0
+ 80002e2c: 0010009b addiw ra,zero,1
+ 80002e30: 01f09093 slli ra,ra,0x1f
+ 80002e34: 00700113 li sp,7
+ 80002e38: 0020df33 srl t5,ra,sp
+ 80002e3c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e40: 00200293 li t0,2
+ 80002e44: fe5214e3 bne tp,t0,80002e2c <test_28+0x4>
+ 80002e48: 01000eb7 lui t4,0x1000
+ 80002e4c: 01c00193 li gp,28
+ 80002e50: 29df1063 bne t5,t4,800030d0 <fail>
+
+0000000080002e54 <test_29>:
+ 80002e54: 00000213 li tp,0
+ 80002e58: 0010009b addiw ra,zero,1
+ 80002e5c: 01f09093 slli ra,ra,0x1f
+ 80002e60: 00e00113 li sp,14
+ 80002e64: 00000013 nop
+ 80002e68: 0020df33 srl t5,ra,sp
+ 80002e6c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e70: 00200293 li t0,2
+ 80002e74: fe5212e3 bne tp,t0,80002e58 <test_29+0x4>
+ 80002e78: 00020eb7 lui t4,0x20
+ 80002e7c: 01d00193 li gp,29
+ 80002e80: 25df1863 bne t5,t4,800030d0 <fail>
+
+0000000080002e84 <test_30>:
+ 80002e84: 00000213 li tp,0
+ 80002e88: 0010009b addiw ra,zero,1
+ 80002e8c: 01f09093 slli ra,ra,0x1f
+ 80002e90: 01f00113 li sp,31
+ 80002e94: 00000013 nop
+ 80002e98: 00000013 nop
+ 80002e9c: 0020df33 srl t5,ra,sp
+ 80002ea0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ea4: 00200293 li t0,2
+ 80002ea8: fe5210e3 bne tp,t0,80002e88 <test_30+0x4>
+ 80002eac: 00100e93 li t4,1
+ 80002eb0: 01e00193 li gp,30
+ 80002eb4: 21df1e63 bne t5,t4,800030d0 <fail>
+
+0000000080002eb8 <test_31>:
+ 80002eb8: 00000213 li tp,0
+ 80002ebc: 0010009b addiw ra,zero,1
+ 80002ec0: 01f09093 slli ra,ra,0x1f
+ 80002ec4: 00000013 nop
+ 80002ec8: 00700113 li sp,7
+ 80002ecc: 0020df33 srl t5,ra,sp
+ 80002ed0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ed4: 00200293 li t0,2
+ 80002ed8: fe5212e3 bne tp,t0,80002ebc <test_31+0x4>
+ 80002edc: 01000eb7 lui t4,0x1000
+ 80002ee0: 01f00193 li gp,31
+ 80002ee4: 1fdf1663 bne t5,t4,800030d0 <fail>
+
+0000000080002ee8 <test_32>:
+ 80002ee8: 00000213 li tp,0
+ 80002eec: 0010009b addiw ra,zero,1
+ 80002ef0: 01f09093 slli ra,ra,0x1f
+ 80002ef4: 00000013 nop
+ 80002ef8: 00e00113 li sp,14
+ 80002efc: 00000013 nop
+ 80002f00: 0020df33 srl t5,ra,sp
+ 80002f04: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002f08: 00200293 li t0,2
+ 80002f0c: fe5210e3 bne tp,t0,80002eec <test_32+0x4>
+ 80002f10: 00020eb7 lui t4,0x20
+ 80002f14: 02000193 li gp,32
+ 80002f18: 1bdf1c63 bne t5,t4,800030d0 <fail>
+
+0000000080002f1c <test_33>:
+ 80002f1c: 00000213 li tp,0
+ 80002f20: 0010009b addiw ra,zero,1
+ 80002f24: 01f09093 slli ra,ra,0x1f
+ 80002f28: 00000013 nop
+ 80002f2c: 00000013 nop
+ 80002f30: 01f00113 li sp,31
+ 80002f34: 0020df33 srl t5,ra,sp
+ 80002f38: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002f3c: 00200293 li t0,2
+ 80002f40: fe5210e3 bne tp,t0,80002f20 <test_33+0x4>
+ 80002f44: 00100e93 li t4,1
+ 80002f48: 02100193 li gp,33
+ 80002f4c: 19df1263 bne t5,t4,800030d0 <fail>
+
+0000000080002f50 <test_34>:
+ 80002f50: 00000213 li tp,0
+ 80002f54: 00700113 li sp,7
+ 80002f58: 0010009b addiw ra,zero,1
+ 80002f5c: 01f09093 slli ra,ra,0x1f
+ 80002f60: 0020df33 srl t5,ra,sp
+ 80002f64: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002f68: 00200293 li t0,2
+ 80002f6c: fe5214e3 bne tp,t0,80002f54 <test_34+0x4>
+ 80002f70: 01000eb7 lui t4,0x1000
+ 80002f74: 02200193 li gp,34
+ 80002f78: 15df1c63 bne t5,t4,800030d0 <fail>
+
+0000000080002f7c <test_35>:
+ 80002f7c: 00000213 li tp,0
+ 80002f80: 00e00113 li sp,14
+ 80002f84: 0010009b addiw ra,zero,1
+ 80002f88: 01f09093 slli ra,ra,0x1f
+ 80002f8c: 00000013 nop
+ 80002f90: 0020df33 srl t5,ra,sp
+ 80002f94: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002f98: 00200293 li t0,2
+ 80002f9c: fe5212e3 bne tp,t0,80002f80 <test_35+0x4>
+ 80002fa0: 00020eb7 lui t4,0x20
+ 80002fa4: 02300193 li gp,35
+ 80002fa8: 13df1463 bne t5,t4,800030d0 <fail>
+
+0000000080002fac <test_36>:
+ 80002fac: 00000213 li tp,0
+ 80002fb0: 01f00113 li sp,31
+ 80002fb4: 0010009b addiw ra,zero,1
+ 80002fb8: 01f09093 slli ra,ra,0x1f
+ 80002fbc: 00000013 nop
+ 80002fc0: 00000013 nop
+ 80002fc4: 0020df33 srl t5,ra,sp
+ 80002fc8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002fcc: 00200293 li t0,2
+ 80002fd0: fe5210e3 bne tp,t0,80002fb0 <test_36+0x4>
+ 80002fd4: 00100e93 li t4,1
+ 80002fd8: 02400193 li gp,36
+ 80002fdc: 0fdf1a63 bne t5,t4,800030d0 <fail>
+
+0000000080002fe0 <test_37>:
+ 80002fe0: 00000213 li tp,0
+ 80002fe4: 00700113 li sp,7
+ 80002fe8: 00000013 nop
+ 80002fec: 0010009b addiw ra,zero,1
+ 80002ff0: 01f09093 slli ra,ra,0x1f
+ 80002ff4: 0020df33 srl t5,ra,sp
+ 80002ff8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ffc: 00200293 li t0,2
+ 80003000: fe5212e3 bne tp,t0,80002fe4 <test_37+0x4>
+ 80003004: 01000eb7 lui t4,0x1000
+ 80003008: 02500193 li gp,37
+ 8000300c: 0ddf1263 bne t5,t4,800030d0 <fail>
+
+0000000080003010 <test_38>:
+ 80003010: 00000213 li tp,0
+ 80003014: 00e00113 li sp,14
+ 80003018: 00000013 nop
+ 8000301c: 0010009b addiw ra,zero,1
+ 80003020: 01f09093 slli ra,ra,0x1f
+ 80003024: 00000013 nop
+ 80003028: 0020df33 srl t5,ra,sp
+ 8000302c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80003030: 00200293 li t0,2
+ 80003034: fe5210e3 bne tp,t0,80003014 <test_38+0x4>
+ 80003038: 00020eb7 lui t4,0x20
+ 8000303c: 02600193 li gp,38
+ 80003040: 09df1863 bne t5,t4,800030d0 <fail>
+
+0000000080003044 <test_39>:
+ 80003044: 00000213 li tp,0
+ 80003048: 01f00113 li sp,31
+ 8000304c: 00000013 nop
+ 80003050: 00000013 nop
+ 80003054: 0010009b addiw ra,zero,1
+ 80003058: 01f09093 slli ra,ra,0x1f
+ 8000305c: 0020df33 srl t5,ra,sp
+ 80003060: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80003064: 00200293 li t0,2
+ 80003068: fe5210e3 bne tp,t0,80003048 <test_39+0x4>
+ 8000306c: 00100e93 li t4,1
+ 80003070: 02700193 li gp,39
+ 80003074: 05df1e63 bne t5,t4,800030d0 <fail>
+
+0000000080003078 <test_40>:
+ 80003078: 00f00093 li ra,15
+ 8000307c: 00105133 srl sp,zero,ra
+ 80003080: 00000e93 li t4,0
+ 80003084: 02800193 li gp,40
+ 80003088: 05d11463 bne sp,t4,800030d0 <fail>
+
+000000008000308c <test_41>:
+ 8000308c: 02000093 li ra,32
+ 80003090: 0000d133 srl sp,ra,zero
+ 80003094: 02000e93 li t4,32
+ 80003098: 02900193 li gp,41
+ 8000309c: 03d11a63 bne sp,t4,800030d0 <fail>
+
+00000000800030a0 <test_42>:
+ 800030a0: 000050b3 srl ra,zero,zero
+ 800030a4: 00000e93 li t4,0
+ 800030a8: 02a00193 li gp,42
+ 800030ac: 03d09263 bne ra,t4,800030d0 <fail>
+
+00000000800030b0 <test_43>:
+ 800030b0: 40000093 li ra,1024
+ 800030b4: 00001137 lui sp,0x1
+ 800030b8: 8001011b addiw sp,sp,-2048
+ 800030bc: 0020d033 srl zero,ra,sp
+ 800030c0: 00000e93 li t4,0
+ 800030c4: 02b00193 li gp,43
+ 800030c8: 01d01463 bne zero,t4,800030d0 <fail>
+ 800030cc: 00301a63 bne zero,gp,800030e0 <pass>
+
+00000000800030d0 <fail>:
+ 800030d0: 00119513 slli a0,gp,0x1
+ 800030d4: 00050063 beqz a0,800030d4 <fail+0x4>
+ 800030d8: 00156513 ori a0,a0,1
+ 800030dc: 00000073 ecall
+
+00000000800030e0 <pass>:
+ 800030e0: 00100513 li a0,1
+ 800030e4: 00000073 ecall
+ 800030e8: c0001073 unimp
diff --git a/test/tests/rv64ui-v-srl.elf b/test/tests/rv64ui-v-srl.elf
new file mode 100644
index 0000000..eb8b732
--- /dev/null
+++ b/test/tests/rv64ui-v-srl.elf
Binary files differ
diff --git a/test/tests/rv64ui-v-srli.dump b/test/tests/rv64ui-v-srli.dump
new file mode 100644
index 0000000..d900518
--- /dev/null
+++ b/test/tests/rv64ui-v-srli.dump
@@ -0,0 +1,1077 @@
+
+rv64ui-v-srli: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <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: 6b810113 addi sp,sp,1720 # 800086d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00001617 auipc a2,0x1
+ 80002318: cec60613 addi a2,a2,-788 # 80003000 <begin_signature>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00005797 auipc a5,0x5
+ 80002334: 4b878793 addi a5,a5,1208 # 800077e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00005717 auipc a4,0x5
+ 80002348: 49c70713 addi a4,a4,1180 # 800077e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00005897 auipc a7,0x5
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800077e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00005797 auipc a5,0x5
+ 80002384: 07078793 addi a5,a5,112 # 800073f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf8810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00005797 auipc a5,0x5
+ 80002448: 3807be23 sd zero,924(a5) # 800077e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00001697 auipc a3,0x1
+ 8000245c: 98868693 addi a3,a3,-1656 # 80002de0 <pass+0xc>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00001617 auipc a2,0x1
+ 800024b8: 9bc60613 addi a2,a2,-1604 # 80002e70 <pass+0x9c>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00001617 auipc a2,0x1
+ 80002508: 98460613 addi a2,a2,-1660 # 80002e88 <pass+0xb4>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00001697 auipc a3,0x1
+ 80002558: 8d468693 addi a3,a3,-1836 # 80002e28 <pass+0x54>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00001697 auipc a3,0x1
+ 80002674: 8f068693 addi a3,a3,-1808 # 80002f60 <pass+0x18c>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00001617 auipc a2,0x1
+ 800026cc: 87060613 addi a2,a2,-1936 # 80002f38 <pass+0x164>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00005d17 auipc s10,0x5
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800073f0 <user_mapping>
+ 80002724: 00001b97 auipc s7,0x1
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80003000 <begin_signature>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00005a17 auipc s4,0x5
+ 80002738: 0aca0a13 addi s4,s4,172 # 800077e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00005717 auipc a4,0x5
+ 8000274c: 08f73c23 sd a5,152(a4) # 800077e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00005717 auipc a4,0x5
+ 800027d4: 00f73823 sd a5,16(a4) # 800077e0 <freelist_tail>
+ 800027d8: 00005717 auipc a4,0x5
+ 800027dc: 00f73823 sd a5,16(a4) # 800077e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 7a468693 addi a3,a3,1956 # 80002f90 <pass+0x1bc>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 6c468693 addi a3,a3,1732 # 80002f00 <pass+0x12c>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 65468693 addi a3,a3,1620 # 80002ec8 <pass+0xf4>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00001697 auipc a3,0x1
+ 800028e0: 72468693 addi a3,a3,1828 # 80004000 <begin_signature+0x1000>
+ 800028e4: 00002717 auipc a4,0x2
+ 800028e8: 71c70713 addi a4,a4,1820 # 80005000 <begin_signature+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00003797 auipc a5,0x3
+ 800028f8: 70c78793 addi a5,a5,1804 # 80006000 <begin_signature+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00000897 auipc a7,0x0
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80003000 <begin_signature>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00001697 auipc a3,0x1
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80003ff8 <begin_signature+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00000617 auipc a2,0x0
+ 80002938: 6cc60613 addi a2,a2,1740 # 80003000 <begin_signature>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00003697 auipc a3,0x3
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80005ff8 <begin_signature+0x2ff8>
+ 8000294c: 00001717 auipc a4,0x1
+ 80002950: 6af73a23 sd a5,1716(a4) # 80004000 <begin_signature+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00004697 auipc a3,0x4
+ 800029c0: 64468693 addi a3,a3,1604 # 80007000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00005617 auipc a2,0x5
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800077e8 <freelist_head>
+ 800029d4: 00005797 auipc a5,0x5
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800077e0 <freelist_tail>
+ 800029dc: 00005317 auipc t1,0x5
+ 800029e0: a1430313 addi t1,t1,-1516 # 800073f0 <user_mapping>
+ 800029e4: 02e00793 li a5,46
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00005797 auipc a5,0x5
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800073e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 0d3727b7 lui a5,0xd372
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: 50c78793 addi a5,a5,1292 # d37250c <_start-0x72c8daf4>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 800000b7 lui ra,0x80000
+ 80002acc: 0000df13 srli t5,ra,0x0
+ 80002ad0: 80000eb7 lui t4,0x80000
+ 80002ad4: 00200193 li gp,2
+ 80002ad8: 2fdf1663 bne t5,t4,80002dc4 <fail>
+
+0000000080002adc <test_3>:
+ 80002adc: 800000b7 lui ra,0x80000
+ 80002ae0: 0010df13 srli t5,ra,0x1
+ 80002ae4: 00100e9b addiw t4,zero,1
+ 80002ae8: 021e9e93 slli t4,t4,0x21
+ 80002aec: fffe8e93 addi t4,t4,-1 # ffffffff7fffffff <_end+0xfffffffeffff880f>
+ 80002af0: 01ee9e93 slli t4,t4,0x1e
+ 80002af4: 00300193 li gp,3
+ 80002af8: 2ddf1663 bne t5,t4,80002dc4 <fail>
+
+0000000080002afc <test_4>:
+ 80002afc: 800000b7 lui ra,0x80000
+ 80002b00: 0070df13 srli t5,ra,0x7
+ 80002b04: 00100e9b addiw t4,zero,1
+ 80002b08: 021e9e93 slli t4,t4,0x21
+ 80002b0c: fffe8e93 addi t4,t4,-1
+ 80002b10: 018e9e93 slli t4,t4,0x18
+ 80002b14: 00400193 li gp,4
+ 80002b18: 2bdf1663 bne t5,t4,80002dc4 <fail>
+
+0000000080002b1c <test_5>:
+ 80002b1c: 800000b7 lui ra,0x80000
+ 80002b20: 00e0df13 srli t5,ra,0xe
+ 80002b24: 00100e9b addiw t4,zero,1
+ 80002b28: 021e9e93 slli t4,t4,0x21
+ 80002b2c: fffe8e93 addi t4,t4,-1
+ 80002b30: 011e9e93 slli t4,t4,0x11
+ 80002b34: 00500193 li gp,5
+ 80002b38: 29df1663 bne t5,t4,80002dc4 <fail>
+
+0000000080002b3c <test_6>:
+ 80002b3c: 800000b7 lui ra,0x80000
+ 80002b40: 0010809b addiw ra,ra,1
+ 80002b44: 01f0df13 srli t5,ra,0x1f
+ 80002b48: 00100e9b addiw t4,zero,1
+ 80002b4c: 021e9e93 slli t4,t4,0x21
+ 80002b50: fffe8e93 addi t4,t4,-1
+ 80002b54: 00600193 li gp,6
+ 80002b58: 27df1663 bne t5,t4,80002dc4 <fail>
+
+0000000080002b5c <test_7>:
+ 80002b5c: fff00093 li ra,-1
+ 80002b60: 0000df13 srli t5,ra,0x0
+ 80002b64: fff00e93 li t4,-1
+ 80002b68: 00700193 li gp,7
+ 80002b6c: 25df1c63 bne t5,t4,80002dc4 <fail>
+
+0000000080002b70 <test_8>:
+ 80002b70: fff00093 li ra,-1
+ 80002b74: 0010df13 srli t5,ra,0x1
+ 80002b78: fff00e9b addiw t4,zero,-1
+ 80002b7c: 03fe9e93 slli t4,t4,0x3f
+ 80002b80: fffe8e93 addi t4,t4,-1
+ 80002b84: 00800193 li gp,8
+ 80002b88: 23df1e63 bne t5,t4,80002dc4 <fail>
+
+0000000080002b8c <test_9>:
+ 80002b8c: fff00093 li ra,-1
+ 80002b90: 0070df13 srli t5,ra,0x7
+ 80002b94: 00100e9b addiw t4,zero,1
+ 80002b98: 039e9e93 slli t4,t4,0x39
+ 80002b9c: fffe8e93 addi t4,t4,-1
+ 80002ba0: 00900193 li gp,9
+ 80002ba4: 23df1063 bne t5,t4,80002dc4 <fail>
+
+0000000080002ba8 <test_10>:
+ 80002ba8: fff00093 li ra,-1
+ 80002bac: 00e0df13 srli t5,ra,0xe
+ 80002bb0: 00100e9b addiw t4,zero,1
+ 80002bb4: 032e9e93 slli t4,t4,0x32
+ 80002bb8: fffe8e93 addi t4,t4,-1
+ 80002bbc: 00a00193 li gp,10
+ 80002bc0: 21df1263 bne t5,t4,80002dc4 <fail>
+
+0000000080002bc4 <test_11>:
+ 80002bc4: fff00093 li ra,-1
+ 80002bc8: 01f0df13 srli t5,ra,0x1f
+ 80002bcc: 00100e9b addiw t4,zero,1
+ 80002bd0: 021e9e93 slli t4,t4,0x21
+ 80002bd4: fffe8e93 addi t4,t4,-1
+ 80002bd8: 00b00193 li gp,11
+ 80002bdc: 1fdf1463 bne t5,t4,80002dc4 <fail>
+
+0000000080002be0 <test_12>:
+ 80002be0: 212120b7 lui ra,0x21212
+ 80002be4: 1210809b addiw ra,ra,289
+ 80002be8: 0000df13 srli t5,ra,0x0
+ 80002bec: 21212eb7 lui t4,0x21212
+ 80002bf0: 121e8e9b addiw t4,t4,289
+ 80002bf4: 00c00193 li gp,12
+ 80002bf8: 1ddf1663 bne t5,t4,80002dc4 <fail>
+
+0000000080002bfc <test_13>:
+ 80002bfc: 212120b7 lui ra,0x21212
+ 80002c00: 1210809b addiw ra,ra,289
+ 80002c04: 0010df13 srli t5,ra,0x1
+ 80002c08: 10909eb7 lui t4,0x10909
+ 80002c0c: 090e8e9b addiw t4,t4,144
+ 80002c10: 00d00193 li gp,13
+ 80002c14: 1bdf1863 bne t5,t4,80002dc4 <fail>
+
+0000000080002c18 <test_14>:
+ 80002c18: 212120b7 lui ra,0x21212
+ 80002c1c: 1210809b addiw ra,ra,289
+ 80002c20: 0070df13 srli t5,ra,0x7
+ 80002c24: 00424eb7 lui t4,0x424
+ 80002c28: 242e8e9b addiw t4,t4,578
+ 80002c2c: 00e00193 li gp,14
+ 80002c30: 19df1a63 bne t5,t4,80002dc4 <fail>
+
+0000000080002c34 <test_15>:
+ 80002c34: 212120b7 lui ra,0x21212
+ 80002c38: 1210809b addiw ra,ra,289
+ 80002c3c: 00e0df13 srli t5,ra,0xe
+ 80002c40: 00008eb7 lui t4,0x8
+ 80002c44: 484e8e9b addiw t4,t4,1156
+ 80002c48: 00f00193 li gp,15
+ 80002c4c: 17df1c63 bne t5,t4,80002dc4 <fail>
+
+0000000080002c50 <test_16>:
+ 80002c50: 212120b7 lui ra,0x21212
+ 80002c54: 1210809b addiw ra,ra,289
+ 80002c58: 01f0df13 srli t5,ra,0x1f
+ 80002c5c: 00000e93 li t4,0
+ 80002c60: 01000193 li gp,16
+ 80002c64: 17df1063 bne t5,t4,80002dc4 <fail>
+
+0000000080002c68 <test_17>:
+ 80002c68: 0010009b addiw ra,zero,1
+ 80002c6c: 01f09093 slli ra,ra,0x1f
+ 80002c70: 0070d093 srli ra,ra,0x7
+ 80002c74: 01000eb7 lui t4,0x1000
+ 80002c78: 01100193 li gp,17
+ 80002c7c: 15d09463 bne ra,t4,80002dc4 <fail>
+
+0000000080002c80 <test_18>:
+ 80002c80: 00000213 li tp,0
+ 80002c84: 0010009b addiw ra,zero,1
+ 80002c88: 01f09093 slli ra,ra,0x1f
+ 80002c8c: 0070df13 srli t5,ra,0x7
+ 80002c90: 000f0313 mv t1,t5
+ 80002c94: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c98: 00200293 li t0,2
+ 80002c9c: fe5214e3 bne tp,t0,80002c84 <test_18+0x4>
+ 80002ca0: 01000eb7 lui t4,0x1000
+ 80002ca4: 01200193 li gp,18
+ 80002ca8: 11d31e63 bne t1,t4,80002dc4 <fail>
+
+0000000080002cac <test_19>:
+ 80002cac: 00000213 li tp,0
+ 80002cb0: 0010009b addiw ra,zero,1
+ 80002cb4: 01f09093 slli ra,ra,0x1f
+ 80002cb8: 00e0df13 srli t5,ra,0xe
+ 80002cbc: 00000013 nop
+ 80002cc0: 000f0313 mv t1,t5
+ 80002cc4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002cc8: 00200293 li t0,2
+ 80002ccc: fe5212e3 bne tp,t0,80002cb0 <test_19+0x4>
+ 80002cd0: 00020eb7 lui t4,0x20
+ 80002cd4: 01300193 li gp,19
+ 80002cd8: 0fd31663 bne t1,t4,80002dc4 <fail>
+
+0000000080002cdc <test_20>:
+ 80002cdc: 00000213 li tp,0
+ 80002ce0: 0010009b addiw ra,zero,1
+ 80002ce4: 01f09093 slli ra,ra,0x1f
+ 80002ce8: 00108093 addi ra,ra,1 # 21212001 <_start-0x5ededfff>
+ 80002cec: 01f0df13 srli t5,ra,0x1f
+ 80002cf0: 00000013 nop
+ 80002cf4: 00000013 nop
+ 80002cf8: 000f0313 mv t1,t5
+ 80002cfc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d00: 00200293 li t0,2
+ 80002d04: fc521ee3 bne tp,t0,80002ce0 <test_20+0x4>
+ 80002d08: 00100e93 li t4,1
+ 80002d0c: 01400193 li gp,20
+ 80002d10: 0bd31a63 bne t1,t4,80002dc4 <fail>
+
+0000000080002d14 <test_21>:
+ 80002d14: 00000213 li tp,0
+ 80002d18: 0010009b addiw ra,zero,1
+ 80002d1c: 01f09093 slli ra,ra,0x1f
+ 80002d20: 0070df13 srli t5,ra,0x7
+ 80002d24: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d28: 00200293 li t0,2
+ 80002d2c: fe5216e3 bne tp,t0,80002d18 <test_21+0x4>
+ 80002d30: 01000eb7 lui t4,0x1000
+ 80002d34: 01500193 li gp,21
+ 80002d38: 09df1663 bne t5,t4,80002dc4 <fail>
+
+0000000080002d3c <test_22>:
+ 80002d3c: 00000213 li tp,0
+ 80002d40: 0010009b addiw ra,zero,1
+ 80002d44: 01f09093 slli ra,ra,0x1f
+ 80002d48: 00000013 nop
+ 80002d4c: 00e0df13 srli t5,ra,0xe
+ 80002d50: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d54: 00200293 li t0,2
+ 80002d58: fe5214e3 bne tp,t0,80002d40 <test_22+0x4>
+ 80002d5c: 00020eb7 lui t4,0x20
+ 80002d60: 01600193 li gp,22
+ 80002d64: 07df1063 bne t5,t4,80002dc4 <fail>
+
+0000000080002d68 <test_23>:
+ 80002d68: 00000213 li tp,0
+ 80002d6c: 0010009b addiw ra,zero,1
+ 80002d70: 01f09093 slli ra,ra,0x1f
+ 80002d74: 00108093 addi ra,ra,1
+ 80002d78: 00000013 nop
+ 80002d7c: 00000013 nop
+ 80002d80: 01f0df13 srli t5,ra,0x1f
+ 80002d84: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d88: 00200293 li t0,2
+ 80002d8c: fe5210e3 bne tp,t0,80002d6c <test_23+0x4>
+ 80002d90: 00100e93 li t4,1
+ 80002d94: 01700193 li gp,23
+ 80002d98: 03df1663 bne t5,t4,80002dc4 <fail>
+
+0000000080002d9c <test_24>:
+ 80002d9c: 00405093 srli ra,zero,0x4
+ 80002da0: 00000e93 li t4,0
+ 80002da4: 01800193 li gp,24
+ 80002da8: 01d09e63 bne ra,t4,80002dc4 <fail>
+
+0000000080002dac <test_25>:
+ 80002dac: 02100093 li ra,33
+ 80002db0: 00a0d013 srli zero,ra,0xa
+ 80002db4: 00000e93 li t4,0
+ 80002db8: 01900193 li gp,25
+ 80002dbc: 01d01463 bne zero,t4,80002dc4 <fail>
+ 80002dc0: 00301a63 bne zero,gp,80002dd4 <pass>
+
+0000000080002dc4 <fail>:
+ 80002dc4: 00119513 slli a0,gp,0x1
+ 80002dc8: 00050063 beqz a0,80002dc8 <fail+0x4>
+ 80002dcc: 00156513 ori a0,a0,1
+ 80002dd0: 00000073 ecall
+
+0000000080002dd4 <pass>:
+ 80002dd4: 00100513 li a0,1
+ 80002dd8: 00000073 ecall
+ 80002ddc: c0001073 unimp
diff --git a/test/tests/rv64ui-v-srli.elf b/test/tests/rv64ui-v-srli.elf
new file mode 100644
index 0000000..4a1f2d6
--- /dev/null
+++ b/test/tests/rv64ui-v-srli.elf
Binary files differ
diff --git a/test/tests/rv64ui-v-srliw.dump b/test/tests/rv64ui-v-srliw.dump
new file mode 100644
index 0000000..919e1de
--- /dev/null
+++ b/test/tests/rv64ui-v-srliw.dump
@@ -0,0 +1,1054 @@
+
+rv64ui-v-srliw: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <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: 6b810113 addi sp,sp,1720 # 800086d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00001617 auipc a2,0x1
+ 80002318: cec60613 addi a2,a2,-788 # 80003000 <begin_signature>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00005797 auipc a5,0x5
+ 80002334: 4b878793 addi a5,a5,1208 # 800077e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00005717 auipc a4,0x5
+ 80002348: 49c70713 addi a4,a4,1180 # 800077e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00005897 auipc a7,0x5
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800077e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00005797 auipc a5,0x5
+ 80002384: 07078793 addi a5,a5,112 # 800073f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf8810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00005797 auipc a5,0x5
+ 80002448: 3807be23 sd zero,924(a5) # 800077e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00001697 auipc a3,0x1
+ 8000245c: 93068693 addi a3,a3,-1744 # 80002d88 <pass+0x10>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00001617 auipc a2,0x1
+ 800024b8: 96460613 addi a2,a2,-1692 # 80002e18 <pass+0xa0>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00001617 auipc a2,0x1
+ 80002508: 92c60613 addi a2,a2,-1748 # 80002e30 <pass+0xb8>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00001697 auipc a3,0x1
+ 80002558: 87c68693 addi a3,a3,-1924 # 80002dd0 <pass+0x58>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00001697 auipc a3,0x1
+ 80002674: 89868693 addi a3,a3,-1896 # 80002f08 <pass+0x190>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00001617 auipc a2,0x1
+ 800026cc: 81860613 addi a2,a2,-2024 # 80002ee0 <pass+0x168>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00005d17 auipc s10,0x5
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800073f0 <user_mapping>
+ 80002724: 00001b97 auipc s7,0x1
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80003000 <begin_signature>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00005a17 auipc s4,0x5
+ 80002738: 0aca0a13 addi s4,s4,172 # 800077e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00005717 auipc a4,0x5
+ 8000274c: 08f73c23 sd a5,152(a4) # 800077e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00005717 auipc a4,0x5
+ 800027d4: 00f73823 sd a5,16(a4) # 800077e0 <freelist_tail>
+ 800027d8: 00005717 auipc a4,0x5
+ 800027dc: 00f73823 sd a5,16(a4) # 800077e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 74c68693 addi a3,a3,1868 # 80002f38 <pass+0x1c0>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 66c68693 addi a3,a3,1644 # 80002ea8 <pass+0x130>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 5fc68693 addi a3,a3,1532 # 80002e70 <pass+0xf8>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00001697 auipc a3,0x1
+ 800028e0: 72468693 addi a3,a3,1828 # 80004000 <begin_signature+0x1000>
+ 800028e4: 00002717 auipc a4,0x2
+ 800028e8: 71c70713 addi a4,a4,1820 # 80005000 <begin_signature+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00003797 auipc a5,0x3
+ 800028f8: 70c78793 addi a5,a5,1804 # 80006000 <begin_signature+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00000897 auipc a7,0x0
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80003000 <begin_signature>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00001697 auipc a3,0x1
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80003ff8 <begin_signature+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00000617 auipc a2,0x0
+ 80002938: 6cc60613 addi a2,a2,1740 # 80003000 <begin_signature>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00003697 auipc a3,0x3
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80005ff8 <begin_signature+0x2ff8>
+ 8000294c: 00001717 auipc a4,0x1
+ 80002950: 6af73a23 sd a5,1716(a4) # 80004000 <begin_signature+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00004697 auipc a3,0x4
+ 800029c0: 64468693 addi a3,a3,1604 # 80007000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00005617 auipc a2,0x5
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800077e8 <freelist_head>
+ 800029d4: 00005797 auipc a5,0x5
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800077e0 <freelist_tail>
+ 800029dc: 00005317 auipc t1,0x5
+ 800029e0: a1430313 addi t1,t1,-1516 # 800073f0 <user_mapping>
+ 800029e4: 02200793 li a5,34
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00005797 auipc a5,0x5
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800073e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 029637b7 lui a5,0x2963
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: 15178793 addi a5,a5,337 # 2963151 <_start-0x7d69ceaf>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 800000b7 lui ra,0x80000
+ 80002acc: 0000df1b srliw t5,ra,0x0
+ 80002ad0: 80000eb7 lui t4,0x80000
+ 80002ad4: 00200193 li gp,2
+ 80002ad8: 29df1863 bne t5,t4,80002d68 <fail>
+
+0000000080002adc <test_3>:
+ 80002adc: 800000b7 lui ra,0x80000
+ 80002ae0: 0010df1b srliw t5,ra,0x1
+ 80002ae4: 40000eb7 lui t4,0x40000
+ 80002ae8: 00300193 li gp,3
+ 80002aec: 27df1e63 bne t5,t4,80002d68 <fail>
+
+0000000080002af0 <test_4>:
+ 80002af0: 800000b7 lui ra,0x80000
+ 80002af4: 0070df1b srliw t5,ra,0x7
+ 80002af8: 01000eb7 lui t4,0x1000
+ 80002afc: 00400193 li gp,4
+ 80002b00: 27df1463 bne t5,t4,80002d68 <fail>
+
+0000000080002b04 <test_5>:
+ 80002b04: 800000b7 lui ra,0x80000
+ 80002b08: 00e0df1b srliw t5,ra,0xe
+ 80002b0c: 00020eb7 lui t4,0x20
+ 80002b10: 00500193 li gp,5
+ 80002b14: 25df1a63 bne t5,t4,80002d68 <fail>
+
+0000000080002b18 <test_6>:
+ 80002b18: 800000b7 lui ra,0x80000
+ 80002b1c: 0010809b addiw ra,ra,1
+ 80002b20: 01f0df1b srliw t5,ra,0x1f
+ 80002b24: 00100e93 li t4,1
+ 80002b28: 00600193 li gp,6
+ 80002b2c: 23df1e63 bne t5,t4,80002d68 <fail>
+
+0000000080002b30 <test_7>:
+ 80002b30: fff00093 li ra,-1
+ 80002b34: 0000df1b srliw t5,ra,0x0
+ 80002b38: fff00e93 li t4,-1
+ 80002b3c: 00700193 li gp,7
+ 80002b40: 23df1463 bne t5,t4,80002d68 <fail>
+
+0000000080002b44 <test_8>:
+ 80002b44: fff00093 li ra,-1
+ 80002b48: 0010df1b srliw t5,ra,0x1
+ 80002b4c: 80000eb7 lui t4,0x80000
+ 80002b50: fffe8e9b addiw t4,t4,-1
+ 80002b54: 00800193 li gp,8
+ 80002b58: 21df1863 bne t5,t4,80002d68 <fail>
+
+0000000080002b5c <test_9>:
+ 80002b5c: fff00093 li ra,-1
+ 80002b60: 0070df1b srliw t5,ra,0x7
+ 80002b64: 02000eb7 lui t4,0x2000
+ 80002b68: fffe8e9b addiw t4,t4,-1
+ 80002b6c: 00900193 li gp,9
+ 80002b70: 1fdf1c63 bne t5,t4,80002d68 <fail>
+
+0000000080002b74 <test_10>:
+ 80002b74: fff00093 li ra,-1
+ 80002b78: 00e0df1b srliw t5,ra,0xe
+ 80002b7c: 00040eb7 lui t4,0x40
+ 80002b80: fffe8e9b addiw t4,t4,-1
+ 80002b84: 00a00193 li gp,10
+ 80002b88: 1fdf1063 bne t5,t4,80002d68 <fail>
+
+0000000080002b8c <test_11>:
+ 80002b8c: fff00093 li ra,-1
+ 80002b90: 01f0df1b srliw t5,ra,0x1f
+ 80002b94: 00100e93 li t4,1
+ 80002b98: 00b00193 li gp,11
+ 80002b9c: 1ddf1663 bne t5,t4,80002d68 <fail>
+
+0000000080002ba0 <test_12>:
+ 80002ba0: 212120b7 lui ra,0x21212
+ 80002ba4: 1210809b addiw ra,ra,289
+ 80002ba8: 0000df1b srliw t5,ra,0x0
+ 80002bac: 21212eb7 lui t4,0x21212
+ 80002bb0: 121e8e9b addiw t4,t4,289
+ 80002bb4: 00c00193 li gp,12
+ 80002bb8: 1bdf1863 bne t5,t4,80002d68 <fail>
+
+0000000080002bbc <test_13>:
+ 80002bbc: 212120b7 lui ra,0x21212
+ 80002bc0: 1210809b addiw ra,ra,289
+ 80002bc4: 0010df1b srliw t5,ra,0x1
+ 80002bc8: 10909eb7 lui t4,0x10909
+ 80002bcc: 090e8e9b addiw t4,t4,144
+ 80002bd0: 00d00193 li gp,13
+ 80002bd4: 19df1a63 bne t5,t4,80002d68 <fail>
+
+0000000080002bd8 <test_14>:
+ 80002bd8: 212120b7 lui ra,0x21212
+ 80002bdc: 1210809b addiw ra,ra,289
+ 80002be0: 0070df1b srliw t5,ra,0x7
+ 80002be4: 00424eb7 lui t4,0x424
+ 80002be8: 242e8e9b addiw t4,t4,578
+ 80002bec: 00e00193 li gp,14
+ 80002bf0: 17df1c63 bne t5,t4,80002d68 <fail>
+
+0000000080002bf4 <test_15>:
+ 80002bf4: 212120b7 lui ra,0x21212
+ 80002bf8: 1210809b addiw ra,ra,289
+ 80002bfc: 00e0df1b srliw t5,ra,0xe
+ 80002c00: 00008eb7 lui t4,0x8
+ 80002c04: 484e8e9b addiw t4,t4,1156
+ 80002c08: 00f00193 li gp,15
+ 80002c0c: 15df1e63 bne t5,t4,80002d68 <fail>
+
+0000000080002c10 <test_16>:
+ 80002c10: 212120b7 lui ra,0x21212
+ 80002c14: 1210809b addiw ra,ra,289
+ 80002c18: 01f0df1b srliw t5,ra,0x1f
+ 80002c1c: 00000e93 li t4,0
+ 80002c20: 01000193 li gp,16
+ 80002c24: 15df1263 bne t5,t4,80002d68 <fail>
+
+0000000080002c28 <test_17>:
+ 80002c28: 800000b7 lui ra,0x80000
+ 80002c2c: 0070d09b srliw ra,ra,0x7
+ 80002c30: 01000eb7 lui t4,0x1000
+ 80002c34: 01100193 li gp,17
+ 80002c38: 13d09863 bne ra,t4,80002d68 <fail>
+
+0000000080002c3c <test_18>:
+ 80002c3c: 00000213 li tp,0
+ 80002c40: 800000b7 lui ra,0x80000
+ 80002c44: 0070df1b srliw t5,ra,0x7
+ 80002c48: 000f0313 mv t1,t5
+ 80002c4c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c50: 00200293 li t0,2
+ 80002c54: fe5216e3 bne tp,t0,80002c40 <test_18+0x4>
+ 80002c58: 01000eb7 lui t4,0x1000
+ 80002c5c: 01200193 li gp,18
+ 80002c60: 11d31463 bne t1,t4,80002d68 <fail>
+
+0000000080002c64 <test_19>:
+ 80002c64: 00000213 li tp,0
+ 80002c68: 800000b7 lui ra,0x80000
+ 80002c6c: 00e0df1b srliw t5,ra,0xe
+ 80002c70: 00000013 nop
+ 80002c74: 000f0313 mv t1,t5
+ 80002c78: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c7c: 00200293 li t0,2
+ 80002c80: fe5214e3 bne tp,t0,80002c68 <test_19+0x4>
+ 80002c84: 00020eb7 lui t4,0x20
+ 80002c88: 01300193 li gp,19
+ 80002c8c: 0dd31e63 bne t1,t4,80002d68 <fail>
+
+0000000080002c90 <test_20>:
+ 80002c90: 00000213 li tp,0
+ 80002c94: 800000b7 lui ra,0x80000
+ 80002c98: 0010809b addiw ra,ra,1
+ 80002c9c: 01f0df1b srliw t5,ra,0x1f
+ 80002ca0: 00000013 nop
+ 80002ca4: 00000013 nop
+ 80002ca8: 000f0313 mv t1,t5
+ 80002cac: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002cb0: 00200293 li t0,2
+ 80002cb4: fe5210e3 bne tp,t0,80002c94 <test_20+0x4>
+ 80002cb8: 00100e93 li t4,1
+ 80002cbc: 01400193 li gp,20
+ 80002cc0: 0bd31463 bne t1,t4,80002d68 <fail>
+
+0000000080002cc4 <test_21>:
+ 80002cc4: 00000213 li tp,0
+ 80002cc8: 800000b7 lui ra,0x80000
+ 80002ccc: 0070df1b srliw t5,ra,0x7
+ 80002cd0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002cd4: 00200293 li t0,2
+ 80002cd8: fe5218e3 bne tp,t0,80002cc8 <test_21+0x4>
+ 80002cdc: 01000eb7 lui t4,0x1000
+ 80002ce0: 01500193 li gp,21
+ 80002ce4: 09df1263 bne t5,t4,80002d68 <fail>
+
+0000000080002ce8 <test_22>:
+ 80002ce8: 00000213 li tp,0
+ 80002cec: 800000b7 lui ra,0x80000
+ 80002cf0: 00000013 nop
+ 80002cf4: 00e0df1b srliw t5,ra,0xe
+ 80002cf8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002cfc: 00200293 li t0,2
+ 80002d00: fe5216e3 bne tp,t0,80002cec <test_22+0x4>
+ 80002d04: 00020eb7 lui t4,0x20
+ 80002d08: 01600193 li gp,22
+ 80002d0c: 05df1e63 bne t5,t4,80002d68 <fail>
+
+0000000080002d10 <test_23>:
+ 80002d10: 00000213 li tp,0
+ 80002d14: 800000b7 lui ra,0x80000
+ 80002d18: 0010809b addiw ra,ra,1
+ 80002d1c: 00000013 nop
+ 80002d20: 00000013 nop
+ 80002d24: 01f0df1b srliw t5,ra,0x1f
+ 80002d28: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d2c: 00200293 li t0,2
+ 80002d30: fe5212e3 bne tp,t0,80002d14 <test_23+0x4>
+ 80002d34: 00100e93 li t4,1
+ 80002d38: 01700193 li gp,23
+ 80002d3c: 03df1663 bne t5,t4,80002d68 <fail>
+
+0000000080002d40 <test_24>:
+ 80002d40: 01f0509b srliw ra,zero,0x1f
+ 80002d44: 00000e93 li t4,0
+ 80002d48: 01800193 li gp,24
+ 80002d4c: 01d09e63 bne ra,t4,80002d68 <fail>
+
+0000000080002d50 <test_25>:
+ 80002d50: 01f00093 li ra,31
+ 80002d54: 01c0d01b srliw zero,ra,0x1c
+ 80002d58: 00000e93 li t4,0
+ 80002d5c: 01900193 li gp,25
+ 80002d60: 01d01463 bne zero,t4,80002d68 <fail>
+ 80002d64: 00301a63 bne zero,gp,80002d78 <pass>
+
+0000000080002d68 <fail>:
+ 80002d68: 00119513 slli a0,gp,0x1
+ 80002d6c: 00050063 beqz a0,80002d6c <fail+0x4>
+ 80002d70: 00156513 ori a0,a0,1
+ 80002d74: 00000073 ecall
+
+0000000080002d78 <pass>:
+ 80002d78: 00100513 li a0,1
+ 80002d7c: 00000073 ecall
+ 80002d80: c0001073 unimp
diff --git a/test/tests/rv64ui-v-srliw.elf b/test/tests/rv64ui-v-srliw.elf
new file mode 100644
index 0000000..eacd870
--- /dev/null
+++ b/test/tests/rv64ui-v-srliw.elf
Binary files differ
diff --git a/test/tests/rv64ui-v-srlw.dump b/test/tests/rv64ui-v-srlw.dump
new file mode 100644
index 0000000..2cbf750
--- /dev/null
+++ b/test/tests/rv64ui-v-srlw.dump
@@ -0,0 +1,1275 @@
+
+rv64ui-v-srlw: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <handle_reset>:
+ 8000000c: 00000297 auipc t0,0x0
+ 80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+ 80000014: 30529073 csrw mtvec,t0
+ 80000018: 00009117 auipc sp,0x9
+ 8000001c: 6b810113 addi sp,sp,1720 # 800096d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00002617 auipc a2,0x2
+ 80002318: cec60613 addi a2,a2,-788 # 80004000 <begin_signature>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00006797 auipc a5,0x6
+ 80002334: 4b878793 addi a5,a5,1208 # 800087e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00006717 auipc a4,0x6
+ 80002348: 49c70713 addi a4,a4,1180 # 800087e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00006897 auipc a7,0x6
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800087e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00006797 auipc a5,0x6
+ 80002384: 07078793 addi a5,a5,112 # 800083f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf7810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00006797 auipc a5,0x6
+ 80002448: 3807be23 sd zero,924(a5) # 800087e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00001697 auipc a3,0x1
+ 8000245c: c1068693 addi a3,a3,-1008 # 80003068 <pass+0xc>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00001617 auipc a2,0x1
+ 800024b8: c4460613 addi a2,a2,-956 # 800030f8 <pass+0x9c>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00001617 auipc a2,0x1
+ 80002508: c0c60613 addi a2,a2,-1012 # 80003110 <pass+0xb4>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00001697 auipc a3,0x1
+ 80002558: b5c68693 addi a3,a3,-1188 # 800030b0 <pass+0x54>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00001697 auipc a3,0x1
+ 80002674: b7868693 addi a3,a3,-1160 # 800031e8 <pass+0x18c>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00001617 auipc a2,0x1
+ 800026cc: af860613 addi a2,a2,-1288 # 800031c0 <pass+0x164>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00006d17 auipc s10,0x6
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800083f0 <user_mapping>
+ 80002724: 00002b97 auipc s7,0x2
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80004000 <begin_signature>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00006a17 auipc s4,0x6
+ 80002738: 0aca0a13 addi s4,s4,172 # 800087e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00006717 auipc a4,0x6
+ 8000274c: 08f73c23 sd a5,152(a4) # 800087e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00006717 auipc a4,0x6
+ 800027d4: 00f73823 sd a5,16(a4) # 800087e0 <freelist_tail>
+ 800027d8: 00006717 auipc a4,0x6
+ 800027dc: 00f73823 sd a5,16(a4) # 800087e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00001697 auipc a3,0x1
+ 800027f0: a2c68693 addi a3,a3,-1492 # 80003218 <pass+0x1bc>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00001697 auipc a3,0x1
+ 80002840: 94c68693 addi a3,a3,-1716 # 80003188 <pass+0x12c>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00001697 auipc a3,0x1
+ 80002878: 8dc68693 addi a3,a3,-1828 # 80003150 <pass+0xf4>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00002697 auipc a3,0x2
+ 800028e0: 72468693 addi a3,a3,1828 # 80005000 <begin_signature+0x1000>
+ 800028e4: 00003717 auipc a4,0x3
+ 800028e8: 71c70713 addi a4,a4,1820 # 80006000 <begin_signature+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00004797 auipc a5,0x4
+ 800028f8: 70c78793 addi a5,a5,1804 # 80007000 <begin_signature+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00001897 auipc a7,0x1
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80004000 <begin_signature>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00002697 auipc a3,0x2
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80004ff8 <begin_signature+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00001617 auipc a2,0x1
+ 80002938: 6cc60613 addi a2,a2,1740 # 80004000 <begin_signature>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00004697 auipc a3,0x4
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80006ff8 <begin_signature+0x2ff8>
+ 8000294c: 00002717 auipc a4,0x2
+ 80002950: 6af73a23 sd a5,1716(a4) # 80005000 <begin_signature+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00005697 auipc a3,0x5
+ 800029c0: 64468693 addi a3,a3,1604 # 80008000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00006617 auipc a2,0x6
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800087e8 <freelist_head>
+ 800029d4: 00006797 auipc a5,0x6
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800087e0 <freelist_tail>
+ 800029dc: 00006317 auipc t1,0x6
+ 800029e0: a1430313 addi t1,t1,-1516 # 800083f0 <user_mapping>
+ 800029e4: 00800793 li a5,8
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00006797 auipc a5,0x6
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800083e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 069877b7 lui a5,0x6987
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: d1f78793 addi a5,a5,-737 # 6986d1f <_start-0x796792e1>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 800000b7 lui ra,0x80000
+ 80002acc: 00000113 li sp,0
+ 80002ad0: 0020df3b srlw t5,ra,sp
+ 80002ad4: 80000eb7 lui t4,0x80000
+ 80002ad8: 00200193 li gp,2
+ 80002adc: 57df1863 bne t5,t4,8000304c <fail>
+
+0000000080002ae0 <test_3>:
+ 80002ae0: 800000b7 lui ra,0x80000
+ 80002ae4: 00100113 li sp,1
+ 80002ae8: 0020df3b srlw t5,ra,sp
+ 80002aec: 40000eb7 lui t4,0x40000
+ 80002af0: 00300193 li gp,3
+ 80002af4: 55df1c63 bne t5,t4,8000304c <fail>
+
+0000000080002af8 <test_4>:
+ 80002af8: 800000b7 lui ra,0x80000
+ 80002afc: 00700113 li sp,7
+ 80002b00: 0020df3b srlw t5,ra,sp
+ 80002b04: 01000eb7 lui t4,0x1000
+ 80002b08: 00400193 li gp,4
+ 80002b0c: 55df1063 bne t5,t4,8000304c <fail>
+
+0000000080002b10 <test_5>:
+ 80002b10: 800000b7 lui ra,0x80000
+ 80002b14: 00e00113 li sp,14
+ 80002b18: 0020df3b srlw t5,ra,sp
+ 80002b1c: 00020eb7 lui t4,0x20
+ 80002b20: 00500193 li gp,5
+ 80002b24: 53df1463 bne t5,t4,8000304c <fail>
+
+0000000080002b28 <test_6>:
+ 80002b28: 800000b7 lui ra,0x80000
+ 80002b2c: 0010809b addiw ra,ra,1
+ 80002b30: 01f00113 li sp,31
+ 80002b34: 0020df3b srlw t5,ra,sp
+ 80002b38: 00100e93 li t4,1
+ 80002b3c: 00600193 li gp,6
+ 80002b40: 51df1663 bne t5,t4,8000304c <fail>
+
+0000000080002b44 <test_7>:
+ 80002b44: fff00093 li ra,-1
+ 80002b48: 00000113 li sp,0
+ 80002b4c: 0020df3b srlw t5,ra,sp
+ 80002b50: fff00e93 li t4,-1
+ 80002b54: 00700193 li gp,7
+ 80002b58: 4fdf1a63 bne t5,t4,8000304c <fail>
+
+0000000080002b5c <test_8>:
+ 80002b5c: fff00093 li ra,-1
+ 80002b60: 00100113 li sp,1
+ 80002b64: 0020df3b srlw t5,ra,sp
+ 80002b68: 80000eb7 lui t4,0x80000
+ 80002b6c: fffe8e9b addiw t4,t4,-1
+ 80002b70: 00800193 li gp,8
+ 80002b74: 4ddf1c63 bne t5,t4,8000304c <fail>
+
+0000000080002b78 <test_9>:
+ 80002b78: fff00093 li ra,-1
+ 80002b7c: 00700113 li sp,7
+ 80002b80: 0020df3b srlw t5,ra,sp
+ 80002b84: 02000eb7 lui t4,0x2000
+ 80002b88: fffe8e9b addiw t4,t4,-1
+ 80002b8c: 00900193 li gp,9
+ 80002b90: 4bdf1e63 bne t5,t4,8000304c <fail>
+
+0000000080002b94 <test_10>:
+ 80002b94: fff00093 li ra,-1
+ 80002b98: 00e00113 li sp,14
+ 80002b9c: 0020df3b srlw t5,ra,sp
+ 80002ba0: 00040eb7 lui t4,0x40
+ 80002ba4: fffe8e9b addiw t4,t4,-1
+ 80002ba8: 00a00193 li gp,10
+ 80002bac: 4bdf1063 bne t5,t4,8000304c <fail>
+
+0000000080002bb0 <test_11>:
+ 80002bb0: fff00093 li ra,-1
+ 80002bb4: 01f00113 li sp,31
+ 80002bb8: 0020df3b srlw t5,ra,sp
+ 80002bbc: 00100e93 li t4,1
+ 80002bc0: 00b00193 li gp,11
+ 80002bc4: 49df1463 bne t5,t4,8000304c <fail>
+
+0000000080002bc8 <test_12>:
+ 80002bc8: 212120b7 lui ra,0x21212
+ 80002bcc: 1210809b addiw ra,ra,289
+ 80002bd0: 00000113 li sp,0
+ 80002bd4: 0020df3b srlw t5,ra,sp
+ 80002bd8: 21212eb7 lui t4,0x21212
+ 80002bdc: 121e8e9b addiw t4,t4,289
+ 80002be0: 00c00193 li gp,12
+ 80002be4: 47df1463 bne t5,t4,8000304c <fail>
+
+0000000080002be8 <test_13>:
+ 80002be8: 212120b7 lui ra,0x21212
+ 80002bec: 1210809b addiw ra,ra,289
+ 80002bf0: 00100113 li sp,1
+ 80002bf4: 0020df3b srlw t5,ra,sp
+ 80002bf8: 10909eb7 lui t4,0x10909
+ 80002bfc: 090e8e9b addiw t4,t4,144
+ 80002c00: 00d00193 li gp,13
+ 80002c04: 45df1463 bne t5,t4,8000304c <fail>
+
+0000000080002c08 <test_14>:
+ 80002c08: 212120b7 lui ra,0x21212
+ 80002c0c: 1210809b addiw ra,ra,289
+ 80002c10: 00700113 li sp,7
+ 80002c14: 0020df3b srlw t5,ra,sp
+ 80002c18: 00424eb7 lui t4,0x424
+ 80002c1c: 242e8e9b addiw t4,t4,578
+ 80002c20: 00e00193 li gp,14
+ 80002c24: 43df1463 bne t5,t4,8000304c <fail>
+
+0000000080002c28 <test_15>:
+ 80002c28: 212120b7 lui ra,0x21212
+ 80002c2c: 1210809b addiw ra,ra,289
+ 80002c30: 00e00113 li sp,14
+ 80002c34: 0020df3b srlw t5,ra,sp
+ 80002c38: 00008eb7 lui t4,0x8
+ 80002c3c: 484e8e9b addiw t4,t4,1156
+ 80002c40: 00f00193 li gp,15
+ 80002c44: 41df1463 bne t5,t4,8000304c <fail>
+
+0000000080002c48 <test_16>:
+ 80002c48: 212120b7 lui ra,0x21212
+ 80002c4c: 1210809b addiw ra,ra,289
+ 80002c50: 01f00113 li sp,31
+ 80002c54: 0020df3b srlw t5,ra,sp
+ 80002c58: 00000e93 li t4,0
+ 80002c5c: 01000193 li gp,16
+ 80002c60: 3fdf1663 bne t5,t4,8000304c <fail>
+
+0000000080002c64 <test_17>:
+ 80002c64: 212120b7 lui ra,0x21212
+ 80002c68: 1210809b addiw ra,ra,289
+ 80002c6c: fe000113 li sp,-32
+ 80002c70: 0020df3b srlw t5,ra,sp
+ 80002c74: 21212eb7 lui t4,0x21212
+ 80002c78: 121e8e9b addiw t4,t4,289
+ 80002c7c: 01100193 li gp,17
+ 80002c80: 3ddf1663 bne t5,t4,8000304c <fail>
+
+0000000080002c84 <test_18>:
+ 80002c84: 212120b7 lui ra,0x21212
+ 80002c88: 1210809b addiw ra,ra,289
+ 80002c8c: fe100113 li sp,-31
+ 80002c90: 0020df3b srlw t5,ra,sp
+ 80002c94: 10909eb7 lui t4,0x10909
+ 80002c98: 090e8e9b addiw t4,t4,144
+ 80002c9c: 01200193 li gp,18
+ 80002ca0: 3bdf1663 bne t5,t4,8000304c <fail>
+
+0000000080002ca4 <test_19>:
+ 80002ca4: 212120b7 lui ra,0x21212
+ 80002ca8: 1210809b addiw ra,ra,289
+ 80002cac: fe700113 li sp,-25
+ 80002cb0: 0020df3b srlw t5,ra,sp
+ 80002cb4: 00424eb7 lui t4,0x424
+ 80002cb8: 242e8e9b addiw t4,t4,578
+ 80002cbc: 01300193 li gp,19
+ 80002cc0: 39df1663 bne t5,t4,8000304c <fail>
+
+0000000080002cc4 <test_20>:
+ 80002cc4: 212120b7 lui ra,0x21212
+ 80002cc8: 1210809b addiw ra,ra,289
+ 80002ccc: fee00113 li sp,-18
+ 80002cd0: 0020df3b srlw t5,ra,sp
+ 80002cd4: 00008eb7 lui t4,0x8
+ 80002cd8: 484e8e9b addiw t4,t4,1156
+ 80002cdc: 01400193 li gp,20
+ 80002ce0: 37df1663 bne t5,t4,8000304c <fail>
+
+0000000080002ce4 <test_21>:
+ 80002ce4: 212120b7 lui ra,0x21212
+ 80002ce8: 1210809b addiw ra,ra,289
+ 80002cec: fff00113 li sp,-1
+ 80002cf0: 0020df3b srlw t5,ra,sp
+ 80002cf4: 00000e93 li t4,0
+ 80002cf8: 01500193 li gp,21
+ 80002cfc: 35df1863 bne t5,t4,8000304c <fail>
+
+0000000080002d00 <test_22>:
+ 80002d00: 800000b7 lui ra,0x80000
+ 80002d04: 00700113 li sp,7
+ 80002d08: 0020d0bb srlw ra,ra,sp
+ 80002d0c: 01000eb7 lui t4,0x1000
+ 80002d10: 01600193 li gp,22
+ 80002d14: 33d09c63 bne ra,t4,8000304c <fail>
+
+0000000080002d18 <test_23>:
+ 80002d18: 800000b7 lui ra,0x80000
+ 80002d1c: 00e00113 li sp,14
+ 80002d20: 0020d13b srlw sp,ra,sp
+ 80002d24: 00020eb7 lui t4,0x20
+ 80002d28: 01700193 li gp,23
+ 80002d2c: 33d11063 bne sp,t4,8000304c <fail>
+
+0000000080002d30 <test_24>:
+ 80002d30: 00700093 li ra,7
+ 80002d34: 0010d0bb srlw ra,ra,ra
+ 80002d38: 00000e93 li t4,0
+ 80002d3c: 01800193 li gp,24
+ 80002d40: 31d09663 bne ra,t4,8000304c <fail>
+
+0000000080002d44 <test_25>:
+ 80002d44: 00000213 li tp,0
+ 80002d48: 800000b7 lui ra,0x80000
+ 80002d4c: 00700113 li sp,7
+ 80002d50: 0020df3b srlw t5,ra,sp
+ 80002d54: 000f0313 mv t1,t5
+ 80002d58: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d5c: 00200293 li t0,2
+ 80002d60: fe5214e3 bne tp,t0,80002d48 <test_25+0x4>
+ 80002d64: 01000eb7 lui t4,0x1000
+ 80002d68: 01900193 li gp,25
+ 80002d6c: 2fd31063 bne t1,t4,8000304c <fail>
+
+0000000080002d70 <test_26>:
+ 80002d70: 00000213 li tp,0
+ 80002d74: 800000b7 lui ra,0x80000
+ 80002d78: 00e00113 li sp,14
+ 80002d7c: 0020df3b srlw t5,ra,sp
+ 80002d80: 00000013 nop
+ 80002d84: 000f0313 mv t1,t5
+ 80002d88: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d8c: 00200293 li t0,2
+ 80002d90: fe5212e3 bne tp,t0,80002d74 <test_26+0x4>
+ 80002d94: 00020eb7 lui t4,0x20
+ 80002d98: 01a00193 li gp,26
+ 80002d9c: 2bd31863 bne t1,t4,8000304c <fail>
+
+0000000080002da0 <test_27>:
+ 80002da0: 00000213 li tp,0
+ 80002da4: 800000b7 lui ra,0x80000
+ 80002da8: 01f00113 li sp,31
+ 80002dac: 0020df3b srlw t5,ra,sp
+ 80002db0: 00000013 nop
+ 80002db4: 00000013 nop
+ 80002db8: 000f0313 mv t1,t5
+ 80002dbc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002dc0: 00200293 li t0,2
+ 80002dc4: fe5210e3 bne tp,t0,80002da4 <test_27+0x4>
+ 80002dc8: 00100e93 li t4,1
+ 80002dcc: 01b00193 li gp,27
+ 80002dd0: 27d31e63 bne t1,t4,8000304c <fail>
+
+0000000080002dd4 <test_28>:
+ 80002dd4: 00000213 li tp,0
+ 80002dd8: 800000b7 lui ra,0x80000
+ 80002ddc: 00700113 li sp,7
+ 80002de0: 0020df3b srlw t5,ra,sp
+ 80002de4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002de8: 00200293 li t0,2
+ 80002dec: fe5216e3 bne tp,t0,80002dd8 <test_28+0x4>
+ 80002df0: 01000eb7 lui t4,0x1000
+ 80002df4: 01c00193 li gp,28
+ 80002df8: 25df1a63 bne t5,t4,8000304c <fail>
+
+0000000080002dfc <test_29>:
+ 80002dfc: 00000213 li tp,0
+ 80002e00: 800000b7 lui ra,0x80000
+ 80002e04: 00e00113 li sp,14
+ 80002e08: 00000013 nop
+ 80002e0c: 0020df3b srlw t5,ra,sp
+ 80002e10: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e14: 00200293 li t0,2
+ 80002e18: fe5214e3 bne tp,t0,80002e00 <test_29+0x4>
+ 80002e1c: 00020eb7 lui t4,0x20
+ 80002e20: 01d00193 li gp,29
+ 80002e24: 23df1463 bne t5,t4,8000304c <fail>
+
+0000000080002e28 <test_30>:
+ 80002e28: 00000213 li tp,0
+ 80002e2c: 800000b7 lui ra,0x80000
+ 80002e30: 01f00113 li sp,31
+ 80002e34: 00000013 nop
+ 80002e38: 00000013 nop
+ 80002e3c: 0020df3b srlw t5,ra,sp
+ 80002e40: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e44: 00200293 li t0,2
+ 80002e48: fe5212e3 bne tp,t0,80002e2c <test_30+0x4>
+ 80002e4c: 00100e93 li t4,1
+ 80002e50: 01e00193 li gp,30
+ 80002e54: 1fdf1c63 bne t5,t4,8000304c <fail>
+
+0000000080002e58 <test_31>:
+ 80002e58: 00000213 li tp,0
+ 80002e5c: 800000b7 lui ra,0x80000
+ 80002e60: 00000013 nop
+ 80002e64: 00700113 li sp,7
+ 80002e68: 0020df3b srlw t5,ra,sp
+ 80002e6c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e70: 00200293 li t0,2
+ 80002e74: fe5214e3 bne tp,t0,80002e5c <test_31+0x4>
+ 80002e78: 01000eb7 lui t4,0x1000
+ 80002e7c: 01f00193 li gp,31
+ 80002e80: 1ddf1663 bne t5,t4,8000304c <fail>
+
+0000000080002e84 <test_32>:
+ 80002e84: 00000213 li tp,0
+ 80002e88: 800000b7 lui ra,0x80000
+ 80002e8c: 00000013 nop
+ 80002e90: 00e00113 li sp,14
+ 80002e94: 00000013 nop
+ 80002e98: 0020df3b srlw t5,ra,sp
+ 80002e9c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ea0: 00200293 li t0,2
+ 80002ea4: fe5212e3 bne tp,t0,80002e88 <test_32+0x4>
+ 80002ea8: 00020eb7 lui t4,0x20
+ 80002eac: 02000193 li gp,32
+ 80002eb0: 19df1e63 bne t5,t4,8000304c <fail>
+
+0000000080002eb4 <test_33>:
+ 80002eb4: 00000213 li tp,0
+ 80002eb8: 800000b7 lui ra,0x80000
+ 80002ebc: 00000013 nop
+ 80002ec0: 00000013 nop
+ 80002ec4: 01f00113 li sp,31
+ 80002ec8: 0020df3b srlw t5,ra,sp
+ 80002ecc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ed0: 00200293 li t0,2
+ 80002ed4: fe5212e3 bne tp,t0,80002eb8 <test_33+0x4>
+ 80002ed8: 00100e93 li t4,1
+ 80002edc: 02100193 li gp,33
+ 80002ee0: 17df1663 bne t5,t4,8000304c <fail>
+
+0000000080002ee4 <test_34>:
+ 80002ee4: 00000213 li tp,0
+ 80002ee8: 00700113 li sp,7
+ 80002eec: 800000b7 lui ra,0x80000
+ 80002ef0: 0020df3b srlw t5,ra,sp
+ 80002ef4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ef8: 00200293 li t0,2
+ 80002efc: fe5216e3 bne tp,t0,80002ee8 <test_34+0x4>
+ 80002f00: 01000eb7 lui t4,0x1000
+ 80002f04: 02200193 li gp,34
+ 80002f08: 15df1263 bne t5,t4,8000304c <fail>
+
+0000000080002f0c <test_35>:
+ 80002f0c: 00000213 li tp,0
+ 80002f10: 00e00113 li sp,14
+ 80002f14: 800000b7 lui ra,0x80000
+ 80002f18: 00000013 nop
+ 80002f1c: 0020df3b srlw t5,ra,sp
+ 80002f20: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002f24: 00200293 li t0,2
+ 80002f28: fe5214e3 bne tp,t0,80002f10 <test_35+0x4>
+ 80002f2c: 00020eb7 lui t4,0x20
+ 80002f30: 02300193 li gp,35
+ 80002f34: 11df1c63 bne t5,t4,8000304c <fail>
+
+0000000080002f38 <test_36>:
+ 80002f38: 00000213 li tp,0
+ 80002f3c: 01f00113 li sp,31
+ 80002f40: 800000b7 lui ra,0x80000
+ 80002f44: 00000013 nop
+ 80002f48: 00000013 nop
+ 80002f4c: 0020df3b srlw t5,ra,sp
+ 80002f50: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002f54: 00200293 li t0,2
+ 80002f58: fe5212e3 bne tp,t0,80002f3c <test_36+0x4>
+ 80002f5c: 00100e93 li t4,1
+ 80002f60: 02400193 li gp,36
+ 80002f64: 0fdf1463 bne t5,t4,8000304c <fail>
+
+0000000080002f68 <test_37>:
+ 80002f68: 00000213 li tp,0
+ 80002f6c: 00700113 li sp,7
+ 80002f70: 00000013 nop
+ 80002f74: 800000b7 lui ra,0x80000
+ 80002f78: 0020df3b srlw t5,ra,sp
+ 80002f7c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002f80: 00200293 li t0,2
+ 80002f84: fe5214e3 bne tp,t0,80002f6c <test_37+0x4>
+ 80002f88: 01000eb7 lui t4,0x1000
+ 80002f8c: 02500193 li gp,37
+ 80002f90: 0bdf1e63 bne t5,t4,8000304c <fail>
+
+0000000080002f94 <test_38>:
+ 80002f94: 00000213 li tp,0
+ 80002f98: 00e00113 li sp,14
+ 80002f9c: 00000013 nop
+ 80002fa0: 800000b7 lui ra,0x80000
+ 80002fa4: 00000013 nop
+ 80002fa8: 0020df3b srlw t5,ra,sp
+ 80002fac: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002fb0: 00200293 li t0,2
+ 80002fb4: fe5212e3 bne tp,t0,80002f98 <test_38+0x4>
+ 80002fb8: 00020eb7 lui t4,0x20
+ 80002fbc: 02600193 li gp,38
+ 80002fc0: 09df1663 bne t5,t4,8000304c <fail>
+
+0000000080002fc4 <test_39>:
+ 80002fc4: 00000213 li tp,0
+ 80002fc8: 01f00113 li sp,31
+ 80002fcc: 00000013 nop
+ 80002fd0: 00000013 nop
+ 80002fd4: 800000b7 lui ra,0x80000
+ 80002fd8: 0020df3b srlw t5,ra,sp
+ 80002fdc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002fe0: 00200293 li t0,2
+ 80002fe4: fe5212e3 bne tp,t0,80002fc8 <test_39+0x4>
+ 80002fe8: 00100e93 li t4,1
+ 80002fec: 02700193 li gp,39
+ 80002ff0: 05df1e63 bne t5,t4,8000304c <fail>
+
+0000000080002ff4 <test_40>:
+ 80002ff4: 00f00093 li ra,15
+ 80002ff8: 0010513b srlw sp,zero,ra
+ 80002ffc: 00000e93 li t4,0
+ 80003000: 02800193 li gp,40
+ 80003004: 05d11463 bne sp,t4,8000304c <fail>
+
+0000000080003008 <test_41>:
+ 80003008: 02000093 li ra,32
+ 8000300c: 0000d13b srlw sp,ra,zero
+ 80003010: 02000e93 li t4,32
+ 80003014: 02900193 li gp,41
+ 80003018: 03d11a63 bne sp,t4,8000304c <fail>
+
+000000008000301c <test_42>:
+ 8000301c: 000050bb srlw ra,zero,zero
+ 80003020: 00000e93 li t4,0
+ 80003024: 02a00193 li gp,42
+ 80003028: 03d09263 bne ra,t4,8000304c <fail>
+
+000000008000302c <test_43>:
+ 8000302c: 40000093 li ra,1024
+ 80003030: 00001137 lui sp,0x1
+ 80003034: 8001011b addiw sp,sp,-2048
+ 80003038: 0020d03b srlw zero,ra,sp
+ 8000303c: 00000e93 li t4,0
+ 80003040: 02b00193 li gp,43
+ 80003044: 01d01463 bne zero,t4,8000304c <fail>
+ 80003048: 00301a63 bne zero,gp,8000305c <pass>
+
+000000008000304c <fail>:
+ 8000304c: 00119513 slli a0,gp,0x1
+ 80003050: 00050063 beqz a0,80003050 <fail+0x4>
+ 80003054: 00156513 ori a0,a0,1
+ 80003058: 00000073 ecall
+
+000000008000305c <pass>:
+ 8000305c: 00100513 li a0,1
+ 80003060: 00000073 ecall
+ 80003064: c0001073 unimp
diff --git a/test/tests/rv64ui-v-srlw.elf b/test/tests/rv64ui-v-srlw.elf
new file mode 100644
index 0000000..87f8e6d
--- /dev/null
+++ b/test/tests/rv64ui-v-srlw.elf
Binary files differ
diff --git a/test/tests/rv64ui-v-sub.dump b/test/tests/rv64ui-v-sub.dump
new file mode 100644
index 0000000..1e59e97
--- /dev/null
+++ b/test/tests/rv64ui-v-sub.dump
@@ -0,0 +1,1218 @@
+
+rv64ui-v-sub: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <handle_reset>:
+ 8000000c: 00000297 auipc t0,0x0
+ 80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+ 80000014: 30529073 csrw mtvec,t0
+ 80000018: 00009117 auipc sp,0x9
+ 8000001c: 6b810113 addi sp,sp,1720 # 800096d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00002617 auipc a2,0x2
+ 80002318: cec60613 addi a2,a2,-788 # 80004000 <begin_signature>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00006797 auipc a5,0x6
+ 80002334: 4b878793 addi a5,a5,1208 # 800087e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00006717 auipc a4,0x6
+ 80002348: 49c70713 addi a4,a4,1180 # 800087e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00006897 auipc a7,0x6
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800087e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00006797 auipc a5,0x6
+ 80002384: 07078793 addi a5,a5,112 # 800083f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf7810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00006797 auipc a5,0x6
+ 80002448: 3807be23 sd zero,924(a5) # 800087e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00001697 auipc a3,0x1
+ 8000245c: b6068693 addi a3,a3,-1184 # 80002fb8 <pass+0x10>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00001617 auipc a2,0x1
+ 800024b8: b9460613 addi a2,a2,-1132 # 80003048 <pass+0xa0>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00001617 auipc a2,0x1
+ 80002508: b5c60613 addi a2,a2,-1188 # 80003060 <pass+0xb8>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00001697 auipc a3,0x1
+ 80002558: aac68693 addi a3,a3,-1364 # 80003000 <pass+0x58>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00001697 auipc a3,0x1
+ 80002674: ac868693 addi a3,a3,-1336 # 80003138 <pass+0x190>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00001617 auipc a2,0x1
+ 800026cc: a4860613 addi a2,a2,-1464 # 80003110 <pass+0x168>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00006d17 auipc s10,0x6
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800083f0 <user_mapping>
+ 80002724: 00002b97 auipc s7,0x2
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80004000 <begin_signature>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00006a17 auipc s4,0x6
+ 80002738: 0aca0a13 addi s4,s4,172 # 800087e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00006717 auipc a4,0x6
+ 8000274c: 08f73c23 sd a5,152(a4) # 800087e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00006717 auipc a4,0x6
+ 800027d4: 00f73823 sd a5,16(a4) # 800087e0 <freelist_tail>
+ 800027d8: 00006717 auipc a4,0x6
+ 800027dc: 00f73823 sd a5,16(a4) # 800087e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00001697 auipc a3,0x1
+ 800027f0: 97c68693 addi a3,a3,-1668 # 80003168 <pass+0x1c0>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00001697 auipc a3,0x1
+ 80002840: 89c68693 addi a3,a3,-1892 # 800030d8 <pass+0x130>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00001697 auipc a3,0x1
+ 80002878: 82c68693 addi a3,a3,-2004 # 800030a0 <pass+0xf8>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00002697 auipc a3,0x2
+ 800028e0: 72468693 addi a3,a3,1828 # 80005000 <begin_signature+0x1000>
+ 800028e4: 00003717 auipc a4,0x3
+ 800028e8: 71c70713 addi a4,a4,1820 # 80006000 <begin_signature+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00004797 auipc a5,0x4
+ 800028f8: 70c78793 addi a5,a5,1804 # 80007000 <begin_signature+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00001897 auipc a7,0x1
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80004000 <begin_signature>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00002697 auipc a3,0x2
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80004ff8 <begin_signature+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00001617 auipc a2,0x1
+ 80002938: 6cc60613 addi a2,a2,1740 # 80004000 <begin_signature>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00004697 auipc a3,0x4
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80006ff8 <begin_signature+0x2ff8>
+ 8000294c: 00002717 auipc a4,0x2
+ 80002950: 6af73a23 sd a5,1716(a4) # 80005000 <begin_signature+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00005697 auipc a3,0x5
+ 800029c0: 64468693 addi a3,a3,1604 # 80008000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00006617 auipc a2,0x6
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800087e8 <freelist_head>
+ 800029d4: 00006797 auipc a5,0x6
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800087e0 <freelist_tail>
+ 800029dc: 00006317 auipc t1,0x6
+ 800029e0: a1430313 addi t1,t1,-1516 # 800083f0 <user_mapping>
+ 800029e4: 02500793 li a5,37
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00006797 auipc a5,0x6
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800083e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 0913b7b7 lui a5,0x913b
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: a7278793 addi a5,a5,-1422 # 913aa72 <_start-0x76ec558e>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 00000093 li ra,0
+ 80002acc: 00000113 li sp,0
+ 80002ad0: 40208f33 sub t5,ra,sp
+ 80002ad4: 00000e93 li t4,0
+ 80002ad8: 00200193 li gp,2
+ 80002adc: 4bdf1e63 bne t5,t4,80002f98 <fail>
+
+0000000080002ae0 <test_3>:
+ 80002ae0: 00100093 li ra,1
+ 80002ae4: 00100113 li sp,1
+ 80002ae8: 40208f33 sub t5,ra,sp
+ 80002aec: 00000e93 li t4,0
+ 80002af0: 00300193 li gp,3
+ 80002af4: 4bdf1263 bne t5,t4,80002f98 <fail>
+
+0000000080002af8 <test_4>:
+ 80002af8: 00300093 li ra,3
+ 80002afc: 00700113 li sp,7
+ 80002b00: 40208f33 sub t5,ra,sp
+ 80002b04: ffc00e93 li t4,-4
+ 80002b08: 00400193 li gp,4
+ 80002b0c: 49df1663 bne t5,t4,80002f98 <fail>
+
+0000000080002b10 <test_5>:
+ 80002b10: 00000093 li ra,0
+ 80002b14: ffff8137 lui sp,0xffff8
+ 80002b18: 40208f33 sub t5,ra,sp
+ 80002b1c: 00008eb7 lui t4,0x8
+ 80002b20: 00500193 li gp,5
+ 80002b24: 47df1a63 bne t5,t4,80002f98 <fail>
+
+0000000080002b28 <test_6>:
+ 80002b28: 800000b7 lui ra,0x80000
+ 80002b2c: 00000113 li sp,0
+ 80002b30: 40208f33 sub t5,ra,sp
+ 80002b34: 80000eb7 lui t4,0x80000
+ 80002b38: 00600193 li gp,6
+ 80002b3c: 45df1e63 bne t5,t4,80002f98 <fail>
+
+0000000080002b40 <test_7>:
+ 80002b40: 800000b7 lui ra,0x80000
+ 80002b44: ffff8137 lui sp,0xffff8
+ 80002b48: 40208f33 sub t5,ra,sp
+ 80002b4c: 80008eb7 lui t4,0x80008
+ 80002b50: 00700193 li gp,7
+ 80002b54: 45df1263 bne t5,t4,80002f98 <fail>
+
+0000000080002b58 <test_8>:
+ 80002b58: 00000093 li ra,0
+ 80002b5c: 00008137 lui sp,0x8
+ 80002b60: fff1011b addiw sp,sp,-1
+ 80002b64: 40208f33 sub t5,ra,sp
+ 80002b68: ffff8eb7 lui t4,0xffff8
+ 80002b6c: 001e8e9b addiw t4,t4,1
+ 80002b70: 00800193 li gp,8
+ 80002b74: 43df1263 bne t5,t4,80002f98 <fail>
+
+0000000080002b78 <test_9>:
+ 80002b78: 800000b7 lui ra,0x80000
+ 80002b7c: fff0809b addiw ra,ra,-1
+ 80002b80: 00000113 li sp,0
+ 80002b84: 40208f33 sub t5,ra,sp
+ 80002b88: 80000eb7 lui t4,0x80000
+ 80002b8c: fffe8e9b addiw t4,t4,-1
+ 80002b90: 00900193 li gp,9
+ 80002b94: 41df1263 bne t5,t4,80002f98 <fail>
+
+0000000080002b98 <test_10>:
+ 80002b98: 800000b7 lui ra,0x80000
+ 80002b9c: fff0809b addiw ra,ra,-1
+ 80002ba0: 00008137 lui sp,0x8
+ 80002ba4: fff1011b addiw sp,sp,-1
+ 80002ba8: 40208f33 sub t5,ra,sp
+ 80002bac: 7fff8eb7 lui t4,0x7fff8
+ 80002bb0: 00a00193 li gp,10
+ 80002bb4: 3fdf1263 bne t5,t4,80002f98 <fail>
+
+0000000080002bb8 <test_11>:
+ 80002bb8: 800000b7 lui ra,0x80000
+ 80002bbc: 00008137 lui sp,0x8
+ 80002bc0: fff1011b addiw sp,sp,-1
+ 80002bc4: 40208f33 sub t5,ra,sp
+ 80002bc8: ffff0eb7 lui t4,0xffff0
+ 80002bcc: fffe8e9b addiw t4,t4,-1
+ 80002bd0: 00fe9e93 slli t4,t4,0xf
+ 80002bd4: 001e8e93 addi t4,t4,1 # ffffffffffff0001 <_end+0xffffffff7ffe7811>
+ 80002bd8: 00b00193 li gp,11
+ 80002bdc: 3bdf1e63 bne t5,t4,80002f98 <fail>
+
+0000000080002be0 <test_12>:
+ 80002be0: 800000b7 lui ra,0x80000
+ 80002be4: fff0809b addiw ra,ra,-1
+ 80002be8: ffff8137 lui sp,0xffff8
+ 80002bec: 40208f33 sub t5,ra,sp
+ 80002bf0: 00010eb7 lui t4,0x10
+ 80002bf4: 001e8e9b addiw t4,t4,1
+ 80002bf8: 00fe9e93 slli t4,t4,0xf
+ 80002bfc: fffe8e93 addi t4,t4,-1 # ffff <_start-0x7fff0001>
+ 80002c00: 00c00193 li gp,12
+ 80002c04: 39df1a63 bne t5,t4,80002f98 <fail>
+
+0000000080002c08 <test_13>:
+ 80002c08: 00000093 li ra,0
+ 80002c0c: fff00113 li sp,-1
+ 80002c10: 40208f33 sub t5,ra,sp
+ 80002c14: 00100e93 li t4,1
+ 80002c18: 00d00193 li gp,13
+ 80002c1c: 37df1e63 bne t5,t4,80002f98 <fail>
+
+0000000080002c20 <test_14>:
+ 80002c20: fff00093 li ra,-1
+ 80002c24: 00100113 li sp,1
+ 80002c28: 40208f33 sub t5,ra,sp
+ 80002c2c: ffe00e93 li t4,-2
+ 80002c30: 00e00193 li gp,14
+ 80002c34: 37df1263 bne t5,t4,80002f98 <fail>
+
+0000000080002c38 <test_15>:
+ 80002c38: fff00093 li ra,-1
+ 80002c3c: fff00113 li sp,-1
+ 80002c40: 40208f33 sub t5,ra,sp
+ 80002c44: 00000e93 li t4,0
+ 80002c48: 00f00193 li gp,15
+ 80002c4c: 35df1663 bne t5,t4,80002f98 <fail>
+
+0000000080002c50 <test_16>:
+ 80002c50: 00d00093 li ra,13
+ 80002c54: 00b00113 li sp,11
+ 80002c58: 402080b3 sub ra,ra,sp
+ 80002c5c: 00200e93 li t4,2
+ 80002c60: 01000193 li gp,16
+ 80002c64: 33d09a63 bne ra,t4,80002f98 <fail>
+
+0000000080002c68 <test_17>:
+ 80002c68: 00e00093 li ra,14
+ 80002c6c: 00b00113 li sp,11
+ 80002c70: 40208133 sub sp,ra,sp
+ 80002c74: 00300e93 li t4,3
+ 80002c78: 01100193 li gp,17
+ 80002c7c: 31d11e63 bne sp,t4,80002f98 <fail>
+
+0000000080002c80 <test_18>:
+ 80002c80: 00d00093 li ra,13
+ 80002c84: 401080b3 sub ra,ra,ra
+ 80002c88: 00000e93 li t4,0
+ 80002c8c: 01200193 li gp,18
+ 80002c90: 31d09463 bne ra,t4,80002f98 <fail>
+
+0000000080002c94 <test_19>:
+ 80002c94: 00000213 li tp,0
+ 80002c98: 00d00093 li ra,13
+ 80002c9c: 00b00113 li sp,11
+ 80002ca0: 40208f33 sub t5,ra,sp
+ 80002ca4: 000f0313 mv t1,t5
+ 80002ca8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002cac: 00200293 li t0,2
+ 80002cb0: fe5214e3 bne tp,t0,80002c98 <test_19+0x4>
+ 80002cb4: 00200e93 li t4,2
+ 80002cb8: 01300193 li gp,19
+ 80002cbc: 2dd31e63 bne t1,t4,80002f98 <fail>
+
+0000000080002cc0 <test_20>:
+ 80002cc0: 00000213 li tp,0
+ 80002cc4: 00e00093 li ra,14
+ 80002cc8: 00b00113 li sp,11
+ 80002ccc: 40208f33 sub t5,ra,sp
+ 80002cd0: 00000013 nop
+ 80002cd4: 000f0313 mv t1,t5
+ 80002cd8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002cdc: 00200293 li t0,2
+ 80002ce0: fe5212e3 bne tp,t0,80002cc4 <test_20+0x4>
+ 80002ce4: 00300e93 li t4,3
+ 80002ce8: 01400193 li gp,20
+ 80002cec: 2bd31663 bne t1,t4,80002f98 <fail>
+
+0000000080002cf0 <test_21>:
+ 80002cf0: 00000213 li tp,0
+ 80002cf4: 00f00093 li ra,15
+ 80002cf8: 00b00113 li sp,11
+ 80002cfc: 40208f33 sub t5,ra,sp
+ 80002d00: 00000013 nop
+ 80002d04: 00000013 nop
+ 80002d08: 000f0313 mv t1,t5
+ 80002d0c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d10: 00200293 li t0,2
+ 80002d14: fe5210e3 bne tp,t0,80002cf4 <test_21+0x4>
+ 80002d18: 00400e93 li t4,4
+ 80002d1c: 01500193 li gp,21
+ 80002d20: 27d31c63 bne t1,t4,80002f98 <fail>
+
+0000000080002d24 <test_22>:
+ 80002d24: 00000213 li tp,0
+ 80002d28: 00d00093 li ra,13
+ 80002d2c: 00b00113 li sp,11
+ 80002d30: 40208f33 sub t5,ra,sp
+ 80002d34: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d38: 00200293 li t0,2
+ 80002d3c: fe5216e3 bne tp,t0,80002d28 <test_22+0x4>
+ 80002d40: 00200e93 li t4,2
+ 80002d44: 01600193 li gp,22
+ 80002d48: 25df1863 bne t5,t4,80002f98 <fail>
+
+0000000080002d4c <test_23>:
+ 80002d4c: 00000213 li tp,0
+ 80002d50: 00e00093 li ra,14
+ 80002d54: 00b00113 li sp,11
+ 80002d58: 00000013 nop
+ 80002d5c: 40208f33 sub t5,ra,sp
+ 80002d60: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d64: 00200293 li t0,2
+ 80002d68: fe5214e3 bne tp,t0,80002d50 <test_23+0x4>
+ 80002d6c: 00300e93 li t4,3
+ 80002d70: 01700193 li gp,23
+ 80002d74: 23df1263 bne t5,t4,80002f98 <fail>
+
+0000000080002d78 <test_24>:
+ 80002d78: 00000213 li tp,0
+ 80002d7c: 00f00093 li ra,15
+ 80002d80: 00b00113 li sp,11
+ 80002d84: 00000013 nop
+ 80002d88: 00000013 nop
+ 80002d8c: 40208f33 sub t5,ra,sp
+ 80002d90: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d94: 00200293 li t0,2
+ 80002d98: fe5212e3 bne tp,t0,80002d7c <test_24+0x4>
+ 80002d9c: 00400e93 li t4,4
+ 80002da0: 01800193 li gp,24
+ 80002da4: 1fdf1a63 bne t5,t4,80002f98 <fail>
+
+0000000080002da8 <test_25>:
+ 80002da8: 00000213 li tp,0
+ 80002dac: 00d00093 li ra,13
+ 80002db0: 00000013 nop
+ 80002db4: 00b00113 li sp,11
+ 80002db8: 40208f33 sub t5,ra,sp
+ 80002dbc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002dc0: 00200293 li t0,2
+ 80002dc4: fe5214e3 bne tp,t0,80002dac <test_25+0x4>
+ 80002dc8: 00200e93 li t4,2
+ 80002dcc: 01900193 li gp,25
+ 80002dd0: 1ddf1463 bne t5,t4,80002f98 <fail>
+
+0000000080002dd4 <test_26>:
+ 80002dd4: 00000213 li tp,0
+ 80002dd8: 00e00093 li ra,14
+ 80002ddc: 00000013 nop
+ 80002de0: 00b00113 li sp,11
+ 80002de4: 00000013 nop
+ 80002de8: 40208f33 sub t5,ra,sp
+ 80002dec: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002df0: 00200293 li t0,2
+ 80002df4: fe5212e3 bne tp,t0,80002dd8 <test_26+0x4>
+ 80002df8: 00300e93 li t4,3
+ 80002dfc: 01a00193 li gp,26
+ 80002e00: 19df1c63 bne t5,t4,80002f98 <fail>
+
+0000000080002e04 <test_27>:
+ 80002e04: 00000213 li tp,0
+ 80002e08: 00f00093 li ra,15
+ 80002e0c: 00000013 nop
+ 80002e10: 00000013 nop
+ 80002e14: 00b00113 li sp,11
+ 80002e18: 40208f33 sub t5,ra,sp
+ 80002e1c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e20: 00200293 li t0,2
+ 80002e24: fe5212e3 bne tp,t0,80002e08 <test_27+0x4>
+ 80002e28: 00400e93 li t4,4
+ 80002e2c: 01b00193 li gp,27
+ 80002e30: 17df1463 bne t5,t4,80002f98 <fail>
+
+0000000080002e34 <test_28>:
+ 80002e34: 00000213 li tp,0
+ 80002e38: 00b00113 li sp,11
+ 80002e3c: 00d00093 li ra,13
+ 80002e40: 40208f33 sub t5,ra,sp
+ 80002e44: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e48: 00200293 li t0,2
+ 80002e4c: fe5216e3 bne tp,t0,80002e38 <test_28+0x4>
+ 80002e50: 00200e93 li t4,2
+ 80002e54: 01c00193 li gp,28
+ 80002e58: 15df1063 bne t5,t4,80002f98 <fail>
+
+0000000080002e5c <test_29>:
+ 80002e5c: 00000213 li tp,0
+ 80002e60: 00b00113 li sp,11
+ 80002e64: 00e00093 li ra,14
+ 80002e68: 00000013 nop
+ 80002e6c: 40208f33 sub t5,ra,sp
+ 80002e70: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e74: 00200293 li t0,2
+ 80002e78: fe5214e3 bne tp,t0,80002e60 <test_29+0x4>
+ 80002e7c: 00300e93 li t4,3
+ 80002e80: 01d00193 li gp,29
+ 80002e84: 11df1a63 bne t5,t4,80002f98 <fail>
+
+0000000080002e88 <test_30>:
+ 80002e88: 00000213 li tp,0
+ 80002e8c: 00b00113 li sp,11
+ 80002e90: 00f00093 li ra,15
+ 80002e94: 00000013 nop
+ 80002e98: 00000013 nop
+ 80002e9c: 40208f33 sub t5,ra,sp
+ 80002ea0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ea4: 00200293 li t0,2
+ 80002ea8: fe5212e3 bne tp,t0,80002e8c <test_30+0x4>
+ 80002eac: 00400e93 li t4,4
+ 80002eb0: 01e00193 li gp,30
+ 80002eb4: 0fdf1263 bne t5,t4,80002f98 <fail>
+
+0000000080002eb8 <test_31>:
+ 80002eb8: 00000213 li tp,0
+ 80002ebc: 00b00113 li sp,11
+ 80002ec0: 00000013 nop
+ 80002ec4: 00d00093 li ra,13
+ 80002ec8: 40208f33 sub t5,ra,sp
+ 80002ecc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ed0: 00200293 li t0,2
+ 80002ed4: fe5214e3 bne tp,t0,80002ebc <test_31+0x4>
+ 80002ed8: 00200e93 li t4,2
+ 80002edc: 01f00193 li gp,31
+ 80002ee0: 0bdf1c63 bne t5,t4,80002f98 <fail>
+
+0000000080002ee4 <test_32>:
+ 80002ee4: 00000213 li tp,0
+ 80002ee8: 00b00113 li sp,11
+ 80002eec: 00000013 nop
+ 80002ef0: 00e00093 li ra,14
+ 80002ef4: 00000013 nop
+ 80002ef8: 40208f33 sub t5,ra,sp
+ 80002efc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002f00: 00200293 li t0,2
+ 80002f04: fe5212e3 bne tp,t0,80002ee8 <test_32+0x4>
+ 80002f08: 00300e93 li t4,3
+ 80002f0c: 02000193 li gp,32
+ 80002f10: 09df1463 bne t5,t4,80002f98 <fail>
+
+0000000080002f14 <test_33>:
+ 80002f14: 00000213 li tp,0
+ 80002f18: 00b00113 li sp,11
+ 80002f1c: 00000013 nop
+ 80002f20: 00000013 nop
+ 80002f24: 00f00093 li ra,15
+ 80002f28: 40208f33 sub t5,ra,sp
+ 80002f2c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002f30: 00200293 li t0,2
+ 80002f34: fe5212e3 bne tp,t0,80002f18 <test_33+0x4>
+ 80002f38: 00400e93 li t4,4
+ 80002f3c: 02100193 li gp,33
+ 80002f40: 05df1c63 bne t5,t4,80002f98 <fail>
+
+0000000080002f44 <test_34>:
+ 80002f44: ff100093 li ra,-15
+ 80002f48: 40100133 neg sp,ra
+ 80002f4c: 00f00e93 li t4,15
+ 80002f50: 02200193 li gp,34
+ 80002f54: 05d11263 bne sp,t4,80002f98 <fail>
+
+0000000080002f58 <test_35>:
+ 80002f58: 02000093 li ra,32
+ 80002f5c: 40008133 sub sp,ra,zero
+ 80002f60: 02000e93 li t4,32
+ 80002f64: 02300193 li gp,35
+ 80002f68: 03d11863 bne sp,t4,80002f98 <fail>
+
+0000000080002f6c <test_36>:
+ 80002f6c: 400000b3 neg ra,zero
+ 80002f70: 00000e93 li t4,0
+ 80002f74: 02400193 li gp,36
+ 80002f78: 03d09063 bne ra,t4,80002f98 <fail>
+
+0000000080002f7c <test_37>:
+ 80002f7c: 01000093 li ra,16
+ 80002f80: 01e00113 li sp,30
+ 80002f84: 40208033 sub zero,ra,sp
+ 80002f88: 00000e93 li t4,0
+ 80002f8c: 02500193 li gp,37
+ 80002f90: 01d01463 bne zero,t4,80002f98 <fail>
+ 80002f94: 00301a63 bne zero,gp,80002fa8 <pass>
+
+0000000080002f98 <fail>:
+ 80002f98: 00119513 slli a0,gp,0x1
+ 80002f9c: 00050063 beqz a0,80002f9c <fail+0x4>
+ 80002fa0: 00156513 ori a0,a0,1
+ 80002fa4: 00000073 ecall
+
+0000000080002fa8 <pass>:
+ 80002fa8: 00100513 li a0,1
+ 80002fac: 00000073 ecall
+ 80002fb0: c0001073 unimp
diff --git a/test/tests/rv64ui-v-sub.elf b/test/tests/rv64ui-v-sub.elf
new file mode 100644
index 0000000..25ce44f
--- /dev/null
+++ b/test/tests/rv64ui-v-sub.elf
Binary files differ
diff --git a/test/tests/rv64ui-v-subw.dump b/test/tests/rv64ui-v-subw.dump
new file mode 100644
index 0000000..8832cb7
--- /dev/null
+++ b/test/tests/rv64ui-v-subw.dump
@@ -0,0 +1,1214 @@
+
+rv64ui-v-subw: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <handle_reset>:
+ 8000000c: 00000297 auipc t0,0x0
+ 80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+ 80000014: 30529073 csrw mtvec,t0
+ 80000018: 00009117 auipc sp,0x9
+ 8000001c: 6b810113 addi sp,sp,1720 # 800096d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00002617 auipc a2,0x2
+ 80002318: cec60613 addi a2,a2,-788 # 80004000 <begin_signature>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00006797 auipc a5,0x6
+ 80002334: 4b878793 addi a5,a5,1208 # 800087e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00006717 auipc a4,0x6
+ 80002348: 49c70713 addi a4,a4,1180 # 800087e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00006897 auipc a7,0x6
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800087e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00006797 auipc a5,0x6
+ 80002384: 07078793 addi a5,a5,112 # 800083f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf7810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00006797 auipc a5,0x6
+ 80002448: 3807be23 sd zero,924(a5) # 800087e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00001697 auipc a3,0x1
+ 8000245c: b5068693 addi a3,a3,-1200 # 80002fa8 <pass+0x10>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00001617 auipc a2,0x1
+ 800024b8: b8460613 addi a2,a2,-1148 # 80003038 <pass+0xa0>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00001617 auipc a2,0x1
+ 80002508: b4c60613 addi a2,a2,-1204 # 80003050 <pass+0xb8>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00001697 auipc a3,0x1
+ 80002558: a9c68693 addi a3,a3,-1380 # 80002ff0 <pass+0x58>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00001697 auipc a3,0x1
+ 80002674: ab868693 addi a3,a3,-1352 # 80003128 <pass+0x190>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00001617 auipc a2,0x1
+ 800026cc: a3860613 addi a2,a2,-1480 # 80003100 <pass+0x168>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00006d17 auipc s10,0x6
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800083f0 <user_mapping>
+ 80002724: 00002b97 auipc s7,0x2
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80004000 <begin_signature>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00006a17 auipc s4,0x6
+ 80002738: 0aca0a13 addi s4,s4,172 # 800087e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00006717 auipc a4,0x6
+ 8000274c: 08f73c23 sd a5,152(a4) # 800087e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00006717 auipc a4,0x6
+ 800027d4: 00f73823 sd a5,16(a4) # 800087e0 <freelist_tail>
+ 800027d8: 00006717 auipc a4,0x6
+ 800027dc: 00f73823 sd a5,16(a4) # 800087e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00001697 auipc a3,0x1
+ 800027f0: 96c68693 addi a3,a3,-1684 # 80003158 <pass+0x1c0>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00001697 auipc a3,0x1
+ 80002840: 88c68693 addi a3,a3,-1908 # 800030c8 <pass+0x130>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00001697 auipc a3,0x1
+ 80002878: 81c68693 addi a3,a3,-2020 # 80003090 <pass+0xf8>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00002697 auipc a3,0x2
+ 800028e0: 72468693 addi a3,a3,1828 # 80005000 <begin_signature+0x1000>
+ 800028e4: 00003717 auipc a4,0x3
+ 800028e8: 71c70713 addi a4,a4,1820 # 80006000 <begin_signature+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00004797 auipc a5,0x4
+ 800028f8: 70c78793 addi a5,a5,1804 # 80007000 <begin_signature+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00001897 auipc a7,0x1
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80004000 <begin_signature>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00002697 auipc a3,0x2
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80004ff8 <begin_signature+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00001617 auipc a2,0x1
+ 80002938: 6cc60613 addi a2,a2,1740 # 80004000 <begin_signature>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00004697 auipc a3,0x4
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80006ff8 <begin_signature+0x2ff8>
+ 8000294c: 00002717 auipc a4,0x2
+ 80002950: 6af73a23 sd a5,1716(a4) # 80005000 <begin_signature+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00005697 auipc a3,0x5
+ 800029c0: 64468693 addi a3,a3,1604 # 80008000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00006617 auipc a2,0x6
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800087e8 <freelist_head>
+ 800029d4: 00006797 auipc a5,0x6
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800087e0 <freelist_tail>
+ 800029dc: 00006317 auipc t1,0x6
+ 800029e0: a1430313 addi t1,t1,-1516 # 800083f0 <user_mapping>
+ 800029e4: 02a00793 li a5,42
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00006797 auipc a5,0x6
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800083e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 0accb7b7 lui a5,0xaccb
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: c3078793 addi a5,a5,-976 # accac30 <_start-0x753353d0>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 00000093 li ra,0
+ 80002acc: 00000113 li sp,0
+ 80002ad0: 40208f3b subw t5,ra,sp
+ 80002ad4: 00000e93 li t4,0
+ 80002ad8: 00200193 li gp,2
+ 80002adc: 4bdf1663 bne t5,t4,80002f88 <fail>
+
+0000000080002ae0 <test_3>:
+ 80002ae0: 00100093 li ra,1
+ 80002ae4: 00100113 li sp,1
+ 80002ae8: 40208f3b subw t5,ra,sp
+ 80002aec: 00000e93 li t4,0
+ 80002af0: 00300193 li gp,3
+ 80002af4: 49df1a63 bne t5,t4,80002f88 <fail>
+
+0000000080002af8 <test_4>:
+ 80002af8: 00300093 li ra,3
+ 80002afc: 00700113 li sp,7
+ 80002b00: 40208f3b subw t5,ra,sp
+ 80002b04: ffc00e93 li t4,-4
+ 80002b08: 00400193 li gp,4
+ 80002b0c: 47df1e63 bne t5,t4,80002f88 <fail>
+
+0000000080002b10 <test_5>:
+ 80002b10: 00000093 li ra,0
+ 80002b14: ffff8137 lui sp,0xffff8
+ 80002b18: 40208f3b subw t5,ra,sp
+ 80002b1c: 00008eb7 lui t4,0x8
+ 80002b20: 00500193 li gp,5
+ 80002b24: 47df1263 bne t5,t4,80002f88 <fail>
+
+0000000080002b28 <test_6>:
+ 80002b28: 800000b7 lui ra,0x80000
+ 80002b2c: 00000113 li sp,0
+ 80002b30: 40208f3b subw t5,ra,sp
+ 80002b34: 80000eb7 lui t4,0x80000
+ 80002b38: 00600193 li gp,6
+ 80002b3c: 45df1663 bne t5,t4,80002f88 <fail>
+
+0000000080002b40 <test_7>:
+ 80002b40: 800000b7 lui ra,0x80000
+ 80002b44: ffff8137 lui sp,0xffff8
+ 80002b48: 40208f3b subw t5,ra,sp
+ 80002b4c: 80008eb7 lui t4,0x80008
+ 80002b50: 00700193 li gp,7
+ 80002b54: 43df1a63 bne t5,t4,80002f88 <fail>
+
+0000000080002b58 <test_8>:
+ 80002b58: 00000093 li ra,0
+ 80002b5c: 00008137 lui sp,0x8
+ 80002b60: fff1011b addiw sp,sp,-1
+ 80002b64: 40208f3b subw t5,ra,sp
+ 80002b68: ffff8eb7 lui t4,0xffff8
+ 80002b6c: 001e8e9b addiw t4,t4,1
+ 80002b70: 00800193 li gp,8
+ 80002b74: 41df1a63 bne t5,t4,80002f88 <fail>
+
+0000000080002b78 <test_9>:
+ 80002b78: 800000b7 lui ra,0x80000
+ 80002b7c: fff0809b addiw ra,ra,-1
+ 80002b80: 00000113 li sp,0
+ 80002b84: 40208f3b subw t5,ra,sp
+ 80002b88: 80000eb7 lui t4,0x80000
+ 80002b8c: fffe8e9b addiw t4,t4,-1
+ 80002b90: 00900193 li gp,9
+ 80002b94: 3fdf1a63 bne t5,t4,80002f88 <fail>
+
+0000000080002b98 <test_10>:
+ 80002b98: 800000b7 lui ra,0x80000
+ 80002b9c: fff0809b addiw ra,ra,-1
+ 80002ba0: 00008137 lui sp,0x8
+ 80002ba4: fff1011b addiw sp,sp,-1
+ 80002ba8: 40208f3b subw t5,ra,sp
+ 80002bac: 7fff8eb7 lui t4,0x7fff8
+ 80002bb0: 00a00193 li gp,10
+ 80002bb4: 3ddf1a63 bne t5,t4,80002f88 <fail>
+
+0000000080002bb8 <test_11>:
+ 80002bb8: 800000b7 lui ra,0x80000
+ 80002bbc: 00008137 lui sp,0x8
+ 80002bc0: fff1011b addiw sp,sp,-1
+ 80002bc4: 40208f3b subw t5,ra,sp
+ 80002bc8: 7fff8eb7 lui t4,0x7fff8
+ 80002bcc: 001e8e9b addiw t4,t4,1
+ 80002bd0: 00b00193 li gp,11
+ 80002bd4: 3bdf1a63 bne t5,t4,80002f88 <fail>
+
+0000000080002bd8 <test_12>:
+ 80002bd8: 800000b7 lui ra,0x80000
+ 80002bdc: fff0809b addiw ra,ra,-1
+ 80002be0: ffff8137 lui sp,0xffff8
+ 80002be4: 40208f3b subw t5,ra,sp
+ 80002be8: 80008eb7 lui t4,0x80008
+ 80002bec: fffe8e9b addiw t4,t4,-1
+ 80002bf0: 00c00193 li gp,12
+ 80002bf4: 39df1a63 bne t5,t4,80002f88 <fail>
+
+0000000080002bf8 <test_13>:
+ 80002bf8: 00000093 li ra,0
+ 80002bfc: fff00113 li sp,-1
+ 80002c00: 40208f3b subw t5,ra,sp
+ 80002c04: 00100e93 li t4,1
+ 80002c08: 00d00193 li gp,13
+ 80002c0c: 37df1e63 bne t5,t4,80002f88 <fail>
+
+0000000080002c10 <test_14>:
+ 80002c10: fff00093 li ra,-1
+ 80002c14: 00100113 li sp,1
+ 80002c18: 40208f3b subw t5,ra,sp
+ 80002c1c: ffe00e93 li t4,-2
+ 80002c20: 00e00193 li gp,14
+ 80002c24: 37df1263 bne t5,t4,80002f88 <fail>
+
+0000000080002c28 <test_15>:
+ 80002c28: fff00093 li ra,-1
+ 80002c2c: fff00113 li sp,-1
+ 80002c30: 40208f3b subw t5,ra,sp
+ 80002c34: 00000e93 li t4,0
+ 80002c38: 00f00193 li gp,15
+ 80002c3c: 35df1663 bne t5,t4,80002f88 <fail>
+
+0000000080002c40 <test_16>:
+ 80002c40: 00d00093 li ra,13
+ 80002c44: 00b00113 li sp,11
+ 80002c48: 402080bb subw ra,ra,sp
+ 80002c4c: 00200e93 li t4,2
+ 80002c50: 01000193 li gp,16
+ 80002c54: 33d09a63 bne ra,t4,80002f88 <fail>
+
+0000000080002c58 <test_17>:
+ 80002c58: 00e00093 li ra,14
+ 80002c5c: 00b00113 li sp,11
+ 80002c60: 4020813b subw sp,ra,sp
+ 80002c64: 00300e93 li t4,3
+ 80002c68: 01100193 li gp,17
+ 80002c6c: 31d11e63 bne sp,t4,80002f88 <fail>
+
+0000000080002c70 <test_18>:
+ 80002c70: 00d00093 li ra,13
+ 80002c74: 401080bb subw ra,ra,ra
+ 80002c78: 00000e93 li t4,0
+ 80002c7c: 01200193 li gp,18
+ 80002c80: 31d09463 bne ra,t4,80002f88 <fail>
+
+0000000080002c84 <test_19>:
+ 80002c84: 00000213 li tp,0
+ 80002c88: 00d00093 li ra,13
+ 80002c8c: 00b00113 li sp,11
+ 80002c90: 40208f3b subw t5,ra,sp
+ 80002c94: 000f0313 mv t1,t5
+ 80002c98: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c9c: 00200293 li t0,2
+ 80002ca0: fe5214e3 bne tp,t0,80002c88 <test_19+0x4>
+ 80002ca4: 00200e93 li t4,2
+ 80002ca8: 01300193 li gp,19
+ 80002cac: 2dd31e63 bne t1,t4,80002f88 <fail>
+
+0000000080002cb0 <test_20>:
+ 80002cb0: 00000213 li tp,0
+ 80002cb4: 00e00093 li ra,14
+ 80002cb8: 00b00113 li sp,11
+ 80002cbc: 40208f3b subw t5,ra,sp
+ 80002cc0: 00000013 nop
+ 80002cc4: 000f0313 mv t1,t5
+ 80002cc8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ccc: 00200293 li t0,2
+ 80002cd0: fe5212e3 bne tp,t0,80002cb4 <test_20+0x4>
+ 80002cd4: 00300e93 li t4,3
+ 80002cd8: 01400193 li gp,20
+ 80002cdc: 2bd31663 bne t1,t4,80002f88 <fail>
+
+0000000080002ce0 <test_21>:
+ 80002ce0: 00000213 li tp,0
+ 80002ce4: 00f00093 li ra,15
+ 80002ce8: 00b00113 li sp,11
+ 80002cec: 40208f3b subw t5,ra,sp
+ 80002cf0: 00000013 nop
+ 80002cf4: 00000013 nop
+ 80002cf8: 000f0313 mv t1,t5
+ 80002cfc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d00: 00200293 li t0,2
+ 80002d04: fe5210e3 bne tp,t0,80002ce4 <test_21+0x4>
+ 80002d08: 00400e93 li t4,4
+ 80002d0c: 01500193 li gp,21
+ 80002d10: 27d31c63 bne t1,t4,80002f88 <fail>
+
+0000000080002d14 <test_22>:
+ 80002d14: 00000213 li tp,0
+ 80002d18: 00d00093 li ra,13
+ 80002d1c: 00b00113 li sp,11
+ 80002d20: 40208f3b subw t5,ra,sp
+ 80002d24: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d28: 00200293 li t0,2
+ 80002d2c: fe5216e3 bne tp,t0,80002d18 <test_22+0x4>
+ 80002d30: 00200e93 li t4,2
+ 80002d34: 01600193 li gp,22
+ 80002d38: 25df1863 bne t5,t4,80002f88 <fail>
+
+0000000080002d3c <test_23>:
+ 80002d3c: 00000213 li tp,0
+ 80002d40: 00e00093 li ra,14
+ 80002d44: 00b00113 li sp,11
+ 80002d48: 00000013 nop
+ 80002d4c: 40208f3b subw t5,ra,sp
+ 80002d50: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d54: 00200293 li t0,2
+ 80002d58: fe5214e3 bne tp,t0,80002d40 <test_23+0x4>
+ 80002d5c: 00300e93 li t4,3
+ 80002d60: 01700193 li gp,23
+ 80002d64: 23df1263 bne t5,t4,80002f88 <fail>
+
+0000000080002d68 <test_24>:
+ 80002d68: 00000213 li tp,0
+ 80002d6c: 00f00093 li ra,15
+ 80002d70: 00b00113 li sp,11
+ 80002d74: 00000013 nop
+ 80002d78: 00000013 nop
+ 80002d7c: 40208f3b subw t5,ra,sp
+ 80002d80: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d84: 00200293 li t0,2
+ 80002d88: fe5212e3 bne tp,t0,80002d6c <test_24+0x4>
+ 80002d8c: 00400e93 li t4,4
+ 80002d90: 01800193 li gp,24
+ 80002d94: 1fdf1a63 bne t5,t4,80002f88 <fail>
+
+0000000080002d98 <test_25>:
+ 80002d98: 00000213 li tp,0
+ 80002d9c: 00d00093 li ra,13
+ 80002da0: 00000013 nop
+ 80002da4: 00b00113 li sp,11
+ 80002da8: 40208f3b subw t5,ra,sp
+ 80002dac: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002db0: 00200293 li t0,2
+ 80002db4: fe5214e3 bne tp,t0,80002d9c <test_25+0x4>
+ 80002db8: 00200e93 li t4,2
+ 80002dbc: 01900193 li gp,25
+ 80002dc0: 1ddf1463 bne t5,t4,80002f88 <fail>
+
+0000000080002dc4 <test_26>:
+ 80002dc4: 00000213 li tp,0
+ 80002dc8: 00e00093 li ra,14
+ 80002dcc: 00000013 nop
+ 80002dd0: 00b00113 li sp,11
+ 80002dd4: 00000013 nop
+ 80002dd8: 40208f3b subw t5,ra,sp
+ 80002ddc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002de0: 00200293 li t0,2
+ 80002de4: fe5212e3 bne tp,t0,80002dc8 <test_26+0x4>
+ 80002de8: 00300e93 li t4,3
+ 80002dec: 01a00193 li gp,26
+ 80002df0: 19df1c63 bne t5,t4,80002f88 <fail>
+
+0000000080002df4 <test_27>:
+ 80002df4: 00000213 li tp,0
+ 80002df8: 00f00093 li ra,15
+ 80002dfc: 00000013 nop
+ 80002e00: 00000013 nop
+ 80002e04: 00b00113 li sp,11
+ 80002e08: 40208f3b subw t5,ra,sp
+ 80002e0c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e10: 00200293 li t0,2
+ 80002e14: fe5212e3 bne tp,t0,80002df8 <test_27+0x4>
+ 80002e18: 00400e93 li t4,4
+ 80002e1c: 01b00193 li gp,27
+ 80002e20: 17df1463 bne t5,t4,80002f88 <fail>
+
+0000000080002e24 <test_28>:
+ 80002e24: 00000213 li tp,0
+ 80002e28: 00b00113 li sp,11
+ 80002e2c: 00d00093 li ra,13
+ 80002e30: 40208f3b subw t5,ra,sp
+ 80002e34: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e38: 00200293 li t0,2
+ 80002e3c: fe5216e3 bne tp,t0,80002e28 <test_28+0x4>
+ 80002e40: 00200e93 li t4,2
+ 80002e44: 01c00193 li gp,28
+ 80002e48: 15df1063 bne t5,t4,80002f88 <fail>
+
+0000000080002e4c <test_29>:
+ 80002e4c: 00000213 li tp,0
+ 80002e50: 00b00113 li sp,11
+ 80002e54: 00e00093 li ra,14
+ 80002e58: 00000013 nop
+ 80002e5c: 40208f3b subw t5,ra,sp
+ 80002e60: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e64: 00200293 li t0,2
+ 80002e68: fe5214e3 bne tp,t0,80002e50 <test_29+0x4>
+ 80002e6c: 00300e93 li t4,3
+ 80002e70: 01d00193 li gp,29
+ 80002e74: 11df1a63 bne t5,t4,80002f88 <fail>
+
+0000000080002e78 <test_30>:
+ 80002e78: 00000213 li tp,0
+ 80002e7c: 00b00113 li sp,11
+ 80002e80: 00f00093 li ra,15
+ 80002e84: 00000013 nop
+ 80002e88: 00000013 nop
+ 80002e8c: 40208f3b subw t5,ra,sp
+ 80002e90: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e94: 00200293 li t0,2
+ 80002e98: fe5212e3 bne tp,t0,80002e7c <test_30+0x4>
+ 80002e9c: 00400e93 li t4,4
+ 80002ea0: 01e00193 li gp,30
+ 80002ea4: 0fdf1263 bne t5,t4,80002f88 <fail>
+
+0000000080002ea8 <test_31>:
+ 80002ea8: 00000213 li tp,0
+ 80002eac: 00b00113 li sp,11
+ 80002eb0: 00000013 nop
+ 80002eb4: 00d00093 li ra,13
+ 80002eb8: 40208f3b subw t5,ra,sp
+ 80002ebc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ec0: 00200293 li t0,2
+ 80002ec4: fe5214e3 bne tp,t0,80002eac <test_31+0x4>
+ 80002ec8: 00200e93 li t4,2
+ 80002ecc: 01f00193 li gp,31
+ 80002ed0: 0bdf1c63 bne t5,t4,80002f88 <fail>
+
+0000000080002ed4 <test_32>:
+ 80002ed4: 00000213 li tp,0
+ 80002ed8: 00b00113 li sp,11
+ 80002edc: 00000013 nop
+ 80002ee0: 00e00093 li ra,14
+ 80002ee4: 00000013 nop
+ 80002ee8: 40208f3b subw t5,ra,sp
+ 80002eec: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ef0: 00200293 li t0,2
+ 80002ef4: fe5212e3 bne tp,t0,80002ed8 <test_32+0x4>
+ 80002ef8: 00300e93 li t4,3
+ 80002efc: 02000193 li gp,32
+ 80002f00: 09df1463 bne t5,t4,80002f88 <fail>
+
+0000000080002f04 <test_33>:
+ 80002f04: 00000213 li tp,0
+ 80002f08: 00b00113 li sp,11
+ 80002f0c: 00000013 nop
+ 80002f10: 00000013 nop
+ 80002f14: 00f00093 li ra,15
+ 80002f18: 40208f3b subw t5,ra,sp
+ 80002f1c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002f20: 00200293 li t0,2
+ 80002f24: fe5212e3 bne tp,t0,80002f08 <test_33+0x4>
+ 80002f28: 00400e93 li t4,4
+ 80002f2c: 02100193 li gp,33
+ 80002f30: 05df1c63 bne t5,t4,80002f88 <fail>
+
+0000000080002f34 <test_34>:
+ 80002f34: ff100093 li ra,-15
+ 80002f38: 4010013b negw sp,ra
+ 80002f3c: 00f00e93 li t4,15
+ 80002f40: 02200193 li gp,34
+ 80002f44: 05d11263 bne sp,t4,80002f88 <fail>
+
+0000000080002f48 <test_35>:
+ 80002f48: 02000093 li ra,32
+ 80002f4c: 4000813b subw sp,ra,zero
+ 80002f50: 02000e93 li t4,32
+ 80002f54: 02300193 li gp,35
+ 80002f58: 03d11863 bne sp,t4,80002f88 <fail>
+
+0000000080002f5c <test_36>:
+ 80002f5c: 400000bb negw ra,zero
+ 80002f60: 00000e93 li t4,0
+ 80002f64: 02400193 li gp,36
+ 80002f68: 03d09063 bne ra,t4,80002f88 <fail>
+
+0000000080002f6c <test_37>:
+ 80002f6c: 01000093 li ra,16
+ 80002f70: 01e00113 li sp,30
+ 80002f74: 4020803b subw zero,ra,sp
+ 80002f78: 00000e93 li t4,0
+ 80002f7c: 02500193 li gp,37
+ 80002f80: 01d01463 bne zero,t4,80002f88 <fail>
+ 80002f84: 00301a63 bne zero,gp,80002f98 <pass>
+
+0000000080002f88 <fail>:
+ 80002f88: 00119513 slli a0,gp,0x1
+ 80002f8c: 00050063 beqz a0,80002f8c <fail+0x4>
+ 80002f90: 00156513 ori a0,a0,1
+ 80002f94: 00000073 ecall
+
+0000000080002f98 <pass>:
+ 80002f98: 00100513 li a0,1
+ 80002f9c: 00000073 ecall
+ 80002fa0: c0001073 unimp
diff --git a/test/tests/rv64ui-v-subw.elf b/test/tests/rv64ui-v-subw.elf
new file mode 100644
index 0000000..0c451db
--- /dev/null
+++ b/test/tests/rv64ui-v-subw.elf
Binary files differ
diff --git a/test/tests/rv64ui-v-sw.dump b/test/tests/rv64ui-v-sw.dump
new file mode 100644
index 0000000..60671e2
--- /dev/null
+++ b/test/tests/rv64ui-v-sw.dump
@@ -0,0 +1,1203 @@
+
+rv64ui-v-sw: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <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: 6b810113 addi sp,sp,1720 # 8000a6d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00003617 auipc a2,0x3
+ 80002318: cec60613 addi a2,a2,-788 # 80005000 <pt>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00007797 auipc a5,0x7
+ 80002334: 4b878793 addi a5,a5,1208 # 800097e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00007717 auipc a4,0x7
+ 80002348: 49c70713 addi a4,a4,1180 # 800097e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00007897 auipc a7,0x7
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800097e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00007797 auipc a5,0x7
+ 80002384: 07078793 addi a5,a5,112 # 800093f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf6810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00007797 auipc a5,0x7
+ 80002448: 3807be23 sd zero,924(a5) # 800097e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00001697 auipc a3,0x1
+ 8000245c: b1068693 addi a3,a3,-1264 # 80002f68 <pass+0xc>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00001617 auipc a2,0x1
+ 800024b8: b4460613 addi a2,a2,-1212 # 80002ff8 <pass+0x9c>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00001617 auipc a2,0x1
+ 80002508: b0c60613 addi a2,a2,-1268 # 80003010 <pass+0xb4>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00001697 auipc a3,0x1
+ 80002558: a5c68693 addi a3,a3,-1444 # 80002fb0 <pass+0x54>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00001697 auipc a3,0x1
+ 80002674: a7868693 addi a3,a3,-1416 # 800030e8 <pass+0x18c>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00001617 auipc a2,0x1
+ 800026cc: 9f860613 addi a2,a2,-1544 # 800030c0 <pass+0x164>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00007d17 auipc s10,0x7
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800093f0 <user_mapping>
+ 80002724: 00003b97 auipc s7,0x3
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80005000 <pt>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00007a17 auipc s4,0x7
+ 80002738: 0aca0a13 addi s4,s4,172 # 800097e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00007717 auipc a4,0x7
+ 8000274c: 08f73c23 sd a5,152(a4) # 800097e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00007717 auipc a4,0x7
+ 800027d4: 00f73823 sd a5,16(a4) # 800097e0 <freelist_tail>
+ 800027d8: 00007717 auipc a4,0x7
+ 800027dc: 00f73823 sd a5,16(a4) # 800097e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00001697 auipc a3,0x1
+ 800027f0: 92c68693 addi a3,a3,-1748 # 80003118 <pass+0x1bc>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00001697 auipc a3,0x1
+ 80002840: 84c68693 addi a3,a3,-1972 # 80003088 <pass+0x12c>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 7dc68693 addi a3,a3,2012 # 80003050 <pass+0xf4>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00003697 auipc a3,0x3
+ 800028e0: 72468693 addi a3,a3,1828 # 80006000 <pt+0x1000>
+ 800028e4: 00004717 auipc a4,0x4
+ 800028e8: 71c70713 addi a4,a4,1820 # 80007000 <pt+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00005797 auipc a5,0x5
+ 800028f8: 70c78793 addi a5,a5,1804 # 80008000 <pt+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00002897 auipc a7,0x2
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80005000 <pt>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00003697 auipc a3,0x3
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80005ff8 <pt+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00002617 auipc a2,0x2
+ 80002938: 6cc60613 addi a2,a2,1740 # 80005000 <pt>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00005697 auipc a3,0x5
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80007ff8 <pt+0x2ff8>
+ 8000294c: 00003717 auipc a4,0x3
+ 80002950: 6af73a23 sd a5,1716(a4) # 80006000 <pt+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00006697 auipc a3,0x6
+ 800029c0: 64468693 addi a3,a3,1604 # 80009000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00007617 auipc a2,0x7
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800097e8 <freelist_head>
+ 800029d4: 00007797 auipc a5,0x7
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800097e0 <freelist_tail>
+ 800029dc: 00007317 auipc t1,0x7
+ 800029e0: a1430313 addi t1,t1,-1516 # 800093f0 <user_mapping>
+ 800029e4: 02900793 li a5,41
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00007797 auipc a5,0x7
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800093e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 06fb17b7 lui a5,0x6fb1
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: a0a78793 addi a5,a5,-1526 # 6fb0a0a <_start-0x7904f5f6>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 00001097 auipc ra,0x1
+ 80002acc: 53808093 addi ra,ra,1336 # 80004000 <begin_signature>
+ 80002ad0: 00aa0137 lui sp,0xaa0
+ 80002ad4: 0aa1011b addiw sp,sp,170
+ 80002ad8: 0020a023 sw sp,0(ra)
+ 80002adc: 0000af03 lw t5,0(ra)
+ 80002ae0: 00aa0eb7 lui t4,0xaa0
+ 80002ae4: 0aae8e9b addiw t4,t4,170
+ 80002ae8: 00200193 li gp,2
+ 80002aec: 47df1063 bne t5,t4,80002f4c <fail>
+
+0000000080002af0 <test_3>:
+ 80002af0: 00001097 auipc ra,0x1
+ 80002af4: 51008093 addi ra,ra,1296 # 80004000 <begin_signature>
+ 80002af8: aa00b137 lui sp,0xaa00b
+ 80002afc: a001011b addiw sp,sp,-1536
+ 80002b00: 0020a223 sw sp,4(ra)
+ 80002b04: 0040af03 lw t5,4(ra)
+ 80002b08: aa00beb7 lui t4,0xaa00b
+ 80002b0c: a00e8e9b addiw t4,t4,-1536
+ 80002b10: 00300193 li gp,3
+ 80002b14: 43df1c63 bne t5,t4,80002f4c <fail>
+
+0000000080002b18 <test_4>:
+ 80002b18: 00001097 auipc ra,0x1
+ 80002b1c: 4e808093 addi ra,ra,1256 # 80004000 <begin_signature>
+ 80002b20: 0aa01137 lui sp,0xaa01
+ 80002b24: aa01011b addiw sp,sp,-1376
+ 80002b28: 0020a423 sw sp,8(ra)
+ 80002b2c: 0080af03 lw t5,8(ra)
+ 80002b30: 0aa01eb7 lui t4,0xaa01
+ 80002b34: aa0e8e9b addiw t4,t4,-1376
+ 80002b38: 00400193 li gp,4
+ 80002b3c: 41df1863 bne t5,t4,80002f4c <fail>
+
+0000000080002b40 <test_5>:
+ 80002b40: 00001097 auipc ra,0x1
+ 80002b44: 4c008093 addi ra,ra,1216 # 80004000 <begin_signature>
+ 80002b48: a00aa137 lui sp,0xa00aa
+ 80002b4c: 00a1011b addiw sp,sp,10
+ 80002b50: 0020a623 sw sp,12(ra)
+ 80002b54: 00c0af03 lw t5,12(ra)
+ 80002b58: a00aaeb7 lui t4,0xa00aa
+ 80002b5c: 00ae8e9b addiw t4,t4,10
+ 80002b60: 00500193 li gp,5
+ 80002b64: 3fdf1463 bne t5,t4,80002f4c <fail>
+
+0000000080002b68 <test_6>:
+ 80002b68: 00001097 auipc ra,0x1
+ 80002b6c: 4b408093 addi ra,ra,1204 # 8000401c <tdat8>
+ 80002b70: 00aa0137 lui sp,0xaa0
+ 80002b74: 0aa1011b addiw sp,sp,170
+ 80002b78: fe20aa23 sw sp,-12(ra)
+ 80002b7c: ff40af03 lw t5,-12(ra)
+ 80002b80: 00aa0eb7 lui t4,0xaa0
+ 80002b84: 0aae8e9b addiw t4,t4,170
+ 80002b88: 00600193 li gp,6
+ 80002b8c: 3ddf1063 bne t5,t4,80002f4c <fail>
+
+0000000080002b90 <test_7>:
+ 80002b90: 00001097 auipc ra,0x1
+ 80002b94: 48c08093 addi ra,ra,1164 # 8000401c <tdat8>
+ 80002b98: aa00b137 lui sp,0xaa00b
+ 80002b9c: a001011b addiw sp,sp,-1536
+ 80002ba0: fe20ac23 sw sp,-8(ra)
+ 80002ba4: ff80af03 lw t5,-8(ra)
+ 80002ba8: aa00beb7 lui t4,0xaa00b
+ 80002bac: a00e8e9b addiw t4,t4,-1536
+ 80002bb0: 00700193 li gp,7
+ 80002bb4: 39df1c63 bne t5,t4,80002f4c <fail>
+
+0000000080002bb8 <test_8>:
+ 80002bb8: 00001097 auipc ra,0x1
+ 80002bbc: 46408093 addi ra,ra,1124 # 8000401c <tdat8>
+ 80002bc0: 0aa01137 lui sp,0xaa01
+ 80002bc4: aa01011b addiw sp,sp,-1376
+ 80002bc8: fe20ae23 sw sp,-4(ra)
+ 80002bcc: ffc0af03 lw t5,-4(ra)
+ 80002bd0: 0aa01eb7 lui t4,0xaa01
+ 80002bd4: aa0e8e9b addiw t4,t4,-1376
+ 80002bd8: 00800193 li gp,8
+ 80002bdc: 37df1863 bne t5,t4,80002f4c <fail>
+
+0000000080002be0 <test_9>:
+ 80002be0: 00001097 auipc ra,0x1
+ 80002be4: 43c08093 addi ra,ra,1084 # 8000401c <tdat8>
+ 80002be8: a00aa137 lui sp,0xa00aa
+ 80002bec: 00a1011b addiw sp,sp,10
+ 80002bf0: 0020a023 sw sp,0(ra)
+ 80002bf4: 0000af03 lw t5,0(ra)
+ 80002bf8: a00aaeb7 lui t4,0xa00aa
+ 80002bfc: 00ae8e9b addiw t4,t4,10
+ 80002c00: 00900193 li gp,9
+ 80002c04: 35df1463 bne t5,t4,80002f4c <fail>
+
+0000000080002c08 <test_10>:
+ 80002c08: 00001097 auipc ra,0x1
+ 80002c0c: 41808093 addi ra,ra,1048 # 80004020 <tdat9>
+ 80002c10: 12345137 lui sp,0x12345
+ 80002c14: 6781011b addiw sp,sp,1656
+ 80002c18: fe008213 addi tp,ra,-32
+ 80002c1c: 02222023 sw sp,32(tp) # 20 <_start-0x7fffffe0>
+ 80002c20: 0000a283 lw t0,0(ra)
+ 80002c24: 12345eb7 lui t4,0x12345
+ 80002c28: 678e8e9b addiw t4,t4,1656
+ 80002c2c: 00a00193 li gp,10
+ 80002c30: 31d29e63 bne t0,t4,80002f4c <fail>
+
+0000000080002c34 <test_11>:
+ 80002c34: 00001097 auipc ra,0x1
+ 80002c38: 3ec08093 addi ra,ra,1004 # 80004020 <tdat9>
+ 80002c3c: 58213137 lui sp,0x58213
+ 80002c40: 0981011b addiw sp,sp,152
+ 80002c44: ffd08093 addi ra,ra,-3
+ 80002c48: 0020a3a3 sw sp,7(ra)
+ 80002c4c: 00001217 auipc tp,0x1
+ 80002c50: 3d820213 addi tp,tp,984 # 80004024 <tdat10>
+ 80002c54: 00022283 lw t0,0(tp) # 0 <_start-0x80000000>
+ 80002c58: 58213eb7 lui t4,0x58213
+ 80002c5c: 098e8e9b addiw t4,t4,152
+ 80002c60: 00b00193 li gp,11
+ 80002c64: 2fd29463 bne t0,t4,80002f4c <fail>
+
+0000000080002c68 <test_12>:
+ 80002c68: 00c00193 li gp,12
+ 80002c6c: 00000213 li tp,0
+ 80002c70: aabbd0b7 lui ra,0xaabbd
+ 80002c74: cdd0809b addiw ra,ra,-803
+ 80002c78: 00001117 auipc sp,0x1
+ 80002c7c: 38810113 addi sp,sp,904 # 80004000 <begin_signature>
+ 80002c80: 00112023 sw ra,0(sp)
+ 80002c84: 00012f03 lw t5,0(sp)
+ 80002c88: aabbdeb7 lui t4,0xaabbd
+ 80002c8c: cdde8e9b addiw t4,t4,-803
+ 80002c90: 2bdf1e63 bne t5,t4,80002f4c <fail>
+ 80002c94: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c98: 00200293 li t0,2
+ 80002c9c: fc521ae3 bne tp,t0,80002c70 <test_12+0x8>
+
+0000000080002ca0 <test_13>:
+ 80002ca0: 00d00193 li gp,13
+ 80002ca4: 00000213 li tp,0
+ 80002ca8: daabc0b7 lui ra,0xdaabc
+ 80002cac: ccd0809b addiw ra,ra,-819
+ 80002cb0: 00001117 auipc sp,0x1
+ 80002cb4: 35010113 addi sp,sp,848 # 80004000 <begin_signature>
+ 80002cb8: 00000013 nop
+ 80002cbc: 00112223 sw ra,4(sp)
+ 80002cc0: 00412f03 lw t5,4(sp)
+ 80002cc4: daabceb7 lui t4,0xdaabc
+ 80002cc8: ccde8e9b addiw t4,t4,-819
+ 80002ccc: 29df1063 bne t5,t4,80002f4c <fail>
+ 80002cd0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002cd4: 00200293 li t0,2
+ 80002cd8: fc5218e3 bne tp,t0,80002ca8 <test_13+0x8>
+
+0000000080002cdc <test_14>:
+ 80002cdc: 00e00193 li gp,14
+ 80002ce0: 00000213 li tp,0
+ 80002ce4: ddaac0b7 lui ra,0xddaac
+ 80002ce8: bcc0809b addiw ra,ra,-1076
+ 80002cec: 00001117 auipc sp,0x1
+ 80002cf0: 31410113 addi sp,sp,788 # 80004000 <begin_signature>
+ 80002cf4: 00000013 nop
+ 80002cf8: 00000013 nop
+ 80002cfc: 00112423 sw ra,8(sp)
+ 80002d00: 00812f03 lw t5,8(sp)
+ 80002d04: ddaaceb7 lui t4,0xddaac
+ 80002d08: bcce8e9b addiw t4,t4,-1076
+ 80002d0c: 25df1063 bne t5,t4,80002f4c <fail>
+ 80002d10: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d14: 00200293 li t0,2
+ 80002d18: fc5216e3 bne tp,t0,80002ce4 <test_14+0x8>
+
+0000000080002d1c <test_15>:
+ 80002d1c: 00f00193 li gp,15
+ 80002d20: 00000213 li tp,0
+ 80002d24: cddab0b7 lui ra,0xcddab
+ 80002d28: bbc0809b addiw ra,ra,-1092
+ 80002d2c: 00000013 nop
+ 80002d30: 00001117 auipc sp,0x1
+ 80002d34: 2d010113 addi sp,sp,720 # 80004000 <begin_signature>
+ 80002d38: 00112623 sw ra,12(sp)
+ 80002d3c: 00c12f03 lw t5,12(sp)
+ 80002d40: cddabeb7 lui t4,0xcddab
+ 80002d44: bbce8e9b addiw t4,t4,-1092
+ 80002d48: 21df1263 bne t5,t4,80002f4c <fail>
+ 80002d4c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d50: 00200293 li t0,2
+ 80002d54: fc5218e3 bne tp,t0,80002d24 <test_15+0x8>
+
+0000000080002d58 <test_16>:
+ 80002d58: 01000193 li gp,16
+ 80002d5c: 00000213 li tp,0
+ 80002d60: ccddb0b7 lui ra,0xccddb
+ 80002d64: abb0809b addiw ra,ra,-1349
+ 80002d68: 00000013 nop
+ 80002d6c: 00001117 auipc sp,0x1
+ 80002d70: 29410113 addi sp,sp,660 # 80004000 <begin_signature>
+ 80002d74: 00000013 nop
+ 80002d78: 00112823 sw ra,16(sp)
+ 80002d7c: 01012f03 lw t5,16(sp)
+ 80002d80: ccddbeb7 lui t4,0xccddb
+ 80002d84: abbe8e9b addiw t4,t4,-1349
+ 80002d88: 1ddf1263 bne t5,t4,80002f4c <fail>
+ 80002d8c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d90: 00200293 li t0,2
+ 80002d94: fc5216e3 bne tp,t0,80002d60 <test_16+0x8>
+
+0000000080002d98 <test_17>:
+ 80002d98: 01100193 li gp,17
+ 80002d9c: 00000213 li tp,0
+ 80002da0: bccde0b7 lui ra,0xbccde
+ 80002da4: aab0809b addiw ra,ra,-1365
+ 80002da8: 00000013 nop
+ 80002dac: 00000013 nop
+ 80002db0: 00001117 auipc sp,0x1
+ 80002db4: 25010113 addi sp,sp,592 # 80004000 <begin_signature>
+ 80002db8: 00112a23 sw ra,20(sp)
+ 80002dbc: 01412f03 lw t5,20(sp)
+ 80002dc0: bccdeeb7 lui t4,0xbccde
+ 80002dc4: aabe8e9b addiw t4,t4,-1365
+ 80002dc8: 19df1263 bne t5,t4,80002f4c <fail>
+ 80002dcc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002dd0: 00200293 li t0,2
+ 80002dd4: fc5216e3 bne tp,t0,80002da0 <test_17+0x8>
+
+0000000080002dd8 <test_18>:
+ 80002dd8: 01200193 li gp,18
+ 80002ddc: 00000213 li tp,0
+ 80002de0: 00001117 auipc sp,0x1
+ 80002de4: 22010113 addi sp,sp,544 # 80004000 <begin_signature>
+ 80002de8: 001120b7 lui ra,0x112
+ 80002dec: 2330809b addiw ra,ra,563
+ 80002df0: 00112023 sw ra,0(sp)
+ 80002df4: 00012f03 lw t5,0(sp)
+ 80002df8: 00112eb7 lui t4,0x112
+ 80002dfc: 233e8e9b addiw t4,t4,563
+ 80002e00: 15df1663 bne t5,t4,80002f4c <fail>
+ 80002e04: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e08: 00200293 li t0,2
+ 80002e0c: fc521ae3 bne tp,t0,80002de0 <test_18+0x8>
+
+0000000080002e10 <test_19>:
+ 80002e10: 01300193 li gp,19
+ 80002e14: 00000213 li tp,0
+ 80002e18: 00001117 auipc sp,0x1
+ 80002e1c: 1e810113 addi sp,sp,488 # 80004000 <begin_signature>
+ 80002e20: 300110b7 lui ra,0x30011
+ 80002e24: 2230809b addiw ra,ra,547
+ 80002e28: 00000013 nop
+ 80002e2c: 00112223 sw ra,4(sp)
+ 80002e30: 00412f03 lw t5,4(sp)
+ 80002e34: 30011eb7 lui t4,0x30011
+ 80002e38: 223e8e9b addiw t4,t4,547
+ 80002e3c: 11df1863 bne t5,t4,80002f4c <fail>
+ 80002e40: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e44: 00200293 li t0,2
+ 80002e48: fc5218e3 bne tp,t0,80002e18 <test_19+0x8>
+
+0000000080002e4c <test_20>:
+ 80002e4c: 01400193 li gp,20
+ 80002e50: 00000213 li tp,0
+ 80002e54: 00001117 auipc sp,0x1
+ 80002e58: 1ac10113 addi sp,sp,428 # 80004000 <begin_signature>
+ 80002e5c: 330010b7 lui ra,0x33001
+ 80002e60: 1220809b addiw ra,ra,290
+ 80002e64: 00000013 nop
+ 80002e68: 00000013 nop
+ 80002e6c: 00112423 sw ra,8(sp)
+ 80002e70: 00812f03 lw t5,8(sp)
+ 80002e74: 33001eb7 lui t4,0x33001
+ 80002e78: 122e8e9b addiw t4,t4,290
+ 80002e7c: 0ddf1863 bne t5,t4,80002f4c <fail>
+ 80002e80: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e84: 00200293 li t0,2
+ 80002e88: fc5216e3 bne tp,t0,80002e54 <test_20+0x8>
+
+0000000080002e8c <test_21>:
+ 80002e8c: 01500193 li gp,21
+ 80002e90: 00000213 li tp,0
+ 80002e94: 00001117 auipc sp,0x1
+ 80002e98: 16c10113 addi sp,sp,364 # 80004000 <begin_signature>
+ 80002e9c: 00000013 nop
+ 80002ea0: 233000b7 lui ra,0x23300
+ 80002ea4: 1120809b addiw ra,ra,274
+ 80002ea8: 00112623 sw ra,12(sp)
+ 80002eac: 00c12f03 lw t5,12(sp)
+ 80002eb0: 23300eb7 lui t4,0x23300
+ 80002eb4: 112e8e9b addiw t4,t4,274
+ 80002eb8: 09df1a63 bne t5,t4,80002f4c <fail>
+ 80002ebc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ec0: 00200293 li t0,2
+ 80002ec4: fc5218e3 bne tp,t0,80002e94 <test_21+0x8>
+
+0000000080002ec8 <test_22>:
+ 80002ec8: 01600193 li gp,22
+ 80002ecc: 00000213 li tp,0
+ 80002ed0: 00001117 auipc sp,0x1
+ 80002ed4: 13010113 addi sp,sp,304 # 80004000 <begin_signature>
+ 80002ed8: 00000013 nop
+ 80002edc: 223300b7 lui ra,0x22330
+ 80002ee0: 0110809b addiw ra,ra,17
+ 80002ee4: 00000013 nop
+ 80002ee8: 00112823 sw ra,16(sp)
+ 80002eec: 01012f03 lw t5,16(sp)
+ 80002ef0: 22330eb7 lui t4,0x22330
+ 80002ef4: 011e8e9b addiw t4,t4,17
+ 80002ef8: 05df1a63 bne t5,t4,80002f4c <fail>
+ 80002efc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002f00: 00200293 li t0,2
+ 80002f04: fc5216e3 bne tp,t0,80002ed0 <test_22+0x8>
+
+0000000080002f08 <test_23>:
+ 80002f08: 01700193 li gp,23
+ 80002f0c: 00000213 li tp,0
+ 80002f10: 00001117 auipc sp,0x1
+ 80002f14: 0f010113 addi sp,sp,240 # 80004000 <begin_signature>
+ 80002f18: 00000013 nop
+ 80002f1c: 00000013 nop
+ 80002f20: 122330b7 lui ra,0x12233
+ 80002f24: 0010809b addiw ra,ra,1
+ 80002f28: 00112a23 sw ra,20(sp)
+ 80002f2c: 01412f03 lw t5,20(sp)
+ 80002f30: 12233eb7 lui t4,0x12233
+ 80002f34: 001e8e9b addiw t4,t4,1
+ 80002f38: 01df1a63 bne t5,t4,80002f4c <fail>
+ 80002f3c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002f40: 00200293 li t0,2
+ 80002f44: fc5216e3 bne tp,t0,80002f10 <test_23+0x8>
+ 80002f48: 00301a63 bne zero,gp,80002f5c <pass>
+
+0000000080002f4c <fail>:
+ 80002f4c: 00119513 slli a0,gp,0x1
+ 80002f50: 00050063 beqz a0,80002f50 <fail+0x4>
+ 80002f54: 00156513 ori a0,a0,1
+ 80002f58: 00000073 ecall
+
+0000000080002f5c <pass>:
+ 80002f5c: 00100513 li a0,1
+ 80002f60: 00000073 ecall
+ 80002f64: c0001073 unimp
+
+Disassembly of section .data:
+
+0000000080004000 <begin_signature>:
+ 80004000: deadbeef jal t4,7ffdf5ea <_start-0x20a16>
+
+0000000080004004 <tdat2>:
+ 80004004: deadbeef jal t4,7ffdf5ee <_start-0x20a12>
+
+0000000080004008 <tdat3>:
+ 80004008: deadbeef jal t4,7ffdf5f2 <_start-0x20a0e>
+
+000000008000400c <tdat4>:
+ 8000400c: deadbeef jal t4,7ffdf5f6 <_start-0x20a0a>
+
+0000000080004010 <tdat5>:
+ 80004010: deadbeef jal t4,7ffdf5fa <_start-0x20a06>
+
+0000000080004014 <tdat6>:
+ 80004014: deadbeef jal t4,7ffdf5fe <_start-0x20a02>
+
+0000000080004018 <tdat7>:
+ 80004018: deadbeef jal t4,7ffdf602 <_start-0x209fe>
+
+000000008000401c <tdat8>:
+ 8000401c: deadbeef jal t4,7ffdf606 <_start-0x209fa>
+
+0000000080004020 <tdat9>:
+ 80004020: deadbeef jal t4,7ffdf60a <_start-0x209f6>
+
+0000000080004024 <tdat10>:
+ 80004024: deadbeef jal t4,7ffdf60e <_start-0x209f2>
diff --git a/test/tests/rv64ui-v-sw.elf b/test/tests/rv64ui-v-sw.elf
new file mode 100644
index 0000000..d52322b
--- /dev/null
+++ b/test/tests/rv64ui-v-sw.elf
Binary files differ
diff --git a/test/tests/rv64ui-v-xor.dump b/test/tests/rv64ui-v-xor.dump
new file mode 100644
index 0000000..8b95600
--- /dev/null
+++ b/test/tests/rv64ui-v-xor.dump
@@ -0,0 +1,1260 @@
+
+rv64ui-v-xor: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <handle_reset>:
+ 8000000c: 00000297 auipc t0,0x0
+ 80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+ 80000014: 30529073 csrw mtvec,t0
+ 80000018: 00009117 auipc sp,0x9
+ 8000001c: 6b810113 addi sp,sp,1720 # 800096d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00002617 auipc a2,0x2
+ 80002318: cec60613 addi a2,a2,-788 # 80004000 <begin_signature>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00006797 auipc a5,0x6
+ 80002334: 4b878793 addi a5,a5,1208 # 800087e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00006717 auipc a4,0x6
+ 80002348: 49c70713 addi a4,a4,1180 # 800087e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00006897 auipc a7,0x6
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800087e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00006797 auipc a5,0x6
+ 80002384: 07078793 addi a5,a5,112 # 800083f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf7810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00006797 auipc a5,0x6
+ 80002448: 3807be23 sd zero,924(a5) # 800087e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00001697 auipc a3,0x1
+ 8000245c: c5868693 addi a3,a3,-936 # 800030b0 <pass+0x10>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00001617 auipc a2,0x1
+ 800024b8: c8c60613 addi a2,a2,-884 # 80003140 <pass+0xa0>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00001617 auipc a2,0x1
+ 80002508: c5460613 addi a2,a2,-940 # 80003158 <pass+0xb8>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00001697 auipc a3,0x1
+ 80002558: ba468693 addi a3,a3,-1116 # 800030f8 <pass+0x58>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00001697 auipc a3,0x1
+ 80002674: bc068693 addi a3,a3,-1088 # 80003230 <pass+0x190>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00001617 auipc a2,0x1
+ 800026cc: b4060613 addi a2,a2,-1216 # 80003208 <pass+0x168>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00006d17 auipc s10,0x6
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800083f0 <user_mapping>
+ 80002724: 00002b97 auipc s7,0x2
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80004000 <begin_signature>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00006a17 auipc s4,0x6
+ 80002738: 0aca0a13 addi s4,s4,172 # 800087e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00006717 auipc a4,0x6
+ 8000274c: 08f73c23 sd a5,152(a4) # 800087e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00006717 auipc a4,0x6
+ 800027d4: 00f73823 sd a5,16(a4) # 800087e0 <freelist_tail>
+ 800027d8: 00006717 auipc a4,0x6
+ 800027dc: 00f73823 sd a5,16(a4) # 800087e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00001697 auipc a3,0x1
+ 800027f0: a7468693 addi a3,a3,-1420 # 80003260 <pass+0x1c0>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00001697 auipc a3,0x1
+ 80002840: 99468693 addi a3,a3,-1644 # 800031d0 <pass+0x130>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00001697 auipc a3,0x1
+ 80002878: 92468693 addi a3,a3,-1756 # 80003198 <pass+0xf8>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00002697 auipc a3,0x2
+ 800028e0: 72468693 addi a3,a3,1828 # 80005000 <begin_signature+0x1000>
+ 800028e4: 00003717 auipc a4,0x3
+ 800028e8: 71c70713 addi a4,a4,1820 # 80006000 <begin_signature+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00004797 auipc a5,0x4
+ 800028f8: 70c78793 addi a5,a5,1804 # 80007000 <begin_signature+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00001897 auipc a7,0x1
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80004000 <begin_signature>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00002697 auipc a3,0x2
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80004ff8 <begin_signature+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00001617 auipc a2,0x1
+ 80002938: 6cc60613 addi a2,a2,1740 # 80004000 <begin_signature>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00004697 auipc a3,0x4
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80006ff8 <begin_signature+0x2ff8>
+ 8000294c: 00002717 auipc a4,0x2
+ 80002950: 6af73a23 sd a5,1716(a4) # 80005000 <begin_signature+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00005697 auipc a3,0x5
+ 800029c0: 64468693 addi a3,a3,1604 # 80008000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00006617 auipc a2,0x6
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800087e8 <freelist_head>
+ 800029d4: 00006797 auipc a5,0x6
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800087e0 <freelist_tail>
+ 800029dc: 00006317 auipc t1,0x6
+ 800029e0: a1430313 addi t1,t1,-1516 # 800083f0 <user_mapping>
+ 800029e4: 02900793 li a5,41
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00006797 auipc a5,0x6
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800083e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 0c2b87b7 lui a5,0xc2b8
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: 9f278793 addi a5,a5,-1550 # c2b79f2 <_start-0x73d4860e>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 000100b7 lui ra,0x10
+ 80002acc: f010809b addiw ra,ra,-255
+ 80002ad0: 01009093 slli ra,ra,0x10
+ 80002ad4: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 80002ad8: 0f0f1137 lui sp,0xf0f1
+ 80002adc: f0f1011b addiw sp,sp,-241
+ 80002ae0: 0020cf33 xor t5,ra,sp
+ 80002ae4: 000f0eb7 lui t4,0xf0
+ 80002ae8: 0ffe8e9b addiw t4,t4,255
+ 80002aec: 00ce9e93 slli t4,t4,0xc
+ 80002af0: 00fe8e93 addi t4,t4,15 # f000f <_start-0x7ff0fff1>
+ 80002af4: 00200193 li gp,2
+ 80002af8: 59df1c63 bne t5,t4,80003090 <fail>
+
+0000000080002afc <test_3>:
+ 80002afc: 0ff010b7 lui ra,0xff01
+ 80002b00: ff00809b addiw ra,ra,-16
+ 80002b04: 000f1137 lui sp,0xf1
+ 80002b08: f0f1011b addiw sp,sp,-241
+ 80002b0c: 00c11113 slli sp,sp,0xc
+ 80002b10: 0f010113 addi sp,sp,240 # f10f0 <_start-0x7ff0ef10>
+ 80002b14: 0020cf33 xor t5,ra,sp
+ 80002b18: 00010eb7 lui t4,0x10
+ 80002b1c: f01e8e9b addiw t4,t4,-255
+ 80002b20: 010e9e93 slli t4,t4,0x10
+ 80002b24: f00e8e93 addi t4,t4,-256 # ff00 <_start-0x7fff0100>
+ 80002b28: 00300193 li gp,3
+ 80002b2c: 57df1263 bne t5,t4,80003090 <fail>
+
+0000000080002b30 <test_4>:
+ 80002b30: 00ff00b7 lui ra,0xff0
+ 80002b34: 0ff0809b addiw ra,ra,255
+ 80002b38: 0f0f1137 lui sp,0xf0f1
+ 80002b3c: f0f1011b addiw sp,sp,-241
+ 80002b40: 0020cf33 xor t5,ra,sp
+ 80002b44: 0ff01eb7 lui t4,0xff01
+ 80002b48: ff0e8e9b addiw t4,t4,-16
+ 80002b4c: 00400193 li gp,4
+ 80002b50: 55df1063 bne t5,t4,80003090 <fail>
+
+0000000080002b54 <test_5>:
+ 80002b54: 000f00b7 lui ra,0xf0
+ 80002b58: 0ff0809b addiw ra,ra,255
+ 80002b5c: 00c09093 slli ra,ra,0xc
+ 80002b60: 00f08093 addi ra,ra,15 # f000f <_start-0x7ff0fff1>
+ 80002b64: 000f1137 lui sp,0xf1
+ 80002b68: f0f1011b addiw sp,sp,-241
+ 80002b6c: 00c11113 slli sp,sp,0xc
+ 80002b70: 0f010113 addi sp,sp,240 # f10f0 <_start-0x7ff0ef10>
+ 80002b74: 0020cf33 xor t5,ra,sp
+ 80002b78: 00ff0eb7 lui t4,0xff0
+ 80002b7c: 0ffe8e9b addiw t4,t4,255
+ 80002b80: 00500193 li gp,5
+ 80002b84: 51df1663 bne t5,t4,80003090 <fail>
+
+0000000080002b88 <test_6>:
+ 80002b88: 000100b7 lui ra,0x10
+ 80002b8c: f010809b addiw ra,ra,-255
+ 80002b90: 01009093 slli ra,ra,0x10
+ 80002b94: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 80002b98: 0f0f1137 lui sp,0xf0f1
+ 80002b9c: f0f1011b addiw sp,sp,-241
+ 80002ba0: 0020c0b3 xor ra,ra,sp
+ 80002ba4: 000f0eb7 lui t4,0xf0
+ 80002ba8: 0ffe8e9b addiw t4,t4,255
+ 80002bac: 00ce9e93 slli t4,t4,0xc
+ 80002bb0: 00fe8e93 addi t4,t4,15 # f000f <_start-0x7ff0fff1>
+ 80002bb4: 00600193 li gp,6
+ 80002bb8: 4dd09c63 bne ra,t4,80003090 <fail>
+
+0000000080002bbc <test_7>:
+ 80002bbc: 000100b7 lui ra,0x10
+ 80002bc0: f010809b addiw ra,ra,-255
+ 80002bc4: 01009093 slli ra,ra,0x10
+ 80002bc8: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 80002bcc: 0f0f1137 lui sp,0xf0f1
+ 80002bd0: f0f1011b addiw sp,sp,-241
+ 80002bd4: 0020c133 xor sp,ra,sp
+ 80002bd8: 000f0eb7 lui t4,0xf0
+ 80002bdc: 0ffe8e9b addiw t4,t4,255
+ 80002be0: 00ce9e93 slli t4,t4,0xc
+ 80002be4: 00fe8e93 addi t4,t4,15 # f000f <_start-0x7ff0fff1>
+ 80002be8: 00700193 li gp,7
+ 80002bec: 4bd11263 bne sp,t4,80003090 <fail>
+
+0000000080002bf0 <test_8>:
+ 80002bf0: 000100b7 lui ra,0x10
+ 80002bf4: f010809b addiw ra,ra,-255
+ 80002bf8: 01009093 slli ra,ra,0x10
+ 80002bfc: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 80002c00: 0010c0b3 xor ra,ra,ra
+ 80002c04: 00000e93 li t4,0
+ 80002c08: 00800193 li gp,8
+ 80002c0c: 49d09263 bne ra,t4,80003090 <fail>
+
+0000000080002c10 <test_9>:
+ 80002c10: 00000213 li tp,0
+ 80002c14: 000100b7 lui ra,0x10
+ 80002c18: f010809b addiw ra,ra,-255
+ 80002c1c: 01009093 slli ra,ra,0x10
+ 80002c20: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 80002c24: 0f0f1137 lui sp,0xf0f1
+ 80002c28: f0f1011b addiw sp,sp,-241
+ 80002c2c: 0020cf33 xor t5,ra,sp
+ 80002c30: 000f0313 mv t1,t5
+ 80002c34: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c38: 00200293 li t0,2
+ 80002c3c: fc521ce3 bne tp,t0,80002c14 <test_9+0x4>
+ 80002c40: 000f0eb7 lui t4,0xf0
+ 80002c44: 0ffe8e9b addiw t4,t4,255
+ 80002c48: 00ce9e93 slli t4,t4,0xc
+ 80002c4c: 00fe8e93 addi t4,t4,15 # f000f <_start-0x7ff0fff1>
+ 80002c50: 00900193 li gp,9
+ 80002c54: 43d31e63 bne t1,t4,80003090 <fail>
+
+0000000080002c58 <test_10>:
+ 80002c58: 00000213 li tp,0
+ 80002c5c: 0ff010b7 lui ra,0xff01
+ 80002c60: ff00809b addiw ra,ra,-16
+ 80002c64: 000f1137 lui sp,0xf1
+ 80002c68: f0f1011b addiw sp,sp,-241
+ 80002c6c: 00c11113 slli sp,sp,0xc
+ 80002c70: 0f010113 addi sp,sp,240 # f10f0 <_start-0x7ff0ef10>
+ 80002c74: 0020cf33 xor t5,ra,sp
+ 80002c78: 00000013 nop
+ 80002c7c: 000f0313 mv t1,t5
+ 80002c80: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c84: 00200293 li t0,2
+ 80002c88: fc521ae3 bne tp,t0,80002c5c <test_10+0x4>
+ 80002c8c: 00010eb7 lui t4,0x10
+ 80002c90: f01e8e9b addiw t4,t4,-255
+ 80002c94: 010e9e93 slli t4,t4,0x10
+ 80002c98: f00e8e93 addi t4,t4,-256 # ff00 <_start-0x7fff0100>
+ 80002c9c: 00a00193 li gp,10
+ 80002ca0: 3fd31863 bne t1,t4,80003090 <fail>
+
+0000000080002ca4 <test_11>:
+ 80002ca4: 00000213 li tp,0
+ 80002ca8: 00ff00b7 lui ra,0xff0
+ 80002cac: 0ff0809b addiw ra,ra,255
+ 80002cb0: 0f0f1137 lui sp,0xf0f1
+ 80002cb4: f0f1011b addiw sp,sp,-241
+ 80002cb8: 0020cf33 xor t5,ra,sp
+ 80002cbc: 00000013 nop
+ 80002cc0: 00000013 nop
+ 80002cc4: 000f0313 mv t1,t5
+ 80002cc8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ccc: 00200293 li t0,2
+ 80002cd0: fc521ce3 bne tp,t0,80002ca8 <test_11+0x4>
+ 80002cd4: 0ff01eb7 lui t4,0xff01
+ 80002cd8: ff0e8e9b addiw t4,t4,-16
+ 80002cdc: 00b00193 li gp,11
+ 80002ce0: 3bd31863 bne t1,t4,80003090 <fail>
+
+0000000080002ce4 <test_12>:
+ 80002ce4: 00000213 li tp,0
+ 80002ce8: 000100b7 lui ra,0x10
+ 80002cec: f010809b addiw ra,ra,-255
+ 80002cf0: 01009093 slli ra,ra,0x10
+ 80002cf4: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 80002cf8: 0f0f1137 lui sp,0xf0f1
+ 80002cfc: f0f1011b addiw sp,sp,-241
+ 80002d00: 0020cf33 xor t5,ra,sp
+ 80002d04: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d08: 00200293 li t0,2
+ 80002d0c: fc521ee3 bne tp,t0,80002ce8 <test_12+0x4>
+ 80002d10: 000f0eb7 lui t4,0xf0
+ 80002d14: 0ffe8e9b addiw t4,t4,255
+ 80002d18: 00ce9e93 slli t4,t4,0xc
+ 80002d1c: 00fe8e93 addi t4,t4,15 # f000f <_start-0x7ff0fff1>
+ 80002d20: 00c00193 li gp,12
+ 80002d24: 37df1663 bne t5,t4,80003090 <fail>
+
+0000000080002d28 <test_13>:
+ 80002d28: 00000213 li tp,0
+ 80002d2c: 0ff010b7 lui ra,0xff01
+ 80002d30: ff00809b addiw ra,ra,-16
+ 80002d34: 000f1137 lui sp,0xf1
+ 80002d38: f0f1011b addiw sp,sp,-241
+ 80002d3c: 00c11113 slli sp,sp,0xc
+ 80002d40: 0f010113 addi sp,sp,240 # f10f0 <_start-0x7ff0ef10>
+ 80002d44: 00000013 nop
+ 80002d48: 0020cf33 xor t5,ra,sp
+ 80002d4c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d50: 00200293 li t0,2
+ 80002d54: fc521ce3 bne tp,t0,80002d2c <test_13+0x4>
+ 80002d58: 00010eb7 lui t4,0x10
+ 80002d5c: f01e8e9b addiw t4,t4,-255
+ 80002d60: 010e9e93 slli t4,t4,0x10
+ 80002d64: f00e8e93 addi t4,t4,-256 # ff00 <_start-0x7fff0100>
+ 80002d68: 00d00193 li gp,13
+ 80002d6c: 33df1263 bne t5,t4,80003090 <fail>
+
+0000000080002d70 <test_14>:
+ 80002d70: 00000213 li tp,0
+ 80002d74: 00ff00b7 lui ra,0xff0
+ 80002d78: 0ff0809b addiw ra,ra,255
+ 80002d7c: 0f0f1137 lui sp,0xf0f1
+ 80002d80: f0f1011b addiw sp,sp,-241
+ 80002d84: 00000013 nop
+ 80002d88: 00000013 nop
+ 80002d8c: 0020cf33 xor t5,ra,sp
+ 80002d90: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d94: 00200293 li t0,2
+ 80002d98: fc521ee3 bne tp,t0,80002d74 <test_14+0x4>
+ 80002d9c: 0ff01eb7 lui t4,0xff01
+ 80002da0: ff0e8e9b addiw t4,t4,-16
+ 80002da4: 00e00193 li gp,14
+ 80002da8: 2fdf1463 bne t5,t4,80003090 <fail>
+
+0000000080002dac <test_15>:
+ 80002dac: 00000213 li tp,0
+ 80002db0: 000100b7 lui ra,0x10
+ 80002db4: f010809b addiw ra,ra,-255
+ 80002db8: 01009093 slli ra,ra,0x10
+ 80002dbc: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 80002dc0: 00000013 nop
+ 80002dc4: 0f0f1137 lui sp,0xf0f1
+ 80002dc8: f0f1011b addiw sp,sp,-241
+ 80002dcc: 0020cf33 xor t5,ra,sp
+ 80002dd0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002dd4: 00200293 li t0,2
+ 80002dd8: fc521ce3 bne tp,t0,80002db0 <test_15+0x4>
+ 80002ddc: 000f0eb7 lui t4,0xf0
+ 80002de0: 0ffe8e9b addiw t4,t4,255
+ 80002de4: 00ce9e93 slli t4,t4,0xc
+ 80002de8: 00fe8e93 addi t4,t4,15 # f000f <_start-0x7ff0fff1>
+ 80002dec: 00f00193 li gp,15
+ 80002df0: 2bdf1063 bne t5,t4,80003090 <fail>
+
+0000000080002df4 <test_16>:
+ 80002df4: 00000213 li tp,0
+ 80002df8: 0ff010b7 lui ra,0xff01
+ 80002dfc: ff00809b addiw ra,ra,-16
+ 80002e00: 00000013 nop
+ 80002e04: 000f1137 lui sp,0xf1
+ 80002e08: f0f1011b addiw sp,sp,-241
+ 80002e0c: 00c11113 slli sp,sp,0xc
+ 80002e10: 0f010113 addi sp,sp,240 # f10f0 <_start-0x7ff0ef10>
+ 80002e14: 00000013 nop
+ 80002e18: 0020cf33 xor t5,ra,sp
+ 80002e1c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e20: 00200293 li t0,2
+ 80002e24: fc521ae3 bne tp,t0,80002df8 <test_16+0x4>
+ 80002e28: 00010eb7 lui t4,0x10
+ 80002e2c: f01e8e9b addiw t4,t4,-255
+ 80002e30: 010e9e93 slli t4,t4,0x10
+ 80002e34: f00e8e93 addi t4,t4,-256 # ff00 <_start-0x7fff0100>
+ 80002e38: 01000193 li gp,16
+ 80002e3c: 25df1a63 bne t5,t4,80003090 <fail>
+
+0000000080002e40 <test_17>:
+ 80002e40: 00000213 li tp,0
+ 80002e44: 00ff00b7 lui ra,0xff0
+ 80002e48: 0ff0809b addiw ra,ra,255
+ 80002e4c: 00000013 nop
+ 80002e50: 00000013 nop
+ 80002e54: 0f0f1137 lui sp,0xf0f1
+ 80002e58: f0f1011b addiw sp,sp,-241
+ 80002e5c: 0020cf33 xor t5,ra,sp
+ 80002e60: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e64: 00200293 li t0,2
+ 80002e68: fc521ee3 bne tp,t0,80002e44 <test_17+0x4>
+ 80002e6c: 0ff01eb7 lui t4,0xff01
+ 80002e70: ff0e8e9b addiw t4,t4,-16
+ 80002e74: 01100193 li gp,17
+ 80002e78: 21df1c63 bne t5,t4,80003090 <fail>
+
+0000000080002e7c <test_18>:
+ 80002e7c: 00000213 li tp,0
+ 80002e80: 0f0f1137 lui sp,0xf0f1
+ 80002e84: f0f1011b addiw sp,sp,-241
+ 80002e88: 000100b7 lui ra,0x10
+ 80002e8c: f010809b addiw ra,ra,-255
+ 80002e90: 01009093 slli ra,ra,0x10
+ 80002e94: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 80002e98: 0020cf33 xor t5,ra,sp
+ 80002e9c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ea0: 00200293 li t0,2
+ 80002ea4: fc521ee3 bne tp,t0,80002e80 <test_18+0x4>
+ 80002ea8: 000f0eb7 lui t4,0xf0
+ 80002eac: 0ffe8e9b addiw t4,t4,255
+ 80002eb0: 00ce9e93 slli t4,t4,0xc
+ 80002eb4: 00fe8e93 addi t4,t4,15 # f000f <_start-0x7ff0fff1>
+ 80002eb8: 01200193 li gp,18
+ 80002ebc: 1ddf1a63 bne t5,t4,80003090 <fail>
+
+0000000080002ec0 <test_19>:
+ 80002ec0: 00000213 li tp,0
+ 80002ec4: 000f1137 lui sp,0xf1
+ 80002ec8: f0f1011b addiw sp,sp,-241
+ 80002ecc: 00c11113 slli sp,sp,0xc
+ 80002ed0: 0f010113 addi sp,sp,240 # f10f0 <_start-0x7ff0ef10>
+ 80002ed4: 0ff010b7 lui ra,0xff01
+ 80002ed8: ff00809b addiw ra,ra,-16
+ 80002edc: 00000013 nop
+ 80002ee0: 0020cf33 xor t5,ra,sp
+ 80002ee4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ee8: 00200293 li t0,2
+ 80002eec: fc521ce3 bne tp,t0,80002ec4 <test_19+0x4>
+ 80002ef0: 00010eb7 lui t4,0x10
+ 80002ef4: f01e8e9b addiw t4,t4,-255
+ 80002ef8: 010e9e93 slli t4,t4,0x10
+ 80002efc: f00e8e93 addi t4,t4,-256 # ff00 <_start-0x7fff0100>
+ 80002f00: 01300193 li gp,19
+ 80002f04: 19df1663 bne t5,t4,80003090 <fail>
+
+0000000080002f08 <test_20>:
+ 80002f08: 00000213 li tp,0
+ 80002f0c: 0f0f1137 lui sp,0xf0f1
+ 80002f10: f0f1011b addiw sp,sp,-241
+ 80002f14: 00ff00b7 lui ra,0xff0
+ 80002f18: 0ff0809b addiw ra,ra,255
+ 80002f1c: 00000013 nop
+ 80002f20: 00000013 nop
+ 80002f24: 0020cf33 xor t5,ra,sp
+ 80002f28: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002f2c: 00200293 li t0,2
+ 80002f30: fc521ee3 bne tp,t0,80002f0c <test_20+0x4>
+ 80002f34: 0ff01eb7 lui t4,0xff01
+ 80002f38: ff0e8e9b addiw t4,t4,-16
+ 80002f3c: 01400193 li gp,20
+ 80002f40: 15df1863 bne t5,t4,80003090 <fail>
+
+0000000080002f44 <test_21>:
+ 80002f44: 00000213 li tp,0
+ 80002f48: 0f0f1137 lui sp,0xf0f1
+ 80002f4c: f0f1011b addiw sp,sp,-241
+ 80002f50: 00000013 nop
+ 80002f54: 000100b7 lui ra,0x10
+ 80002f58: f010809b addiw ra,ra,-255
+ 80002f5c: 01009093 slli ra,ra,0x10
+ 80002f60: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 80002f64: 0020cf33 xor t5,ra,sp
+ 80002f68: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002f6c: 00200293 li t0,2
+ 80002f70: fc521ce3 bne tp,t0,80002f48 <test_21+0x4>
+ 80002f74: 000f0eb7 lui t4,0xf0
+ 80002f78: 0ffe8e9b addiw t4,t4,255
+ 80002f7c: 00ce9e93 slli t4,t4,0xc
+ 80002f80: 00fe8e93 addi t4,t4,15 # f000f <_start-0x7ff0fff1>
+ 80002f84: 01500193 li gp,21
+ 80002f88: 11df1463 bne t5,t4,80003090 <fail>
+
+0000000080002f8c <test_22>:
+ 80002f8c: 00000213 li tp,0
+ 80002f90: 000f1137 lui sp,0xf1
+ 80002f94: f0f1011b addiw sp,sp,-241
+ 80002f98: 00c11113 slli sp,sp,0xc
+ 80002f9c: 0f010113 addi sp,sp,240 # f10f0 <_start-0x7ff0ef10>
+ 80002fa0: 00000013 nop
+ 80002fa4: 0ff010b7 lui ra,0xff01
+ 80002fa8: ff00809b addiw ra,ra,-16
+ 80002fac: 00000013 nop
+ 80002fb0: 0020cf33 xor t5,ra,sp
+ 80002fb4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002fb8: 00200293 li t0,2
+ 80002fbc: fc521ae3 bne tp,t0,80002f90 <test_22+0x4>
+ 80002fc0: 00010eb7 lui t4,0x10
+ 80002fc4: f01e8e9b addiw t4,t4,-255
+ 80002fc8: 010e9e93 slli t4,t4,0x10
+ 80002fcc: f00e8e93 addi t4,t4,-256 # ff00 <_start-0x7fff0100>
+ 80002fd0: 01600193 li gp,22
+ 80002fd4: 0bdf1e63 bne t5,t4,80003090 <fail>
+
+0000000080002fd8 <test_23>:
+ 80002fd8: 00000213 li tp,0
+ 80002fdc: 0f0f1137 lui sp,0xf0f1
+ 80002fe0: f0f1011b addiw sp,sp,-241
+ 80002fe4: 00000013 nop
+ 80002fe8: 00000013 nop
+ 80002fec: 00ff00b7 lui ra,0xff0
+ 80002ff0: 0ff0809b addiw ra,ra,255
+ 80002ff4: 0020cf33 xor t5,ra,sp
+ 80002ff8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ffc: 00200293 li t0,2
+ 80003000: fc521ee3 bne tp,t0,80002fdc <test_23+0x4>
+ 80003004: 0ff01eb7 lui t4,0xff01
+ 80003008: ff0e8e9b addiw t4,t4,-16
+ 8000300c: 01700193 li gp,23
+ 80003010: 09df1063 bne t5,t4,80003090 <fail>
+
+0000000080003014 <test_24>:
+ 80003014: 000100b7 lui ra,0x10
+ 80003018: f010809b addiw ra,ra,-255
+ 8000301c: 01009093 slli ra,ra,0x10
+ 80003020: f0008093 addi ra,ra,-256 # ff00 <_start-0x7fff0100>
+ 80003024: 00104133 xor sp,zero,ra
+ 80003028: 00010eb7 lui t4,0x10
+ 8000302c: f01e8e9b addiw t4,t4,-255
+ 80003030: 010e9e93 slli t4,t4,0x10
+ 80003034: f00e8e93 addi t4,t4,-256 # ff00 <_start-0x7fff0100>
+ 80003038: 01800193 li gp,24
+ 8000303c: 05d11a63 bne sp,t4,80003090 <fail>
+
+0000000080003040 <test_25>:
+ 80003040: 00ff00b7 lui ra,0xff0
+ 80003044: 0ff0809b addiw ra,ra,255
+ 80003048: 0000c133 xor sp,ra,zero
+ 8000304c: 00ff0eb7 lui t4,0xff0
+ 80003050: 0ffe8e9b addiw t4,t4,255
+ 80003054: 01900193 li gp,25
+ 80003058: 03d11c63 bne sp,t4,80003090 <fail>
+
+000000008000305c <test_26>:
+ 8000305c: 000040b3 xor ra,zero,zero
+ 80003060: 00000e93 li t4,0
+ 80003064: 01a00193 li gp,26
+ 80003068: 03d09463 bne ra,t4,80003090 <fail>
+
+000000008000306c <test_27>:
+ 8000306c: 111110b7 lui ra,0x11111
+ 80003070: 1110809b addiw ra,ra,273
+ 80003074: 22222137 lui sp,0x22222
+ 80003078: 2221011b addiw sp,sp,546
+ 8000307c: 0020c033 xor zero,ra,sp
+ 80003080: 00000e93 li t4,0
+ 80003084: 01b00193 li gp,27
+ 80003088: 01d01463 bne zero,t4,80003090 <fail>
+ 8000308c: 00301a63 bne zero,gp,800030a0 <pass>
+
+0000000080003090 <fail>:
+ 80003090: 00119513 slli a0,gp,0x1
+ 80003094: 00050063 beqz a0,80003094 <fail+0x4>
+ 80003098: 00156513 ori a0,a0,1
+ 8000309c: 00000073 ecall
+
+00000000800030a0 <pass>:
+ 800030a0: 00100513 li a0,1
+ 800030a4: 00000073 ecall
+ 800030a8: c0001073 unimp
diff --git a/test/tests/rv64ui-v-xor.elf b/test/tests/rv64ui-v-xor.elf
new file mode 100644
index 0000000..151c211
--- /dev/null
+++ b/test/tests/rv64ui-v-xor.elf
Binary files differ
diff --git a/test/tests/rv64ui-v-xori.dump b/test/tests/rv64ui-v-xori.dump
new file mode 100644
index 0000000..cc0d051
--- /dev/null
+++ b/test/tests/rv64ui-v-xori.dump
@@ -0,0 +1,985 @@
+
+rv64ui-v-xori: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <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: 6b810113 addi sp,sp,1720 # 800086d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00001617 auipc a2,0x1
+ 80002318: cec60613 addi a2,a2,-788 # 80003000 <begin_signature>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00005797 auipc a5,0x5
+ 80002334: 4b878793 addi a5,a5,1208 # 800077e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00005717 auipc a4,0x5
+ 80002348: 49c70713 addi a4,a4,1180 # 800077e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00005897 auipc a7,0x5
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800077e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00005797 auipc a5,0x5
+ 80002384: 07078793 addi a5,a5,112 # 800073f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf8810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00005797 auipc a5,0x5
+ 80002448: 3807be23 sd zero,924(a5) # 800077e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00001697 auipc a3,0x1
+ 8000245c: 87068693 addi a3,a3,-1936 # 80002cc8 <pass+0xc>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00001617 auipc a2,0x1
+ 800024b8: 8a460613 addi a2,a2,-1884 # 80002d58 <pass+0x9c>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00001617 auipc a2,0x1
+ 80002508: 86c60613 addi a2,a2,-1940 # 80002d70 <pass+0xb4>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00000697 auipc a3,0x0
+ 80002558: 7bc68693 addi a3,a3,1980 # 80002d10 <pass+0x54>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00000697 auipc a3,0x0
+ 80002674: 7d868693 addi a3,a3,2008 # 80002e48 <pass+0x18c>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00000617 auipc a2,0x0
+ 800026cc: 75860613 addi a2,a2,1880 # 80002e20 <pass+0x164>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00005d17 auipc s10,0x5
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800073f0 <user_mapping>
+ 80002724: 00001b97 auipc s7,0x1
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80003000 <begin_signature>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00005a17 auipc s4,0x5
+ 80002738: 0aca0a13 addi s4,s4,172 # 800077e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00005717 auipc a4,0x5
+ 8000274c: 08f73c23 sd a5,152(a4) # 800077e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00005717 auipc a4,0x5
+ 800027d4: 00f73823 sd a5,16(a4) # 800077e0 <freelist_tail>
+ 800027d8: 00005717 auipc a4,0x5
+ 800027dc: 00f73823 sd a5,16(a4) # 800077e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 68c68693 addi a3,a3,1676 # 80002e78 <pass+0x1bc>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 5ac68693 addi a3,a3,1452 # 80002de8 <pass+0x12c>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 53c68693 addi a3,a3,1340 # 80002db0 <pass+0xf4>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00001697 auipc a3,0x1
+ 800028e0: 72468693 addi a3,a3,1828 # 80004000 <begin_signature+0x1000>
+ 800028e4: 00002717 auipc a4,0x2
+ 800028e8: 71c70713 addi a4,a4,1820 # 80005000 <begin_signature+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00003797 auipc a5,0x3
+ 800028f8: 70c78793 addi a5,a5,1804 # 80006000 <begin_signature+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00000897 auipc a7,0x0
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80003000 <begin_signature>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00001697 auipc a3,0x1
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80003ff8 <begin_signature+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00000617 auipc a2,0x0
+ 80002938: 6cc60613 addi a2,a2,1740 # 80003000 <begin_signature>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00003697 auipc a3,0x3
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80005ff8 <begin_signature+0x2ff8>
+ 8000294c: 00001717 auipc a4,0x1
+ 80002950: 6af73a23 sd a5,1716(a4) # 80004000 <begin_signature+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00004697 auipc a3,0x4
+ 800029c0: 64468693 addi a3,a3,1604 # 80007000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00005617 auipc a2,0x5
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800077e8 <freelist_head>
+ 800029d4: 00005797 auipc a5,0x5
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800077e0 <freelist_tail>
+ 800029dc: 00005317 auipc t1,0x5
+ 800029e0: a1430313 addi t1,t1,-1516 # 800073f0 <user_mapping>
+ 800029e4: 02400793 li a5,36
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00005797 auipc a5,0x5
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800073e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 08da87b7 lui a5,0x8da8
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: ffc78793 addi a5,a5,-4 # 8da7ffc <_start-0x77258004>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 00ff10b7 lui ra,0xff1
+ 80002acc: f000809b addiw ra,ra,-256
+ 80002ad0: f0f0cf13 xori t5,ra,-241
+ 80002ad4: ff00feb7 lui t4,0xff00f
+ 80002ad8: 00fe8e9b addiw t4,t4,15
+ 80002adc: 00200193 li gp,2
+ 80002ae0: 1ddf1663 bne t5,t4,80002cac <fail>
+
+0000000080002ae4 <test_3>:
+ 80002ae4: 0ff010b7 lui ra,0xff01
+ 80002ae8: ff00809b addiw ra,ra,-16
+ 80002aec: 0f00cf13 xori t5,ra,240
+ 80002af0: 0ff01eb7 lui t4,0xff01
+ 80002af4: f00e8e9b addiw t4,t4,-256
+ 80002af8: 00300193 li gp,3
+ 80002afc: 1bdf1863 bne t5,t4,80002cac <fail>
+
+0000000080002b00 <test_4>:
+ 80002b00: 00ff10b7 lui ra,0xff1
+ 80002b04: 8ff0809b addiw ra,ra,-1793
+ 80002b08: 70f0cf13 xori t5,ra,1807
+ 80002b0c: 00ff1eb7 lui t4,0xff1
+ 80002b10: ff0e8e9b addiw t4,t4,-16
+ 80002b14: 00400193 li gp,4
+ 80002b18: 19df1a63 bne t5,t4,80002cac <fail>
+
+0000000080002b1c <test_5>:
+ 80002b1c: f00ff0b7 lui ra,0xf00ff
+ 80002b20: 00f0809b addiw ra,ra,15
+ 80002b24: 0f00cf13 xori t5,ra,240
+ 80002b28: f00ffeb7 lui t4,0xf00ff
+ 80002b2c: 0ffe8e9b addiw t4,t4,255
+ 80002b30: 00500193 li gp,5
+ 80002b34: 17df1c63 bne t5,t4,80002cac <fail>
+
+0000000080002b38 <test_6>:
+ 80002b38: ff00f0b7 lui ra,0xff00f
+ 80002b3c: 7000809b addiw ra,ra,1792
+ 80002b40: 70f0c093 xori ra,ra,1807
+ 80002b44: ff00feb7 lui t4,0xff00f
+ 80002b48: 00fe8e9b addiw t4,t4,15
+ 80002b4c: 00600193 li gp,6
+ 80002b50: 15d09e63 bne ra,t4,80002cac <fail>
+
+0000000080002b54 <test_7>:
+ 80002b54: 00000213 li tp,0
+ 80002b58: 0ff010b7 lui ra,0xff01
+ 80002b5c: ff00809b addiw ra,ra,-16
+ 80002b60: 0f00cf13 xori t5,ra,240
+ 80002b64: 000f0313 mv t1,t5
+ 80002b68: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002b6c: 00200293 li t0,2
+ 80002b70: fe5214e3 bne tp,t0,80002b58 <test_7+0x4>
+ 80002b74: 0ff01eb7 lui t4,0xff01
+ 80002b78: f00e8e9b addiw t4,t4,-256
+ 80002b7c: 00700193 li gp,7
+ 80002b80: 13d31663 bne t1,t4,80002cac <fail>
+
+0000000080002b84 <test_8>:
+ 80002b84: 00000213 li tp,0
+ 80002b88: 00ff10b7 lui ra,0xff1
+ 80002b8c: 8ff0809b addiw ra,ra,-1793
+ 80002b90: 70f0cf13 xori t5,ra,1807
+ 80002b94: 00000013 nop
+ 80002b98: 000f0313 mv t1,t5
+ 80002b9c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ba0: 00200293 li t0,2
+ 80002ba4: fe5212e3 bne tp,t0,80002b88 <test_8+0x4>
+ 80002ba8: 00ff1eb7 lui t4,0xff1
+ 80002bac: ff0e8e9b addiw t4,t4,-16
+ 80002bb0: 00800193 li gp,8
+ 80002bb4: 0fd31c63 bne t1,t4,80002cac <fail>
+
+0000000080002bb8 <test_9>:
+ 80002bb8: 00000213 li tp,0
+ 80002bbc: f00ff0b7 lui ra,0xf00ff
+ 80002bc0: 00f0809b addiw ra,ra,15
+ 80002bc4: 0f00cf13 xori t5,ra,240
+ 80002bc8: 00000013 nop
+ 80002bcc: 00000013 nop
+ 80002bd0: 000f0313 mv t1,t5
+ 80002bd4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002bd8: 00200293 li t0,2
+ 80002bdc: fe5210e3 bne tp,t0,80002bbc <test_9+0x4>
+ 80002be0: f00ffeb7 lui t4,0xf00ff
+ 80002be4: 0ffe8e9b addiw t4,t4,255
+ 80002be8: 00900193 li gp,9
+ 80002bec: 0dd31063 bne t1,t4,80002cac <fail>
+
+0000000080002bf0 <test_10>:
+ 80002bf0: 00000213 li tp,0
+ 80002bf4: 0ff010b7 lui ra,0xff01
+ 80002bf8: ff00809b addiw ra,ra,-16
+ 80002bfc: 0f00cf13 xori t5,ra,240
+ 80002c00: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c04: 00200293 li t0,2
+ 80002c08: fe5216e3 bne tp,t0,80002bf4 <test_10+0x4>
+ 80002c0c: 0ff01eb7 lui t4,0xff01
+ 80002c10: f00e8e9b addiw t4,t4,-256
+ 80002c14: 00a00193 li gp,10
+ 80002c18: 09df1a63 bne t5,t4,80002cac <fail>
+
+0000000080002c1c <test_11>:
+ 80002c1c: 00000213 li tp,0
+ 80002c20: 00ff10b7 lui ra,0xff1
+ 80002c24: fff0809b addiw ra,ra,-1
+ 80002c28: 00000013 nop
+ 80002c2c: 00f0cf13 xori t5,ra,15
+ 80002c30: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c34: 00200293 li t0,2
+ 80002c38: fe5214e3 bne tp,t0,80002c20 <test_11+0x4>
+ 80002c3c: 00ff1eb7 lui t4,0xff1
+ 80002c40: ff0e8e9b addiw t4,t4,-16
+ 80002c44: 00b00193 li gp,11
+ 80002c48: 07df1263 bne t5,t4,80002cac <fail>
+
+0000000080002c4c <test_12>:
+ 80002c4c: 00000213 li tp,0
+ 80002c50: f00ff0b7 lui ra,0xf00ff
+ 80002c54: 00f0809b addiw ra,ra,15
+ 80002c58: 00000013 nop
+ 80002c5c: 00000013 nop
+ 80002c60: 0f00cf13 xori t5,ra,240
+ 80002c64: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c68: 00200293 li t0,2
+ 80002c6c: fe5212e3 bne tp,t0,80002c50 <test_12+0x4>
+ 80002c70: f00ffeb7 lui t4,0xf00ff
+ 80002c74: 0ffe8e9b addiw t4,t4,255
+ 80002c78: 00c00193 li gp,12
+ 80002c7c: 03df1863 bne t5,t4,80002cac <fail>
+
+0000000080002c80 <test_13>:
+ 80002c80: 0f004093 xori ra,zero,240
+ 80002c84: 0f000e93 li t4,240
+ 80002c88: 00d00193 li gp,13
+ 80002c8c: 03d09063 bne ra,t4,80002cac <fail>
+
+0000000080002c90 <test_14>:
+ 80002c90: 00ff00b7 lui ra,0xff0
+ 80002c94: 0ff0809b addiw ra,ra,255
+ 80002c98: 70f0c013 xori zero,ra,1807
+ 80002c9c: 00000e93 li t4,0
+ 80002ca0: 00e00193 li gp,14
+ 80002ca4: 01d01463 bne zero,t4,80002cac <fail>
+ 80002ca8: 00301a63 bne zero,gp,80002cbc <pass>
+
+0000000080002cac <fail>:
+ 80002cac: 00119513 slli a0,gp,0x1
+ 80002cb0: 00050063 beqz a0,80002cb0 <fail+0x4>
+ 80002cb4: 00156513 ori a0,a0,1
+ 80002cb8: 00000073 ecall
+
+0000000080002cbc <pass>:
+ 80002cbc: 00100513 li a0,1
+ 80002cc0: 00000073 ecall
+ 80002cc4: c0001073 unimp
diff --git a/test/tests/rv64ui-v-xori.elf b/test/tests/rv64ui-v-xori.elf
new file mode 100644
index 0000000..d716ff2
--- /dev/null
+++ b/test/tests/rv64ui-v-xori.elf
Binary files differ
diff --git a/test/tests/rv64um-p-div.dump b/test/tests/rv64um-p-div.dump
new file mode 100644
index 0000000..b117c5c
--- /dev/null
+++ b/test/tests/rv64um-p-div.dump
@@ -0,0 +1,195 @@
+
+rv64um-p-div: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <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: 0ddf1e63 bne t5,t4,800001ec <fail>
+
+0000000080000114 <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: 0ddf1263 bne t5,t4,800001ec <fail>
+
+000000008000012c <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: 0bdf1663 bne t5,t4,800001ec <fail>
+
+0000000080000144 <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: 09df1a63 bne t5,t4,800001ec <fail>
+
+000000008000015c <test_6>:
+ 8000015c: fff0009b addiw ra,zero,-1
+ 80000160: 03f09093 slli ra,ra,0x3f
+ 80000164: 00100113 li sp,1
+ 80000168: 0220cf33 div t5,ra,sp
+ 8000016c: fff00e9b addiw t4,zero,-1
+ 80000170: 03fe9e93 slli t4,t4,0x3f
+ 80000174: 00600193 li gp,6
+ 80000178: 07df1a63 bne t5,t4,800001ec <fail>
+
+000000008000017c <test_7>:
+ 8000017c: fff0009b addiw ra,zero,-1
+ 80000180: 03f09093 slli ra,ra,0x3f
+ 80000184: fff00113 li sp,-1
+ 80000188: 0220cf33 div t5,ra,sp
+ 8000018c: fff00e9b addiw t4,zero,-1
+ 80000190: 03fe9e93 slli t4,t4,0x3f
+ 80000194: 00700193 li gp,7
+ 80000198: 05df1a63 bne t5,t4,800001ec <fail>
+
+000000008000019c <test_8>:
+ 8000019c: fff0009b addiw ra,zero,-1
+ 800001a0: 03f09093 slli ra,ra,0x3f
+ 800001a4: 00000113 li sp,0
+ 800001a8: 0220cf33 div t5,ra,sp
+ 800001ac: fff00e93 li t4,-1
+ 800001b0: 00800193 li gp,8
+ 800001b4: 03df1c63 bne t5,t4,800001ec <fail>
+
+00000000800001b8 <test_9>:
+ 800001b8: 00100093 li ra,1
+ 800001bc: 00000113 li sp,0
+ 800001c0: 0220cf33 div t5,ra,sp
+ 800001c4: fff00e93 li t4,-1
+ 800001c8: 00900193 li gp,9
+ 800001cc: 03df1063 bne t5,t4,800001ec <fail>
+
+00000000800001d0 <test_10>:
+ 800001d0: 00000093 li ra,0
+ 800001d4: 00000113 li sp,0
+ 800001d8: 0220cf33 div t5,ra,sp
+ 800001dc: fff00e93 li t4,-1
+ 800001e0: 00a00193 li gp,10
+ 800001e4: 01df1463 bne t5,t4,800001ec <fail>
+ 800001e8: 00301c63 bne zero,gp,80000200 <pass>
+
+00000000800001ec <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
+
+0000000080000200 <pass>:
+ 80000200: 0ff0000f fence
+ 80000204: 00100193 li gp,1
+ 80000208: 00000073 ecall
+ 8000020c: c0001073 unimp
+ 80000210: 0000 unimp
+ 80000212: 0000 unimp
+ 80000214: 0000 unimp
+ 80000216: 0000 unimp
+ 80000218: 0000 unimp
+ 8000021a: 0000 unimp
+ 8000021c: 0000 unimp
+ 8000021e: 0000 unimp
+ 80000220: 0000 unimp
+ 80000222: 0000 unimp
+ 80000224: 0000 unimp
+ 80000226: 0000 unimp
+ 80000228: 0000 unimp
+ 8000022a: 0000 unimp
+ 8000022c: 0000 unimp
+ 8000022e: 0000 unimp
+ 80000230: 0000 unimp
+ 80000232: 0000 unimp
+ 80000234: 0000 unimp
+ 80000236: 0000 unimp
+ 80000238: 0000 unimp
+ 8000023a: 0000 unimp
+ 8000023c: 0000 unimp
+ 8000023e: 0000 unimp
+ 80000240: 0000 unimp
+ 80000242: 0000 unimp
diff --git a/test/tests/rv64um-p-div.elf b/test/tests/rv64um-p-div.elf
new file mode 100644
index 0000000..d202d09
--- /dev/null
+++ b/test/tests/rv64um-p-div.elf
Binary files differ
diff --git a/test/tests/rv64um-p-divu.dump b/test/tests/rv64um-p-divu.dump
new file mode 100644
index 0000000..f987025
--- /dev/null
+++ b/test/tests/rv64um-p-divu.dump
@@ -0,0 +1,189 @@
+
+rv64um-p-divu: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <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: 0fdf1a63 bne t5,t4,80000204 <fail>
+
+0000000080000114 <test_3>:
+ 80000114: fec00093 li ra,-20
+ 80000118: 00600113 li sp,6
+ 8000011c: 0220df33 divu t5,ra,sp
+ 80000120: 02aabeb7 lui t4,0x2aab
+ 80000124: aabe8e9b addiw t4,t4,-1365
+ 80000128: 00ce9e93 slli t4,t4,0xc
+ 8000012c: aabe8e93 addi t4,t4,-1365 # 2aaaaab <_start-0x7d555555>
+ 80000130: 00ce9e93 slli t4,t4,0xc
+ 80000134: aabe8e93 addi t4,t4,-1365
+ 80000138: 00ce9e93 slli t4,t4,0xc
+ 8000013c: aa7e8e93 addi t4,t4,-1369
+ 80000140: 00300193 li gp,3
+ 80000144: 0ddf1063 bne t5,t4,80000204 <fail>
+
+0000000080000148 <test_4>:
+ 80000148: 01400093 li ra,20
+ 8000014c: ffa00113 li sp,-6
+ 80000150: 0220df33 divu t5,ra,sp
+ 80000154: 00000e93 li t4,0
+ 80000158: 00400193 li gp,4
+ 8000015c: 0bdf1463 bne t5,t4,80000204 <fail>
+
+0000000080000160 <test_5>:
+ 80000160: fec00093 li ra,-20
+ 80000164: ffa00113 li sp,-6
+ 80000168: 0220df33 divu t5,ra,sp
+ 8000016c: 00000e93 li t4,0
+ 80000170: 00500193 li gp,5
+ 80000174: 09df1863 bne t5,t4,80000204 <fail>
+
+0000000080000178 <test_6>:
+ 80000178: fff0009b addiw ra,zero,-1
+ 8000017c: 03f09093 slli ra,ra,0x3f
+ 80000180: 00100113 li sp,1
+ 80000184: 0220df33 divu t5,ra,sp
+ 80000188: fff00e9b addiw t4,zero,-1
+ 8000018c: 03fe9e93 slli t4,t4,0x3f
+ 80000190: 00600193 li gp,6
+ 80000194: 07df1863 bne t5,t4,80000204 <fail>
+
+0000000080000198 <test_7>:
+ 80000198: fff0009b addiw ra,zero,-1
+ 8000019c: 03f09093 slli ra,ra,0x3f
+ 800001a0: fff00113 li sp,-1
+ 800001a4: 0220df33 divu t5,ra,sp
+ 800001a8: 00000e93 li t4,0
+ 800001ac: 00700193 li gp,7
+ 800001b0: 05df1a63 bne t5,t4,80000204 <fail>
+
+00000000800001b4 <test_8>:
+ 800001b4: fff0009b addiw ra,zero,-1
+ 800001b8: 03f09093 slli ra,ra,0x3f
+ 800001bc: 00000113 li sp,0
+ 800001c0: 0220df33 divu t5,ra,sp
+ 800001c4: fff00e93 li t4,-1
+ 800001c8: 00800193 li gp,8
+ 800001cc: 03df1c63 bne t5,t4,80000204 <fail>
+
+00000000800001d0 <test_9>:
+ 800001d0: 00100093 li ra,1
+ 800001d4: 00000113 li sp,0
+ 800001d8: 0220df33 divu t5,ra,sp
+ 800001dc: fff00e93 li t4,-1
+ 800001e0: 00900193 li gp,9
+ 800001e4: 03df1063 bne t5,t4,80000204 <fail>
+
+00000000800001e8 <test_10>:
+ 800001e8: 00000093 li ra,0
+ 800001ec: 00000113 li sp,0
+ 800001f0: 0220df33 divu t5,ra,sp
+ 800001f4: fff00e93 li t4,-1
+ 800001f8: 00a00193 li gp,10
+ 800001fc: 01df1463 bne t5,t4,80000204 <fail>
+ 80000200: 00301c63 bne zero,gp,80000218 <pass>
+
+0000000080000204 <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
+
+0000000080000218 <pass>:
+ 80000218: 0ff0000f fence
+ 8000021c: 00100193 li gp,1
+ 80000220: 00000073 ecall
+ 80000224: c0001073 unimp
+ 80000228: 0000 unimp
+ 8000022a: 0000 unimp
+ 8000022c: 0000 unimp
+ 8000022e: 0000 unimp
+ 80000230: 0000 unimp
+ 80000232: 0000 unimp
+ 80000234: 0000 unimp
+ 80000236: 0000 unimp
+ 80000238: 0000 unimp
+ 8000023a: 0000 unimp
+ 8000023c: 0000 unimp
+ 8000023e: 0000 unimp
+ 80000240: 0000 unimp
+ 80000242: 0000 unimp
diff --git a/test/tests/rv64um-p-divu.elf b/test/tests/rv64um-p-divu.elf
new file mode 100644
index 0000000..bef0d69
--- /dev/null
+++ b/test/tests/rv64um-p-divu.elf
Binary files differ
diff --git a/test/tests/rv64um-p-divuw.dump b/test/tests/rv64um-p-divuw.dump
new file mode 100644
index 0000000..576f263
--- /dev/null
+++ b/test/tests/rv64um-p-divuw.dump
@@ -0,0 +1,197 @@
+
+rv64um-p-divuw: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <test_2>:
+ 800000fc: 01400093 li ra,20
+ 80000100: 00600113 li sp,6
+ 80000104: 0220df3b divuw t5,ra,sp
+ 80000108: 00300e93 li t4,3
+ 8000010c: 00200193 li gp,2
+ 80000110: 0ddf1a63 bne t5,t4,800001e4 <fail>
+
+0000000080000114 <test_3>:
+ 80000114: 0010009b addiw ra,zero,1
+ 80000118: 02009093 slli ra,ra,0x20
+ 8000011c: fec08093 addi ra,ra,-20
+ 80000120: 00600113 li sp,6
+ 80000124: 0220df3b divuw t5,ra,sp
+ 80000128: 2aaabeb7 lui t4,0x2aaab
+ 8000012c: aa7e8e9b addiw t4,t4,-1369
+ 80000130: 00300193 li gp,3
+ 80000134: 0bdf1863 bne t5,t4,800001e4 <fail>
+
+0000000080000138 <test_4>:
+ 80000138: 01400093 li ra,20
+ 8000013c: ffa00113 li sp,-6
+ 80000140: 0220df3b divuw t5,ra,sp
+ 80000144: 00000e93 li t4,0
+ 80000148: 00400193 li gp,4
+ 8000014c: 09df1c63 bne t5,t4,800001e4 <fail>
+
+0000000080000150 <test_5>:
+ 80000150: fec00093 li ra,-20
+ 80000154: ffa00113 li sp,-6
+ 80000158: 0220df3b divuw t5,ra,sp
+ 8000015c: 00000e93 li t4,0
+ 80000160: 00500193 li gp,5
+ 80000164: 09df1063 bne t5,t4,800001e4 <fail>
+
+0000000080000168 <test_6>:
+ 80000168: 800000b7 lui ra,0x80000
+ 8000016c: 00100113 li sp,1
+ 80000170: 0220df3b divuw t5,ra,sp
+ 80000174: 80000eb7 lui t4,0x80000
+ 80000178: 00600193 li gp,6
+ 8000017c: 07df1463 bne t5,t4,800001e4 <fail>
+
+0000000080000180 <test_7>:
+ 80000180: 800000b7 lui ra,0x80000
+ 80000184: fff00113 li sp,-1
+ 80000188: 0220df3b divuw t5,ra,sp
+ 8000018c: 00000e93 li t4,0
+ 80000190: 00700193 li gp,7
+ 80000194: 05df1863 bne t5,t4,800001e4 <fail>
+
+0000000080000198 <test_8>:
+ 80000198: 800000b7 lui ra,0x80000
+ 8000019c: 00000113 li sp,0
+ 800001a0: 0220df3b divuw t5,ra,sp
+ 800001a4: fff00e93 li t4,-1
+ 800001a8: 00800193 li gp,8
+ 800001ac: 03df1c63 bne t5,t4,800001e4 <fail>
+
+00000000800001b0 <test_9>:
+ 800001b0: 00100093 li ra,1
+ 800001b4: 00000113 li sp,0
+ 800001b8: 0220df3b divuw t5,ra,sp
+ 800001bc: fff00e93 li t4,-1
+ 800001c0: 00900193 li gp,9
+ 800001c4: 03df1063 bne t5,t4,800001e4 <fail>
+
+00000000800001c8 <test_10>:
+ 800001c8: 00000093 li ra,0
+ 800001cc: 00000113 li sp,0
+ 800001d0: 0220df3b divuw t5,ra,sp
+ 800001d4: fff00e93 li t4,-1
+ 800001d8: 00a00193 li gp,10
+ 800001dc: 01df1463 bne t5,t4,800001e4 <fail>
+ 800001e0: 00301c63 bne zero,gp,800001f8 <pass>
+
+00000000800001e4 <fail>:
+ 800001e4: 0ff0000f fence
+ 800001e8: 00018063 beqz gp,800001e8 <fail+0x4>
+ 800001ec: 00119193 slli gp,gp,0x1
+ 800001f0: 0011e193 ori gp,gp,1
+ 800001f4: 00000073 ecall
+
+00000000800001f8 <pass>:
+ 800001f8: 0ff0000f fence
+ 800001fc: 00100193 li gp,1
+ 80000200: 00000073 ecall
+ 80000204: c0001073 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
+ 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/tests/rv64um-p-divuw.elf b/test/tests/rv64um-p-divuw.elf
new file mode 100644
index 0000000..1d1e44f
--- /dev/null
+++ b/test/tests/rv64um-p-divuw.elf
Binary files differ
diff --git a/test/tests/rv64um-p-divw.dump b/test/tests/rv64um-p-divw.dump
new file mode 100644
index 0000000..2d331a9
--- /dev/null
+++ b/test/tests/rv64um-p-divw.dump
@@ -0,0 +1,168 @@
+
+rv64um-p-divw: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <test_2>:
+ 800000fc: 01400093 li ra,20
+ 80000100: 00600113 li sp,6
+ 80000104: 0220cf3b divw t5,ra,sp
+ 80000108: 00300e93 li t4,3
+ 8000010c: 00200193 li gp,2
+ 80000110: 0ddf1463 bne t5,t4,800001d8 <fail>
+
+0000000080000114 <test_3>:
+ 80000114: fec00093 li ra,-20
+ 80000118: 00600113 li sp,6
+ 8000011c: 0220cf3b divw t5,ra,sp
+ 80000120: ffd00e93 li t4,-3
+ 80000124: 00300193 li gp,3
+ 80000128: 0bdf1863 bne t5,t4,800001d8 <fail>
+
+000000008000012c <test_4>:
+ 8000012c: 01400093 li ra,20
+ 80000130: ffa00113 li sp,-6
+ 80000134: 0220cf3b divw t5,ra,sp
+ 80000138: ffd00e93 li t4,-3
+ 8000013c: 00400193 li gp,4
+ 80000140: 09df1c63 bne t5,t4,800001d8 <fail>
+
+0000000080000144 <test_5>:
+ 80000144: fec00093 li ra,-20
+ 80000148: ffa00113 li sp,-6
+ 8000014c: 0220cf3b divw t5,ra,sp
+ 80000150: 00300e93 li t4,3
+ 80000154: 00500193 li gp,5
+ 80000158: 09df1063 bne t5,t4,800001d8 <fail>
+
+000000008000015c <test_6>:
+ 8000015c: 800000b7 lui ra,0x80000
+ 80000160: 00100113 li sp,1
+ 80000164: 0220cf3b divw t5,ra,sp
+ 80000168: 80000eb7 lui t4,0x80000
+ 8000016c: 00600193 li gp,6
+ 80000170: 07df1463 bne t5,t4,800001d8 <fail>
+
+0000000080000174 <test_7>:
+ 80000174: 800000b7 lui ra,0x80000
+ 80000178: fff00113 li sp,-1
+ 8000017c: 0220cf3b divw t5,ra,sp
+ 80000180: 80000eb7 lui t4,0x80000
+ 80000184: 00700193 li gp,7
+ 80000188: 05df1863 bne t5,t4,800001d8 <fail>
+
+000000008000018c <test_8>:
+ 8000018c: 800000b7 lui ra,0x80000
+ 80000190: 00000113 li sp,0
+ 80000194: 0220cf3b divw t5,ra,sp
+ 80000198: fff00e93 li t4,-1
+ 8000019c: 00800193 li gp,8
+ 800001a0: 03df1c63 bne t5,t4,800001d8 <fail>
+
+00000000800001a4 <test_9>:
+ 800001a4: 00100093 li ra,1
+ 800001a8: 00000113 li sp,0
+ 800001ac: 0220cf3b divw t5,ra,sp
+ 800001b0: fff00e93 li t4,-1
+ 800001b4: 00900193 li gp,9
+ 800001b8: 03df1063 bne t5,t4,800001d8 <fail>
+
+00000000800001bc <test_10>:
+ 800001bc: 00000093 li ra,0
+ 800001c0: 00000113 li sp,0
+ 800001c4: 0220cf3b divw 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>
+
+00000000800001d8 <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
+
+00000000800001ec <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/tests/rv64um-p-divw.elf b/test/tests/rv64um-p-divw.elf
new file mode 100644
index 0000000..e39eb53
--- /dev/null
+++ b/test/tests/rv64um-p-divw.elf
Binary files differ
diff --git a/test/tests/rv64um-p-mul.dump b/test/tests/rv64um-p-mul.dump
new file mode 100644
index 0000000..b546f6c
--- /dev/null
+++ b/test/tests/rv64um-p-mul.dump
@@ -0,0 +1,474 @@
+
+rv64um-p-mul: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <test_32>:
+ 800000fc: 000080b7 lui ra,0x8
+ 80000100: e000809b addiw ra,ra,-512
+ 80000104: 06db7137 lui sp,0x6db7
+ 80000108: db71011b addiw sp,sp,-585
+ 8000010c: 00c11113 slli sp,sp,0xc
+ 80000110: db710113 addi sp,sp,-585 # 6db6db7 <_start-0x79249249>
+ 80000114: 00c11113 slli sp,sp,0xc
+ 80000118: db710113 addi sp,sp,-585
+ 8000011c: 00c11113 slli sp,sp,0xc
+ 80000120: db710113 addi sp,sp,-585
+ 80000124: 02208f33 mul t5,ra,sp
+ 80000128: 00001eb7 lui t4,0x1
+ 8000012c: 200e8e9b addiw t4,t4,512
+ 80000130: 02000193 li gp,32
+ 80000134: 49df1a63 bne t5,t4,800005c8 <fail>
+
+0000000080000138 <test_33>:
+ 80000138: 000080b7 lui ra,0x8
+ 8000013c: fc00809b addiw ra,ra,-64
+ 80000140: 06db7137 lui sp,0x6db7
+ 80000144: db71011b addiw sp,sp,-585
+ 80000148: 00c11113 slli sp,sp,0xc
+ 8000014c: db710113 addi sp,sp,-585 # 6db6db7 <_start-0x79249249>
+ 80000150: 00c11113 slli sp,sp,0xc
+ 80000154: db710113 addi sp,sp,-585
+ 80000158: 00c11113 slli sp,sp,0xc
+ 8000015c: db710113 addi sp,sp,-585
+ 80000160: 02208f33 mul t5,ra,sp
+ 80000164: 00001eb7 lui t4,0x1
+ 80000168: 240e8e9b addiw t4,t4,576
+ 8000016c: 02100193 li gp,33
+ 80000170: 45df1c63 bne t5,t4,800005c8 <fail>
+
+0000000080000174 <test_2>:
+ 80000174: 00000093 li ra,0
+ 80000178: 00000113 li sp,0
+ 8000017c: 02208f33 mul t5,ra,sp
+ 80000180: 00000e93 li t4,0
+ 80000184: 00200193 li gp,2
+ 80000188: 45df1063 bne t5,t4,800005c8 <fail>
+
+000000008000018c <test_3>:
+ 8000018c: 00100093 li ra,1
+ 80000190: 00100113 li sp,1
+ 80000194: 02208f33 mul t5,ra,sp
+ 80000198: 00100e93 li t4,1
+ 8000019c: 00300193 li gp,3
+ 800001a0: 43df1463 bne t5,t4,800005c8 <fail>
+
+00000000800001a4 <test_4>:
+ 800001a4: 00300093 li ra,3
+ 800001a8: 00700113 li sp,7
+ 800001ac: 02208f33 mul t5,ra,sp
+ 800001b0: 01500e93 li t4,21
+ 800001b4: 00400193 li gp,4
+ 800001b8: 41df1863 bne t5,t4,800005c8 <fail>
+
+00000000800001bc <test_5>:
+ 800001bc: 00000093 li ra,0
+ 800001c0: ffff8137 lui sp,0xffff8
+ 800001c4: 02208f33 mul t5,ra,sp
+ 800001c8: 00000e93 li t4,0
+ 800001cc: 00500193 li gp,5
+ 800001d0: 3fdf1c63 bne t5,t4,800005c8 <fail>
+
+00000000800001d4 <test_6>:
+ 800001d4: 800000b7 lui ra,0x80000
+ 800001d8: 00000113 li sp,0
+ 800001dc: 02208f33 mul t5,ra,sp
+ 800001e0: 00000e93 li t4,0
+ 800001e4: 00600193 li gp,6
+ 800001e8: 3fdf1063 bne t5,t4,800005c8 <fail>
+
+00000000800001ec <test_7>:
+ 800001ec: 800000b7 lui ra,0x80000
+ 800001f0: ffff8137 lui sp,0xffff8
+ 800001f4: 02208f33 mul t5,ra,sp
+ 800001f8: 00100e9b addiw t4,zero,1
+ 800001fc: 02ee9e93 slli t4,t4,0x2e
+ 80000200: 00700193 li gp,7
+ 80000204: 3ddf1263 bne t5,t4,800005c8 <fail>
+
+0000000080000208 <test_30>:
+ 80000208: faaab0b7 lui ra,0xfaaab
+ 8000020c: aab0809b addiw ra,ra,-1365
+ 80000210: 00c09093 slli ra,ra,0xc
+ 80000214: aab08093 addi ra,ra,-1365 # fffffffffaaaaaab <_end+0xffffffff7aaa8aab>
+ 80000218: 00c09093 slli ra,ra,0xc
+ 8000021c: aab08093 addi ra,ra,-1365
+ 80000220: 00c09093 slli ra,ra,0xc
+ 80000224: aab08093 addi ra,ra,-1365
+ 80000228: 00030137 lui sp,0x30
+ 8000022c: e7d1011b addiw sp,sp,-387
+ 80000230: 02208f33 mul t5,ra,sp
+ 80000234: 00010eb7 lui t4,0x10
+ 80000238: f7fe8e9b addiw t4,t4,-129
+ 8000023c: 01e00193 li gp,30
+ 80000240: 39df1463 bne t5,t4,800005c8 <fail>
+
+0000000080000244 <test_31>:
+ 80000244: 000300b7 lui ra,0x30
+ 80000248: e7d0809b addiw ra,ra,-387
+ 8000024c: faaab137 lui sp,0xfaaab
+ 80000250: aab1011b addiw sp,sp,-1365
+ 80000254: 00c11113 slli sp,sp,0xc
+ 80000258: aab10113 addi sp,sp,-1365 # fffffffffaaaaaab <_end+0xffffffff7aaa8aab>
+ 8000025c: 00c11113 slli sp,sp,0xc
+ 80000260: aab10113 addi sp,sp,-1365
+ 80000264: 00c11113 slli sp,sp,0xc
+ 80000268: aab10113 addi sp,sp,-1365
+ 8000026c: 02208f33 mul t5,ra,sp
+ 80000270: 00010eb7 lui t4,0x10
+ 80000274: f7fe8e9b addiw t4,t4,-129
+ 80000278: 01f00193 li gp,31
+ 8000027c: 35df1663 bne t5,t4,800005c8 <fail>
+
+0000000080000280 <test_8>:
+ 80000280: 00d00093 li ra,13
+ 80000284: 00b00113 li sp,11
+ 80000288: 022080b3 mul ra,ra,sp
+ 8000028c: 08f00e93 li t4,143
+ 80000290: 00800193 li gp,8
+ 80000294: 33d09a63 bne ra,t4,800005c8 <fail>
+
+0000000080000298 <test_9>:
+ 80000298: 00e00093 li ra,14
+ 8000029c: 00b00113 li sp,11
+ 800002a0: 02208133 mul sp,ra,sp
+ 800002a4: 09a00e93 li t4,154
+ 800002a8: 00900193 li gp,9
+ 800002ac: 31d11e63 bne sp,t4,800005c8 <fail>
+
+00000000800002b0 <test_10>:
+ 800002b0: 00d00093 li ra,13
+ 800002b4: 021080b3 mul ra,ra,ra
+ 800002b8: 0a900e93 li t4,169
+ 800002bc: 00a00193 li gp,10
+ 800002c0: 31d09463 bne ra,t4,800005c8 <fail>
+
+00000000800002c4 <test_11>:
+ 800002c4: 00000213 li tp,0
+ 800002c8: 00d00093 li ra,13
+ 800002cc: 00b00113 li sp,11
+ 800002d0: 02208f33 mul t5,ra,sp
+ 800002d4: 000f0313 mv t1,t5
+ 800002d8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800002dc: 00200293 li t0,2
+ 800002e0: fe5214e3 bne tp,t0,800002c8 <test_11+0x4>
+ 800002e4: 08f00e93 li t4,143
+ 800002e8: 00b00193 li gp,11
+ 800002ec: 2dd31e63 bne t1,t4,800005c8 <fail>
+
+00000000800002f0 <test_12>:
+ 800002f0: 00000213 li tp,0
+ 800002f4: 00e00093 li ra,14
+ 800002f8: 00b00113 li sp,11
+ 800002fc: 02208f33 mul t5,ra,sp
+ 80000300: 00000013 nop
+ 80000304: 000f0313 mv t1,t5
+ 80000308: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 8000030c: 00200293 li t0,2
+ 80000310: fe5212e3 bne tp,t0,800002f4 <test_12+0x4>
+ 80000314: 09a00e93 li t4,154
+ 80000318: 00c00193 li gp,12
+ 8000031c: 2bd31663 bne t1,t4,800005c8 <fail>
+
+0000000080000320 <test_13>:
+ 80000320: 00000213 li tp,0
+ 80000324: 00f00093 li ra,15
+ 80000328: 00b00113 li sp,11
+ 8000032c: 02208f33 mul t5,ra,sp
+ 80000330: 00000013 nop
+ 80000334: 00000013 nop
+ 80000338: 000f0313 mv t1,t5
+ 8000033c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000340: 00200293 li t0,2
+ 80000344: fe5210e3 bne tp,t0,80000324 <test_13+0x4>
+ 80000348: 0a500e93 li t4,165
+ 8000034c: 00d00193 li gp,13
+ 80000350: 27d31c63 bne t1,t4,800005c8 <fail>
+
+0000000080000354 <test_14>:
+ 80000354: 00000213 li tp,0
+ 80000358: 00d00093 li ra,13
+ 8000035c: 00b00113 li sp,11
+ 80000360: 02208f33 mul t5,ra,sp
+ 80000364: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000368: 00200293 li t0,2
+ 8000036c: fe5216e3 bne tp,t0,80000358 <test_14+0x4>
+ 80000370: 08f00e93 li t4,143
+ 80000374: 00e00193 li gp,14
+ 80000378: 25df1863 bne t5,t4,800005c8 <fail>
+
+000000008000037c <test_15>:
+ 8000037c: 00000213 li tp,0
+ 80000380: 00e00093 li ra,14
+ 80000384: 00b00113 li sp,11
+ 80000388: 00000013 nop
+ 8000038c: 02208f33 mul t5,ra,sp
+ 80000390: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000394: 00200293 li t0,2
+ 80000398: fe5214e3 bne tp,t0,80000380 <test_15+0x4>
+ 8000039c: 09a00e93 li t4,154
+ 800003a0: 00f00193 li gp,15
+ 800003a4: 23df1263 bne t5,t4,800005c8 <fail>
+
+00000000800003a8 <test_16>:
+ 800003a8: 00000213 li tp,0
+ 800003ac: 00f00093 li ra,15
+ 800003b0: 00b00113 li sp,11
+ 800003b4: 00000013 nop
+ 800003b8: 00000013 nop
+ 800003bc: 02208f33 mul t5,ra,sp
+ 800003c0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800003c4: 00200293 li t0,2
+ 800003c8: fe5212e3 bne tp,t0,800003ac <test_16+0x4>
+ 800003cc: 0a500e93 li t4,165
+ 800003d0: 01000193 li gp,16
+ 800003d4: 1fdf1a63 bne t5,t4,800005c8 <fail>
+
+00000000800003d8 <test_17>:
+ 800003d8: 00000213 li tp,0
+ 800003dc: 00d00093 li ra,13
+ 800003e0: 00000013 nop
+ 800003e4: 00b00113 li sp,11
+ 800003e8: 02208f33 mul t5,ra,sp
+ 800003ec: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800003f0: 00200293 li t0,2
+ 800003f4: fe5214e3 bne tp,t0,800003dc <test_17+0x4>
+ 800003f8: 08f00e93 li t4,143
+ 800003fc: 01100193 li gp,17
+ 80000400: 1ddf1463 bne t5,t4,800005c8 <fail>
+
+0000000080000404 <test_18>:
+ 80000404: 00000213 li tp,0
+ 80000408: 00e00093 li ra,14
+ 8000040c: 00000013 nop
+ 80000410: 00b00113 li sp,11
+ 80000414: 00000013 nop
+ 80000418: 02208f33 mul t5,ra,sp
+ 8000041c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000420: 00200293 li t0,2
+ 80000424: fe5212e3 bne tp,t0,80000408 <test_18+0x4>
+ 80000428: 09a00e93 li t4,154
+ 8000042c: 01200193 li gp,18
+ 80000430: 19df1c63 bne t5,t4,800005c8 <fail>
+
+0000000080000434 <test_19>:
+ 80000434: 00000213 li tp,0
+ 80000438: 00f00093 li ra,15
+ 8000043c: 00000013 nop
+ 80000440: 00000013 nop
+ 80000444: 00b00113 li sp,11
+ 80000448: 02208f33 mul t5,ra,sp
+ 8000044c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000450: 00200293 li t0,2
+ 80000454: fe5212e3 bne tp,t0,80000438 <test_19+0x4>
+ 80000458: 0a500e93 li t4,165
+ 8000045c: 01300193 li gp,19
+ 80000460: 17df1463 bne t5,t4,800005c8 <fail>
+
+0000000080000464 <test_20>:
+ 80000464: 00000213 li tp,0
+ 80000468: 00b00113 li sp,11
+ 8000046c: 00d00093 li ra,13
+ 80000470: 02208f33 mul t5,ra,sp
+ 80000474: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000478: 00200293 li t0,2
+ 8000047c: fe5216e3 bne tp,t0,80000468 <test_20+0x4>
+ 80000480: 08f00e93 li t4,143
+ 80000484: 01400193 li gp,20
+ 80000488: 15df1063 bne t5,t4,800005c8 <fail>
+
+000000008000048c <test_21>:
+ 8000048c: 00000213 li tp,0
+ 80000490: 00b00113 li sp,11
+ 80000494: 00e00093 li ra,14
+ 80000498: 00000013 nop
+ 8000049c: 02208f33 mul t5,ra,sp
+ 800004a0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800004a4: 00200293 li t0,2
+ 800004a8: fe5214e3 bne tp,t0,80000490 <test_21+0x4>
+ 800004ac: 09a00e93 li t4,154
+ 800004b0: 01500193 li gp,21
+ 800004b4: 11df1a63 bne t5,t4,800005c8 <fail>
+
+00000000800004b8 <test_22>:
+ 800004b8: 00000213 li tp,0
+ 800004bc: 00b00113 li sp,11
+ 800004c0: 00f00093 li ra,15
+ 800004c4: 00000013 nop
+ 800004c8: 00000013 nop
+ 800004cc: 02208f33 mul t5,ra,sp
+ 800004d0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800004d4: 00200293 li t0,2
+ 800004d8: fe5212e3 bne tp,t0,800004bc <test_22+0x4>
+ 800004dc: 0a500e93 li t4,165
+ 800004e0: 01600193 li gp,22
+ 800004e4: 0fdf1263 bne t5,t4,800005c8 <fail>
+
+00000000800004e8 <test_23>:
+ 800004e8: 00000213 li tp,0
+ 800004ec: 00b00113 li sp,11
+ 800004f0: 00000013 nop
+ 800004f4: 00d00093 li ra,13
+ 800004f8: 02208f33 mul t5,ra,sp
+ 800004fc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000500: 00200293 li t0,2
+ 80000504: fe5214e3 bne tp,t0,800004ec <test_23+0x4>
+ 80000508: 08f00e93 li t4,143
+ 8000050c: 01700193 li gp,23
+ 80000510: 0bdf1c63 bne t5,t4,800005c8 <fail>
+
+0000000080000514 <test_24>:
+ 80000514: 00000213 li tp,0
+ 80000518: 00b00113 li sp,11
+ 8000051c: 00000013 nop
+ 80000520: 00e00093 li ra,14
+ 80000524: 00000013 nop
+ 80000528: 02208f33 mul t5,ra,sp
+ 8000052c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000530: 00200293 li t0,2
+ 80000534: fe5212e3 bne tp,t0,80000518 <test_24+0x4>
+ 80000538: 09a00e93 li t4,154
+ 8000053c: 01800193 li gp,24
+ 80000540: 09df1463 bne t5,t4,800005c8 <fail>
+
+0000000080000544 <test_25>:
+ 80000544: 00000213 li tp,0
+ 80000548: 00b00113 li sp,11
+ 8000054c: 00000013 nop
+ 80000550: 00000013 nop
+ 80000554: 00f00093 li ra,15
+ 80000558: 02208f33 mul t5,ra,sp
+ 8000055c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000560: 00200293 li t0,2
+ 80000564: fe5212e3 bne tp,t0,80000548 <test_25+0x4>
+ 80000568: 0a500e93 li t4,165
+ 8000056c: 01900193 li gp,25
+ 80000570: 05df1c63 bne t5,t4,800005c8 <fail>
+
+0000000080000574 <test_26>:
+ 80000574: 01f00093 li ra,31
+ 80000578: 02100133 mul sp,zero,ra
+ 8000057c: 00000e93 li t4,0
+ 80000580: 01a00193 li gp,26
+ 80000584: 05d11263 bne sp,t4,800005c8 <fail>
+
+0000000080000588 <test_27>:
+ 80000588: 02000093 li ra,32
+ 8000058c: 02008133 mul sp,ra,zero
+ 80000590: 00000e93 li t4,0
+ 80000594: 01b00193 li gp,27
+ 80000598: 03d11863 bne sp,t4,800005c8 <fail>
+
+000000008000059c <test_28>:
+ 8000059c: 020000b3 mul ra,zero,zero
+ 800005a0: 00000e93 li t4,0
+ 800005a4: 01c00193 li gp,28
+ 800005a8: 03d09063 bne ra,t4,800005c8 <fail>
+
+00000000800005ac <test_29>:
+ 800005ac: 02100093 li ra,33
+ 800005b0: 02200113 li sp,34
+ 800005b4: 02208033 mul zero,ra,sp
+ 800005b8: 00000e93 li t4,0
+ 800005bc: 01d00193 li gp,29
+ 800005c0: 01d01463 bne zero,t4,800005c8 <fail>
+ 800005c4: 00301c63 bne zero,gp,800005dc <pass>
+
+00000000800005c8 <fail>:
+ 800005c8: 0ff0000f fence
+ 800005cc: 00018063 beqz gp,800005cc <fail+0x4>
+ 800005d0: 00119193 slli gp,gp,0x1
+ 800005d4: 0011e193 ori gp,gp,1
+ 800005d8: 00000073 ecall
+
+00000000800005dc <pass>:
+ 800005dc: 0ff0000f fence
+ 800005e0: 00100193 li gp,1
+ 800005e4: 00000073 ecall
+ 800005e8: c0001073 unimp
+ 800005ec: 0000 unimp
+ 800005ee: 0000 unimp
+ 800005f0: 0000 unimp
+ 800005f2: 0000 unimp
+ 800005f4: 0000 unimp
+ 800005f6: 0000 unimp
+ 800005f8: 0000 unimp
+ 800005fa: 0000 unimp
+ 800005fc: 0000 unimp
+ 800005fe: 0000 unimp
+ 80000600: 0000 unimp
+ 80000602: 0000 unimp
diff --git a/test/tests/rv64um-p-mul.elf b/test/tests/rv64um-p-mul.elf
new file mode 100644
index 0000000..4983abe
--- /dev/null
+++ b/test/tests/rv64um-p-mul.elf
Binary files differ
diff --git a/test/tests/rv64um-p-mulh.dump b/test/tests/rv64um-p-mulh.dump
new file mode 100644
index 0000000..59475e6
--- /dev/null
+++ b/test/tests/rv64um-p-mulh.dump
@@ -0,0 +1,456 @@
+
+rv64um-p-mulh: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <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: 47df1063 bne t5,t4,80000570 <fail>
+
+0000000080000114 <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: 45df1463 bne t5,t4,80000570 <fail>
+
+000000008000012c <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: 43df1863 bne t5,t4,80000570 <fail>
+
+0000000080000144 <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: 41df1c63 bne t5,t4,80000570 <fail>
+
+000000008000015c <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: 41df1063 bne t5,t4,80000570 <fail>
+
+0000000080000174 <test_7>:
+ 80000174: 800000b7 lui ra,0x80000
+ 80000178: ffff8137 lui sp,0xffff8
+ 8000017c: 02209f33 mulh t5,ra,sp
+ 80000180: 00000e93 li t4,0
+ 80000184: 00700193 li gp,7
+ 80000188: 3fdf1463 bne t5,t4,80000570 <fail>
+
+000000008000018c <test_8>:
+ 8000018c: 00d0009b addiw ra,zero,13
+ 80000190: 02009093 slli ra,ra,0x20
+ 80000194: 00b0011b addiw sp,zero,11
+ 80000198: 02011113 slli sp,sp,0x20
+ 8000019c: 022090b3 mulh ra,ra,sp
+ 800001a0: 08f00e93 li t4,143
+ 800001a4: 00800193 li gp,8
+ 800001a8: 3dd09463 bne ra,t4,80000570 <fail>
+
+00000000800001ac <test_9>:
+ 800001ac: 0070009b addiw ra,zero,7
+ 800001b0: 02109093 slli ra,ra,0x21
+ 800001b4: 00b0011b addiw sp,zero,11
+ 800001b8: 02011113 slli sp,sp,0x20
+ 800001bc: 02209133 mulh sp,ra,sp
+ 800001c0: 09a00e93 li t4,154
+ 800001c4: 00900193 li gp,9
+ 800001c8: 3bd11463 bne sp,t4,80000570 <fail>
+
+00000000800001cc <test_10>:
+ 800001cc: 00d0009b addiw ra,zero,13
+ 800001d0: 02009093 slli ra,ra,0x20
+ 800001d4: 021090b3 mulh ra,ra,ra
+ 800001d8: 0a900e93 li t4,169
+ 800001dc: 00a00193 li gp,10
+ 800001e0: 39d09863 bne ra,t4,80000570 <fail>
+
+00000000800001e4 <test_11>:
+ 800001e4: 00000213 li tp,0
+ 800001e8: 00d0009b addiw ra,zero,13
+ 800001ec: 02009093 slli ra,ra,0x20
+ 800001f0: 00b0011b addiw sp,zero,11
+ 800001f4: 02011113 slli sp,sp,0x20
+ 800001f8: 02209f33 mulh t5,ra,sp
+ 800001fc: 000f0313 mv t1,t5
+ 80000200: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000204: 00200293 li t0,2
+ 80000208: fe5210e3 bne tp,t0,800001e8 <test_11+0x4>
+ 8000020c: 08f00e93 li t4,143
+ 80000210: 00b00193 li gp,11
+ 80000214: 35d31e63 bne t1,t4,80000570 <fail>
+
+0000000080000218 <test_12>:
+ 80000218: 00000213 li tp,0
+ 8000021c: 0070009b addiw ra,zero,7
+ 80000220: 02109093 slli ra,ra,0x21
+ 80000224: 00b0011b addiw sp,zero,11
+ 80000228: 02011113 slli sp,sp,0x20
+ 8000022c: 02209f33 mulh t5,ra,sp
+ 80000230: 00000013 nop
+ 80000234: 000f0313 mv t1,t5
+ 80000238: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 8000023c: 00200293 li t0,2
+ 80000240: fc521ee3 bne tp,t0,8000021c <test_12+0x4>
+ 80000244: 09a00e93 li t4,154
+ 80000248: 00c00193 li gp,12
+ 8000024c: 33d31263 bne t1,t4,80000570 <fail>
+
+0000000080000250 <test_13>:
+ 80000250: 00000213 li tp,0
+ 80000254: 00f0009b addiw ra,zero,15
+ 80000258: 02009093 slli ra,ra,0x20
+ 8000025c: 00b0011b addiw sp,zero,11
+ 80000260: 02011113 slli sp,sp,0x20
+ 80000264: 02209f33 mulh t5,ra,sp
+ 80000268: 00000013 nop
+ 8000026c: 00000013 nop
+ 80000270: 000f0313 mv t1,t5
+ 80000274: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000278: 00200293 li t0,2
+ 8000027c: fc521ce3 bne tp,t0,80000254 <test_13+0x4>
+ 80000280: 0a500e93 li t4,165
+ 80000284: 00d00193 li gp,13
+ 80000288: 2fd31463 bne t1,t4,80000570 <fail>
+
+000000008000028c <test_14>:
+ 8000028c: 00000213 li tp,0
+ 80000290: 00d0009b addiw ra,zero,13
+ 80000294: 02009093 slli ra,ra,0x20
+ 80000298: 00b0011b addiw sp,zero,11
+ 8000029c: 02011113 slli sp,sp,0x20
+ 800002a0: 02209f33 mulh t5,ra,sp
+ 800002a4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800002a8: 00200293 li t0,2
+ 800002ac: fe5212e3 bne tp,t0,80000290 <test_14+0x4>
+ 800002b0: 08f00e93 li t4,143
+ 800002b4: 00e00193 li gp,14
+ 800002b8: 2bdf1c63 bne t5,t4,80000570 <fail>
+
+00000000800002bc <test_15>:
+ 800002bc: 00000213 li tp,0
+ 800002c0: 0070009b addiw ra,zero,7
+ 800002c4: 02109093 slli ra,ra,0x21
+ 800002c8: 00b0011b addiw sp,zero,11
+ 800002cc: 02011113 slli sp,sp,0x20
+ 800002d0: 00000013 nop
+ 800002d4: 02209f33 mulh t5,ra,sp
+ 800002d8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800002dc: 00200293 li t0,2
+ 800002e0: fe5210e3 bne tp,t0,800002c0 <test_15+0x4>
+ 800002e4: 09a00e93 li t4,154
+ 800002e8: 00f00193 li gp,15
+ 800002ec: 29df1263 bne t5,t4,80000570 <fail>
+
+00000000800002f0 <test_16>:
+ 800002f0: 00000213 li tp,0
+ 800002f4: 00f0009b addiw ra,zero,15
+ 800002f8: 02009093 slli ra,ra,0x20
+ 800002fc: 00b0011b addiw sp,zero,11
+ 80000300: 02011113 slli sp,sp,0x20
+ 80000304: 00000013 nop
+ 80000308: 00000013 nop
+ 8000030c: 02209f33 mulh t5,ra,sp
+ 80000310: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000314: 00200293 li t0,2
+ 80000318: fc521ee3 bne tp,t0,800002f4 <test_16+0x4>
+ 8000031c: 0a500e93 li t4,165
+ 80000320: 01000193 li gp,16
+ 80000324: 25df1663 bne t5,t4,80000570 <fail>
+
+0000000080000328 <test_17>:
+ 80000328: 00000213 li tp,0
+ 8000032c: 00d0009b addiw ra,zero,13
+ 80000330: 02009093 slli ra,ra,0x20
+ 80000334: 00000013 nop
+ 80000338: 00b0011b addiw sp,zero,11
+ 8000033c: 02011113 slli sp,sp,0x20
+ 80000340: 02209f33 mulh t5,ra,sp
+ 80000344: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000348: 00200293 li t0,2
+ 8000034c: fe5210e3 bne tp,t0,8000032c <test_17+0x4>
+ 80000350: 08f00e93 li t4,143
+ 80000354: 01100193 li gp,17
+ 80000358: 21df1c63 bne t5,t4,80000570 <fail>
+
+000000008000035c <test_18>:
+ 8000035c: 00000213 li tp,0
+ 80000360: 0070009b addiw ra,zero,7
+ 80000364: 02109093 slli ra,ra,0x21
+ 80000368: 00000013 nop
+ 8000036c: 00b0011b addiw sp,zero,11
+ 80000370: 02011113 slli sp,sp,0x20
+ 80000374: 00000013 nop
+ 80000378: 02209f33 mulh t5,ra,sp
+ 8000037c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000380: 00200293 li t0,2
+ 80000384: fc521ee3 bne tp,t0,80000360 <test_18+0x4>
+ 80000388: 09a00e93 li t4,154
+ 8000038c: 01200193 li gp,18
+ 80000390: 1fdf1063 bne t5,t4,80000570 <fail>
+
+0000000080000394 <test_19>:
+ 80000394: 00000213 li tp,0
+ 80000398: 00f0009b addiw ra,zero,15
+ 8000039c: 02009093 slli ra,ra,0x20
+ 800003a0: 00000013 nop
+ 800003a4: 00000013 nop
+ 800003a8: 00b0011b addiw sp,zero,11
+ 800003ac: 02011113 slli sp,sp,0x20
+ 800003b0: 02209f33 mulh t5,ra,sp
+ 800003b4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800003b8: 00200293 li t0,2
+ 800003bc: fc521ee3 bne tp,t0,80000398 <test_19+0x4>
+ 800003c0: 0a500e93 li t4,165
+ 800003c4: 01300193 li gp,19
+ 800003c8: 1bdf1463 bne t5,t4,80000570 <fail>
+
+00000000800003cc <test_20>:
+ 800003cc: 00000213 li tp,0
+ 800003d0: 00b0011b addiw sp,zero,11
+ 800003d4: 02011113 slli sp,sp,0x20
+ 800003d8: 00d0009b addiw ra,zero,13
+ 800003dc: 02009093 slli ra,ra,0x20
+ 800003e0: 02209f33 mulh t5,ra,sp
+ 800003e4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800003e8: 00200293 li t0,2
+ 800003ec: fe5212e3 bne tp,t0,800003d0 <test_20+0x4>
+ 800003f0: 08f00e93 li t4,143
+ 800003f4: 01400193 li gp,20
+ 800003f8: 17df1c63 bne t5,t4,80000570 <fail>
+
+00000000800003fc <test_21>:
+ 800003fc: 00000213 li tp,0
+ 80000400: 00b0011b addiw sp,zero,11
+ 80000404: 02011113 slli sp,sp,0x20
+ 80000408: 0070009b addiw ra,zero,7
+ 8000040c: 02109093 slli ra,ra,0x21
+ 80000410: 00000013 nop
+ 80000414: 02209f33 mulh t5,ra,sp
+ 80000418: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 8000041c: 00200293 li t0,2
+ 80000420: fe5210e3 bne tp,t0,80000400 <test_21+0x4>
+ 80000424: 09a00e93 li t4,154
+ 80000428: 01500193 li gp,21
+ 8000042c: 15df1263 bne t5,t4,80000570 <fail>
+
+0000000080000430 <test_22>:
+ 80000430: 00000213 li tp,0
+ 80000434: 00b0011b addiw sp,zero,11
+ 80000438: 02011113 slli sp,sp,0x20
+ 8000043c: 00f0009b addiw ra,zero,15
+ 80000440: 02009093 slli ra,ra,0x20
+ 80000444: 00000013 nop
+ 80000448: 00000013 nop
+ 8000044c: 02209f33 mulh t5,ra,sp
+ 80000450: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000454: 00200293 li t0,2
+ 80000458: fc521ee3 bne tp,t0,80000434 <test_22+0x4>
+ 8000045c: 0a500e93 li t4,165
+ 80000460: 01600193 li gp,22
+ 80000464: 11df1663 bne t5,t4,80000570 <fail>
+
+0000000080000468 <test_23>:
+ 80000468: 00000213 li tp,0
+ 8000046c: 00b0011b addiw sp,zero,11
+ 80000470: 02011113 slli sp,sp,0x20
+ 80000474: 00000013 nop
+ 80000478: 00d0009b addiw ra,zero,13
+ 8000047c: 02009093 slli ra,ra,0x20
+ 80000480: 02209f33 mulh t5,ra,sp
+ 80000484: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000488: 00200293 li t0,2
+ 8000048c: fe5210e3 bne tp,t0,8000046c <test_23+0x4>
+ 80000490: 08f00e93 li t4,143
+ 80000494: 01700193 li gp,23
+ 80000498: 0ddf1c63 bne t5,t4,80000570 <fail>
+
+000000008000049c <test_24>:
+ 8000049c: 00000213 li tp,0
+ 800004a0: 00b0011b addiw sp,zero,11
+ 800004a4: 02011113 slli sp,sp,0x20
+ 800004a8: 00000013 nop
+ 800004ac: 0070009b addiw ra,zero,7
+ 800004b0: 02109093 slli ra,ra,0x21
+ 800004b4: 00000013 nop
+ 800004b8: 02209f33 mulh t5,ra,sp
+ 800004bc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800004c0: 00200293 li t0,2
+ 800004c4: fc521ee3 bne tp,t0,800004a0 <test_24+0x4>
+ 800004c8: 09a00e93 li t4,154
+ 800004cc: 01800193 li gp,24
+ 800004d0: 0bdf1063 bne t5,t4,80000570 <fail>
+
+00000000800004d4 <test_25>:
+ 800004d4: 00000213 li tp,0
+ 800004d8: 00b0011b addiw sp,zero,11
+ 800004dc: 02011113 slli sp,sp,0x20
+ 800004e0: 00000013 nop
+ 800004e4: 00000013 nop
+ 800004e8: 00f0009b addiw ra,zero,15
+ 800004ec: 02009093 slli ra,ra,0x20
+ 800004f0: 02209f33 mulh t5,ra,sp
+ 800004f4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800004f8: 00200293 li t0,2
+ 800004fc: fc521ee3 bne tp,t0,800004d8 <test_25+0x4>
+ 80000500: 0a500e93 li t4,165
+ 80000504: 01900193 li gp,25
+ 80000508: 07df1463 bne t5,t4,80000570 <fail>
+
+000000008000050c <test_26>:
+ 8000050c: 01f0009b addiw ra,zero,31
+ 80000510: 02009093 slli ra,ra,0x20
+ 80000514: 02101133 mulh sp,zero,ra
+ 80000518: 00000e93 li t4,0
+ 8000051c: 01a00193 li gp,26
+ 80000520: 05d11863 bne sp,t4,80000570 <fail>
+
+0000000080000524 <test_27>:
+ 80000524: 0010009b addiw ra,zero,1
+ 80000528: 02509093 slli ra,ra,0x25
+ 8000052c: 02009133 mulh sp,ra,zero
+ 80000530: 00000e93 li t4,0
+ 80000534: 01b00193 li gp,27
+ 80000538: 03d11c63 bne sp,t4,80000570 <fail>
+
+000000008000053c <test_28>:
+ 8000053c: 020010b3 mulh ra,zero,zero
+ 80000540: 00000e93 li t4,0
+ 80000544: 01c00193 li gp,28
+ 80000548: 03d09463 bne ra,t4,80000570 <fail>
+
+000000008000054c <test_29>:
+ 8000054c: 0210009b addiw ra,zero,33
+ 80000550: 02009093 slli ra,ra,0x20
+ 80000554: 0110011b addiw sp,zero,17
+ 80000558: 02111113 slli sp,sp,0x21
+ 8000055c: 02209033 mulh zero,ra,sp
+ 80000560: 00000e93 li t4,0
+ 80000564: 01d00193 li gp,29
+ 80000568: 01d01463 bne zero,t4,80000570 <fail>
+ 8000056c: 00301c63 bne zero,gp,80000584 <pass>
+
+0000000080000570 <fail>:
+ 80000570: 0ff0000f fence
+ 80000574: 00018063 beqz gp,80000574 <fail+0x4>
+ 80000578: 00119193 slli gp,gp,0x1
+ 8000057c: 0011e193 ori gp,gp,1
+ 80000580: 00000073 ecall
+
+0000000080000584 <pass>:
+ 80000584: 0ff0000f fence
+ 80000588: 00100193 li gp,1
+ 8000058c: 00000073 ecall
+ 80000590: c0001073 unimp
+ 80000594: 0000 unimp
+ 80000596: 0000 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
diff --git a/test/tests/rv64um-p-mulh.elf b/test/tests/rv64um-p-mulh.elf
new file mode 100644
index 0000000..4118cec
--- /dev/null
+++ b/test/tests/rv64um-p-mulh.elf
Binary files differ
diff --git a/test/tests/rv64um-p-mulhsu.dump b/test/tests/rv64um-p-mulhsu.dump
new file mode 100644
index 0000000..56d5b6d
--- /dev/null
+++ b/test/tests/rv64um-p-mulhsu.dump
@@ -0,0 +1,456 @@
+
+rv64um-p-mulhsu: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <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: 47df1063 bne t5,t4,80000570 <fail>
+
+0000000080000114 <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: 45df1463 bne t5,t4,80000570 <fail>
+
+000000008000012c <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: 43df1863 bne t5,t4,80000570 <fail>
+
+0000000080000144 <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: 41df1c63 bne t5,t4,80000570 <fail>
+
+000000008000015c <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: 41df1063 bne t5,t4,80000570 <fail>
+
+0000000080000174 <test_7>:
+ 80000174: 800000b7 lui ra,0x80000
+ 80000178: ffff8137 lui sp,0xffff8
+ 8000017c: 0220af33 mulhsu t5,ra,sp
+ 80000180: 80000eb7 lui t4,0x80000
+ 80000184: 00700193 li gp,7
+ 80000188: 3fdf1463 bne t5,t4,80000570 <fail>
+
+000000008000018c <test_8>:
+ 8000018c: 00d0009b addiw ra,zero,13
+ 80000190: 02009093 slli ra,ra,0x20
+ 80000194: 00b0011b addiw sp,zero,11
+ 80000198: 02011113 slli sp,sp,0x20
+ 8000019c: 0220a0b3 mulhsu ra,ra,sp
+ 800001a0: 08f00e93 li t4,143
+ 800001a4: 00800193 li gp,8
+ 800001a8: 3dd09463 bne ra,t4,80000570 <fail>
+
+00000000800001ac <test_9>:
+ 800001ac: 0070009b addiw ra,zero,7
+ 800001b0: 02109093 slli ra,ra,0x21
+ 800001b4: 00b0011b addiw sp,zero,11
+ 800001b8: 02011113 slli sp,sp,0x20
+ 800001bc: 0220a133 mulhsu sp,ra,sp
+ 800001c0: 09a00e93 li t4,154
+ 800001c4: 00900193 li gp,9
+ 800001c8: 3bd11463 bne sp,t4,80000570 <fail>
+
+00000000800001cc <test_10>:
+ 800001cc: 00d0009b addiw ra,zero,13
+ 800001d0: 02009093 slli ra,ra,0x20
+ 800001d4: 0210a0b3 mulhsu ra,ra,ra
+ 800001d8: 0a900e93 li t4,169
+ 800001dc: 00a00193 li gp,10
+ 800001e0: 39d09863 bne ra,t4,80000570 <fail>
+
+00000000800001e4 <test_11>:
+ 800001e4: 00000213 li tp,0
+ 800001e8: 00d0009b addiw ra,zero,13
+ 800001ec: 02009093 slli ra,ra,0x20
+ 800001f0: 00b0011b addiw sp,zero,11
+ 800001f4: 02011113 slli sp,sp,0x20
+ 800001f8: 0220af33 mulhsu t5,ra,sp
+ 800001fc: 000f0313 mv t1,t5
+ 80000200: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000204: 00200293 li t0,2
+ 80000208: fe5210e3 bne tp,t0,800001e8 <test_11+0x4>
+ 8000020c: 08f00e93 li t4,143
+ 80000210: 00b00193 li gp,11
+ 80000214: 35d31e63 bne t1,t4,80000570 <fail>
+
+0000000080000218 <test_12>:
+ 80000218: 00000213 li tp,0
+ 8000021c: 0070009b addiw ra,zero,7
+ 80000220: 02109093 slli ra,ra,0x21
+ 80000224: 00b0011b addiw sp,zero,11
+ 80000228: 02011113 slli sp,sp,0x20
+ 8000022c: 0220af33 mulhsu t5,ra,sp
+ 80000230: 00000013 nop
+ 80000234: 000f0313 mv t1,t5
+ 80000238: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 8000023c: 00200293 li t0,2
+ 80000240: fc521ee3 bne tp,t0,8000021c <test_12+0x4>
+ 80000244: 09a00e93 li t4,154
+ 80000248: 00c00193 li gp,12
+ 8000024c: 33d31263 bne t1,t4,80000570 <fail>
+
+0000000080000250 <test_13>:
+ 80000250: 00000213 li tp,0
+ 80000254: 00f0009b addiw ra,zero,15
+ 80000258: 02009093 slli ra,ra,0x20
+ 8000025c: 00b0011b addiw sp,zero,11
+ 80000260: 02011113 slli sp,sp,0x20
+ 80000264: 0220af33 mulhsu t5,ra,sp
+ 80000268: 00000013 nop
+ 8000026c: 00000013 nop
+ 80000270: 000f0313 mv t1,t5
+ 80000274: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000278: 00200293 li t0,2
+ 8000027c: fc521ce3 bne tp,t0,80000254 <test_13+0x4>
+ 80000280: 0a500e93 li t4,165
+ 80000284: 00d00193 li gp,13
+ 80000288: 2fd31463 bne t1,t4,80000570 <fail>
+
+000000008000028c <test_14>:
+ 8000028c: 00000213 li tp,0
+ 80000290: 00d0009b addiw ra,zero,13
+ 80000294: 02009093 slli ra,ra,0x20
+ 80000298: 00b0011b addiw sp,zero,11
+ 8000029c: 02011113 slli sp,sp,0x20
+ 800002a0: 0220af33 mulhsu t5,ra,sp
+ 800002a4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800002a8: 00200293 li t0,2
+ 800002ac: fe5212e3 bne tp,t0,80000290 <test_14+0x4>
+ 800002b0: 08f00e93 li t4,143
+ 800002b4: 00e00193 li gp,14
+ 800002b8: 2bdf1c63 bne t5,t4,80000570 <fail>
+
+00000000800002bc <test_15>:
+ 800002bc: 00000213 li tp,0
+ 800002c0: 0070009b addiw ra,zero,7
+ 800002c4: 02109093 slli ra,ra,0x21
+ 800002c8: 00b0011b addiw sp,zero,11
+ 800002cc: 02011113 slli sp,sp,0x20
+ 800002d0: 00000013 nop
+ 800002d4: 0220af33 mulhsu t5,ra,sp
+ 800002d8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800002dc: 00200293 li t0,2
+ 800002e0: fe5210e3 bne tp,t0,800002c0 <test_15+0x4>
+ 800002e4: 09a00e93 li t4,154
+ 800002e8: 00f00193 li gp,15
+ 800002ec: 29df1263 bne t5,t4,80000570 <fail>
+
+00000000800002f0 <test_16>:
+ 800002f0: 00000213 li tp,0
+ 800002f4: 00f0009b addiw ra,zero,15
+ 800002f8: 02009093 slli ra,ra,0x20
+ 800002fc: 00b0011b addiw sp,zero,11
+ 80000300: 02011113 slli sp,sp,0x20
+ 80000304: 00000013 nop
+ 80000308: 00000013 nop
+ 8000030c: 0220af33 mulhsu t5,ra,sp
+ 80000310: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000314: 00200293 li t0,2
+ 80000318: fc521ee3 bne tp,t0,800002f4 <test_16+0x4>
+ 8000031c: 0a500e93 li t4,165
+ 80000320: 01000193 li gp,16
+ 80000324: 25df1663 bne t5,t4,80000570 <fail>
+
+0000000080000328 <test_17>:
+ 80000328: 00000213 li tp,0
+ 8000032c: 00d0009b addiw ra,zero,13
+ 80000330: 02009093 slli ra,ra,0x20
+ 80000334: 00000013 nop
+ 80000338: 00b0011b addiw sp,zero,11
+ 8000033c: 02011113 slli sp,sp,0x20
+ 80000340: 0220af33 mulhsu t5,ra,sp
+ 80000344: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000348: 00200293 li t0,2
+ 8000034c: fe5210e3 bne tp,t0,8000032c <test_17+0x4>
+ 80000350: 08f00e93 li t4,143
+ 80000354: 01100193 li gp,17
+ 80000358: 21df1c63 bne t5,t4,80000570 <fail>
+
+000000008000035c <test_18>:
+ 8000035c: 00000213 li tp,0
+ 80000360: 0070009b addiw ra,zero,7
+ 80000364: 02109093 slli ra,ra,0x21
+ 80000368: 00000013 nop
+ 8000036c: 00b0011b addiw sp,zero,11
+ 80000370: 02011113 slli sp,sp,0x20
+ 80000374: 00000013 nop
+ 80000378: 0220af33 mulhsu t5,ra,sp
+ 8000037c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000380: 00200293 li t0,2
+ 80000384: fc521ee3 bne tp,t0,80000360 <test_18+0x4>
+ 80000388: 09a00e93 li t4,154
+ 8000038c: 01200193 li gp,18
+ 80000390: 1fdf1063 bne t5,t4,80000570 <fail>
+
+0000000080000394 <test_19>:
+ 80000394: 00000213 li tp,0
+ 80000398: 00f0009b addiw ra,zero,15
+ 8000039c: 02009093 slli ra,ra,0x20
+ 800003a0: 00000013 nop
+ 800003a4: 00000013 nop
+ 800003a8: 00b0011b addiw sp,zero,11
+ 800003ac: 02011113 slli sp,sp,0x20
+ 800003b0: 0220af33 mulhsu t5,ra,sp
+ 800003b4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800003b8: 00200293 li t0,2
+ 800003bc: fc521ee3 bne tp,t0,80000398 <test_19+0x4>
+ 800003c0: 0a500e93 li t4,165
+ 800003c4: 01300193 li gp,19
+ 800003c8: 1bdf1463 bne t5,t4,80000570 <fail>
+
+00000000800003cc <test_20>:
+ 800003cc: 00000213 li tp,0
+ 800003d0: 00b0011b addiw sp,zero,11
+ 800003d4: 02011113 slli sp,sp,0x20
+ 800003d8: 00d0009b addiw ra,zero,13
+ 800003dc: 02009093 slli ra,ra,0x20
+ 800003e0: 0220af33 mulhsu t5,ra,sp
+ 800003e4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800003e8: 00200293 li t0,2
+ 800003ec: fe5212e3 bne tp,t0,800003d0 <test_20+0x4>
+ 800003f0: 08f00e93 li t4,143
+ 800003f4: 01400193 li gp,20
+ 800003f8: 17df1c63 bne t5,t4,80000570 <fail>
+
+00000000800003fc <test_21>:
+ 800003fc: 00000213 li tp,0
+ 80000400: 00b0011b addiw sp,zero,11
+ 80000404: 02011113 slli sp,sp,0x20
+ 80000408: 0070009b addiw ra,zero,7
+ 8000040c: 02109093 slli ra,ra,0x21
+ 80000410: 00000013 nop
+ 80000414: 0220af33 mulhsu t5,ra,sp
+ 80000418: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 8000041c: 00200293 li t0,2
+ 80000420: fe5210e3 bne tp,t0,80000400 <test_21+0x4>
+ 80000424: 09a00e93 li t4,154
+ 80000428: 01500193 li gp,21
+ 8000042c: 15df1263 bne t5,t4,80000570 <fail>
+
+0000000080000430 <test_22>:
+ 80000430: 00000213 li tp,0
+ 80000434: 00b0011b addiw sp,zero,11
+ 80000438: 02011113 slli sp,sp,0x20
+ 8000043c: 00f0009b addiw ra,zero,15
+ 80000440: 02009093 slli ra,ra,0x20
+ 80000444: 00000013 nop
+ 80000448: 00000013 nop
+ 8000044c: 0220af33 mulhsu t5,ra,sp
+ 80000450: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000454: 00200293 li t0,2
+ 80000458: fc521ee3 bne tp,t0,80000434 <test_22+0x4>
+ 8000045c: 0a500e93 li t4,165
+ 80000460: 01600193 li gp,22
+ 80000464: 11df1663 bne t5,t4,80000570 <fail>
+
+0000000080000468 <test_23>:
+ 80000468: 00000213 li tp,0
+ 8000046c: 00b0011b addiw sp,zero,11
+ 80000470: 02011113 slli sp,sp,0x20
+ 80000474: 00000013 nop
+ 80000478: 00d0009b addiw ra,zero,13
+ 8000047c: 02009093 slli ra,ra,0x20
+ 80000480: 0220af33 mulhsu t5,ra,sp
+ 80000484: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000488: 00200293 li t0,2
+ 8000048c: fe5210e3 bne tp,t0,8000046c <test_23+0x4>
+ 80000490: 08f00e93 li t4,143
+ 80000494: 01700193 li gp,23
+ 80000498: 0ddf1c63 bne t5,t4,80000570 <fail>
+
+000000008000049c <test_24>:
+ 8000049c: 00000213 li tp,0
+ 800004a0: 00b0011b addiw sp,zero,11
+ 800004a4: 02011113 slli sp,sp,0x20
+ 800004a8: 00000013 nop
+ 800004ac: 0070009b addiw ra,zero,7
+ 800004b0: 02109093 slli ra,ra,0x21
+ 800004b4: 00000013 nop
+ 800004b8: 0220af33 mulhsu t5,ra,sp
+ 800004bc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800004c0: 00200293 li t0,2
+ 800004c4: fc521ee3 bne tp,t0,800004a0 <test_24+0x4>
+ 800004c8: 09a00e93 li t4,154
+ 800004cc: 01800193 li gp,24
+ 800004d0: 0bdf1063 bne t5,t4,80000570 <fail>
+
+00000000800004d4 <test_25>:
+ 800004d4: 00000213 li tp,0
+ 800004d8: 00b0011b addiw sp,zero,11
+ 800004dc: 02011113 slli sp,sp,0x20
+ 800004e0: 00000013 nop
+ 800004e4: 00000013 nop
+ 800004e8: 00f0009b addiw ra,zero,15
+ 800004ec: 02009093 slli ra,ra,0x20
+ 800004f0: 0220af33 mulhsu t5,ra,sp
+ 800004f4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800004f8: 00200293 li t0,2
+ 800004fc: fc521ee3 bne tp,t0,800004d8 <test_25+0x4>
+ 80000500: 0a500e93 li t4,165
+ 80000504: 01900193 li gp,25
+ 80000508: 07df1463 bne t5,t4,80000570 <fail>
+
+000000008000050c <test_26>:
+ 8000050c: 01f0009b addiw ra,zero,31
+ 80000510: 02009093 slli ra,ra,0x20
+ 80000514: 02102133 mulhsu sp,zero,ra
+ 80000518: 00000e93 li t4,0
+ 8000051c: 01a00193 li gp,26
+ 80000520: 05d11863 bne sp,t4,80000570 <fail>
+
+0000000080000524 <test_27>:
+ 80000524: 0010009b addiw ra,zero,1
+ 80000528: 02509093 slli ra,ra,0x25
+ 8000052c: 0200a133 mulhsu sp,ra,zero
+ 80000530: 00000e93 li t4,0
+ 80000534: 01b00193 li gp,27
+ 80000538: 03d11c63 bne sp,t4,80000570 <fail>
+
+000000008000053c <test_28>:
+ 8000053c: 020020b3 mulhsu ra,zero,zero
+ 80000540: 00000e93 li t4,0
+ 80000544: 01c00193 li gp,28
+ 80000548: 03d09463 bne ra,t4,80000570 <fail>
+
+000000008000054c <test_29>:
+ 8000054c: 0210009b addiw ra,zero,33
+ 80000550: 02009093 slli ra,ra,0x20
+ 80000554: 0110011b addiw sp,zero,17
+ 80000558: 02111113 slli sp,sp,0x21
+ 8000055c: 0220a033 mulhsu zero,ra,sp
+ 80000560: 00000e93 li t4,0
+ 80000564: 01d00193 li gp,29
+ 80000568: 01d01463 bne zero,t4,80000570 <fail>
+ 8000056c: 00301c63 bne zero,gp,80000584 <pass>
+
+0000000080000570 <fail>:
+ 80000570: 0ff0000f fence
+ 80000574: 00018063 beqz gp,80000574 <fail+0x4>
+ 80000578: 00119193 slli gp,gp,0x1
+ 8000057c: 0011e193 ori gp,gp,1
+ 80000580: 00000073 ecall
+
+0000000080000584 <pass>:
+ 80000584: 0ff0000f fence
+ 80000588: 00100193 li gp,1
+ 8000058c: 00000073 ecall
+ 80000590: c0001073 unimp
+ 80000594: 0000 unimp
+ 80000596: 0000 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
diff --git a/test/tests/rv64um-p-mulhsu.elf b/test/tests/rv64um-p-mulhsu.elf
new file mode 100644
index 0000000..37979fe
--- /dev/null
+++ b/test/tests/rv64um-p-mulhsu.elf
Binary files differ
diff --git a/test/tests/rv64um-p-mulhu.dump b/test/tests/rv64um-p-mulhu.dump
new file mode 100644
index 0000000..82860e1
--- /dev/null
+++ b/test/tests/rv64um-p-mulhu.dump
@@ -0,0 +1,492 @@
+
+rv64um-p-mulhu: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <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: 4fdf1063 bne t5,t4,800005f0 <fail>
+
+0000000080000114 <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: 4ddf1463 bne t5,t4,800005f0 <fail>
+
+000000008000012c <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: 4bdf1863 bne t5,t4,800005f0 <fail>
+
+0000000080000144 <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: 49df1c63 bne t5,t4,800005f0 <fail>
+
+000000008000015c <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: 49df1063 bne t5,t4,800005f0 <fail>
+
+0000000080000174 <test_7>:
+ 80000174: 800000b7 lui ra,0x80000
+ 80000178: ffff8137 lui sp,0xffff8
+ 8000017c: 0220bf33 mulhu t5,ra,sp
+ 80000180: ffff0eb7 lui t4,0xffff0
+ 80000184: fffe8e9b addiw t4,t4,-1
+ 80000188: 00fe9e93 slli t4,t4,0xf
+ 8000018c: 00700193 li gp,7
+ 80000190: 47df1063 bne t5,t4,800005f0 <fail>
+
+0000000080000194 <test_30>:
+ 80000194: faaab0b7 lui ra,0xfaaab
+ 80000198: aab0809b addiw ra,ra,-1365
+ 8000019c: 00c09093 slli ra,ra,0xc
+ 800001a0: aab08093 addi ra,ra,-1365 # fffffffffaaaaaab <_end+0xffffffff7aaa8aab>
+ 800001a4: 00c09093 slli ra,ra,0xc
+ 800001a8: aab08093 addi ra,ra,-1365
+ 800001ac: 00c09093 slli ra,ra,0xc
+ 800001b0: aab08093 addi ra,ra,-1365
+ 800001b4: 00030137 lui sp,0x30
+ 800001b8: e7d1011b addiw sp,sp,-387
+ 800001bc: 0220bf33 mulhu t5,ra,sp
+ 800001c0: 00020eb7 lui t4,0x20
+ 800001c4: efee8e9b addiw t4,t4,-258
+ 800001c8: 01e00193 li gp,30
+ 800001cc: 43df1263 bne t5,t4,800005f0 <fail>
+
+00000000800001d0 <test_31>:
+ 800001d0: 000300b7 lui ra,0x30
+ 800001d4: e7d0809b addiw ra,ra,-387
+ 800001d8: faaab137 lui sp,0xfaaab
+ 800001dc: aab1011b addiw sp,sp,-1365
+ 800001e0: 00c11113 slli sp,sp,0xc
+ 800001e4: aab10113 addi sp,sp,-1365 # fffffffffaaaaaab <_end+0xffffffff7aaa8aab>
+ 800001e8: 00c11113 slli sp,sp,0xc
+ 800001ec: aab10113 addi sp,sp,-1365
+ 800001f0: 00c11113 slli sp,sp,0xc
+ 800001f4: aab10113 addi sp,sp,-1365
+ 800001f8: 0220bf33 mulhu t5,ra,sp
+ 800001fc: 00020eb7 lui t4,0x20
+ 80000200: efee8e9b addiw t4,t4,-258
+ 80000204: 01f00193 li gp,31
+ 80000208: 3fdf1463 bne t5,t4,800005f0 <fail>
+
+000000008000020c <test_8>:
+ 8000020c: 00d0009b addiw ra,zero,13
+ 80000210: 02009093 slli ra,ra,0x20
+ 80000214: 00b0011b addiw sp,zero,11
+ 80000218: 02011113 slli sp,sp,0x20
+ 8000021c: 0220b0b3 mulhu ra,ra,sp
+ 80000220: 08f00e93 li t4,143
+ 80000224: 00800193 li gp,8
+ 80000228: 3dd09463 bne ra,t4,800005f0 <fail>
+
+000000008000022c <test_9>:
+ 8000022c: 0070009b addiw ra,zero,7
+ 80000230: 02109093 slli ra,ra,0x21
+ 80000234: 00b0011b addiw sp,zero,11
+ 80000238: 02011113 slli sp,sp,0x20
+ 8000023c: 0220b133 mulhu sp,ra,sp
+ 80000240: 09a00e93 li t4,154
+ 80000244: 00900193 li gp,9
+ 80000248: 3bd11463 bne sp,t4,800005f0 <fail>
+
+000000008000024c <test_10>:
+ 8000024c: 00d0009b addiw ra,zero,13
+ 80000250: 02009093 slli ra,ra,0x20
+ 80000254: 0210b0b3 mulhu ra,ra,ra
+ 80000258: 0a900e93 li t4,169
+ 8000025c: 00a00193 li gp,10
+ 80000260: 39d09863 bne ra,t4,800005f0 <fail>
+
+0000000080000264 <test_11>:
+ 80000264: 00000213 li tp,0
+ 80000268: 00d0009b addiw ra,zero,13
+ 8000026c: 02009093 slli ra,ra,0x20
+ 80000270: 00b0011b addiw sp,zero,11
+ 80000274: 02011113 slli sp,sp,0x20
+ 80000278: 0220bf33 mulhu t5,ra,sp
+ 8000027c: 000f0313 mv t1,t5
+ 80000280: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000284: 00200293 li t0,2
+ 80000288: fe5210e3 bne tp,t0,80000268 <test_11+0x4>
+ 8000028c: 08f00e93 li t4,143
+ 80000290: 00b00193 li gp,11
+ 80000294: 35d31e63 bne t1,t4,800005f0 <fail>
+
+0000000080000298 <test_12>:
+ 80000298: 00000213 li tp,0
+ 8000029c: 0070009b addiw ra,zero,7
+ 800002a0: 02109093 slli ra,ra,0x21
+ 800002a4: 00b0011b addiw sp,zero,11
+ 800002a8: 02011113 slli sp,sp,0x20
+ 800002ac: 0220bf33 mulhu t5,ra,sp
+ 800002b0: 00000013 nop
+ 800002b4: 000f0313 mv t1,t5
+ 800002b8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800002bc: 00200293 li t0,2
+ 800002c0: fc521ee3 bne tp,t0,8000029c <test_12+0x4>
+ 800002c4: 09a00e93 li t4,154
+ 800002c8: 00c00193 li gp,12
+ 800002cc: 33d31263 bne t1,t4,800005f0 <fail>
+
+00000000800002d0 <test_13>:
+ 800002d0: 00000213 li tp,0
+ 800002d4: 00f0009b addiw ra,zero,15
+ 800002d8: 02009093 slli ra,ra,0x20
+ 800002dc: 00b0011b addiw sp,zero,11
+ 800002e0: 02011113 slli sp,sp,0x20
+ 800002e4: 0220bf33 mulhu t5,ra,sp
+ 800002e8: 00000013 nop
+ 800002ec: 00000013 nop
+ 800002f0: 000f0313 mv t1,t5
+ 800002f4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800002f8: 00200293 li t0,2
+ 800002fc: fc521ce3 bne tp,t0,800002d4 <test_13+0x4>
+ 80000300: 0a500e93 li t4,165
+ 80000304: 00d00193 li gp,13
+ 80000308: 2fd31463 bne t1,t4,800005f0 <fail>
+
+000000008000030c <test_14>:
+ 8000030c: 00000213 li tp,0
+ 80000310: 00d0009b addiw ra,zero,13
+ 80000314: 02009093 slli ra,ra,0x20
+ 80000318: 00b0011b addiw sp,zero,11
+ 8000031c: 02011113 slli sp,sp,0x20
+ 80000320: 0220bf33 mulhu t5,ra,sp
+ 80000324: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000328: 00200293 li t0,2
+ 8000032c: fe5212e3 bne tp,t0,80000310 <test_14+0x4>
+ 80000330: 08f00e93 li t4,143
+ 80000334: 00e00193 li gp,14
+ 80000338: 2bdf1c63 bne t5,t4,800005f0 <fail>
+
+000000008000033c <test_15>:
+ 8000033c: 00000213 li tp,0
+ 80000340: 0070009b addiw ra,zero,7
+ 80000344: 02109093 slli ra,ra,0x21
+ 80000348: 00b0011b addiw sp,zero,11
+ 8000034c: 02011113 slli sp,sp,0x20
+ 80000350: 00000013 nop
+ 80000354: 0220bf33 mulhu t5,ra,sp
+ 80000358: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 8000035c: 00200293 li t0,2
+ 80000360: fe5210e3 bne tp,t0,80000340 <test_15+0x4>
+ 80000364: 09a00e93 li t4,154
+ 80000368: 00f00193 li gp,15
+ 8000036c: 29df1263 bne t5,t4,800005f0 <fail>
+
+0000000080000370 <test_16>:
+ 80000370: 00000213 li tp,0
+ 80000374: 00f0009b addiw ra,zero,15
+ 80000378: 02009093 slli ra,ra,0x20
+ 8000037c: 00b0011b addiw sp,zero,11
+ 80000380: 02011113 slli sp,sp,0x20
+ 80000384: 00000013 nop
+ 80000388: 00000013 nop
+ 8000038c: 0220bf33 mulhu t5,ra,sp
+ 80000390: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000394: 00200293 li t0,2
+ 80000398: fc521ee3 bne tp,t0,80000374 <test_16+0x4>
+ 8000039c: 0a500e93 li t4,165
+ 800003a0: 01000193 li gp,16
+ 800003a4: 25df1663 bne t5,t4,800005f0 <fail>
+
+00000000800003a8 <test_17>:
+ 800003a8: 00000213 li tp,0
+ 800003ac: 00d0009b addiw ra,zero,13
+ 800003b0: 02009093 slli ra,ra,0x20
+ 800003b4: 00000013 nop
+ 800003b8: 00b0011b addiw sp,zero,11
+ 800003bc: 02011113 slli sp,sp,0x20
+ 800003c0: 0220bf33 mulhu t5,ra,sp
+ 800003c4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800003c8: 00200293 li t0,2
+ 800003cc: fe5210e3 bne tp,t0,800003ac <test_17+0x4>
+ 800003d0: 08f00e93 li t4,143
+ 800003d4: 01100193 li gp,17
+ 800003d8: 21df1c63 bne t5,t4,800005f0 <fail>
+
+00000000800003dc <test_18>:
+ 800003dc: 00000213 li tp,0
+ 800003e0: 0070009b addiw ra,zero,7
+ 800003e4: 02109093 slli ra,ra,0x21
+ 800003e8: 00000013 nop
+ 800003ec: 00b0011b addiw sp,zero,11
+ 800003f0: 02011113 slli sp,sp,0x20
+ 800003f4: 00000013 nop
+ 800003f8: 0220bf33 mulhu t5,ra,sp
+ 800003fc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000400: 00200293 li t0,2
+ 80000404: fc521ee3 bne tp,t0,800003e0 <test_18+0x4>
+ 80000408: 09a00e93 li t4,154
+ 8000040c: 01200193 li gp,18
+ 80000410: 1fdf1063 bne t5,t4,800005f0 <fail>
+
+0000000080000414 <test_19>:
+ 80000414: 00000213 li tp,0
+ 80000418: 00f0009b addiw ra,zero,15
+ 8000041c: 02009093 slli ra,ra,0x20
+ 80000420: 00000013 nop
+ 80000424: 00000013 nop
+ 80000428: 00b0011b addiw sp,zero,11
+ 8000042c: 02011113 slli sp,sp,0x20
+ 80000430: 0220bf33 mulhu t5,ra,sp
+ 80000434: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000438: 00200293 li t0,2
+ 8000043c: fc521ee3 bne tp,t0,80000418 <test_19+0x4>
+ 80000440: 0a500e93 li t4,165
+ 80000444: 01300193 li gp,19
+ 80000448: 1bdf1463 bne t5,t4,800005f0 <fail>
+
+000000008000044c <test_20>:
+ 8000044c: 00000213 li tp,0
+ 80000450: 00b0011b addiw sp,zero,11
+ 80000454: 02011113 slli sp,sp,0x20
+ 80000458: 00d0009b addiw ra,zero,13
+ 8000045c: 02009093 slli ra,ra,0x20
+ 80000460: 0220bf33 mulhu t5,ra,sp
+ 80000464: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000468: 00200293 li t0,2
+ 8000046c: fe5212e3 bne tp,t0,80000450 <test_20+0x4>
+ 80000470: 08f00e93 li t4,143
+ 80000474: 01400193 li gp,20
+ 80000478: 17df1c63 bne t5,t4,800005f0 <fail>
+
+000000008000047c <test_21>:
+ 8000047c: 00000213 li tp,0
+ 80000480: 00b0011b addiw sp,zero,11
+ 80000484: 02011113 slli sp,sp,0x20
+ 80000488: 0070009b addiw ra,zero,7
+ 8000048c: 02109093 slli ra,ra,0x21
+ 80000490: 00000013 nop
+ 80000494: 0220bf33 mulhu t5,ra,sp
+ 80000498: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 8000049c: 00200293 li t0,2
+ 800004a0: fe5210e3 bne tp,t0,80000480 <test_21+0x4>
+ 800004a4: 09a00e93 li t4,154
+ 800004a8: 01500193 li gp,21
+ 800004ac: 15df1263 bne t5,t4,800005f0 <fail>
+
+00000000800004b0 <test_22>:
+ 800004b0: 00000213 li tp,0
+ 800004b4: 00b0011b addiw sp,zero,11
+ 800004b8: 02011113 slli sp,sp,0x20
+ 800004bc: 00f0009b addiw ra,zero,15
+ 800004c0: 02009093 slli ra,ra,0x20
+ 800004c4: 00000013 nop
+ 800004c8: 00000013 nop
+ 800004cc: 0220bf33 mulhu t5,ra,sp
+ 800004d0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800004d4: 00200293 li t0,2
+ 800004d8: fc521ee3 bne tp,t0,800004b4 <test_22+0x4>
+ 800004dc: 0a500e93 li t4,165
+ 800004e0: 01600193 li gp,22
+ 800004e4: 11df1663 bne t5,t4,800005f0 <fail>
+
+00000000800004e8 <test_23>:
+ 800004e8: 00000213 li tp,0
+ 800004ec: 00b0011b addiw sp,zero,11
+ 800004f0: 02011113 slli sp,sp,0x20
+ 800004f4: 00000013 nop
+ 800004f8: 00d0009b addiw ra,zero,13
+ 800004fc: 02009093 slli ra,ra,0x20
+ 80000500: 0220bf33 mulhu t5,ra,sp
+ 80000504: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000508: 00200293 li t0,2
+ 8000050c: fe5210e3 bne tp,t0,800004ec <test_23+0x4>
+ 80000510: 08f00e93 li t4,143
+ 80000514: 01700193 li gp,23
+ 80000518: 0ddf1c63 bne t5,t4,800005f0 <fail>
+
+000000008000051c <test_24>:
+ 8000051c: 00000213 li tp,0
+ 80000520: 00b0011b addiw sp,zero,11
+ 80000524: 02011113 slli sp,sp,0x20
+ 80000528: 00000013 nop
+ 8000052c: 0070009b addiw ra,zero,7
+ 80000530: 02109093 slli ra,ra,0x21
+ 80000534: 00000013 nop
+ 80000538: 0220bf33 mulhu t5,ra,sp
+ 8000053c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000540: 00200293 li t0,2
+ 80000544: fc521ee3 bne tp,t0,80000520 <test_24+0x4>
+ 80000548: 09a00e93 li t4,154
+ 8000054c: 01800193 li gp,24
+ 80000550: 0bdf1063 bne t5,t4,800005f0 <fail>
+
+0000000080000554 <test_25>:
+ 80000554: 00000213 li tp,0
+ 80000558: 00b0011b addiw sp,zero,11
+ 8000055c: 02011113 slli sp,sp,0x20
+ 80000560: 00000013 nop
+ 80000564: 00000013 nop
+ 80000568: 00f0009b addiw ra,zero,15
+ 8000056c: 02009093 slli ra,ra,0x20
+ 80000570: 0220bf33 mulhu t5,ra,sp
+ 80000574: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000578: 00200293 li t0,2
+ 8000057c: fc521ee3 bne tp,t0,80000558 <test_25+0x4>
+ 80000580: 0a500e93 li t4,165
+ 80000584: 01900193 li gp,25
+ 80000588: 07df1463 bne t5,t4,800005f0 <fail>
+
+000000008000058c <test_26>:
+ 8000058c: 01f0009b addiw ra,zero,31
+ 80000590: 02009093 slli ra,ra,0x20
+ 80000594: 02103133 mulhu sp,zero,ra
+ 80000598: 00000e93 li t4,0
+ 8000059c: 01a00193 li gp,26
+ 800005a0: 05d11863 bne sp,t4,800005f0 <fail>
+
+00000000800005a4 <test_27>:
+ 800005a4: 0010009b addiw ra,zero,1
+ 800005a8: 02509093 slli ra,ra,0x25
+ 800005ac: 0200b133 mulhu sp,ra,zero
+ 800005b0: 00000e93 li t4,0
+ 800005b4: 01b00193 li gp,27
+ 800005b8: 03d11c63 bne sp,t4,800005f0 <fail>
+
+00000000800005bc <test_28>:
+ 800005bc: 020030b3 mulhu ra,zero,zero
+ 800005c0: 00000e93 li t4,0
+ 800005c4: 01c00193 li gp,28
+ 800005c8: 03d09463 bne ra,t4,800005f0 <fail>
+
+00000000800005cc <test_29>:
+ 800005cc: 0210009b addiw ra,zero,33
+ 800005d0: 02009093 slli ra,ra,0x20
+ 800005d4: 0110011b addiw sp,zero,17
+ 800005d8: 02111113 slli sp,sp,0x21
+ 800005dc: 0220b033 mulhu zero,ra,sp
+ 800005e0: 00000e93 li t4,0
+ 800005e4: 01d00193 li gp,29
+ 800005e8: 01d01463 bne zero,t4,800005f0 <fail>
+ 800005ec: 00301c63 bne zero,gp,80000604 <pass>
+
+00000000800005f0 <fail>:
+ 800005f0: 0ff0000f fence
+ 800005f4: 00018063 beqz gp,800005f4 <fail+0x4>
+ 800005f8: 00119193 slli gp,gp,0x1
+ 800005fc: 0011e193 ori gp,gp,1
+ 80000600: 00000073 ecall
+
+0000000080000604 <pass>:
+ 80000604: 0ff0000f fence
+ 80000608: 00100193 li gp,1
+ 8000060c: 00000073 ecall
+ 80000610: c0001073 unimp
+ 80000614: 0000 unimp
+ 80000616: 0000 unimp
+ 80000618: 0000 unimp
+ 8000061a: 0000 unimp
+ 8000061c: 0000 unimp
+ 8000061e: 0000 unimp
+ 80000620: 0000 unimp
+ 80000622: 0000 unimp
+ 80000624: 0000 unimp
+ 80000626: 0000 unimp
+ 80000628: 0000 unimp
+ 8000062a: 0000 unimp
+ 8000062c: 0000 unimp
+ 8000062e: 0000 unimp
+ 80000630: 0000 unimp
+ 80000632: 0000 unimp
+ 80000634: 0000 unimp
+ 80000636: 0000 unimp
+ 80000638: 0000 unimp
+ 8000063a: 0000 unimp
+ 8000063c: 0000 unimp
+ 8000063e: 0000 unimp
+ 80000640: 0000 unimp
+ 80000642: 0000 unimp
diff --git a/test/tests/rv64um-p-mulhu.elf b/test/tests/rv64um-p-mulhu.elf
new file mode 100644
index 0000000..e3ae453
--- /dev/null
+++ b/test/tests/rv64um-p-mulhu.elf
Binary files differ
diff --git a/test/tests/rv64um-p-mulw.dump b/test/tests/rv64um-p-mulw.dump
new file mode 100644
index 0000000..c9c2d8d
--- /dev/null
+++ b/test/tests/rv64um-p-mulw.dump
@@ -0,0 +1,399 @@
+
+rv64um-p-mulw: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <test_2>:
+ 800000fc: 00000093 li ra,0
+ 80000100: 00000113 li sp,0
+ 80000104: 02208f3b mulw t5,ra,sp
+ 80000108: 00000e93 li t4,0
+ 8000010c: 00200193 li gp,2
+ 80000110: 3ddf1263 bne t5,t4,800004d4 <fail>
+
+0000000080000114 <test_3>:
+ 80000114: 00100093 li ra,1
+ 80000118: 00100113 li sp,1
+ 8000011c: 02208f3b mulw t5,ra,sp
+ 80000120: 00100e93 li t4,1
+ 80000124: 00300193 li gp,3
+ 80000128: 3bdf1663 bne t5,t4,800004d4 <fail>
+
+000000008000012c <test_4>:
+ 8000012c: 00300093 li ra,3
+ 80000130: 00700113 li sp,7
+ 80000134: 02208f3b mulw t5,ra,sp
+ 80000138: 01500e93 li t4,21
+ 8000013c: 00400193 li gp,4
+ 80000140: 39df1a63 bne t5,t4,800004d4 <fail>
+
+0000000080000144 <test_5>:
+ 80000144: 00000093 li ra,0
+ 80000148: ffff8137 lui sp,0xffff8
+ 8000014c: 02208f3b mulw t5,ra,sp
+ 80000150: 00000e93 li t4,0
+ 80000154: 00500193 li gp,5
+ 80000158: 37df1e63 bne t5,t4,800004d4 <fail>
+
+000000008000015c <test_6>:
+ 8000015c: 800000b7 lui ra,0x80000
+ 80000160: 00000113 li sp,0
+ 80000164: 02208f3b mulw t5,ra,sp
+ 80000168: 00000e93 li t4,0
+ 8000016c: 00600193 li gp,6
+ 80000170: 37df1263 bne t5,t4,800004d4 <fail>
+
+0000000080000174 <test_7>:
+ 80000174: 800000b7 lui ra,0x80000
+ 80000178: ffff8137 lui sp,0xffff8
+ 8000017c: 02208f3b mulw t5,ra,sp
+ 80000180: 00000e93 li t4,0
+ 80000184: 00700193 li gp,7
+ 80000188: 35df1663 bne t5,t4,800004d4 <fail>
+
+000000008000018c <test_8>:
+ 8000018c: 00d00093 li ra,13
+ 80000190: 00b00113 li sp,11
+ 80000194: 022080bb mulw ra,ra,sp
+ 80000198: 08f00e93 li t4,143
+ 8000019c: 00800193 li gp,8
+ 800001a0: 33d09a63 bne ra,t4,800004d4 <fail>
+
+00000000800001a4 <test_9>:
+ 800001a4: 00e00093 li ra,14
+ 800001a8: 00b00113 li sp,11
+ 800001ac: 0220813b mulw sp,ra,sp
+ 800001b0: 09a00e93 li t4,154
+ 800001b4: 00900193 li gp,9
+ 800001b8: 31d11e63 bne sp,t4,800004d4 <fail>
+
+00000000800001bc <test_10>:
+ 800001bc: 00d00093 li ra,13
+ 800001c0: 021080bb mulw ra,ra,ra
+ 800001c4: 0a900e93 li t4,169
+ 800001c8: 00a00193 li gp,10
+ 800001cc: 31d09463 bne ra,t4,800004d4 <fail>
+
+00000000800001d0 <test_11>:
+ 800001d0: 00000213 li tp,0
+ 800001d4: 00d00093 li ra,13
+ 800001d8: 00b00113 li sp,11
+ 800001dc: 02208f3b mulw t5,ra,sp
+ 800001e0: 000f0313 mv t1,t5
+ 800001e4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800001e8: 00200293 li t0,2
+ 800001ec: fe5214e3 bne tp,t0,800001d4 <test_11+0x4>
+ 800001f0: 08f00e93 li t4,143
+ 800001f4: 00b00193 li gp,11
+ 800001f8: 2dd31e63 bne t1,t4,800004d4 <fail>
+
+00000000800001fc <test_12>:
+ 800001fc: 00000213 li tp,0
+ 80000200: 00e00093 li ra,14
+ 80000204: 00b00113 li sp,11
+ 80000208: 02208f3b mulw t5,ra,sp
+ 8000020c: 00000013 nop
+ 80000210: 000f0313 mv t1,t5
+ 80000214: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000218: 00200293 li t0,2
+ 8000021c: fe5212e3 bne tp,t0,80000200 <test_12+0x4>
+ 80000220: 09a00e93 li t4,154
+ 80000224: 00c00193 li gp,12
+ 80000228: 2bd31663 bne t1,t4,800004d4 <fail>
+
+000000008000022c <test_13>:
+ 8000022c: 00000213 li tp,0
+ 80000230: 00f00093 li ra,15
+ 80000234: 00b00113 li sp,11
+ 80000238: 02208f3b mulw t5,ra,sp
+ 8000023c: 00000013 nop
+ 80000240: 00000013 nop
+ 80000244: 000f0313 mv t1,t5
+ 80000248: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 8000024c: 00200293 li t0,2
+ 80000250: fe5210e3 bne tp,t0,80000230 <test_13+0x4>
+ 80000254: 0a500e93 li t4,165
+ 80000258: 00d00193 li gp,13
+ 8000025c: 27d31c63 bne t1,t4,800004d4 <fail>
+
+0000000080000260 <test_14>:
+ 80000260: 00000213 li tp,0
+ 80000264: 00d00093 li ra,13
+ 80000268: 00b00113 li sp,11
+ 8000026c: 02208f3b mulw t5,ra,sp
+ 80000270: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000274: 00200293 li t0,2
+ 80000278: fe5216e3 bne tp,t0,80000264 <test_14+0x4>
+ 8000027c: 08f00e93 li t4,143
+ 80000280: 00e00193 li gp,14
+ 80000284: 25df1863 bne t5,t4,800004d4 <fail>
+
+0000000080000288 <test_15>:
+ 80000288: 00000213 li tp,0
+ 8000028c: 00e00093 li ra,14
+ 80000290: 00b00113 li sp,11
+ 80000294: 00000013 nop
+ 80000298: 02208f3b mulw t5,ra,sp
+ 8000029c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800002a0: 00200293 li t0,2
+ 800002a4: fe5214e3 bne tp,t0,8000028c <test_15+0x4>
+ 800002a8: 09a00e93 li t4,154
+ 800002ac: 00f00193 li gp,15
+ 800002b0: 23df1263 bne t5,t4,800004d4 <fail>
+
+00000000800002b4 <test_16>:
+ 800002b4: 00000213 li tp,0
+ 800002b8: 00f00093 li ra,15
+ 800002bc: 00b00113 li sp,11
+ 800002c0: 00000013 nop
+ 800002c4: 00000013 nop
+ 800002c8: 02208f3b mulw t5,ra,sp
+ 800002cc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800002d0: 00200293 li t0,2
+ 800002d4: fe5212e3 bne tp,t0,800002b8 <test_16+0x4>
+ 800002d8: 0a500e93 li t4,165
+ 800002dc: 01000193 li gp,16
+ 800002e0: 1fdf1a63 bne t5,t4,800004d4 <fail>
+
+00000000800002e4 <test_17>:
+ 800002e4: 00000213 li tp,0
+ 800002e8: 00d00093 li ra,13
+ 800002ec: 00000013 nop
+ 800002f0: 00b00113 li sp,11
+ 800002f4: 02208f3b mulw t5,ra,sp
+ 800002f8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800002fc: 00200293 li t0,2
+ 80000300: fe5214e3 bne tp,t0,800002e8 <test_17+0x4>
+ 80000304: 08f00e93 li t4,143
+ 80000308: 01100193 li gp,17
+ 8000030c: 1ddf1463 bne t5,t4,800004d4 <fail>
+
+0000000080000310 <test_18>:
+ 80000310: 00000213 li tp,0
+ 80000314: 00e00093 li ra,14
+ 80000318: 00000013 nop
+ 8000031c: 00b00113 li sp,11
+ 80000320: 00000013 nop
+ 80000324: 02208f3b mulw t5,ra,sp
+ 80000328: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 8000032c: 00200293 li t0,2
+ 80000330: fe5212e3 bne tp,t0,80000314 <test_18+0x4>
+ 80000334: 09a00e93 li t4,154
+ 80000338: 01200193 li gp,18
+ 8000033c: 19df1c63 bne t5,t4,800004d4 <fail>
+
+0000000080000340 <test_19>:
+ 80000340: 00000213 li tp,0
+ 80000344: 00f00093 li ra,15
+ 80000348: 00000013 nop
+ 8000034c: 00000013 nop
+ 80000350: 00b00113 li sp,11
+ 80000354: 02208f3b mulw t5,ra,sp
+ 80000358: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 8000035c: 00200293 li t0,2
+ 80000360: fe5212e3 bne tp,t0,80000344 <test_19+0x4>
+ 80000364: 0a500e93 li t4,165
+ 80000368: 01300193 li gp,19
+ 8000036c: 17df1463 bne t5,t4,800004d4 <fail>
+
+0000000080000370 <test_20>:
+ 80000370: 00000213 li tp,0
+ 80000374: 00b00113 li sp,11
+ 80000378: 00d00093 li ra,13
+ 8000037c: 02208f3b mulw t5,ra,sp
+ 80000380: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80000384: 00200293 li t0,2
+ 80000388: fe5216e3 bne tp,t0,80000374 <test_20+0x4>
+ 8000038c: 08f00e93 li t4,143
+ 80000390: 01400193 li gp,20
+ 80000394: 15df1063 bne t5,t4,800004d4 <fail>
+
+0000000080000398 <test_21>:
+ 80000398: 00000213 li tp,0
+ 8000039c: 00b00113 li sp,11
+ 800003a0: 00e00093 li ra,14
+ 800003a4: 00000013 nop
+ 800003a8: 02208f3b mulw t5,ra,sp
+ 800003ac: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800003b0: 00200293 li t0,2
+ 800003b4: fe5214e3 bne tp,t0,8000039c <test_21+0x4>
+ 800003b8: 09a00e93 li t4,154
+ 800003bc: 01500193 li gp,21
+ 800003c0: 11df1a63 bne t5,t4,800004d4 <fail>
+
+00000000800003c4 <test_22>:
+ 800003c4: 00000213 li tp,0
+ 800003c8: 00b00113 li sp,11
+ 800003cc: 00f00093 li ra,15
+ 800003d0: 00000013 nop
+ 800003d4: 00000013 nop
+ 800003d8: 02208f3b mulw t5,ra,sp
+ 800003dc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 800003e0: 00200293 li t0,2
+ 800003e4: fe5212e3 bne tp,t0,800003c8 <test_22+0x4>
+ 800003e8: 0a500e93 li t4,165
+ 800003ec: 01600193 li gp,22
+ 800003f0: 0fdf1263 bne t5,t4,800004d4 <fail>
+
+00000000800003f4 <test_23>:
+ 800003f4: 00000213 li tp,0
+ 800003f8: 00b00113 li sp,11
+ 800003fc: 00000013 nop
+ 80000400: 00d00093 li ra,13
+ 80000404: 02208f3b mulw t5,ra,sp
+ 80000408: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 8000040c: 00200293 li t0,2
+ 80000410: fe5214e3 bne tp,t0,800003f8 <test_23+0x4>
+ 80000414: 08f00e93 li t4,143
+ 80000418: 01700193 li gp,23
+ 8000041c: 0bdf1c63 bne t5,t4,800004d4 <fail>
+
+0000000080000420 <test_24>:
+ 80000420: 00000213 li tp,0
+ 80000424: 00b00113 li sp,11
+ 80000428: 00000013 nop
+ 8000042c: 00e00093 li ra,14
+ 80000430: 00000013 nop
+ 80000434: 02208f3b mulw t5,ra,sp
+ 80000438: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 8000043c: 00200293 li t0,2
+ 80000440: fe5212e3 bne tp,t0,80000424 <test_24+0x4>
+ 80000444: 09a00e93 li t4,154
+ 80000448: 01800193 li gp,24
+ 8000044c: 09df1463 bne t5,t4,800004d4 <fail>
+
+0000000080000450 <test_25>:
+ 80000450: 00000213 li tp,0
+ 80000454: 00b00113 li sp,11
+ 80000458: 00000013 nop
+ 8000045c: 00000013 nop
+ 80000460: 00f00093 li ra,15
+ 80000464: 02208f3b mulw t5,ra,sp
+ 80000468: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 8000046c: 00200293 li t0,2
+ 80000470: fe5212e3 bne tp,t0,80000454 <test_25+0x4>
+ 80000474: 0a500e93 li t4,165
+ 80000478: 01900193 li gp,25
+ 8000047c: 05df1c63 bne t5,t4,800004d4 <fail>
+
+0000000080000480 <test_26>:
+ 80000480: 01f00093 li ra,31
+ 80000484: 0210013b mulw sp,zero,ra
+ 80000488: 00000e93 li t4,0
+ 8000048c: 01a00193 li gp,26
+ 80000490: 05d11263 bne sp,t4,800004d4 <fail>
+
+0000000080000494 <test_27>:
+ 80000494: 02000093 li ra,32
+ 80000498: 0200813b mulw sp,ra,zero
+ 8000049c: 00000e93 li t4,0
+ 800004a0: 01b00193 li gp,27
+ 800004a4: 03d11863 bne sp,t4,800004d4 <fail>
+
+00000000800004a8 <test_28>:
+ 800004a8: 020000bb mulw ra,zero,zero
+ 800004ac: 00000e93 li t4,0
+ 800004b0: 01c00193 li gp,28
+ 800004b4: 03d09063 bne ra,t4,800004d4 <fail>
+
+00000000800004b8 <test_29>:
+ 800004b8: 02100093 li ra,33
+ 800004bc: 02200113 li sp,34
+ 800004c0: 0220803b mulw zero,ra,sp
+ 800004c4: 00000e93 li t4,0
+ 800004c8: 01d00193 li gp,29
+ 800004cc: 01d01463 bne zero,t4,800004d4 <fail>
+ 800004d0: 00301c63 bne zero,gp,800004e8 <pass>
+
+00000000800004d4 <fail>:
+ 800004d4: 0ff0000f fence
+ 800004d8: 00018063 beqz gp,800004d8 <fail+0x4>
+ 800004dc: 00119193 slli gp,gp,0x1
+ 800004e0: 0011e193 ori gp,gp,1
+ 800004e4: 00000073 ecall
+
+00000000800004e8 <pass>:
+ 800004e8: 0ff0000f fence
+ 800004ec: 00100193 li gp,1
+ 800004f0: 00000073 ecall
+ 800004f4: c0001073 unimp
+ 800004f8: 0000 unimp
+ 800004fa: 0000 unimp
+ 800004fc: 0000 unimp
+ 800004fe: 0000 unimp
+ 80000500: 0000 unimp
+ 80000502: 0000 unimp
diff --git a/test/tests/rv64um-p-mulw.elf b/test/tests/rv64um-p-mulw.elf
new file mode 100644
index 0000000..9c3214c
--- /dev/null
+++ b/test/tests/rv64um-p-mulw.elf
Binary files differ
diff --git a/test/tests/rv64um-p-rem.dump b/test/tests/rv64um-p-rem.dump
new file mode 100644
index 0000000..a367686
--- /dev/null
+++ b/test/tests/rv64um-p-rem.dump
@@ -0,0 +1,196 @@
+
+rv64um-p-rem: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <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: 0ddf1c63 bne t5,t4,800001e8 <fail>
+
+0000000080000114 <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: 0ddf1063 bne t5,t4,800001e8 <fail>
+
+000000008000012c <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: 0bdf1463 bne t5,t4,800001e8 <fail>
+
+0000000080000144 <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: 09df1863 bne t5,t4,800001e8 <fail>
+
+000000008000015c <test_6>:
+ 8000015c: fff0009b addiw ra,zero,-1
+ 80000160: 03f09093 slli ra,ra,0x3f
+ 80000164: 00100113 li sp,1
+ 80000168: 0220ef33 rem t5,ra,sp
+ 8000016c: 00000e93 li t4,0
+ 80000170: 00600193 li gp,6
+ 80000174: 07df1a63 bne t5,t4,800001e8 <fail>
+
+0000000080000178 <test_7>:
+ 80000178: fff0009b addiw ra,zero,-1
+ 8000017c: 03f09093 slli ra,ra,0x3f
+ 80000180: fff00113 li sp,-1
+ 80000184: 0220ef33 rem t5,ra,sp
+ 80000188: 00000e93 li t4,0
+ 8000018c: 00700193 li gp,7
+ 80000190: 05df1c63 bne t5,t4,800001e8 <fail>
+
+0000000080000194 <test_8>:
+ 80000194: fff0009b addiw ra,zero,-1
+ 80000198: 03f09093 slli ra,ra,0x3f
+ 8000019c: 00000113 li sp,0
+ 800001a0: 0220ef33 rem t5,ra,sp
+ 800001a4: fff00e9b addiw t4,zero,-1
+ 800001a8: 03fe9e93 slli t4,t4,0x3f
+ 800001ac: 00800193 li gp,8
+ 800001b0: 03df1c63 bne t5,t4,800001e8 <fail>
+
+00000000800001b4 <test_9>:
+ 800001b4: 00100093 li ra,1
+ 800001b8: 00000113 li sp,0
+ 800001bc: 0220ef33 rem t5,ra,sp
+ 800001c0: 00100e93 li t4,1
+ 800001c4: 00900193 li gp,9
+ 800001c8: 03df1063 bne t5,t4,800001e8 <fail>
+
+00000000800001cc <test_10>:
+ 800001cc: 00000093 li ra,0
+ 800001d0: 00000113 li sp,0
+ 800001d4: 0220ef33 rem t5,ra,sp
+ 800001d8: 00000e93 li t4,0
+ 800001dc: 00a00193 li gp,10
+ 800001e0: 01df1463 bne t5,t4,800001e8 <fail>
+ 800001e4: 00301c63 bne zero,gp,800001fc <pass>
+
+00000000800001e8 <fail>:
+ 800001e8: 0ff0000f fence
+ 800001ec: 00018063 beqz gp,800001ec <fail+0x4>
+ 800001f0: 00119193 slli gp,gp,0x1
+ 800001f4: 0011e193 ori gp,gp,1
+ 800001f8: 00000073 ecall
+
+00000000800001fc <pass>:
+ 800001fc: 0ff0000f fence
+ 80000200: 00100193 li gp,1
+ 80000204: 00000073 ecall
+ 80000208: c0001073 unimp
+ 8000020c: 0000 unimp
+ 8000020e: 0000 unimp
+ 80000210: 0000 unimp
+ 80000212: 0000 unimp
+ 80000214: 0000 unimp
+ 80000216: 0000 unimp
+ 80000218: 0000 unimp
+ 8000021a: 0000 unimp
+ 8000021c: 0000 unimp
+ 8000021e: 0000 unimp
+ 80000220: 0000 unimp
+ 80000222: 0000 unimp
+ 80000224: 0000 unimp
+ 80000226: 0000 unimp
+ 80000228: 0000 unimp
+ 8000022a: 0000 unimp
+ 8000022c: 0000 unimp
+ 8000022e: 0000 unimp
+ 80000230: 0000 unimp
+ 80000232: 0000 unimp
+ 80000234: 0000 unimp
+ 80000236: 0000 unimp
+ 80000238: 0000 unimp
+ 8000023a: 0000 unimp
+ 8000023c: 0000 unimp
+ 8000023e: 0000 unimp
+ 80000240: 0000 unimp
+ 80000242: 0000 unimp
diff --git a/test/tests/rv64um-p-rem.elf b/test/tests/rv64um-p-rem.elf
new file mode 100644
index 0000000..cfe6e6c
--- /dev/null
+++ b/test/tests/rv64um-p-rem.elf
Binary files differ
diff --git a/test/tests/rv64um-p-remu.dump b/test/tests/rv64um-p-remu.dump
new file mode 100644
index 0000000..f33af39
--- /dev/null
+++ b/test/tests/rv64um-p-remu.dump
@@ -0,0 +1,195 @@
+
+rv64um-p-remu: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <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: 0ddf1e63 bne t5,t4,800001ec <fail>
+
+0000000080000114 <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: 0ddf1263 bne t5,t4,800001ec <fail>
+
+000000008000012c <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: 0bdf1663 bne t5,t4,800001ec <fail>
+
+0000000080000144 <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: 09df1a63 bne t5,t4,800001ec <fail>
+
+000000008000015c <test_6>:
+ 8000015c: fff0009b addiw ra,zero,-1
+ 80000160: 03f09093 slli ra,ra,0x3f
+ 80000164: 00100113 li sp,1
+ 80000168: 0220ff33 remu t5,ra,sp
+ 8000016c: 00000e93 li t4,0
+ 80000170: 00600193 li gp,6
+ 80000174: 07df1c63 bne t5,t4,800001ec <fail>
+
+0000000080000178 <test_7>:
+ 80000178: fff0009b addiw ra,zero,-1
+ 8000017c: 03f09093 slli ra,ra,0x3f
+ 80000180: fff00113 li sp,-1
+ 80000184: 0220ff33 remu t5,ra,sp
+ 80000188: fff00e9b addiw t4,zero,-1
+ 8000018c: 03fe9e93 slli t4,t4,0x3f
+ 80000190: 00700193 li gp,7
+ 80000194: 05df1c63 bne t5,t4,800001ec <fail>
+
+0000000080000198 <test_8>:
+ 80000198: fff0009b addiw ra,zero,-1
+ 8000019c: 03f09093 slli ra,ra,0x3f
+ 800001a0: 00000113 li sp,0
+ 800001a4: 0220ff33 remu t5,ra,sp
+ 800001a8: fff00e9b addiw t4,zero,-1
+ 800001ac: 03fe9e93 slli t4,t4,0x3f
+ 800001b0: 00800193 li gp,8
+ 800001b4: 03df1c63 bne t5,t4,800001ec <fail>
+
+00000000800001b8 <test_9>:
+ 800001b8: 00100093 li ra,1
+ 800001bc: 00000113 li sp,0
+ 800001c0: 0220ff33 remu t5,ra,sp
+ 800001c4: 00100e93 li t4,1
+ 800001c8: 00900193 li gp,9
+ 800001cc: 03df1063 bne t5,t4,800001ec <fail>
+
+00000000800001d0 <test_10>:
+ 800001d0: 00000093 li ra,0
+ 800001d4: 00000113 li sp,0
+ 800001d8: 0220ff33 remu t5,ra,sp
+ 800001dc: 00000e93 li t4,0
+ 800001e0: 00a00193 li gp,10
+ 800001e4: 01df1463 bne t5,t4,800001ec <fail>
+ 800001e8: 00301c63 bne zero,gp,80000200 <pass>
+
+00000000800001ec <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
+
+0000000080000200 <pass>:
+ 80000200: 0ff0000f fence
+ 80000204: 00100193 li gp,1
+ 80000208: 00000073 ecall
+ 8000020c: c0001073 unimp
+ 80000210: 0000 unimp
+ 80000212: 0000 unimp
+ 80000214: 0000 unimp
+ 80000216: 0000 unimp
+ 80000218: 0000 unimp
+ 8000021a: 0000 unimp
+ 8000021c: 0000 unimp
+ 8000021e: 0000 unimp
+ 80000220: 0000 unimp
+ 80000222: 0000 unimp
+ 80000224: 0000 unimp
+ 80000226: 0000 unimp
+ 80000228: 0000 unimp
+ 8000022a: 0000 unimp
+ 8000022c: 0000 unimp
+ 8000022e: 0000 unimp
+ 80000230: 0000 unimp
+ 80000232: 0000 unimp
+ 80000234: 0000 unimp
+ 80000236: 0000 unimp
+ 80000238: 0000 unimp
+ 8000023a: 0000 unimp
+ 8000023c: 0000 unimp
+ 8000023e: 0000 unimp
+ 80000240: 0000 unimp
+ 80000242: 0000 unimp
diff --git a/test/tests/rv64um-p-remu.elf b/test/tests/rv64um-p-remu.elf
new file mode 100644
index 0000000..93dcf5e
--- /dev/null
+++ b/test/tests/rv64um-p-remu.elf
Binary files differ
diff --git a/test/tests/rv64um-p-remuw.dump b/test/tests/rv64um-p-remuw.dump
new file mode 100644
index 0000000..43ddd98
--- /dev/null
+++ b/test/tests/rv64um-p-remuw.dump
@@ -0,0 +1,168 @@
+
+rv64um-p-remuw: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <test_2>:
+ 800000fc: 01400093 li ra,20
+ 80000100: 00600113 li sp,6
+ 80000104: 0220ff3b remuw t5,ra,sp
+ 80000108: 00200e93 li t4,2
+ 8000010c: 00200193 li gp,2
+ 80000110: 0ddf1463 bne t5,t4,800001d8 <fail>
+
+0000000080000114 <test_3>:
+ 80000114: fec00093 li ra,-20
+ 80000118: 00600113 li sp,6
+ 8000011c: 0220ff3b remuw t5,ra,sp
+ 80000120: 00200e93 li t4,2
+ 80000124: 00300193 li gp,3
+ 80000128: 0bdf1863 bne t5,t4,800001d8 <fail>
+
+000000008000012c <test_4>:
+ 8000012c: 01400093 li ra,20
+ 80000130: ffa00113 li sp,-6
+ 80000134: 0220ff3b remuw t5,ra,sp
+ 80000138: 01400e93 li t4,20
+ 8000013c: 00400193 li gp,4
+ 80000140: 09df1c63 bne t5,t4,800001d8 <fail>
+
+0000000080000144 <test_5>:
+ 80000144: fec00093 li ra,-20
+ 80000148: ffa00113 li sp,-6
+ 8000014c: 0220ff3b remuw t5,ra,sp
+ 80000150: fec00e93 li t4,-20
+ 80000154: 00500193 li gp,5
+ 80000158: 09df1063 bne t5,t4,800001d8 <fail>
+
+000000008000015c <test_6>:
+ 8000015c: 800000b7 lui ra,0x80000
+ 80000160: 00100113 li sp,1
+ 80000164: 0220ff3b remuw t5,ra,sp
+ 80000168: 00000e93 li t4,0
+ 8000016c: 00600193 li gp,6
+ 80000170: 07df1463 bne t5,t4,800001d8 <fail>
+
+0000000080000174 <test_7>:
+ 80000174: 800000b7 lui ra,0x80000
+ 80000178: fff00113 li sp,-1
+ 8000017c: 0220ff3b remuw t5,ra,sp
+ 80000180: 80000eb7 lui t4,0x80000
+ 80000184: 00700193 li gp,7
+ 80000188: 05df1863 bne t5,t4,800001d8 <fail>
+
+000000008000018c <test_8>:
+ 8000018c: 800000b7 lui ra,0x80000
+ 80000190: 00000113 li sp,0
+ 80000194: 0220ff3b remuw t5,ra,sp
+ 80000198: 80000eb7 lui t4,0x80000
+ 8000019c: 00800193 li gp,8
+ 800001a0: 03df1c63 bne t5,t4,800001d8 <fail>
+
+00000000800001a4 <test_9>:
+ 800001a4: 00100093 li ra,1
+ 800001a8: 00000113 li sp,0
+ 800001ac: 0220ff3b remuw t5,ra,sp
+ 800001b0: 00100e93 li t4,1
+ 800001b4: 00900193 li gp,9
+ 800001b8: 03df1063 bne t5,t4,800001d8 <fail>
+
+00000000800001bc <test_10>:
+ 800001bc: 00000093 li ra,0
+ 800001c0: 00000113 li sp,0
+ 800001c4: 0220ff3b remuw 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>
+
+00000000800001d8 <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
+
+00000000800001ec <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/tests/rv64um-p-remuw.elf b/test/tests/rv64um-p-remuw.elf
new file mode 100644
index 0000000..ba166ff
--- /dev/null
+++ b/test/tests/rv64um-p-remuw.elf
Binary files differ
diff --git a/test/tests/rv64um-p-remw.dump b/test/tests/rv64um-p-remw.dump
new file mode 100644
index 0000000..48fcac9
--- /dev/null
+++ b/test/tests/rv64um-p-remw.dump
@@ -0,0 +1,196 @@
+
+rv64um-p-remw: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 04c0006f j 8000004c <reset_vector>
+
+0000000080000004 <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>
+
+000000008000003c <handle_exception>:
+ 8000003c: 5391e193 ori gp,gp,1337
+
+0000000080000040 <write_tohost>:
+ 80000040: 00001f17 auipc t5,0x1
+ 80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
+ 80000048: ff9ff06f j 80000040 <write_tohost>
+
+000000008000004c <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: 00055863 bgez 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: 1092829b addiw t0,t0,265
+ 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
+
+00000000800000fc <test_2>:
+ 800000fc: 01400093 li ra,20
+ 80000100: 00600113 li sp,6
+ 80000104: 0220ef3b remw t5,ra,sp
+ 80000108: 00200e93 li t4,2
+ 8000010c: 00200193 li gp,2
+ 80000110: 0fdf1063 bne t5,t4,800001f0 <fail>
+
+0000000080000114 <test_3>:
+ 80000114: fec00093 li ra,-20
+ 80000118: 00600113 li sp,6
+ 8000011c: 0220ef3b remw t5,ra,sp
+ 80000120: ffe00e93 li t4,-2
+ 80000124: 00300193 li gp,3
+ 80000128: 0ddf1463 bne t5,t4,800001f0 <fail>
+
+000000008000012c <test_4>:
+ 8000012c: 01400093 li ra,20
+ 80000130: ffa00113 li sp,-6
+ 80000134: 0220ef3b remw t5,ra,sp
+ 80000138: 00200e93 li t4,2
+ 8000013c: 00400193 li gp,4
+ 80000140: 0bdf1863 bne t5,t4,800001f0 <fail>
+
+0000000080000144 <test_5>:
+ 80000144: fec00093 li ra,-20
+ 80000148: ffa00113 li sp,-6
+ 8000014c: 0220ef3b remw t5,ra,sp
+ 80000150: ffe00e93 li t4,-2
+ 80000154: 00500193 li gp,5
+ 80000158: 09df1c63 bne t5,t4,800001f0 <fail>
+
+000000008000015c <test_6>:
+ 8000015c: 800000b7 lui ra,0x80000
+ 80000160: 00100113 li sp,1
+ 80000164: 0220ef3b remw t5,ra,sp
+ 80000168: 00000e93 li t4,0
+ 8000016c: 00600193 li gp,6
+ 80000170: 09df1063 bne t5,t4,800001f0 <fail>
+
+0000000080000174 <test_7>:
+ 80000174: 800000b7 lui ra,0x80000
+ 80000178: fff00113 li sp,-1
+ 8000017c: 0220ef3b remw t5,ra,sp
+ 80000180: 00000e93 li t4,0
+ 80000184: 00700193 li gp,7
+ 80000188: 07df1463 bne t5,t4,800001f0 <fail>
+
+000000008000018c <test_8>:
+ 8000018c: 800000b7 lui ra,0x80000
+ 80000190: 00000113 li sp,0
+ 80000194: 0220ef3b remw t5,ra,sp
+ 80000198: 80000eb7 lui t4,0x80000
+ 8000019c: 00800193 li gp,8
+ 800001a0: 05df1863 bne t5,t4,800001f0 <fail>
+
+00000000800001a4 <test_9>:
+ 800001a4: 00100093 li ra,1
+ 800001a8: 00000113 li sp,0
+ 800001ac: 0220ef3b remw t5,ra,sp
+ 800001b0: 00100e93 li t4,1
+ 800001b4: 00900193 li gp,9
+ 800001b8: 03df1c63 bne t5,t4,800001f0 <fail>
+
+00000000800001bc <test_10>:
+ 800001bc: 00000093 li ra,0
+ 800001c0: 00000113 li sp,0
+ 800001c4: 0220ef3b remw t5,ra,sp
+ 800001c8: 00000e93 li t4,0
+ 800001cc: 00a00193 li gp,10
+ 800001d0: 03df1063 bne t5,t4,800001f0 <fail>
+
+00000000800001d4 <test_11>:
+ 800001d4: 89700093 li ra,-1897
+ 800001d8: 00000113 li sp,0
+ 800001dc: 0220ef3b remw t5,ra,sp
+ 800001e0: 89700e93 li t4,-1897
+ 800001e4: 00b00193 li gp,11
+ 800001e8: 01df1463 bne t5,t4,800001f0 <fail>
+ 800001ec: 00301c63 bne zero,gp,80000204 <pass>
+
+00000000800001f0 <fail>:
+ 800001f0: 0ff0000f fence
+ 800001f4: 00018063 beqz gp,800001f4 <fail+0x4>
+ 800001f8: 00119193 slli gp,gp,0x1
+ 800001fc: 0011e193 ori gp,gp,1
+ 80000200: 00000073 ecall
+
+0000000080000204 <pass>:
+ 80000204: 0ff0000f fence
+ 80000208: 00100193 li gp,1
+ 8000020c: 00000073 ecall
+ 80000210: c0001073 unimp
+ 80000214: 0000 unimp
+ 80000216: 0000 unimp
+ 80000218: 0000 unimp
+ 8000021a: 0000 unimp
+ 8000021c: 0000 unimp
+ 8000021e: 0000 unimp
+ 80000220: 0000 unimp
+ 80000222: 0000 unimp
+ 80000224: 0000 unimp
+ 80000226: 0000 unimp
+ 80000228: 0000 unimp
+ 8000022a: 0000 unimp
+ 8000022c: 0000 unimp
+ 8000022e: 0000 unimp
+ 80000230: 0000 unimp
+ 80000232: 0000 unimp
+ 80000234: 0000 unimp
+ 80000236: 0000 unimp
+ 80000238: 0000 unimp
+ 8000023a: 0000 unimp
+ 8000023c: 0000 unimp
+ 8000023e: 0000 unimp
+ 80000240: 0000 unimp
+ 80000242: 0000 unimp
diff --git a/test/tests/rv64um-p-remw.elf b/test/tests/rv64um-p-remw.elf
new file mode 100644
index 0000000..55798a6
--- /dev/null
+++ b/test/tests/rv64um-p-remw.elf
Binary files differ
diff --git a/test/tests/rv64um-v-div.dump b/test/tests/rv64um-v-div.dump
new file mode 100644
index 0000000..bfc4ab1
--- /dev/null
+++ b/test/tests/rv64um-v-div.dump
@@ -0,0 +1,916 @@
+
+rv64um-v-div: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <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: 6b810113 addi sp,sp,1720 # 800086d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00001617 auipc a2,0x1
+ 80002318: cec60613 addi a2,a2,-788 # 80003000 <begin_signature>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00005797 auipc a5,0x5
+ 80002334: 4b878793 addi a5,a5,1208 # 800077e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00005717 auipc a4,0x5
+ 80002348: 49c70713 addi a4,a4,1180 # 800077e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00005897 auipc a7,0x5
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800077e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00005797 auipc a5,0x5
+ 80002384: 07078793 addi a5,a5,112 # 800073f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf8810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00005797 auipc a5,0x5
+ 80002448: 3807be23 sd zero,924(a5) # 800077e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00000697 auipc a3,0x0
+ 8000245c: 78068693 addi a3,a3,1920 # 80002bd8 <pass+0x10>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00000617 auipc a2,0x0
+ 800024b8: 7b460613 addi a2,a2,1972 # 80002c68 <pass+0xa0>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00000617 auipc a2,0x0
+ 80002508: 77c60613 addi a2,a2,1916 # 80002c80 <pass+0xb8>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00000697 auipc a3,0x0
+ 80002558: 6cc68693 addi a3,a3,1740 # 80002c20 <pass+0x58>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00000697 auipc a3,0x0
+ 80002674: 6e868693 addi a3,a3,1768 # 80002d58 <pass+0x190>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00000617 auipc a2,0x0
+ 800026cc: 66860613 addi a2,a2,1640 # 80002d30 <pass+0x168>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00005d17 auipc s10,0x5
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800073f0 <user_mapping>
+ 80002724: 00001b97 auipc s7,0x1
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80003000 <begin_signature>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00005a17 auipc s4,0x5
+ 80002738: 0aca0a13 addi s4,s4,172 # 800077e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00005717 auipc a4,0x5
+ 8000274c: 08f73c23 sd a5,152(a4) # 800077e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00005717 auipc a4,0x5
+ 800027d4: 00f73823 sd a5,16(a4) # 800077e0 <freelist_tail>
+ 800027d8: 00005717 auipc a4,0x5
+ 800027dc: 00f73823 sd a5,16(a4) # 800077e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 59c68693 addi a3,a3,1436 # 80002d88 <pass+0x1c0>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 4bc68693 addi a3,a3,1212 # 80002cf8 <pass+0x130>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 44c68693 addi a3,a3,1100 # 80002cc0 <pass+0xf8>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00001697 auipc a3,0x1
+ 800028e0: 72468693 addi a3,a3,1828 # 80004000 <begin_signature+0x1000>
+ 800028e4: 00002717 auipc a4,0x2
+ 800028e8: 71c70713 addi a4,a4,1820 # 80005000 <begin_signature+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00003797 auipc a5,0x3
+ 800028f8: 70c78793 addi a5,a5,1804 # 80006000 <begin_signature+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00000897 auipc a7,0x0
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80003000 <begin_signature>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00001697 auipc a3,0x1
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80003ff8 <begin_signature+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00000617 auipc a2,0x0
+ 80002938: 6cc60613 addi a2,a2,1740 # 80003000 <begin_signature>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00003697 auipc a3,0x3
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80005ff8 <begin_signature+0x2ff8>
+ 8000294c: 00001717 auipc a4,0x1
+ 80002950: 6af73a23 sd a5,1716(a4) # 80004000 <begin_signature+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00004697 auipc a3,0x4
+ 800029c0: 64468693 addi a3,a3,1604 # 80007000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00005617 auipc a2,0x5
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800077e8 <freelist_head>
+ 800029d4: 00005797 auipc a5,0x5
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800077e0 <freelist_tail>
+ 800029dc: 00005317 auipc t1,0x5
+ 800029e0: a1430313 addi t1,t1,-1516 # 800073f0 <user_mapping>
+ 800029e4: 03c00793 li a5,60
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00005797 auipc a5,0x5
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800073e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 07a167b7 lui a5,0x7a16
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: cc378793 addi a5,a5,-829 # 7a15cc3 <_start-0x785ea33d>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 01400093 li ra,20
+ 80002acc: 00600113 li sp,6
+ 80002ad0: 0220cf33 div t5,ra,sp
+ 80002ad4: 00300e93 li t4,3
+ 80002ad8: 00200193 li gp,2
+ 80002adc: 0ddf1e63 bne t5,t4,80002bb8 <fail>
+
+0000000080002ae0 <test_3>:
+ 80002ae0: fec00093 li ra,-20
+ 80002ae4: 00600113 li sp,6
+ 80002ae8: 0220cf33 div t5,ra,sp
+ 80002aec: ffd00e93 li t4,-3
+ 80002af0: 00300193 li gp,3
+ 80002af4: 0ddf1263 bne t5,t4,80002bb8 <fail>
+
+0000000080002af8 <test_4>:
+ 80002af8: 01400093 li ra,20
+ 80002afc: ffa00113 li sp,-6
+ 80002b00: 0220cf33 div t5,ra,sp
+ 80002b04: ffd00e93 li t4,-3
+ 80002b08: 00400193 li gp,4
+ 80002b0c: 0bdf1663 bne t5,t4,80002bb8 <fail>
+
+0000000080002b10 <test_5>:
+ 80002b10: fec00093 li ra,-20
+ 80002b14: ffa00113 li sp,-6
+ 80002b18: 0220cf33 div t5,ra,sp
+ 80002b1c: 00300e93 li t4,3
+ 80002b20: 00500193 li gp,5
+ 80002b24: 09df1a63 bne t5,t4,80002bb8 <fail>
+
+0000000080002b28 <test_6>:
+ 80002b28: fff0009b addiw ra,zero,-1
+ 80002b2c: 03f09093 slli ra,ra,0x3f
+ 80002b30: 00100113 li sp,1
+ 80002b34: 0220cf33 div t5,ra,sp
+ 80002b38: fff00e9b addiw t4,zero,-1
+ 80002b3c: 03fe9e93 slli t4,t4,0x3f
+ 80002b40: 00600193 li gp,6
+ 80002b44: 07df1a63 bne t5,t4,80002bb8 <fail>
+
+0000000080002b48 <test_7>:
+ 80002b48: fff0009b addiw ra,zero,-1
+ 80002b4c: 03f09093 slli ra,ra,0x3f
+ 80002b50: fff00113 li sp,-1
+ 80002b54: 0220cf33 div t5,ra,sp
+ 80002b58: fff00e9b addiw t4,zero,-1
+ 80002b5c: 03fe9e93 slli t4,t4,0x3f
+ 80002b60: 00700193 li gp,7
+ 80002b64: 05df1a63 bne t5,t4,80002bb8 <fail>
+
+0000000080002b68 <test_8>:
+ 80002b68: fff0009b addiw ra,zero,-1
+ 80002b6c: 03f09093 slli ra,ra,0x3f
+ 80002b70: 00000113 li sp,0
+ 80002b74: 0220cf33 div t5,ra,sp
+ 80002b78: fff00e93 li t4,-1
+ 80002b7c: 00800193 li gp,8
+ 80002b80: 03df1c63 bne t5,t4,80002bb8 <fail>
+
+0000000080002b84 <test_9>:
+ 80002b84: 00100093 li ra,1
+ 80002b88: 00000113 li sp,0
+ 80002b8c: 0220cf33 div t5,ra,sp
+ 80002b90: fff00e93 li t4,-1
+ 80002b94: 00900193 li gp,9
+ 80002b98: 03df1063 bne t5,t4,80002bb8 <fail>
+
+0000000080002b9c <test_10>:
+ 80002b9c: 00000093 li ra,0
+ 80002ba0: 00000113 li sp,0
+ 80002ba4: 0220cf33 div t5,ra,sp
+ 80002ba8: fff00e93 li t4,-1
+ 80002bac: 00a00193 li gp,10
+ 80002bb0: 01df1463 bne t5,t4,80002bb8 <fail>
+ 80002bb4: 00301a63 bne zero,gp,80002bc8 <pass>
+
+0000000080002bb8 <fail>:
+ 80002bb8: 00119513 slli a0,gp,0x1
+ 80002bbc: 00050063 beqz a0,80002bbc <fail+0x4>
+ 80002bc0: 00156513 ori a0,a0,1
+ 80002bc4: 00000073 ecall
+
+0000000080002bc8 <pass>:
+ 80002bc8: 00100513 li a0,1
+ 80002bcc: 00000073 ecall
+ 80002bd0: c0001073 unimp
diff --git a/test/tests/rv64um-v-div.elf b/test/tests/rv64um-v-div.elf
new file mode 100644
index 0000000..3374b8a
--- /dev/null
+++ b/test/tests/rv64um-v-div.elf
Binary files differ
diff --git a/test/tests/rv64um-v-divu.dump b/test/tests/rv64um-v-divu.dump
new file mode 100644
index 0000000..68b9aab
--- /dev/null
+++ b/test/tests/rv64um-v-divu.dump
@@ -0,0 +1,922 @@
+
+rv64um-v-divu: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <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: 6b810113 addi sp,sp,1720 # 800086d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00001617 auipc a2,0x1
+ 80002318: cec60613 addi a2,a2,-788 # 80003000 <begin_signature>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00005797 auipc a5,0x5
+ 80002334: 4b878793 addi a5,a5,1208 # 800077e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00005717 auipc a4,0x5
+ 80002348: 49c70713 addi a4,a4,1180 # 800077e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00005897 auipc a7,0x5
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800077e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00005797 auipc a5,0x5
+ 80002384: 07078793 addi a5,a5,112 # 800073f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf8810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00005797 auipc a5,0x5
+ 80002448: 3807be23 sd zero,924(a5) # 800077e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00000697 auipc a3,0x0
+ 8000245c: 79868693 addi a3,a3,1944 # 80002bf0 <pass+0x10>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00000617 auipc a2,0x0
+ 800024b8: 7cc60613 addi a2,a2,1996 # 80002c80 <pass+0xa0>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00000617 auipc a2,0x0
+ 80002508: 79460613 addi a2,a2,1940 # 80002c98 <pass+0xb8>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00000697 auipc a3,0x0
+ 80002558: 6e468693 addi a3,a3,1764 # 80002c38 <pass+0x58>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00000697 auipc a3,0x0
+ 80002674: 70068693 addi a3,a3,1792 # 80002d70 <pass+0x190>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00000617 auipc a2,0x0
+ 800026cc: 68060613 addi a2,a2,1664 # 80002d48 <pass+0x168>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00005d17 auipc s10,0x5
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800073f0 <user_mapping>
+ 80002724: 00001b97 auipc s7,0x1
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80003000 <begin_signature>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00005a17 auipc s4,0x5
+ 80002738: 0aca0a13 addi s4,s4,172 # 800077e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00005717 auipc a4,0x5
+ 8000274c: 08f73c23 sd a5,152(a4) # 800077e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00005717 auipc a4,0x5
+ 800027d4: 00f73823 sd a5,16(a4) # 800077e0 <freelist_tail>
+ 800027d8: 00005717 auipc a4,0x5
+ 800027dc: 00f73823 sd a5,16(a4) # 800077e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 5b468693 addi a3,a3,1460 # 80002da0 <pass+0x1c0>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 4d468693 addi a3,a3,1236 # 80002d10 <pass+0x130>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 46468693 addi a3,a3,1124 # 80002cd8 <pass+0xf8>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00001697 auipc a3,0x1
+ 800028e0: 72468693 addi a3,a3,1828 # 80004000 <begin_signature+0x1000>
+ 800028e4: 00002717 auipc a4,0x2
+ 800028e8: 71c70713 addi a4,a4,1820 # 80005000 <begin_signature+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00003797 auipc a5,0x3
+ 800028f8: 70c78793 addi a5,a5,1804 # 80006000 <begin_signature+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00000897 auipc a7,0x0
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80003000 <begin_signature>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00001697 auipc a3,0x1
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80003ff8 <begin_signature+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00000617 auipc a2,0x0
+ 80002938: 6cc60613 addi a2,a2,1740 # 80003000 <begin_signature>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00003697 auipc a3,0x3
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80005ff8 <begin_signature+0x2ff8>
+ 8000294c: 00001717 auipc a4,0x1
+ 80002950: 6af73a23 sd a5,1716(a4) # 80004000 <begin_signature+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00004697 auipc a3,0x4
+ 800029c0: 64468693 addi a3,a3,1604 # 80007000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00005617 auipc a2,0x5
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800077e8 <freelist_head>
+ 800029d4: 00005797 auipc a5,0x5
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800077e0 <freelist_tail>
+ 800029dc: 00005317 auipc t1,0x5
+ 800029e0: a1430313 addi t1,t1,-1516 # 800073f0 <user_mapping>
+ 800029e4: 01c00793 li a5,28
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00005797 auipc a5,0x5
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800073e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 0472c7b7 lui a5,0x472c
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: f1278793 addi a5,a5,-238 # 472bf12 <_start-0x7b8d40ee>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 01400093 li ra,20
+ 80002acc: 00600113 li sp,6
+ 80002ad0: 0220df33 divu t5,ra,sp
+ 80002ad4: 00300e93 li t4,3
+ 80002ad8: 00200193 li gp,2
+ 80002adc: 0fdf1a63 bne t5,t4,80002bd0 <fail>
+
+0000000080002ae0 <test_3>:
+ 80002ae0: fec00093 li ra,-20
+ 80002ae4: 00600113 li sp,6
+ 80002ae8: 0220df33 divu t5,ra,sp
+ 80002aec: 02aabeb7 lui t4,0x2aab
+ 80002af0: aabe8e9b addiw t4,t4,-1365
+ 80002af4: 00ce9e93 slli t4,t4,0xc
+ 80002af8: aabe8e93 addi t4,t4,-1365 # 2aaaaab <_start-0x7d555555>
+ 80002afc: 00ce9e93 slli t4,t4,0xc
+ 80002b00: aabe8e93 addi t4,t4,-1365
+ 80002b04: 00ce9e93 slli t4,t4,0xc
+ 80002b08: aa7e8e93 addi t4,t4,-1369
+ 80002b0c: 00300193 li gp,3
+ 80002b10: 0ddf1063 bne t5,t4,80002bd0 <fail>
+
+0000000080002b14 <test_4>:
+ 80002b14: 01400093 li ra,20
+ 80002b18: ffa00113 li sp,-6
+ 80002b1c: 0220df33 divu t5,ra,sp
+ 80002b20: 00000e93 li t4,0
+ 80002b24: 00400193 li gp,4
+ 80002b28: 0bdf1463 bne t5,t4,80002bd0 <fail>
+
+0000000080002b2c <test_5>:
+ 80002b2c: fec00093 li ra,-20
+ 80002b30: ffa00113 li sp,-6
+ 80002b34: 0220df33 divu t5,ra,sp
+ 80002b38: 00000e93 li t4,0
+ 80002b3c: 00500193 li gp,5
+ 80002b40: 09df1863 bne t5,t4,80002bd0 <fail>
+
+0000000080002b44 <test_6>:
+ 80002b44: fff0009b addiw ra,zero,-1
+ 80002b48: 03f09093 slli ra,ra,0x3f
+ 80002b4c: 00100113 li sp,1
+ 80002b50: 0220df33 divu t5,ra,sp
+ 80002b54: fff00e9b addiw t4,zero,-1
+ 80002b58: 03fe9e93 slli t4,t4,0x3f
+ 80002b5c: 00600193 li gp,6
+ 80002b60: 07df1863 bne t5,t4,80002bd0 <fail>
+
+0000000080002b64 <test_7>:
+ 80002b64: fff0009b addiw ra,zero,-1
+ 80002b68: 03f09093 slli ra,ra,0x3f
+ 80002b6c: fff00113 li sp,-1
+ 80002b70: 0220df33 divu t5,ra,sp
+ 80002b74: 00000e93 li t4,0
+ 80002b78: 00700193 li gp,7
+ 80002b7c: 05df1a63 bne t5,t4,80002bd0 <fail>
+
+0000000080002b80 <test_8>:
+ 80002b80: fff0009b addiw ra,zero,-1
+ 80002b84: 03f09093 slli ra,ra,0x3f
+ 80002b88: 00000113 li sp,0
+ 80002b8c: 0220df33 divu t5,ra,sp
+ 80002b90: fff00e93 li t4,-1
+ 80002b94: 00800193 li gp,8
+ 80002b98: 03df1c63 bne t5,t4,80002bd0 <fail>
+
+0000000080002b9c <test_9>:
+ 80002b9c: 00100093 li ra,1
+ 80002ba0: 00000113 li sp,0
+ 80002ba4: 0220df33 divu t5,ra,sp
+ 80002ba8: fff00e93 li t4,-1
+ 80002bac: 00900193 li gp,9
+ 80002bb0: 03df1063 bne t5,t4,80002bd0 <fail>
+
+0000000080002bb4 <test_10>:
+ 80002bb4: 00000093 li ra,0
+ 80002bb8: 00000113 li sp,0
+ 80002bbc: 0220df33 divu t5,ra,sp
+ 80002bc0: fff00e93 li t4,-1
+ 80002bc4: 00a00193 li gp,10
+ 80002bc8: 01df1463 bne t5,t4,80002bd0 <fail>
+ 80002bcc: 00301a63 bne zero,gp,80002be0 <pass>
+
+0000000080002bd0 <fail>:
+ 80002bd0: 00119513 slli a0,gp,0x1
+ 80002bd4: 00050063 beqz a0,80002bd4 <fail+0x4>
+ 80002bd8: 00156513 ori a0,a0,1
+ 80002bdc: 00000073 ecall
+
+0000000080002be0 <pass>:
+ 80002be0: 00100513 li a0,1
+ 80002be4: 00000073 ecall
+ 80002be8: c0001073 unimp
diff --git a/test/tests/rv64um-v-divu.elf b/test/tests/rv64um-v-divu.elf
new file mode 100644
index 0000000..4eec538
--- /dev/null
+++ b/test/tests/rv64um-v-divu.elf
Binary files differ
diff --git a/test/tests/rv64um-v-divuw.dump b/test/tests/rv64um-v-divuw.dump
new file mode 100644
index 0000000..644f517
--- /dev/null
+++ b/test/tests/rv64um-v-divuw.dump
@@ -0,0 +1,914 @@
+
+rv64um-v-divuw: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <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: 6b810113 addi sp,sp,1720 # 800086d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00001617 auipc a2,0x1
+ 80002318: cec60613 addi a2,a2,-788 # 80003000 <begin_signature>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00005797 auipc a5,0x5
+ 80002334: 4b878793 addi a5,a5,1208 # 800077e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00005717 auipc a4,0x5
+ 80002348: 49c70713 addi a4,a4,1180 # 800077e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00005897 auipc a7,0x5
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800077e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00005797 auipc a5,0x5
+ 80002384: 07078793 addi a5,a5,112 # 800073f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf8810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00005797 auipc a5,0x5
+ 80002448: 3807be23 sd zero,924(a5) # 800077e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00000697 auipc a3,0x0
+ 8000245c: 77868693 addi a3,a3,1912 # 80002bd0 <pass+0x10>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00000617 auipc a2,0x0
+ 800024b8: 7ac60613 addi a2,a2,1964 # 80002c60 <pass+0xa0>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00000617 auipc a2,0x0
+ 80002508: 77460613 addi a2,a2,1908 # 80002c78 <pass+0xb8>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00000697 auipc a3,0x0
+ 80002558: 6c468693 addi a3,a3,1732 # 80002c18 <pass+0x58>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00000697 auipc a3,0x0
+ 80002674: 6e068693 addi a3,a3,1760 # 80002d50 <pass+0x190>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00000617 auipc a2,0x0
+ 800026cc: 66060613 addi a2,a2,1632 # 80002d28 <pass+0x168>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00005d17 auipc s10,0x5
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800073f0 <user_mapping>
+ 80002724: 00001b97 auipc s7,0x1
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80003000 <begin_signature>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00005a17 auipc s4,0x5
+ 80002738: 0aca0a13 addi s4,s4,172 # 800077e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00005717 auipc a4,0x5
+ 8000274c: 08f73c23 sd a5,152(a4) # 800077e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00005717 auipc a4,0x5
+ 800027d4: 00f73823 sd a5,16(a4) # 800077e0 <freelist_tail>
+ 800027d8: 00005717 auipc a4,0x5
+ 800027dc: 00f73823 sd a5,16(a4) # 800077e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 59468693 addi a3,a3,1428 # 80002d80 <pass+0x1c0>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 4b468693 addi a3,a3,1204 # 80002cf0 <pass+0x130>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 44468693 addi a3,a3,1092 # 80002cb8 <pass+0xf8>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00001697 auipc a3,0x1
+ 800028e0: 72468693 addi a3,a3,1828 # 80004000 <begin_signature+0x1000>
+ 800028e4: 00002717 auipc a4,0x2
+ 800028e8: 71c70713 addi a4,a4,1820 # 80005000 <begin_signature+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00003797 auipc a5,0x3
+ 800028f8: 70c78793 addi a5,a5,1804 # 80006000 <begin_signature+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00000897 auipc a7,0x0
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80003000 <begin_signature>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00001697 auipc a3,0x1
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80003ff8 <begin_signature+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00000617 auipc a2,0x0
+ 80002938: 6cc60613 addi a2,a2,1740 # 80003000 <begin_signature>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00003697 auipc a3,0x3
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80005ff8 <begin_signature+0x2ff8>
+ 8000294c: 00001717 auipc a4,0x1
+ 80002950: 6af73a23 sd a5,1716(a4) # 80004000 <begin_signature+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00004697 auipc a3,0x4
+ 800029c0: 64468693 addi a3,a3,1604 # 80007000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00005617 auipc a2,0x5
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800077e8 <freelist_head>
+ 800029d4: 00005797 auipc a5,0x5
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800077e0 <freelist_tail>
+ 800029dc: 00005317 auipc t1,0x5
+ 800029e0: a1430313 addi t1,t1,-1516 # 800073f0 <user_mapping>
+ 800029e4: 02f00793 li a5,47
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00005797 auipc a5,0x5
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800073e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 0a3e47b7 lui a5,0xa3e4
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: 49e78793 addi a5,a5,1182 # a3e449e <_start-0x75c1bb62>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 01400093 li ra,20
+ 80002acc: 00600113 li sp,6
+ 80002ad0: 0220df3b divuw t5,ra,sp
+ 80002ad4: 00300e93 li t4,3
+ 80002ad8: 00200193 li gp,2
+ 80002adc: 0ddf1a63 bne t5,t4,80002bb0 <fail>
+
+0000000080002ae0 <test_3>:
+ 80002ae0: 0010009b addiw ra,zero,1
+ 80002ae4: 02009093 slli ra,ra,0x20
+ 80002ae8: fec08093 addi ra,ra,-20
+ 80002aec: 00600113 li sp,6
+ 80002af0: 0220df3b divuw t5,ra,sp
+ 80002af4: 2aaabeb7 lui t4,0x2aaab
+ 80002af8: aa7e8e9b addiw t4,t4,-1369
+ 80002afc: 00300193 li gp,3
+ 80002b00: 0bdf1863 bne t5,t4,80002bb0 <fail>
+
+0000000080002b04 <test_4>:
+ 80002b04: 01400093 li ra,20
+ 80002b08: ffa00113 li sp,-6
+ 80002b0c: 0220df3b divuw t5,ra,sp
+ 80002b10: 00000e93 li t4,0
+ 80002b14: 00400193 li gp,4
+ 80002b18: 09df1c63 bne t5,t4,80002bb0 <fail>
+
+0000000080002b1c <test_5>:
+ 80002b1c: fec00093 li ra,-20
+ 80002b20: ffa00113 li sp,-6
+ 80002b24: 0220df3b divuw t5,ra,sp
+ 80002b28: 00000e93 li t4,0
+ 80002b2c: 00500193 li gp,5
+ 80002b30: 09df1063 bne t5,t4,80002bb0 <fail>
+
+0000000080002b34 <test_6>:
+ 80002b34: 800000b7 lui ra,0x80000
+ 80002b38: 00100113 li sp,1
+ 80002b3c: 0220df3b divuw t5,ra,sp
+ 80002b40: 80000eb7 lui t4,0x80000
+ 80002b44: 00600193 li gp,6
+ 80002b48: 07df1463 bne t5,t4,80002bb0 <fail>
+
+0000000080002b4c <test_7>:
+ 80002b4c: 800000b7 lui ra,0x80000
+ 80002b50: fff00113 li sp,-1
+ 80002b54: 0220df3b divuw t5,ra,sp
+ 80002b58: 00000e93 li t4,0
+ 80002b5c: 00700193 li gp,7
+ 80002b60: 05df1863 bne t5,t4,80002bb0 <fail>
+
+0000000080002b64 <test_8>:
+ 80002b64: 800000b7 lui ra,0x80000
+ 80002b68: 00000113 li sp,0
+ 80002b6c: 0220df3b divuw t5,ra,sp
+ 80002b70: fff00e93 li t4,-1
+ 80002b74: 00800193 li gp,8
+ 80002b78: 03df1c63 bne t5,t4,80002bb0 <fail>
+
+0000000080002b7c <test_9>:
+ 80002b7c: 00100093 li ra,1
+ 80002b80: 00000113 li sp,0
+ 80002b84: 0220df3b divuw t5,ra,sp
+ 80002b88: fff00e93 li t4,-1
+ 80002b8c: 00900193 li gp,9
+ 80002b90: 03df1063 bne t5,t4,80002bb0 <fail>
+
+0000000080002b94 <test_10>:
+ 80002b94: 00000093 li ra,0
+ 80002b98: 00000113 li sp,0
+ 80002b9c: 0220df3b divuw t5,ra,sp
+ 80002ba0: fff00e93 li t4,-1
+ 80002ba4: 00a00193 li gp,10
+ 80002ba8: 01df1463 bne t5,t4,80002bb0 <fail>
+ 80002bac: 00301a63 bne zero,gp,80002bc0 <pass>
+
+0000000080002bb0 <fail>:
+ 80002bb0: 00119513 slli a0,gp,0x1
+ 80002bb4: 00050063 beqz a0,80002bb4 <fail+0x4>
+ 80002bb8: 00156513 ori a0,a0,1
+ 80002bbc: 00000073 ecall
+
+0000000080002bc0 <pass>:
+ 80002bc0: 00100513 li a0,1
+ 80002bc4: 00000073 ecall
+ 80002bc8: c0001073 unimp
diff --git a/test/tests/rv64um-v-divuw.elf b/test/tests/rv64um-v-divuw.elf
new file mode 100644
index 0000000..f5ae7cb
--- /dev/null
+++ b/test/tests/rv64um-v-divuw.elf
Binary files differ
diff --git a/test/tests/rv64um-v-divw.dump b/test/tests/rv64um-v-divw.dump
new file mode 100644
index 0000000..e2ba647
--- /dev/null
+++ b/test/tests/rv64um-v-divw.dump
@@ -0,0 +1,911 @@
+
+rv64um-v-divw: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <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: 6b810113 addi sp,sp,1720 # 800086d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00001617 auipc a2,0x1
+ 80002318: cec60613 addi a2,a2,-788 # 80003000 <begin_signature>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00005797 auipc a5,0x5
+ 80002334: 4b878793 addi a5,a5,1208 # 800077e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00005717 auipc a4,0x5
+ 80002348: 49c70713 addi a4,a4,1180 # 800077e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00005897 auipc a7,0x5
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800077e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00005797 auipc a5,0x5
+ 80002384: 07078793 addi a5,a5,112 # 800073f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf8810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00005797 auipc a5,0x5
+ 80002448: 3807be23 sd zero,924(a5) # 800077e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00000697 auipc a3,0x0
+ 8000245c: 76868693 addi a3,a3,1896 # 80002bc0 <pass+0xc>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00000617 auipc a2,0x0
+ 800024b8: 79c60613 addi a2,a2,1948 # 80002c50 <pass+0x9c>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00000617 auipc a2,0x0
+ 80002508: 76460613 addi a2,a2,1892 # 80002c68 <pass+0xb4>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00000697 auipc a3,0x0
+ 80002558: 6b468693 addi a3,a3,1716 # 80002c08 <pass+0x54>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00000697 auipc a3,0x0
+ 80002674: 6d068693 addi a3,a3,1744 # 80002d40 <pass+0x18c>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00000617 auipc a2,0x0
+ 800026cc: 65060613 addi a2,a2,1616 # 80002d18 <pass+0x164>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00005d17 auipc s10,0x5
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800073f0 <user_mapping>
+ 80002724: 00001b97 auipc s7,0x1
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80003000 <begin_signature>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00005a17 auipc s4,0x5
+ 80002738: 0aca0a13 addi s4,s4,172 # 800077e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00005717 auipc a4,0x5
+ 8000274c: 08f73c23 sd a5,152(a4) # 800077e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00005717 auipc a4,0x5
+ 800027d4: 00f73823 sd a5,16(a4) # 800077e0 <freelist_tail>
+ 800027d8: 00005717 auipc a4,0x5
+ 800027dc: 00f73823 sd a5,16(a4) # 800077e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 58468693 addi a3,a3,1412 # 80002d70 <pass+0x1bc>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 4a468693 addi a3,a3,1188 # 80002ce0 <pass+0x12c>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 43468693 addi a3,a3,1076 # 80002ca8 <pass+0xf4>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00001697 auipc a3,0x1
+ 800028e0: 72468693 addi a3,a3,1828 # 80004000 <begin_signature+0x1000>
+ 800028e4: 00002717 auipc a4,0x2
+ 800028e8: 71c70713 addi a4,a4,1820 # 80005000 <begin_signature+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00003797 auipc a5,0x3
+ 800028f8: 70c78793 addi a5,a5,1804 # 80006000 <begin_signature+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00000897 auipc a7,0x0
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80003000 <begin_signature>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00001697 auipc a3,0x1
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80003ff8 <begin_signature+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00000617 auipc a2,0x0
+ 80002938: 6cc60613 addi a2,a2,1740 # 80003000 <begin_signature>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00003697 auipc a3,0x3
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80005ff8 <begin_signature+0x2ff8>
+ 8000294c: 00001717 auipc a4,0x1
+ 80002950: 6af73a23 sd a5,1716(a4) # 80004000 <begin_signature+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00004697 auipc a3,0x4
+ 800029c0: 64468693 addi a3,a3,1604 # 80007000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00005617 auipc a2,0x5
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800077e8 <freelist_head>
+ 800029d4: 00005797 auipc a5,0x5
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800077e0 <freelist_tail>
+ 800029dc: 00005317 auipc t1,0x5
+ 800029e0: a1430313 addi t1,t1,-1516 # 800073f0 <user_mapping>
+ 800029e4: 01700793 li a5,23
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00005797 auipc a5,0x5
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800073e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 026ec7b7 lui a5,0x26ec
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: f8e78793 addi a5,a5,-114 # 26ebf8e <_start-0x7d914072>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 01400093 li ra,20
+ 80002acc: 00600113 li sp,6
+ 80002ad0: 0220cf3b divw t5,ra,sp
+ 80002ad4: 00300e93 li t4,3
+ 80002ad8: 00200193 li gp,2
+ 80002adc: 0ddf1463 bne t5,t4,80002ba4 <fail>
+
+0000000080002ae0 <test_3>:
+ 80002ae0: fec00093 li ra,-20
+ 80002ae4: 00600113 li sp,6
+ 80002ae8: 0220cf3b divw t5,ra,sp
+ 80002aec: ffd00e93 li t4,-3
+ 80002af0: 00300193 li gp,3
+ 80002af4: 0bdf1863 bne t5,t4,80002ba4 <fail>
+
+0000000080002af8 <test_4>:
+ 80002af8: 01400093 li ra,20
+ 80002afc: ffa00113 li sp,-6
+ 80002b00: 0220cf3b divw t5,ra,sp
+ 80002b04: ffd00e93 li t4,-3
+ 80002b08: 00400193 li gp,4
+ 80002b0c: 09df1c63 bne t5,t4,80002ba4 <fail>
+
+0000000080002b10 <test_5>:
+ 80002b10: fec00093 li ra,-20
+ 80002b14: ffa00113 li sp,-6
+ 80002b18: 0220cf3b divw t5,ra,sp
+ 80002b1c: 00300e93 li t4,3
+ 80002b20: 00500193 li gp,5
+ 80002b24: 09df1063 bne t5,t4,80002ba4 <fail>
+
+0000000080002b28 <test_6>:
+ 80002b28: 800000b7 lui ra,0x80000
+ 80002b2c: 00100113 li sp,1
+ 80002b30: 0220cf3b divw t5,ra,sp
+ 80002b34: 80000eb7 lui t4,0x80000
+ 80002b38: 00600193 li gp,6
+ 80002b3c: 07df1463 bne t5,t4,80002ba4 <fail>
+
+0000000080002b40 <test_7>:
+ 80002b40: 800000b7 lui ra,0x80000
+ 80002b44: fff00113 li sp,-1
+ 80002b48: 0220cf3b divw t5,ra,sp
+ 80002b4c: 80000eb7 lui t4,0x80000
+ 80002b50: 00700193 li gp,7
+ 80002b54: 05df1863 bne t5,t4,80002ba4 <fail>
+
+0000000080002b58 <test_8>:
+ 80002b58: 800000b7 lui ra,0x80000
+ 80002b5c: 00000113 li sp,0
+ 80002b60: 0220cf3b divw t5,ra,sp
+ 80002b64: fff00e93 li t4,-1
+ 80002b68: 00800193 li gp,8
+ 80002b6c: 03df1c63 bne t5,t4,80002ba4 <fail>
+
+0000000080002b70 <test_9>:
+ 80002b70: 00100093 li ra,1
+ 80002b74: 00000113 li sp,0
+ 80002b78: 0220cf3b divw t5,ra,sp
+ 80002b7c: fff00e93 li t4,-1
+ 80002b80: 00900193 li gp,9
+ 80002b84: 03df1063 bne t5,t4,80002ba4 <fail>
+
+0000000080002b88 <test_10>:
+ 80002b88: 00000093 li ra,0
+ 80002b8c: 00000113 li sp,0
+ 80002b90: 0220cf3b divw t5,ra,sp
+ 80002b94: fff00e93 li t4,-1
+ 80002b98: 00a00193 li gp,10
+ 80002b9c: 01df1463 bne t5,t4,80002ba4 <fail>
+ 80002ba0: 00301a63 bne zero,gp,80002bb4 <pass>
+
+0000000080002ba4 <fail>:
+ 80002ba4: 00119513 slli a0,gp,0x1
+ 80002ba8: 00050063 beqz a0,80002ba8 <fail+0x4>
+ 80002bac: 00156513 ori a0,a0,1
+ 80002bb0: 00000073 ecall
+
+0000000080002bb4 <pass>:
+ 80002bb4: 00100513 li a0,1
+ 80002bb8: 00000073 ecall
+ 80002bbc: c0001073 unimp
diff --git a/test/tests/rv64um-v-divw.elf b/test/tests/rv64um-v-divw.elf
new file mode 100644
index 0000000..1ecdfcf
--- /dev/null
+++ b/test/tests/rv64um-v-divw.elf
Binary files differ
diff --git a/test/tests/rv64um-v-mul.dump b/test/tests/rv64um-v-mul.dump
new file mode 100644
index 0000000..784ee41
--- /dev/null
+++ b/test/tests/rv64um-v-mul.dump
@@ -0,0 +1,1209 @@
+
+rv64um-v-mul: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <handle_reset>:
+ 8000000c: 00000297 auipc t0,0x0
+ 80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+ 80000014: 30529073 csrw mtvec,t0
+ 80000018: 00009117 auipc sp,0x9
+ 8000001c: 6b810113 addi sp,sp,1720 # 800096d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00002617 auipc a2,0x2
+ 80002318: cec60613 addi a2,a2,-788 # 80004000 <begin_signature>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00006797 auipc a5,0x6
+ 80002334: 4b878793 addi a5,a5,1208 # 800087e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00006717 auipc a4,0x6
+ 80002348: 49c70713 addi a4,a4,1180 # 800087e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00006897 auipc a7,0x6
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800087e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00006797 auipc a5,0x6
+ 80002384: 07078793 addi a5,a5,112 # 800083f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf7810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00006797 auipc a5,0x6
+ 80002448: 3807be23 sd zero,924(a5) # 800087e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00001697 auipc a3,0x1
+ 8000245c: b5868693 addi a3,a3,-1192 # 80002fb0 <pass+0xc>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00001617 auipc a2,0x1
+ 800024b8: b8c60613 addi a2,a2,-1140 # 80003040 <pass+0x9c>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00001617 auipc a2,0x1
+ 80002508: b5460613 addi a2,a2,-1196 # 80003058 <pass+0xb4>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00001697 auipc a3,0x1
+ 80002558: aa468693 addi a3,a3,-1372 # 80002ff8 <pass+0x54>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00001697 auipc a3,0x1
+ 80002674: ac068693 addi a3,a3,-1344 # 80003130 <pass+0x18c>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00001617 auipc a2,0x1
+ 800026cc: a4060613 addi a2,a2,-1472 # 80003108 <pass+0x164>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00006d17 auipc s10,0x6
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800083f0 <user_mapping>
+ 80002724: 00002b97 auipc s7,0x2
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80004000 <begin_signature>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00006a17 auipc s4,0x6
+ 80002738: 0aca0a13 addi s4,s4,172 # 800087e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00006717 auipc a4,0x6
+ 8000274c: 08f73c23 sd a5,152(a4) # 800087e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00006717 auipc a4,0x6
+ 800027d4: 00f73823 sd a5,16(a4) # 800087e0 <freelist_tail>
+ 800027d8: 00006717 auipc a4,0x6
+ 800027dc: 00f73823 sd a5,16(a4) # 800087e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00001697 auipc a3,0x1
+ 800027f0: 97468693 addi a3,a3,-1676 # 80003160 <pass+0x1bc>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00001697 auipc a3,0x1
+ 80002840: 89468693 addi a3,a3,-1900 # 800030d0 <pass+0x12c>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00001697 auipc a3,0x1
+ 80002878: 82468693 addi a3,a3,-2012 # 80003098 <pass+0xf4>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00002697 auipc a3,0x2
+ 800028e0: 72468693 addi a3,a3,1828 # 80005000 <begin_signature+0x1000>
+ 800028e4: 00003717 auipc a4,0x3
+ 800028e8: 71c70713 addi a4,a4,1820 # 80006000 <begin_signature+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00004797 auipc a5,0x4
+ 800028f8: 70c78793 addi a5,a5,1804 # 80007000 <begin_signature+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00001897 auipc a7,0x1
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80004000 <begin_signature>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00002697 auipc a3,0x2
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80004ff8 <begin_signature+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00001617 auipc a2,0x1
+ 80002938: 6cc60613 addi a2,a2,1740 # 80004000 <begin_signature>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00004697 auipc a3,0x4
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80006ff8 <begin_signature+0x2ff8>
+ 8000294c: 00002717 auipc a4,0x2
+ 80002950: 6af73a23 sd a5,1716(a4) # 80005000 <begin_signature+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00005697 auipc a3,0x5
+ 800029c0: 64468693 addi a3,a3,1604 # 80008000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00006617 auipc a2,0x6
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800087e8 <freelist_head>
+ 800029d4: 00006797 auipc a5,0x6
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800087e0 <freelist_tail>
+ 800029dc: 00006317 auipc t1,0x6
+ 800029e0: a1430313 addi t1,t1,-1516 # 800083f0 <user_mapping>
+ 800029e4: 02600793 li a5,38
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00006797 auipc a5,0x6
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800083e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 054df7b7 lui a5,0x54df
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: b0278793 addi a5,a5,-1278 # 54deb02 <_start-0x7ab214fe>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 000080b7 lui ra,0x8
+ 80002acc: e000809b addiw ra,ra,-512
+ 80002ad0: 06db7137 lui sp,0x6db7
+ 80002ad4: db71011b addiw sp,sp,-585
+ 80002ad8: 00c11113 slli sp,sp,0xc
+ 80002adc: db710113 addi sp,sp,-585 # 6db6db7 <_start-0x79249249>
+ 80002ae0: 00c11113 slli sp,sp,0xc
+ 80002ae4: db710113 addi sp,sp,-585
+ 80002ae8: 00c11113 slli sp,sp,0xc
+ 80002aec: db710113 addi sp,sp,-585
+ 80002af0: 02208f33 mul t5,ra,sp
+ 80002af4: 00001eb7 lui t4,0x1
+ 80002af8: 200e8e9b addiw t4,t4,512
+ 80002afc: 02000193 li gp,32
+ 80002b00: 49df1a63 bne t5,t4,80002f94 <fail>
+
+0000000080002b04 <test_33>:
+ 80002b04: 000080b7 lui ra,0x8
+ 80002b08: fc00809b addiw ra,ra,-64
+ 80002b0c: 06db7137 lui sp,0x6db7
+ 80002b10: db71011b addiw sp,sp,-585
+ 80002b14: 00c11113 slli sp,sp,0xc
+ 80002b18: db710113 addi sp,sp,-585 # 6db6db7 <_start-0x79249249>
+ 80002b1c: 00c11113 slli sp,sp,0xc
+ 80002b20: db710113 addi sp,sp,-585
+ 80002b24: 00c11113 slli sp,sp,0xc
+ 80002b28: db710113 addi sp,sp,-585
+ 80002b2c: 02208f33 mul t5,ra,sp
+ 80002b30: 00001eb7 lui t4,0x1
+ 80002b34: 240e8e9b addiw t4,t4,576
+ 80002b38: 02100193 li gp,33
+ 80002b3c: 45df1c63 bne t5,t4,80002f94 <fail>
+
+0000000080002b40 <test_2>:
+ 80002b40: 00000093 li ra,0
+ 80002b44: 00000113 li sp,0
+ 80002b48: 02208f33 mul t5,ra,sp
+ 80002b4c: 00000e93 li t4,0
+ 80002b50: 00200193 li gp,2
+ 80002b54: 45df1063 bne t5,t4,80002f94 <fail>
+
+0000000080002b58 <test_3>:
+ 80002b58: 00100093 li ra,1
+ 80002b5c: 00100113 li sp,1
+ 80002b60: 02208f33 mul t5,ra,sp
+ 80002b64: 00100e93 li t4,1
+ 80002b68: 00300193 li gp,3
+ 80002b6c: 43df1463 bne t5,t4,80002f94 <fail>
+
+0000000080002b70 <test_4>:
+ 80002b70: 00300093 li ra,3
+ 80002b74: 00700113 li sp,7
+ 80002b78: 02208f33 mul t5,ra,sp
+ 80002b7c: 01500e93 li t4,21
+ 80002b80: 00400193 li gp,4
+ 80002b84: 41df1863 bne t5,t4,80002f94 <fail>
+
+0000000080002b88 <test_5>:
+ 80002b88: 00000093 li ra,0
+ 80002b8c: ffff8137 lui sp,0xffff8
+ 80002b90: 02208f33 mul t5,ra,sp
+ 80002b94: 00000e93 li t4,0
+ 80002b98: 00500193 li gp,5
+ 80002b9c: 3fdf1c63 bne t5,t4,80002f94 <fail>
+
+0000000080002ba0 <test_6>:
+ 80002ba0: 800000b7 lui ra,0x80000
+ 80002ba4: 00000113 li sp,0
+ 80002ba8: 02208f33 mul t5,ra,sp
+ 80002bac: 00000e93 li t4,0
+ 80002bb0: 00600193 li gp,6
+ 80002bb4: 3fdf1063 bne t5,t4,80002f94 <fail>
+
+0000000080002bb8 <test_7>:
+ 80002bb8: 800000b7 lui ra,0x80000
+ 80002bbc: ffff8137 lui sp,0xffff8
+ 80002bc0: 02208f33 mul t5,ra,sp
+ 80002bc4: 00100e9b addiw t4,zero,1
+ 80002bc8: 02ee9e93 slli t4,t4,0x2e
+ 80002bcc: 00700193 li gp,7
+ 80002bd0: 3ddf1263 bne t5,t4,80002f94 <fail>
+
+0000000080002bd4 <test_30>:
+ 80002bd4: faaab0b7 lui ra,0xfaaab
+ 80002bd8: aab0809b addiw ra,ra,-1365
+ 80002bdc: 00c09093 slli ra,ra,0xc
+ 80002be0: aab08093 addi ra,ra,-1365 # fffffffffaaaaaab <_end+0xffffffff7aaa22bb>
+ 80002be4: 00c09093 slli ra,ra,0xc
+ 80002be8: aab08093 addi ra,ra,-1365
+ 80002bec: 00c09093 slli ra,ra,0xc
+ 80002bf0: aab08093 addi ra,ra,-1365
+ 80002bf4: 00030137 lui sp,0x30
+ 80002bf8: e7d1011b addiw sp,sp,-387
+ 80002bfc: 02208f33 mul t5,ra,sp
+ 80002c00: 00010eb7 lui t4,0x10
+ 80002c04: f7fe8e9b addiw t4,t4,-129
+ 80002c08: 01e00193 li gp,30
+ 80002c0c: 39df1463 bne t5,t4,80002f94 <fail>
+
+0000000080002c10 <test_31>:
+ 80002c10: 000300b7 lui ra,0x30
+ 80002c14: e7d0809b addiw ra,ra,-387
+ 80002c18: faaab137 lui sp,0xfaaab
+ 80002c1c: aab1011b addiw sp,sp,-1365
+ 80002c20: 00c11113 slli sp,sp,0xc
+ 80002c24: aab10113 addi sp,sp,-1365 # fffffffffaaaaaab <_end+0xffffffff7aaa22bb>
+ 80002c28: 00c11113 slli sp,sp,0xc
+ 80002c2c: aab10113 addi sp,sp,-1365
+ 80002c30: 00c11113 slli sp,sp,0xc
+ 80002c34: aab10113 addi sp,sp,-1365
+ 80002c38: 02208f33 mul t5,ra,sp
+ 80002c3c: 00010eb7 lui t4,0x10
+ 80002c40: f7fe8e9b addiw t4,t4,-129
+ 80002c44: 01f00193 li gp,31
+ 80002c48: 35df1663 bne t5,t4,80002f94 <fail>
+
+0000000080002c4c <test_8>:
+ 80002c4c: 00d00093 li ra,13
+ 80002c50: 00b00113 li sp,11
+ 80002c54: 022080b3 mul ra,ra,sp
+ 80002c58: 08f00e93 li t4,143
+ 80002c5c: 00800193 li gp,8
+ 80002c60: 33d09a63 bne ra,t4,80002f94 <fail>
+
+0000000080002c64 <test_9>:
+ 80002c64: 00e00093 li ra,14
+ 80002c68: 00b00113 li sp,11
+ 80002c6c: 02208133 mul sp,ra,sp
+ 80002c70: 09a00e93 li t4,154
+ 80002c74: 00900193 li gp,9
+ 80002c78: 31d11e63 bne sp,t4,80002f94 <fail>
+
+0000000080002c7c <test_10>:
+ 80002c7c: 00d00093 li ra,13
+ 80002c80: 021080b3 mul ra,ra,ra
+ 80002c84: 0a900e93 li t4,169
+ 80002c88: 00a00193 li gp,10
+ 80002c8c: 31d09463 bne ra,t4,80002f94 <fail>
+
+0000000080002c90 <test_11>:
+ 80002c90: 00000213 li tp,0
+ 80002c94: 00d00093 li ra,13
+ 80002c98: 00b00113 li sp,11
+ 80002c9c: 02208f33 mul t5,ra,sp
+ 80002ca0: 000f0313 mv t1,t5
+ 80002ca4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ca8: 00200293 li t0,2
+ 80002cac: fe5214e3 bne tp,t0,80002c94 <test_11+0x4>
+ 80002cb0: 08f00e93 li t4,143
+ 80002cb4: 00b00193 li gp,11
+ 80002cb8: 2dd31e63 bne t1,t4,80002f94 <fail>
+
+0000000080002cbc <test_12>:
+ 80002cbc: 00000213 li tp,0
+ 80002cc0: 00e00093 li ra,14
+ 80002cc4: 00b00113 li sp,11
+ 80002cc8: 02208f33 mul t5,ra,sp
+ 80002ccc: 00000013 nop
+ 80002cd0: 000f0313 mv t1,t5
+ 80002cd4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002cd8: 00200293 li t0,2
+ 80002cdc: fe5212e3 bne tp,t0,80002cc0 <test_12+0x4>
+ 80002ce0: 09a00e93 li t4,154
+ 80002ce4: 00c00193 li gp,12
+ 80002ce8: 2bd31663 bne t1,t4,80002f94 <fail>
+
+0000000080002cec <test_13>:
+ 80002cec: 00000213 li tp,0
+ 80002cf0: 00f00093 li ra,15
+ 80002cf4: 00b00113 li sp,11
+ 80002cf8: 02208f33 mul t5,ra,sp
+ 80002cfc: 00000013 nop
+ 80002d00: 00000013 nop
+ 80002d04: 000f0313 mv t1,t5
+ 80002d08: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d0c: 00200293 li t0,2
+ 80002d10: fe5210e3 bne tp,t0,80002cf0 <test_13+0x4>
+ 80002d14: 0a500e93 li t4,165
+ 80002d18: 00d00193 li gp,13
+ 80002d1c: 27d31c63 bne t1,t4,80002f94 <fail>
+
+0000000080002d20 <test_14>:
+ 80002d20: 00000213 li tp,0
+ 80002d24: 00d00093 li ra,13
+ 80002d28: 00b00113 li sp,11
+ 80002d2c: 02208f33 mul t5,ra,sp
+ 80002d30: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d34: 00200293 li t0,2
+ 80002d38: fe5216e3 bne tp,t0,80002d24 <test_14+0x4>
+ 80002d3c: 08f00e93 li t4,143
+ 80002d40: 00e00193 li gp,14
+ 80002d44: 25df1863 bne t5,t4,80002f94 <fail>
+
+0000000080002d48 <test_15>:
+ 80002d48: 00000213 li tp,0
+ 80002d4c: 00e00093 li ra,14
+ 80002d50: 00b00113 li sp,11
+ 80002d54: 00000013 nop
+ 80002d58: 02208f33 mul t5,ra,sp
+ 80002d5c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d60: 00200293 li t0,2
+ 80002d64: fe5214e3 bne tp,t0,80002d4c <test_15+0x4>
+ 80002d68: 09a00e93 li t4,154
+ 80002d6c: 00f00193 li gp,15
+ 80002d70: 23df1263 bne t5,t4,80002f94 <fail>
+
+0000000080002d74 <test_16>:
+ 80002d74: 00000213 li tp,0
+ 80002d78: 00f00093 li ra,15
+ 80002d7c: 00b00113 li sp,11
+ 80002d80: 00000013 nop
+ 80002d84: 00000013 nop
+ 80002d88: 02208f33 mul t5,ra,sp
+ 80002d8c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d90: 00200293 li t0,2
+ 80002d94: fe5212e3 bne tp,t0,80002d78 <test_16+0x4>
+ 80002d98: 0a500e93 li t4,165
+ 80002d9c: 01000193 li gp,16
+ 80002da0: 1fdf1a63 bne t5,t4,80002f94 <fail>
+
+0000000080002da4 <test_17>:
+ 80002da4: 00000213 li tp,0
+ 80002da8: 00d00093 li ra,13
+ 80002dac: 00000013 nop
+ 80002db0: 00b00113 li sp,11
+ 80002db4: 02208f33 mul t5,ra,sp
+ 80002db8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002dbc: 00200293 li t0,2
+ 80002dc0: fe5214e3 bne tp,t0,80002da8 <test_17+0x4>
+ 80002dc4: 08f00e93 li t4,143
+ 80002dc8: 01100193 li gp,17
+ 80002dcc: 1ddf1463 bne t5,t4,80002f94 <fail>
+
+0000000080002dd0 <test_18>:
+ 80002dd0: 00000213 li tp,0
+ 80002dd4: 00e00093 li ra,14
+ 80002dd8: 00000013 nop
+ 80002ddc: 00b00113 li sp,11
+ 80002de0: 00000013 nop
+ 80002de4: 02208f33 mul t5,ra,sp
+ 80002de8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002dec: 00200293 li t0,2
+ 80002df0: fe5212e3 bne tp,t0,80002dd4 <test_18+0x4>
+ 80002df4: 09a00e93 li t4,154
+ 80002df8: 01200193 li gp,18
+ 80002dfc: 19df1c63 bne t5,t4,80002f94 <fail>
+
+0000000080002e00 <test_19>:
+ 80002e00: 00000213 li tp,0
+ 80002e04: 00f00093 li ra,15
+ 80002e08: 00000013 nop
+ 80002e0c: 00000013 nop
+ 80002e10: 00b00113 li sp,11
+ 80002e14: 02208f33 mul t5,ra,sp
+ 80002e18: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e1c: 00200293 li t0,2
+ 80002e20: fe5212e3 bne tp,t0,80002e04 <test_19+0x4>
+ 80002e24: 0a500e93 li t4,165
+ 80002e28: 01300193 li gp,19
+ 80002e2c: 17df1463 bne t5,t4,80002f94 <fail>
+
+0000000080002e30 <test_20>:
+ 80002e30: 00000213 li tp,0
+ 80002e34: 00b00113 li sp,11
+ 80002e38: 00d00093 li ra,13
+ 80002e3c: 02208f33 mul t5,ra,sp
+ 80002e40: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e44: 00200293 li t0,2
+ 80002e48: fe5216e3 bne tp,t0,80002e34 <test_20+0x4>
+ 80002e4c: 08f00e93 li t4,143
+ 80002e50: 01400193 li gp,20
+ 80002e54: 15df1063 bne t5,t4,80002f94 <fail>
+
+0000000080002e58 <test_21>:
+ 80002e58: 00000213 li tp,0
+ 80002e5c: 00b00113 li sp,11
+ 80002e60: 00e00093 li ra,14
+ 80002e64: 00000013 nop
+ 80002e68: 02208f33 mul t5,ra,sp
+ 80002e6c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e70: 00200293 li t0,2
+ 80002e74: fe5214e3 bne tp,t0,80002e5c <test_21+0x4>
+ 80002e78: 09a00e93 li t4,154
+ 80002e7c: 01500193 li gp,21
+ 80002e80: 11df1a63 bne t5,t4,80002f94 <fail>
+
+0000000080002e84 <test_22>:
+ 80002e84: 00000213 li tp,0
+ 80002e88: 00b00113 li sp,11
+ 80002e8c: 00f00093 li ra,15
+ 80002e90: 00000013 nop
+ 80002e94: 00000013 nop
+ 80002e98: 02208f33 mul t5,ra,sp
+ 80002e9c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ea0: 00200293 li t0,2
+ 80002ea4: fe5212e3 bne tp,t0,80002e88 <test_22+0x4>
+ 80002ea8: 0a500e93 li t4,165
+ 80002eac: 01600193 li gp,22
+ 80002eb0: 0fdf1263 bne t5,t4,80002f94 <fail>
+
+0000000080002eb4 <test_23>:
+ 80002eb4: 00000213 li tp,0
+ 80002eb8: 00b00113 li sp,11
+ 80002ebc: 00000013 nop
+ 80002ec0: 00d00093 li ra,13
+ 80002ec4: 02208f33 mul t5,ra,sp
+ 80002ec8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ecc: 00200293 li t0,2
+ 80002ed0: fe5214e3 bne tp,t0,80002eb8 <test_23+0x4>
+ 80002ed4: 08f00e93 li t4,143
+ 80002ed8: 01700193 li gp,23
+ 80002edc: 0bdf1c63 bne t5,t4,80002f94 <fail>
+
+0000000080002ee0 <test_24>:
+ 80002ee0: 00000213 li tp,0
+ 80002ee4: 00b00113 li sp,11
+ 80002ee8: 00000013 nop
+ 80002eec: 00e00093 li ra,14
+ 80002ef0: 00000013 nop
+ 80002ef4: 02208f33 mul t5,ra,sp
+ 80002ef8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002efc: 00200293 li t0,2
+ 80002f00: fe5212e3 bne tp,t0,80002ee4 <test_24+0x4>
+ 80002f04: 09a00e93 li t4,154
+ 80002f08: 01800193 li gp,24
+ 80002f0c: 09df1463 bne t5,t4,80002f94 <fail>
+
+0000000080002f10 <test_25>:
+ 80002f10: 00000213 li tp,0
+ 80002f14: 00b00113 li sp,11
+ 80002f18: 00000013 nop
+ 80002f1c: 00000013 nop
+ 80002f20: 00f00093 li ra,15
+ 80002f24: 02208f33 mul t5,ra,sp
+ 80002f28: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002f2c: 00200293 li t0,2
+ 80002f30: fe5212e3 bne tp,t0,80002f14 <test_25+0x4>
+ 80002f34: 0a500e93 li t4,165
+ 80002f38: 01900193 li gp,25
+ 80002f3c: 05df1c63 bne t5,t4,80002f94 <fail>
+
+0000000080002f40 <test_26>:
+ 80002f40: 01f00093 li ra,31
+ 80002f44: 02100133 mul sp,zero,ra
+ 80002f48: 00000e93 li t4,0
+ 80002f4c: 01a00193 li gp,26
+ 80002f50: 05d11263 bne sp,t4,80002f94 <fail>
+
+0000000080002f54 <test_27>:
+ 80002f54: 02000093 li ra,32
+ 80002f58: 02008133 mul sp,ra,zero
+ 80002f5c: 00000e93 li t4,0
+ 80002f60: 01b00193 li gp,27
+ 80002f64: 03d11863 bne sp,t4,80002f94 <fail>
+
+0000000080002f68 <test_28>:
+ 80002f68: 020000b3 mul ra,zero,zero
+ 80002f6c: 00000e93 li t4,0
+ 80002f70: 01c00193 li gp,28
+ 80002f74: 03d09063 bne ra,t4,80002f94 <fail>
+
+0000000080002f78 <test_29>:
+ 80002f78: 02100093 li ra,33
+ 80002f7c: 02200113 li sp,34
+ 80002f80: 02208033 mul zero,ra,sp
+ 80002f84: 00000e93 li t4,0
+ 80002f88: 01d00193 li gp,29
+ 80002f8c: 01d01463 bne zero,t4,80002f94 <fail>
+ 80002f90: 00301a63 bne zero,gp,80002fa4 <pass>
+
+0000000080002f94 <fail>:
+ 80002f94: 00119513 slli a0,gp,0x1
+ 80002f98: 00050063 beqz a0,80002f98 <fail+0x4>
+ 80002f9c: 00156513 ori a0,a0,1
+ 80002fa0: 00000073 ecall
+
+0000000080002fa4 <pass>:
+ 80002fa4: 00100513 li a0,1
+ 80002fa8: 00000073 ecall
+ 80002fac: c0001073 unimp
diff --git a/test/tests/rv64um-v-mul.elf b/test/tests/rv64um-v-mul.elf
new file mode 100644
index 0000000..64107a2
--- /dev/null
+++ b/test/tests/rv64um-v-mul.elf
Binary files differ
diff --git a/test/tests/rv64um-v-mulh.dump b/test/tests/rv64um-v-mulh.dump
new file mode 100644
index 0000000..17befcd
--- /dev/null
+++ b/test/tests/rv64um-v-mulh.dump
@@ -0,0 +1,1179 @@
+
+rv64um-v-mulh: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <handle_reset>:
+ 8000000c: 00000297 auipc t0,0x0
+ 80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+ 80000014: 30529073 csrw mtvec,t0
+ 80000018: 00009117 auipc sp,0x9
+ 8000001c: 6b810113 addi sp,sp,1720 # 800096d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00002617 auipc a2,0x2
+ 80002318: cec60613 addi a2,a2,-788 # 80004000 <begin_signature>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00006797 auipc a5,0x6
+ 80002334: 4b878793 addi a5,a5,1208 # 800087e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00006717 auipc a4,0x6
+ 80002348: 49c70713 addi a4,a4,1180 # 800087e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00006897 auipc a7,0x6
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800087e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00006797 auipc a5,0x6
+ 80002384: 07078793 addi a5,a5,112 # 800083f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf7810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00006797 auipc a5,0x6
+ 80002448: 3807be23 sd zero,924(a5) # 800087e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00001697 auipc a3,0x1
+ 8000245c: b0068693 addi a3,a3,-1280 # 80002f58 <pass+0xc>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00001617 auipc a2,0x1
+ 800024b8: b3460613 addi a2,a2,-1228 # 80002fe8 <pass+0x9c>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00001617 auipc a2,0x1
+ 80002508: afc60613 addi a2,a2,-1284 # 80003000 <pass+0xb4>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00001697 auipc a3,0x1
+ 80002558: a4c68693 addi a3,a3,-1460 # 80002fa0 <pass+0x54>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00001697 auipc a3,0x1
+ 80002674: a6868693 addi a3,a3,-1432 # 800030d8 <pass+0x18c>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00001617 auipc a2,0x1
+ 800026cc: 9e860613 addi a2,a2,-1560 # 800030b0 <pass+0x164>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00006d17 auipc s10,0x6
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800083f0 <user_mapping>
+ 80002724: 00002b97 auipc s7,0x2
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80004000 <begin_signature>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00006a17 auipc s4,0x6
+ 80002738: 0aca0a13 addi s4,s4,172 # 800087e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00006717 auipc a4,0x6
+ 8000274c: 08f73c23 sd a5,152(a4) # 800087e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00006717 auipc a4,0x6
+ 800027d4: 00f73823 sd a5,16(a4) # 800087e0 <freelist_tail>
+ 800027d8: 00006717 auipc a4,0x6
+ 800027dc: 00f73823 sd a5,16(a4) # 800087e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00001697 auipc a3,0x1
+ 800027f0: 91c68693 addi a3,a3,-1764 # 80003108 <pass+0x1bc>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00001697 auipc a3,0x1
+ 80002840: 83c68693 addi a3,a3,-1988 # 80003078 <pass+0x12c>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 7cc68693 addi a3,a3,1996 # 80003040 <pass+0xf4>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00002697 auipc a3,0x2
+ 800028e0: 72468693 addi a3,a3,1828 # 80005000 <begin_signature+0x1000>
+ 800028e4: 00003717 auipc a4,0x3
+ 800028e8: 71c70713 addi a4,a4,1820 # 80006000 <begin_signature+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00004797 auipc a5,0x4
+ 800028f8: 70c78793 addi a5,a5,1804 # 80007000 <begin_signature+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00001897 auipc a7,0x1
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80004000 <begin_signature>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00002697 auipc a3,0x2
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80004ff8 <begin_signature+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00001617 auipc a2,0x1
+ 80002938: 6cc60613 addi a2,a2,1740 # 80004000 <begin_signature>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00004697 auipc a3,0x4
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80006ff8 <begin_signature+0x2ff8>
+ 8000294c: 00002717 auipc a4,0x2
+ 80002950: 6af73a23 sd a5,1716(a4) # 80005000 <begin_signature+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00005697 auipc a3,0x5
+ 800029c0: 64468693 addi a3,a3,1604 # 80008000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00006617 auipc a2,0x6
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800087e8 <freelist_head>
+ 800029d4: 00006797 auipc a5,0x6
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800087e0 <freelist_tail>
+ 800029dc: 00006317 auipc t1,0x6
+ 800029e0: a1430313 addi t1,t1,-1516 # 800083f0 <user_mapping>
+ 800029e4: 01700793 li a5,23
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00006797 auipc a5,0x6
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800083e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 0cb6d7b7 lui a5,0xcb6d
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: 32278793 addi a5,a5,802 # cb6d322 <_start-0x73492cde>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 00000093 li ra,0
+ 80002acc: 00000113 li sp,0
+ 80002ad0: 02209f33 mulh t5,ra,sp
+ 80002ad4: 00000e93 li t4,0
+ 80002ad8: 00200193 li gp,2
+ 80002adc: 47df1063 bne t5,t4,80002f3c <fail>
+
+0000000080002ae0 <test_3>:
+ 80002ae0: 00100093 li ra,1
+ 80002ae4: 00100113 li sp,1
+ 80002ae8: 02209f33 mulh t5,ra,sp
+ 80002aec: 00000e93 li t4,0
+ 80002af0: 00300193 li gp,3
+ 80002af4: 45df1463 bne t5,t4,80002f3c <fail>
+
+0000000080002af8 <test_4>:
+ 80002af8: 00300093 li ra,3
+ 80002afc: 00700113 li sp,7
+ 80002b00: 02209f33 mulh t5,ra,sp
+ 80002b04: 00000e93 li t4,0
+ 80002b08: 00400193 li gp,4
+ 80002b0c: 43df1863 bne t5,t4,80002f3c <fail>
+
+0000000080002b10 <test_5>:
+ 80002b10: 00000093 li ra,0
+ 80002b14: ffff8137 lui sp,0xffff8
+ 80002b18: 02209f33 mulh t5,ra,sp
+ 80002b1c: 00000e93 li t4,0
+ 80002b20: 00500193 li gp,5
+ 80002b24: 41df1c63 bne t5,t4,80002f3c <fail>
+
+0000000080002b28 <test_6>:
+ 80002b28: 800000b7 lui ra,0x80000
+ 80002b2c: 00000113 li sp,0
+ 80002b30: 02209f33 mulh t5,ra,sp
+ 80002b34: 00000e93 li t4,0
+ 80002b38: 00600193 li gp,6
+ 80002b3c: 41df1063 bne t5,t4,80002f3c <fail>
+
+0000000080002b40 <test_7>:
+ 80002b40: 800000b7 lui ra,0x80000
+ 80002b44: ffff8137 lui sp,0xffff8
+ 80002b48: 02209f33 mulh t5,ra,sp
+ 80002b4c: 00000e93 li t4,0
+ 80002b50: 00700193 li gp,7
+ 80002b54: 3fdf1463 bne t5,t4,80002f3c <fail>
+
+0000000080002b58 <test_8>:
+ 80002b58: 00d0009b addiw ra,zero,13
+ 80002b5c: 02009093 slli ra,ra,0x20
+ 80002b60: 00b0011b addiw sp,zero,11
+ 80002b64: 02011113 slli sp,sp,0x20
+ 80002b68: 022090b3 mulh ra,ra,sp
+ 80002b6c: 08f00e93 li t4,143
+ 80002b70: 00800193 li gp,8
+ 80002b74: 3dd09463 bne ra,t4,80002f3c <fail>
+
+0000000080002b78 <test_9>:
+ 80002b78: 0070009b addiw ra,zero,7
+ 80002b7c: 02109093 slli ra,ra,0x21
+ 80002b80: 00b0011b addiw sp,zero,11
+ 80002b84: 02011113 slli sp,sp,0x20
+ 80002b88: 02209133 mulh sp,ra,sp
+ 80002b8c: 09a00e93 li t4,154
+ 80002b90: 00900193 li gp,9
+ 80002b94: 3bd11463 bne sp,t4,80002f3c <fail>
+
+0000000080002b98 <test_10>:
+ 80002b98: 00d0009b addiw ra,zero,13
+ 80002b9c: 02009093 slli ra,ra,0x20
+ 80002ba0: 021090b3 mulh ra,ra,ra
+ 80002ba4: 0a900e93 li t4,169
+ 80002ba8: 00a00193 li gp,10
+ 80002bac: 39d09863 bne ra,t4,80002f3c <fail>
+
+0000000080002bb0 <test_11>:
+ 80002bb0: 00000213 li tp,0
+ 80002bb4: 00d0009b addiw ra,zero,13
+ 80002bb8: 02009093 slli ra,ra,0x20
+ 80002bbc: 00b0011b addiw sp,zero,11
+ 80002bc0: 02011113 slli sp,sp,0x20
+ 80002bc4: 02209f33 mulh t5,ra,sp
+ 80002bc8: 000f0313 mv t1,t5
+ 80002bcc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002bd0: 00200293 li t0,2
+ 80002bd4: fe5210e3 bne tp,t0,80002bb4 <test_11+0x4>
+ 80002bd8: 08f00e93 li t4,143
+ 80002bdc: 00b00193 li gp,11
+ 80002be0: 35d31e63 bne t1,t4,80002f3c <fail>
+
+0000000080002be4 <test_12>:
+ 80002be4: 00000213 li tp,0
+ 80002be8: 0070009b addiw ra,zero,7
+ 80002bec: 02109093 slli ra,ra,0x21
+ 80002bf0: 00b0011b addiw sp,zero,11
+ 80002bf4: 02011113 slli sp,sp,0x20
+ 80002bf8: 02209f33 mulh t5,ra,sp
+ 80002bfc: 00000013 nop
+ 80002c00: 000f0313 mv t1,t5
+ 80002c04: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c08: 00200293 li t0,2
+ 80002c0c: fc521ee3 bne tp,t0,80002be8 <test_12+0x4>
+ 80002c10: 09a00e93 li t4,154
+ 80002c14: 00c00193 li gp,12
+ 80002c18: 33d31263 bne t1,t4,80002f3c <fail>
+
+0000000080002c1c <test_13>:
+ 80002c1c: 00000213 li tp,0
+ 80002c20: 00f0009b addiw ra,zero,15
+ 80002c24: 02009093 slli ra,ra,0x20
+ 80002c28: 00b0011b addiw sp,zero,11
+ 80002c2c: 02011113 slli sp,sp,0x20
+ 80002c30: 02209f33 mulh t5,ra,sp
+ 80002c34: 00000013 nop
+ 80002c38: 00000013 nop
+ 80002c3c: 000f0313 mv t1,t5
+ 80002c40: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c44: 00200293 li t0,2
+ 80002c48: fc521ce3 bne tp,t0,80002c20 <test_13+0x4>
+ 80002c4c: 0a500e93 li t4,165
+ 80002c50: 00d00193 li gp,13
+ 80002c54: 2fd31463 bne t1,t4,80002f3c <fail>
+
+0000000080002c58 <test_14>:
+ 80002c58: 00000213 li tp,0
+ 80002c5c: 00d0009b addiw ra,zero,13
+ 80002c60: 02009093 slli ra,ra,0x20
+ 80002c64: 00b0011b addiw sp,zero,11
+ 80002c68: 02011113 slli sp,sp,0x20
+ 80002c6c: 02209f33 mulh t5,ra,sp
+ 80002c70: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c74: 00200293 li t0,2
+ 80002c78: fe5212e3 bne tp,t0,80002c5c <test_14+0x4>
+ 80002c7c: 08f00e93 li t4,143
+ 80002c80: 00e00193 li gp,14
+ 80002c84: 2bdf1c63 bne t5,t4,80002f3c <fail>
+
+0000000080002c88 <test_15>:
+ 80002c88: 00000213 li tp,0
+ 80002c8c: 0070009b addiw ra,zero,7
+ 80002c90: 02109093 slli ra,ra,0x21
+ 80002c94: 00b0011b addiw sp,zero,11
+ 80002c98: 02011113 slli sp,sp,0x20
+ 80002c9c: 00000013 nop
+ 80002ca0: 02209f33 mulh t5,ra,sp
+ 80002ca4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ca8: 00200293 li t0,2
+ 80002cac: fe5210e3 bne tp,t0,80002c8c <test_15+0x4>
+ 80002cb0: 09a00e93 li t4,154
+ 80002cb4: 00f00193 li gp,15
+ 80002cb8: 29df1263 bne t5,t4,80002f3c <fail>
+
+0000000080002cbc <test_16>:
+ 80002cbc: 00000213 li tp,0
+ 80002cc0: 00f0009b addiw ra,zero,15
+ 80002cc4: 02009093 slli ra,ra,0x20
+ 80002cc8: 00b0011b addiw sp,zero,11
+ 80002ccc: 02011113 slli sp,sp,0x20
+ 80002cd0: 00000013 nop
+ 80002cd4: 00000013 nop
+ 80002cd8: 02209f33 mulh t5,ra,sp
+ 80002cdc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ce0: 00200293 li t0,2
+ 80002ce4: fc521ee3 bne tp,t0,80002cc0 <test_16+0x4>
+ 80002ce8: 0a500e93 li t4,165
+ 80002cec: 01000193 li gp,16
+ 80002cf0: 25df1663 bne t5,t4,80002f3c <fail>
+
+0000000080002cf4 <test_17>:
+ 80002cf4: 00000213 li tp,0
+ 80002cf8: 00d0009b addiw ra,zero,13
+ 80002cfc: 02009093 slli ra,ra,0x20
+ 80002d00: 00000013 nop
+ 80002d04: 00b0011b addiw sp,zero,11
+ 80002d08: 02011113 slli sp,sp,0x20
+ 80002d0c: 02209f33 mulh t5,ra,sp
+ 80002d10: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d14: 00200293 li t0,2
+ 80002d18: fe5210e3 bne tp,t0,80002cf8 <test_17+0x4>
+ 80002d1c: 08f00e93 li t4,143
+ 80002d20: 01100193 li gp,17
+ 80002d24: 21df1c63 bne t5,t4,80002f3c <fail>
+
+0000000080002d28 <test_18>:
+ 80002d28: 00000213 li tp,0
+ 80002d2c: 0070009b addiw ra,zero,7
+ 80002d30: 02109093 slli ra,ra,0x21
+ 80002d34: 00000013 nop
+ 80002d38: 00b0011b addiw sp,zero,11
+ 80002d3c: 02011113 slli sp,sp,0x20
+ 80002d40: 00000013 nop
+ 80002d44: 02209f33 mulh t5,ra,sp
+ 80002d48: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d4c: 00200293 li t0,2
+ 80002d50: fc521ee3 bne tp,t0,80002d2c <test_18+0x4>
+ 80002d54: 09a00e93 li t4,154
+ 80002d58: 01200193 li gp,18
+ 80002d5c: 1fdf1063 bne t5,t4,80002f3c <fail>
+
+0000000080002d60 <test_19>:
+ 80002d60: 00000213 li tp,0
+ 80002d64: 00f0009b addiw ra,zero,15
+ 80002d68: 02009093 slli ra,ra,0x20
+ 80002d6c: 00000013 nop
+ 80002d70: 00000013 nop
+ 80002d74: 00b0011b addiw sp,zero,11
+ 80002d78: 02011113 slli sp,sp,0x20
+ 80002d7c: 02209f33 mulh t5,ra,sp
+ 80002d80: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d84: 00200293 li t0,2
+ 80002d88: fc521ee3 bne tp,t0,80002d64 <test_19+0x4>
+ 80002d8c: 0a500e93 li t4,165
+ 80002d90: 01300193 li gp,19
+ 80002d94: 1bdf1463 bne t5,t4,80002f3c <fail>
+
+0000000080002d98 <test_20>:
+ 80002d98: 00000213 li tp,0
+ 80002d9c: 00b0011b addiw sp,zero,11
+ 80002da0: 02011113 slli sp,sp,0x20
+ 80002da4: 00d0009b addiw ra,zero,13
+ 80002da8: 02009093 slli ra,ra,0x20
+ 80002dac: 02209f33 mulh t5,ra,sp
+ 80002db0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002db4: 00200293 li t0,2
+ 80002db8: fe5212e3 bne tp,t0,80002d9c <test_20+0x4>
+ 80002dbc: 08f00e93 li t4,143
+ 80002dc0: 01400193 li gp,20
+ 80002dc4: 17df1c63 bne t5,t4,80002f3c <fail>
+
+0000000080002dc8 <test_21>:
+ 80002dc8: 00000213 li tp,0
+ 80002dcc: 00b0011b addiw sp,zero,11
+ 80002dd0: 02011113 slli sp,sp,0x20
+ 80002dd4: 0070009b addiw ra,zero,7
+ 80002dd8: 02109093 slli ra,ra,0x21
+ 80002ddc: 00000013 nop
+ 80002de0: 02209f33 mulh t5,ra,sp
+ 80002de4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002de8: 00200293 li t0,2
+ 80002dec: fe5210e3 bne tp,t0,80002dcc <test_21+0x4>
+ 80002df0: 09a00e93 li t4,154
+ 80002df4: 01500193 li gp,21
+ 80002df8: 15df1263 bne t5,t4,80002f3c <fail>
+
+0000000080002dfc <test_22>:
+ 80002dfc: 00000213 li tp,0
+ 80002e00: 00b0011b addiw sp,zero,11
+ 80002e04: 02011113 slli sp,sp,0x20
+ 80002e08: 00f0009b addiw ra,zero,15
+ 80002e0c: 02009093 slli ra,ra,0x20
+ 80002e10: 00000013 nop
+ 80002e14: 00000013 nop
+ 80002e18: 02209f33 mulh t5,ra,sp
+ 80002e1c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e20: 00200293 li t0,2
+ 80002e24: fc521ee3 bne tp,t0,80002e00 <test_22+0x4>
+ 80002e28: 0a500e93 li t4,165
+ 80002e2c: 01600193 li gp,22
+ 80002e30: 11df1663 bne t5,t4,80002f3c <fail>
+
+0000000080002e34 <test_23>:
+ 80002e34: 00000213 li tp,0
+ 80002e38: 00b0011b addiw sp,zero,11
+ 80002e3c: 02011113 slli sp,sp,0x20
+ 80002e40: 00000013 nop
+ 80002e44: 00d0009b addiw ra,zero,13
+ 80002e48: 02009093 slli ra,ra,0x20
+ 80002e4c: 02209f33 mulh t5,ra,sp
+ 80002e50: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e54: 00200293 li t0,2
+ 80002e58: fe5210e3 bne tp,t0,80002e38 <test_23+0x4>
+ 80002e5c: 08f00e93 li t4,143
+ 80002e60: 01700193 li gp,23
+ 80002e64: 0ddf1c63 bne t5,t4,80002f3c <fail>
+
+0000000080002e68 <test_24>:
+ 80002e68: 00000213 li tp,0
+ 80002e6c: 00b0011b addiw sp,zero,11
+ 80002e70: 02011113 slli sp,sp,0x20
+ 80002e74: 00000013 nop
+ 80002e78: 0070009b addiw ra,zero,7
+ 80002e7c: 02109093 slli ra,ra,0x21
+ 80002e80: 00000013 nop
+ 80002e84: 02209f33 mulh t5,ra,sp
+ 80002e88: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e8c: 00200293 li t0,2
+ 80002e90: fc521ee3 bne tp,t0,80002e6c <test_24+0x4>
+ 80002e94: 09a00e93 li t4,154
+ 80002e98: 01800193 li gp,24
+ 80002e9c: 0bdf1063 bne t5,t4,80002f3c <fail>
+
+0000000080002ea0 <test_25>:
+ 80002ea0: 00000213 li tp,0
+ 80002ea4: 00b0011b addiw sp,zero,11
+ 80002ea8: 02011113 slli sp,sp,0x20
+ 80002eac: 00000013 nop
+ 80002eb0: 00000013 nop
+ 80002eb4: 00f0009b addiw ra,zero,15
+ 80002eb8: 02009093 slli ra,ra,0x20
+ 80002ebc: 02209f33 mulh t5,ra,sp
+ 80002ec0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ec4: 00200293 li t0,2
+ 80002ec8: fc521ee3 bne tp,t0,80002ea4 <test_25+0x4>
+ 80002ecc: 0a500e93 li t4,165
+ 80002ed0: 01900193 li gp,25
+ 80002ed4: 07df1463 bne t5,t4,80002f3c <fail>
+
+0000000080002ed8 <test_26>:
+ 80002ed8: 01f0009b addiw ra,zero,31
+ 80002edc: 02009093 slli ra,ra,0x20
+ 80002ee0: 02101133 mulh sp,zero,ra
+ 80002ee4: 00000e93 li t4,0
+ 80002ee8: 01a00193 li gp,26
+ 80002eec: 05d11863 bne sp,t4,80002f3c <fail>
+
+0000000080002ef0 <test_27>:
+ 80002ef0: 0010009b addiw ra,zero,1
+ 80002ef4: 02509093 slli ra,ra,0x25
+ 80002ef8: 02009133 mulh sp,ra,zero
+ 80002efc: 00000e93 li t4,0
+ 80002f00: 01b00193 li gp,27
+ 80002f04: 03d11c63 bne sp,t4,80002f3c <fail>
+
+0000000080002f08 <test_28>:
+ 80002f08: 020010b3 mulh ra,zero,zero
+ 80002f0c: 00000e93 li t4,0
+ 80002f10: 01c00193 li gp,28
+ 80002f14: 03d09463 bne ra,t4,80002f3c <fail>
+
+0000000080002f18 <test_29>:
+ 80002f18: 0210009b addiw ra,zero,33
+ 80002f1c: 02009093 slli ra,ra,0x20
+ 80002f20: 0110011b addiw sp,zero,17
+ 80002f24: 02111113 slli sp,sp,0x21
+ 80002f28: 02209033 mulh zero,ra,sp
+ 80002f2c: 00000e93 li t4,0
+ 80002f30: 01d00193 li gp,29
+ 80002f34: 01d01463 bne zero,t4,80002f3c <fail>
+ 80002f38: 00301a63 bne zero,gp,80002f4c <pass>
+
+0000000080002f3c <fail>:
+ 80002f3c: 00119513 slli a0,gp,0x1
+ 80002f40: 00050063 beqz a0,80002f40 <fail+0x4>
+ 80002f44: 00156513 ori a0,a0,1
+ 80002f48: 00000073 ecall
+
+0000000080002f4c <pass>:
+ 80002f4c: 00100513 li a0,1
+ 80002f50: 00000073 ecall
+ 80002f54: c0001073 unimp
diff --git a/test/tests/rv64um-v-mulh.elf b/test/tests/rv64um-v-mulh.elf
new file mode 100644
index 0000000..a644ac4
--- /dev/null
+++ b/test/tests/rv64um-v-mulh.elf
Binary files differ
diff --git a/test/tests/rv64um-v-mulhsu.dump b/test/tests/rv64um-v-mulhsu.dump
new file mode 100644
index 0000000..061224b
--- /dev/null
+++ b/test/tests/rv64um-v-mulhsu.dump
@@ -0,0 +1,1179 @@
+
+rv64um-v-mulhsu: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <handle_reset>:
+ 8000000c: 00000297 auipc t0,0x0
+ 80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+ 80000014: 30529073 csrw mtvec,t0
+ 80000018: 00009117 auipc sp,0x9
+ 8000001c: 6b810113 addi sp,sp,1720 # 800096d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00002617 auipc a2,0x2
+ 80002318: cec60613 addi a2,a2,-788 # 80004000 <begin_signature>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00006797 auipc a5,0x6
+ 80002334: 4b878793 addi a5,a5,1208 # 800087e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00006717 auipc a4,0x6
+ 80002348: 49c70713 addi a4,a4,1180 # 800087e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00006897 auipc a7,0x6
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800087e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00006797 auipc a5,0x6
+ 80002384: 07078793 addi a5,a5,112 # 800083f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf7810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00006797 auipc a5,0x6
+ 80002448: 3807be23 sd zero,924(a5) # 800087e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00001697 auipc a3,0x1
+ 8000245c: b0068693 addi a3,a3,-1280 # 80002f58 <pass+0xc>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00001617 auipc a2,0x1
+ 800024b8: b3460613 addi a2,a2,-1228 # 80002fe8 <pass+0x9c>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00001617 auipc a2,0x1
+ 80002508: afc60613 addi a2,a2,-1284 # 80003000 <pass+0xb4>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00001697 auipc a3,0x1
+ 80002558: a4c68693 addi a3,a3,-1460 # 80002fa0 <pass+0x54>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00001697 auipc a3,0x1
+ 80002674: a6868693 addi a3,a3,-1432 # 800030d8 <pass+0x18c>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00001617 auipc a2,0x1
+ 800026cc: 9e860613 addi a2,a2,-1560 # 800030b0 <pass+0x164>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00006d17 auipc s10,0x6
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800083f0 <user_mapping>
+ 80002724: 00002b97 auipc s7,0x2
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80004000 <begin_signature>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00006a17 auipc s4,0x6
+ 80002738: 0aca0a13 addi s4,s4,172 # 800087e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00006717 auipc a4,0x6
+ 8000274c: 08f73c23 sd a5,152(a4) # 800087e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00006717 auipc a4,0x6
+ 800027d4: 00f73823 sd a5,16(a4) # 800087e0 <freelist_tail>
+ 800027d8: 00006717 auipc a4,0x6
+ 800027dc: 00f73823 sd a5,16(a4) # 800087e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00001697 auipc a3,0x1
+ 800027f0: 91c68693 addi a3,a3,-1764 # 80003108 <pass+0x1bc>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00001697 auipc a3,0x1
+ 80002840: 83c68693 addi a3,a3,-1988 # 80003078 <pass+0x12c>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 7cc68693 addi a3,a3,1996 # 80003040 <pass+0xf4>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00002697 auipc a3,0x2
+ 800028e0: 72468693 addi a3,a3,1828 # 80005000 <begin_signature+0x1000>
+ 800028e4: 00003717 auipc a4,0x3
+ 800028e8: 71c70713 addi a4,a4,1820 # 80006000 <begin_signature+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00004797 auipc a5,0x4
+ 800028f8: 70c78793 addi a5,a5,1804 # 80007000 <begin_signature+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00001897 auipc a7,0x1
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80004000 <begin_signature>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00002697 auipc a3,0x2
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80004ff8 <begin_signature+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00001617 auipc a2,0x1
+ 80002938: 6cc60613 addi a2,a2,1740 # 80004000 <begin_signature>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00004697 auipc a3,0x4
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80006ff8 <begin_signature+0x2ff8>
+ 8000294c: 00002717 auipc a4,0x2
+ 80002950: 6af73a23 sd a5,1716(a4) # 80005000 <begin_signature+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00005697 auipc a3,0x5
+ 800029c0: 64468693 addi a3,a3,1604 # 80008000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00006617 auipc a2,0x6
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800087e8 <freelist_head>
+ 800029d4: 00006797 auipc a5,0x6
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800087e0 <freelist_tail>
+ 800029dc: 00006317 auipc t1,0x6
+ 800029e0: a1430313 addi t1,t1,-1516 # 800083f0 <user_mapping>
+ 800029e4: 01000793 li a5,16
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00006797 auipc a5,0x6
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800083e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 09a677b7 lui a5,0x9a67
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: d4078793 addi a5,a5,-704 # 9a66d40 <_start-0x765992c0>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 00000093 li ra,0
+ 80002acc: 00000113 li sp,0
+ 80002ad0: 0220af33 mulhsu t5,ra,sp
+ 80002ad4: 00000e93 li t4,0
+ 80002ad8: 00200193 li gp,2
+ 80002adc: 47df1063 bne t5,t4,80002f3c <fail>
+
+0000000080002ae0 <test_3>:
+ 80002ae0: 00100093 li ra,1
+ 80002ae4: 00100113 li sp,1
+ 80002ae8: 0220af33 mulhsu t5,ra,sp
+ 80002aec: 00000e93 li t4,0
+ 80002af0: 00300193 li gp,3
+ 80002af4: 45df1463 bne t5,t4,80002f3c <fail>
+
+0000000080002af8 <test_4>:
+ 80002af8: 00300093 li ra,3
+ 80002afc: 00700113 li sp,7
+ 80002b00: 0220af33 mulhsu t5,ra,sp
+ 80002b04: 00000e93 li t4,0
+ 80002b08: 00400193 li gp,4
+ 80002b0c: 43df1863 bne t5,t4,80002f3c <fail>
+
+0000000080002b10 <test_5>:
+ 80002b10: 00000093 li ra,0
+ 80002b14: ffff8137 lui sp,0xffff8
+ 80002b18: 0220af33 mulhsu t5,ra,sp
+ 80002b1c: 00000e93 li t4,0
+ 80002b20: 00500193 li gp,5
+ 80002b24: 41df1c63 bne t5,t4,80002f3c <fail>
+
+0000000080002b28 <test_6>:
+ 80002b28: 800000b7 lui ra,0x80000
+ 80002b2c: 00000113 li sp,0
+ 80002b30: 0220af33 mulhsu t5,ra,sp
+ 80002b34: 00000e93 li t4,0
+ 80002b38: 00600193 li gp,6
+ 80002b3c: 41df1063 bne t5,t4,80002f3c <fail>
+
+0000000080002b40 <test_7>:
+ 80002b40: 800000b7 lui ra,0x80000
+ 80002b44: ffff8137 lui sp,0xffff8
+ 80002b48: 0220af33 mulhsu t5,ra,sp
+ 80002b4c: 80000eb7 lui t4,0x80000
+ 80002b50: 00700193 li gp,7
+ 80002b54: 3fdf1463 bne t5,t4,80002f3c <fail>
+
+0000000080002b58 <test_8>:
+ 80002b58: 00d0009b addiw ra,zero,13
+ 80002b5c: 02009093 slli ra,ra,0x20
+ 80002b60: 00b0011b addiw sp,zero,11
+ 80002b64: 02011113 slli sp,sp,0x20
+ 80002b68: 0220a0b3 mulhsu ra,ra,sp
+ 80002b6c: 08f00e93 li t4,143
+ 80002b70: 00800193 li gp,8
+ 80002b74: 3dd09463 bne ra,t4,80002f3c <fail>
+
+0000000080002b78 <test_9>:
+ 80002b78: 0070009b addiw ra,zero,7
+ 80002b7c: 02109093 slli ra,ra,0x21
+ 80002b80: 00b0011b addiw sp,zero,11
+ 80002b84: 02011113 slli sp,sp,0x20
+ 80002b88: 0220a133 mulhsu sp,ra,sp
+ 80002b8c: 09a00e93 li t4,154
+ 80002b90: 00900193 li gp,9
+ 80002b94: 3bd11463 bne sp,t4,80002f3c <fail>
+
+0000000080002b98 <test_10>:
+ 80002b98: 00d0009b addiw ra,zero,13
+ 80002b9c: 02009093 slli ra,ra,0x20
+ 80002ba0: 0210a0b3 mulhsu ra,ra,ra
+ 80002ba4: 0a900e93 li t4,169
+ 80002ba8: 00a00193 li gp,10
+ 80002bac: 39d09863 bne ra,t4,80002f3c <fail>
+
+0000000080002bb0 <test_11>:
+ 80002bb0: 00000213 li tp,0
+ 80002bb4: 00d0009b addiw ra,zero,13
+ 80002bb8: 02009093 slli ra,ra,0x20
+ 80002bbc: 00b0011b addiw sp,zero,11
+ 80002bc0: 02011113 slli sp,sp,0x20
+ 80002bc4: 0220af33 mulhsu t5,ra,sp
+ 80002bc8: 000f0313 mv t1,t5
+ 80002bcc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002bd0: 00200293 li t0,2
+ 80002bd4: fe5210e3 bne tp,t0,80002bb4 <test_11+0x4>
+ 80002bd8: 08f00e93 li t4,143
+ 80002bdc: 00b00193 li gp,11
+ 80002be0: 35d31e63 bne t1,t4,80002f3c <fail>
+
+0000000080002be4 <test_12>:
+ 80002be4: 00000213 li tp,0
+ 80002be8: 0070009b addiw ra,zero,7
+ 80002bec: 02109093 slli ra,ra,0x21
+ 80002bf0: 00b0011b addiw sp,zero,11
+ 80002bf4: 02011113 slli sp,sp,0x20
+ 80002bf8: 0220af33 mulhsu t5,ra,sp
+ 80002bfc: 00000013 nop
+ 80002c00: 000f0313 mv t1,t5
+ 80002c04: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c08: 00200293 li t0,2
+ 80002c0c: fc521ee3 bne tp,t0,80002be8 <test_12+0x4>
+ 80002c10: 09a00e93 li t4,154
+ 80002c14: 00c00193 li gp,12
+ 80002c18: 33d31263 bne t1,t4,80002f3c <fail>
+
+0000000080002c1c <test_13>:
+ 80002c1c: 00000213 li tp,0
+ 80002c20: 00f0009b addiw ra,zero,15
+ 80002c24: 02009093 slli ra,ra,0x20
+ 80002c28: 00b0011b addiw sp,zero,11
+ 80002c2c: 02011113 slli sp,sp,0x20
+ 80002c30: 0220af33 mulhsu t5,ra,sp
+ 80002c34: 00000013 nop
+ 80002c38: 00000013 nop
+ 80002c3c: 000f0313 mv t1,t5
+ 80002c40: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c44: 00200293 li t0,2
+ 80002c48: fc521ce3 bne tp,t0,80002c20 <test_13+0x4>
+ 80002c4c: 0a500e93 li t4,165
+ 80002c50: 00d00193 li gp,13
+ 80002c54: 2fd31463 bne t1,t4,80002f3c <fail>
+
+0000000080002c58 <test_14>:
+ 80002c58: 00000213 li tp,0
+ 80002c5c: 00d0009b addiw ra,zero,13
+ 80002c60: 02009093 slli ra,ra,0x20
+ 80002c64: 00b0011b addiw sp,zero,11
+ 80002c68: 02011113 slli sp,sp,0x20
+ 80002c6c: 0220af33 mulhsu t5,ra,sp
+ 80002c70: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c74: 00200293 li t0,2
+ 80002c78: fe5212e3 bne tp,t0,80002c5c <test_14+0x4>
+ 80002c7c: 08f00e93 li t4,143
+ 80002c80: 00e00193 li gp,14
+ 80002c84: 2bdf1c63 bne t5,t4,80002f3c <fail>
+
+0000000080002c88 <test_15>:
+ 80002c88: 00000213 li tp,0
+ 80002c8c: 0070009b addiw ra,zero,7
+ 80002c90: 02109093 slli ra,ra,0x21
+ 80002c94: 00b0011b addiw sp,zero,11
+ 80002c98: 02011113 slli sp,sp,0x20
+ 80002c9c: 00000013 nop
+ 80002ca0: 0220af33 mulhsu t5,ra,sp
+ 80002ca4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ca8: 00200293 li t0,2
+ 80002cac: fe5210e3 bne tp,t0,80002c8c <test_15+0x4>
+ 80002cb0: 09a00e93 li t4,154
+ 80002cb4: 00f00193 li gp,15
+ 80002cb8: 29df1263 bne t5,t4,80002f3c <fail>
+
+0000000080002cbc <test_16>:
+ 80002cbc: 00000213 li tp,0
+ 80002cc0: 00f0009b addiw ra,zero,15
+ 80002cc4: 02009093 slli ra,ra,0x20
+ 80002cc8: 00b0011b addiw sp,zero,11
+ 80002ccc: 02011113 slli sp,sp,0x20
+ 80002cd0: 00000013 nop
+ 80002cd4: 00000013 nop
+ 80002cd8: 0220af33 mulhsu t5,ra,sp
+ 80002cdc: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ce0: 00200293 li t0,2
+ 80002ce4: fc521ee3 bne tp,t0,80002cc0 <test_16+0x4>
+ 80002ce8: 0a500e93 li t4,165
+ 80002cec: 01000193 li gp,16
+ 80002cf0: 25df1663 bne t5,t4,80002f3c <fail>
+
+0000000080002cf4 <test_17>:
+ 80002cf4: 00000213 li tp,0
+ 80002cf8: 00d0009b addiw ra,zero,13
+ 80002cfc: 02009093 slli ra,ra,0x20
+ 80002d00: 00000013 nop
+ 80002d04: 00b0011b addiw sp,zero,11
+ 80002d08: 02011113 slli sp,sp,0x20
+ 80002d0c: 0220af33 mulhsu t5,ra,sp
+ 80002d10: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d14: 00200293 li t0,2
+ 80002d18: fe5210e3 bne tp,t0,80002cf8 <test_17+0x4>
+ 80002d1c: 08f00e93 li t4,143
+ 80002d20: 01100193 li gp,17
+ 80002d24: 21df1c63 bne t5,t4,80002f3c <fail>
+
+0000000080002d28 <test_18>:
+ 80002d28: 00000213 li tp,0
+ 80002d2c: 0070009b addiw ra,zero,7
+ 80002d30: 02109093 slli ra,ra,0x21
+ 80002d34: 00000013 nop
+ 80002d38: 00b0011b addiw sp,zero,11
+ 80002d3c: 02011113 slli sp,sp,0x20
+ 80002d40: 00000013 nop
+ 80002d44: 0220af33 mulhsu t5,ra,sp
+ 80002d48: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d4c: 00200293 li t0,2
+ 80002d50: fc521ee3 bne tp,t0,80002d2c <test_18+0x4>
+ 80002d54: 09a00e93 li t4,154
+ 80002d58: 01200193 li gp,18
+ 80002d5c: 1fdf1063 bne t5,t4,80002f3c <fail>
+
+0000000080002d60 <test_19>:
+ 80002d60: 00000213 li tp,0
+ 80002d64: 00f0009b addiw ra,zero,15
+ 80002d68: 02009093 slli ra,ra,0x20
+ 80002d6c: 00000013 nop
+ 80002d70: 00000013 nop
+ 80002d74: 00b0011b addiw sp,zero,11
+ 80002d78: 02011113 slli sp,sp,0x20
+ 80002d7c: 0220af33 mulhsu t5,ra,sp
+ 80002d80: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d84: 00200293 li t0,2
+ 80002d88: fc521ee3 bne tp,t0,80002d64 <test_19+0x4>
+ 80002d8c: 0a500e93 li t4,165
+ 80002d90: 01300193 li gp,19
+ 80002d94: 1bdf1463 bne t5,t4,80002f3c <fail>
+
+0000000080002d98 <test_20>:
+ 80002d98: 00000213 li tp,0
+ 80002d9c: 00b0011b addiw sp,zero,11
+ 80002da0: 02011113 slli sp,sp,0x20
+ 80002da4: 00d0009b addiw ra,zero,13
+ 80002da8: 02009093 slli ra,ra,0x20
+ 80002dac: 0220af33 mulhsu t5,ra,sp
+ 80002db0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002db4: 00200293 li t0,2
+ 80002db8: fe5212e3 bne tp,t0,80002d9c <test_20+0x4>
+ 80002dbc: 08f00e93 li t4,143
+ 80002dc0: 01400193 li gp,20
+ 80002dc4: 17df1c63 bne t5,t4,80002f3c <fail>
+
+0000000080002dc8 <test_21>:
+ 80002dc8: 00000213 li tp,0
+ 80002dcc: 00b0011b addiw sp,zero,11
+ 80002dd0: 02011113 slli sp,sp,0x20
+ 80002dd4: 0070009b addiw ra,zero,7
+ 80002dd8: 02109093 slli ra,ra,0x21
+ 80002ddc: 00000013 nop
+ 80002de0: 0220af33 mulhsu t5,ra,sp
+ 80002de4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002de8: 00200293 li t0,2
+ 80002dec: fe5210e3 bne tp,t0,80002dcc <test_21+0x4>
+ 80002df0: 09a00e93 li t4,154
+ 80002df4: 01500193 li gp,21
+ 80002df8: 15df1263 bne t5,t4,80002f3c <fail>
+
+0000000080002dfc <test_22>:
+ 80002dfc: 00000213 li tp,0
+ 80002e00: 00b0011b addiw sp,zero,11
+ 80002e04: 02011113 slli sp,sp,0x20
+ 80002e08: 00f0009b addiw ra,zero,15
+ 80002e0c: 02009093 slli ra,ra,0x20
+ 80002e10: 00000013 nop
+ 80002e14: 00000013 nop
+ 80002e18: 0220af33 mulhsu t5,ra,sp
+ 80002e1c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e20: 00200293 li t0,2
+ 80002e24: fc521ee3 bne tp,t0,80002e00 <test_22+0x4>
+ 80002e28: 0a500e93 li t4,165
+ 80002e2c: 01600193 li gp,22
+ 80002e30: 11df1663 bne t5,t4,80002f3c <fail>
+
+0000000080002e34 <test_23>:
+ 80002e34: 00000213 li tp,0
+ 80002e38: 00b0011b addiw sp,zero,11
+ 80002e3c: 02011113 slli sp,sp,0x20
+ 80002e40: 00000013 nop
+ 80002e44: 00d0009b addiw ra,zero,13
+ 80002e48: 02009093 slli ra,ra,0x20
+ 80002e4c: 0220af33 mulhsu t5,ra,sp
+ 80002e50: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e54: 00200293 li t0,2
+ 80002e58: fe5210e3 bne tp,t0,80002e38 <test_23+0x4>
+ 80002e5c: 08f00e93 li t4,143
+ 80002e60: 01700193 li gp,23
+ 80002e64: 0ddf1c63 bne t5,t4,80002f3c <fail>
+
+0000000080002e68 <test_24>:
+ 80002e68: 00000213 li tp,0
+ 80002e6c: 00b0011b addiw sp,zero,11
+ 80002e70: 02011113 slli sp,sp,0x20
+ 80002e74: 00000013 nop
+ 80002e78: 0070009b addiw ra,zero,7
+ 80002e7c: 02109093 slli ra,ra,0x21
+ 80002e80: 00000013 nop
+ 80002e84: 0220af33 mulhsu t5,ra,sp
+ 80002e88: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e8c: 00200293 li t0,2
+ 80002e90: fc521ee3 bne tp,t0,80002e6c <test_24+0x4>
+ 80002e94: 09a00e93 li t4,154
+ 80002e98: 01800193 li gp,24
+ 80002e9c: 0bdf1063 bne t5,t4,80002f3c <fail>
+
+0000000080002ea0 <test_25>:
+ 80002ea0: 00000213 li tp,0
+ 80002ea4: 00b0011b addiw sp,zero,11
+ 80002ea8: 02011113 slli sp,sp,0x20
+ 80002eac: 00000013 nop
+ 80002eb0: 00000013 nop
+ 80002eb4: 00f0009b addiw ra,zero,15
+ 80002eb8: 02009093 slli ra,ra,0x20
+ 80002ebc: 0220af33 mulhsu t5,ra,sp
+ 80002ec0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ec4: 00200293 li t0,2
+ 80002ec8: fc521ee3 bne tp,t0,80002ea4 <test_25+0x4>
+ 80002ecc: 0a500e93 li t4,165
+ 80002ed0: 01900193 li gp,25
+ 80002ed4: 07df1463 bne t5,t4,80002f3c <fail>
+
+0000000080002ed8 <test_26>:
+ 80002ed8: 01f0009b addiw ra,zero,31
+ 80002edc: 02009093 slli ra,ra,0x20
+ 80002ee0: 02102133 mulhsu sp,zero,ra
+ 80002ee4: 00000e93 li t4,0
+ 80002ee8: 01a00193 li gp,26
+ 80002eec: 05d11863 bne sp,t4,80002f3c <fail>
+
+0000000080002ef0 <test_27>:
+ 80002ef0: 0010009b addiw ra,zero,1
+ 80002ef4: 02509093 slli ra,ra,0x25
+ 80002ef8: 0200a133 mulhsu sp,ra,zero
+ 80002efc: 00000e93 li t4,0
+ 80002f00: 01b00193 li gp,27
+ 80002f04: 03d11c63 bne sp,t4,80002f3c <fail>
+
+0000000080002f08 <test_28>:
+ 80002f08: 020020b3 mulhsu ra,zero,zero
+ 80002f0c: 00000e93 li t4,0
+ 80002f10: 01c00193 li gp,28
+ 80002f14: 03d09463 bne ra,t4,80002f3c <fail>
+
+0000000080002f18 <test_29>:
+ 80002f18: 0210009b addiw ra,zero,33
+ 80002f1c: 02009093 slli ra,ra,0x20
+ 80002f20: 0110011b addiw sp,zero,17
+ 80002f24: 02111113 slli sp,sp,0x21
+ 80002f28: 0220a033 mulhsu zero,ra,sp
+ 80002f2c: 00000e93 li t4,0
+ 80002f30: 01d00193 li gp,29
+ 80002f34: 01d01463 bne zero,t4,80002f3c <fail>
+ 80002f38: 00301a63 bne zero,gp,80002f4c <pass>
+
+0000000080002f3c <fail>:
+ 80002f3c: 00119513 slli a0,gp,0x1
+ 80002f40: 00050063 beqz a0,80002f40 <fail+0x4>
+ 80002f44: 00156513 ori a0,a0,1
+ 80002f48: 00000073 ecall
+
+0000000080002f4c <pass>:
+ 80002f4c: 00100513 li a0,1
+ 80002f50: 00000073 ecall
+ 80002f54: c0001073 unimp
diff --git a/test/tests/rv64um-v-mulhsu.elf b/test/tests/rv64um-v-mulhsu.elf
new file mode 100644
index 0000000..a8afeaa
--- /dev/null
+++ b/test/tests/rv64um-v-mulhsu.elf
Binary files differ
diff --git a/test/tests/rv64um-v-mulhu.dump b/test/tests/rv64um-v-mulhu.dump
new file mode 100644
index 0000000..85b66d0
--- /dev/null
+++ b/test/tests/rv64um-v-mulhu.dump
@@ -0,0 +1,1215 @@
+
+rv64um-v-mulhu: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <handle_reset>:
+ 8000000c: 00000297 auipc t0,0x0
+ 80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+ 80000014: 30529073 csrw mtvec,t0
+ 80000018: 00009117 auipc sp,0x9
+ 8000001c: 6b810113 addi sp,sp,1720 # 800096d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00002617 auipc a2,0x2
+ 80002318: cec60613 addi a2,a2,-788 # 80004000 <begin_signature>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00006797 auipc a5,0x6
+ 80002334: 4b878793 addi a5,a5,1208 # 800087e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00006717 auipc a4,0x6
+ 80002348: 49c70713 addi a4,a4,1180 # 800087e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00006897 auipc a7,0x6
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800087e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00006797 auipc a5,0x6
+ 80002384: 07078793 addi a5,a5,112 # 800083f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf7810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00006797 auipc a5,0x6
+ 80002448: 3807be23 sd zero,924(a5) # 800087e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00001697 auipc a3,0x1
+ 8000245c: b8068693 addi a3,a3,-1152 # 80002fd8 <pass+0xc>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00001617 auipc a2,0x1
+ 800024b8: bb460613 addi a2,a2,-1100 # 80003068 <pass+0x9c>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00001617 auipc a2,0x1
+ 80002508: b7c60613 addi a2,a2,-1156 # 80003080 <pass+0xb4>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00001697 auipc a3,0x1
+ 80002558: acc68693 addi a3,a3,-1332 # 80003020 <pass+0x54>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00001697 auipc a3,0x1
+ 80002674: ae868693 addi a3,a3,-1304 # 80003158 <pass+0x18c>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00001617 auipc a2,0x1
+ 800026cc: a6860613 addi a2,a2,-1432 # 80003130 <pass+0x164>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00006d17 auipc s10,0x6
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800083f0 <user_mapping>
+ 80002724: 00002b97 auipc s7,0x2
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80004000 <begin_signature>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00006a17 auipc s4,0x6
+ 80002738: 0aca0a13 addi s4,s4,172 # 800087e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00006717 auipc a4,0x6
+ 8000274c: 08f73c23 sd a5,152(a4) # 800087e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00006717 auipc a4,0x6
+ 800027d4: 00f73823 sd a5,16(a4) # 800087e0 <freelist_tail>
+ 800027d8: 00006717 auipc a4,0x6
+ 800027dc: 00f73823 sd a5,16(a4) # 800087e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00001697 auipc a3,0x1
+ 800027f0: 99c68693 addi a3,a3,-1636 # 80003188 <pass+0x1bc>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00001697 auipc a3,0x1
+ 80002840: 8bc68693 addi a3,a3,-1860 # 800030f8 <pass+0x12c>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00001697 auipc a3,0x1
+ 80002878: 84c68693 addi a3,a3,-1972 # 800030c0 <pass+0xf4>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00002697 auipc a3,0x2
+ 800028e0: 72468693 addi a3,a3,1828 # 80005000 <begin_signature+0x1000>
+ 800028e4: 00003717 auipc a4,0x3
+ 800028e8: 71c70713 addi a4,a4,1820 # 80006000 <begin_signature+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00004797 auipc a5,0x4
+ 800028f8: 70c78793 addi a5,a5,1804 # 80007000 <begin_signature+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00001897 auipc a7,0x1
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80004000 <begin_signature>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00002697 auipc a3,0x2
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80004ff8 <begin_signature+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00001617 auipc a2,0x1
+ 80002938: 6cc60613 addi a2,a2,1740 # 80004000 <begin_signature>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00004697 auipc a3,0x4
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80006ff8 <begin_signature+0x2ff8>
+ 8000294c: 00002717 auipc a4,0x2
+ 80002950: 6af73a23 sd a5,1716(a4) # 80005000 <begin_signature+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00005697 auipc a3,0x5
+ 800029c0: 64468693 addi a3,a3,1604 # 80008000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00006617 auipc a2,0x6
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800087e8 <freelist_head>
+ 800029d4: 00006797 auipc a5,0x6
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800087e0 <freelist_tail>
+ 800029dc: 00006317 auipc t1,0x6
+ 800029e0: a1430313 addi t1,t1,-1516 # 800083f0 <user_mapping>
+ 800029e4: 03200793 li a5,50
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00006797 auipc a5,0x6
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800083e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 0c0917b7 lui a5,0xc091
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: 24978793 addi a5,a5,585 # c091249 <_start-0x73f6edb7>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 00000093 li ra,0
+ 80002acc: 00000113 li sp,0
+ 80002ad0: 0220bf33 mulhu t5,ra,sp
+ 80002ad4: 00000e93 li t4,0
+ 80002ad8: 00200193 li gp,2
+ 80002adc: 4fdf1063 bne t5,t4,80002fbc <fail>
+
+0000000080002ae0 <test_3>:
+ 80002ae0: 00100093 li ra,1
+ 80002ae4: 00100113 li sp,1
+ 80002ae8: 0220bf33 mulhu t5,ra,sp
+ 80002aec: 00000e93 li t4,0
+ 80002af0: 00300193 li gp,3
+ 80002af4: 4ddf1463 bne t5,t4,80002fbc <fail>
+
+0000000080002af8 <test_4>:
+ 80002af8: 00300093 li ra,3
+ 80002afc: 00700113 li sp,7
+ 80002b00: 0220bf33 mulhu t5,ra,sp
+ 80002b04: 00000e93 li t4,0
+ 80002b08: 00400193 li gp,4
+ 80002b0c: 4bdf1863 bne t5,t4,80002fbc <fail>
+
+0000000080002b10 <test_5>:
+ 80002b10: 00000093 li ra,0
+ 80002b14: ffff8137 lui sp,0xffff8
+ 80002b18: 0220bf33 mulhu t5,ra,sp
+ 80002b1c: 00000e93 li t4,0
+ 80002b20: 00500193 li gp,5
+ 80002b24: 49df1c63 bne t5,t4,80002fbc <fail>
+
+0000000080002b28 <test_6>:
+ 80002b28: 800000b7 lui ra,0x80000
+ 80002b2c: 00000113 li sp,0
+ 80002b30: 0220bf33 mulhu t5,ra,sp
+ 80002b34: 00000e93 li t4,0
+ 80002b38: 00600193 li gp,6
+ 80002b3c: 49df1063 bne t5,t4,80002fbc <fail>
+
+0000000080002b40 <test_7>:
+ 80002b40: 800000b7 lui ra,0x80000
+ 80002b44: ffff8137 lui sp,0xffff8
+ 80002b48: 0220bf33 mulhu t5,ra,sp
+ 80002b4c: ffff0eb7 lui t4,0xffff0
+ 80002b50: fffe8e9b addiw t4,t4,-1
+ 80002b54: 00fe9e93 slli t4,t4,0xf
+ 80002b58: 00700193 li gp,7
+ 80002b5c: 47df1063 bne t5,t4,80002fbc <fail>
+
+0000000080002b60 <test_30>:
+ 80002b60: faaab0b7 lui ra,0xfaaab
+ 80002b64: aab0809b addiw ra,ra,-1365
+ 80002b68: 00c09093 slli ra,ra,0xc
+ 80002b6c: aab08093 addi ra,ra,-1365 # fffffffffaaaaaab <_end+0xffffffff7aaa22bb>
+ 80002b70: 00c09093 slli ra,ra,0xc
+ 80002b74: aab08093 addi ra,ra,-1365
+ 80002b78: 00c09093 slli ra,ra,0xc
+ 80002b7c: aab08093 addi ra,ra,-1365
+ 80002b80: 00030137 lui sp,0x30
+ 80002b84: e7d1011b addiw sp,sp,-387
+ 80002b88: 0220bf33 mulhu t5,ra,sp
+ 80002b8c: 00020eb7 lui t4,0x20
+ 80002b90: efee8e9b addiw t4,t4,-258
+ 80002b94: 01e00193 li gp,30
+ 80002b98: 43df1263 bne t5,t4,80002fbc <fail>
+
+0000000080002b9c <test_31>:
+ 80002b9c: 000300b7 lui ra,0x30
+ 80002ba0: e7d0809b addiw ra,ra,-387
+ 80002ba4: faaab137 lui sp,0xfaaab
+ 80002ba8: aab1011b addiw sp,sp,-1365
+ 80002bac: 00c11113 slli sp,sp,0xc
+ 80002bb0: aab10113 addi sp,sp,-1365 # fffffffffaaaaaab <_end+0xffffffff7aaa22bb>
+ 80002bb4: 00c11113 slli sp,sp,0xc
+ 80002bb8: aab10113 addi sp,sp,-1365
+ 80002bbc: 00c11113 slli sp,sp,0xc
+ 80002bc0: aab10113 addi sp,sp,-1365
+ 80002bc4: 0220bf33 mulhu t5,ra,sp
+ 80002bc8: 00020eb7 lui t4,0x20
+ 80002bcc: efee8e9b addiw t4,t4,-258
+ 80002bd0: 01f00193 li gp,31
+ 80002bd4: 3fdf1463 bne t5,t4,80002fbc <fail>
+
+0000000080002bd8 <test_8>:
+ 80002bd8: 00d0009b addiw ra,zero,13
+ 80002bdc: 02009093 slli ra,ra,0x20
+ 80002be0: 00b0011b addiw sp,zero,11
+ 80002be4: 02011113 slli sp,sp,0x20
+ 80002be8: 0220b0b3 mulhu ra,ra,sp
+ 80002bec: 08f00e93 li t4,143
+ 80002bf0: 00800193 li gp,8
+ 80002bf4: 3dd09463 bne ra,t4,80002fbc <fail>
+
+0000000080002bf8 <test_9>:
+ 80002bf8: 0070009b addiw ra,zero,7
+ 80002bfc: 02109093 slli ra,ra,0x21
+ 80002c00: 00b0011b addiw sp,zero,11
+ 80002c04: 02011113 slli sp,sp,0x20
+ 80002c08: 0220b133 mulhu sp,ra,sp
+ 80002c0c: 09a00e93 li t4,154
+ 80002c10: 00900193 li gp,9
+ 80002c14: 3bd11463 bne sp,t4,80002fbc <fail>
+
+0000000080002c18 <test_10>:
+ 80002c18: 00d0009b addiw ra,zero,13
+ 80002c1c: 02009093 slli ra,ra,0x20
+ 80002c20: 0210b0b3 mulhu ra,ra,ra
+ 80002c24: 0a900e93 li t4,169
+ 80002c28: 00a00193 li gp,10
+ 80002c2c: 39d09863 bne ra,t4,80002fbc <fail>
+
+0000000080002c30 <test_11>:
+ 80002c30: 00000213 li tp,0
+ 80002c34: 00d0009b addiw ra,zero,13
+ 80002c38: 02009093 slli ra,ra,0x20
+ 80002c3c: 00b0011b addiw sp,zero,11
+ 80002c40: 02011113 slli sp,sp,0x20
+ 80002c44: 0220bf33 mulhu t5,ra,sp
+ 80002c48: 000f0313 mv t1,t5
+ 80002c4c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c50: 00200293 li t0,2
+ 80002c54: fe5210e3 bne tp,t0,80002c34 <test_11+0x4>
+ 80002c58: 08f00e93 li t4,143
+ 80002c5c: 00b00193 li gp,11
+ 80002c60: 35d31e63 bne t1,t4,80002fbc <fail>
+
+0000000080002c64 <test_12>:
+ 80002c64: 00000213 li tp,0
+ 80002c68: 0070009b addiw ra,zero,7
+ 80002c6c: 02109093 slli ra,ra,0x21
+ 80002c70: 00b0011b addiw sp,zero,11
+ 80002c74: 02011113 slli sp,sp,0x20
+ 80002c78: 0220bf33 mulhu t5,ra,sp
+ 80002c7c: 00000013 nop
+ 80002c80: 000f0313 mv t1,t5
+ 80002c84: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c88: 00200293 li t0,2
+ 80002c8c: fc521ee3 bne tp,t0,80002c68 <test_12+0x4>
+ 80002c90: 09a00e93 li t4,154
+ 80002c94: 00c00193 li gp,12
+ 80002c98: 33d31263 bne t1,t4,80002fbc <fail>
+
+0000000080002c9c <test_13>:
+ 80002c9c: 00000213 li tp,0
+ 80002ca0: 00f0009b addiw ra,zero,15
+ 80002ca4: 02009093 slli ra,ra,0x20
+ 80002ca8: 00b0011b addiw sp,zero,11
+ 80002cac: 02011113 slli sp,sp,0x20
+ 80002cb0: 0220bf33 mulhu t5,ra,sp
+ 80002cb4: 00000013 nop
+ 80002cb8: 00000013 nop
+ 80002cbc: 000f0313 mv t1,t5
+ 80002cc0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002cc4: 00200293 li t0,2
+ 80002cc8: fc521ce3 bne tp,t0,80002ca0 <test_13+0x4>
+ 80002ccc: 0a500e93 li t4,165
+ 80002cd0: 00d00193 li gp,13
+ 80002cd4: 2fd31463 bne t1,t4,80002fbc <fail>
+
+0000000080002cd8 <test_14>:
+ 80002cd8: 00000213 li tp,0
+ 80002cdc: 00d0009b addiw ra,zero,13
+ 80002ce0: 02009093 slli ra,ra,0x20
+ 80002ce4: 00b0011b addiw sp,zero,11
+ 80002ce8: 02011113 slli sp,sp,0x20
+ 80002cec: 0220bf33 mulhu t5,ra,sp
+ 80002cf0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002cf4: 00200293 li t0,2
+ 80002cf8: fe5212e3 bne tp,t0,80002cdc <test_14+0x4>
+ 80002cfc: 08f00e93 li t4,143
+ 80002d00: 00e00193 li gp,14
+ 80002d04: 2bdf1c63 bne t5,t4,80002fbc <fail>
+
+0000000080002d08 <test_15>:
+ 80002d08: 00000213 li tp,0
+ 80002d0c: 0070009b addiw ra,zero,7
+ 80002d10: 02109093 slli ra,ra,0x21
+ 80002d14: 00b0011b addiw sp,zero,11
+ 80002d18: 02011113 slli sp,sp,0x20
+ 80002d1c: 00000013 nop
+ 80002d20: 0220bf33 mulhu t5,ra,sp
+ 80002d24: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d28: 00200293 li t0,2
+ 80002d2c: fe5210e3 bne tp,t0,80002d0c <test_15+0x4>
+ 80002d30: 09a00e93 li t4,154
+ 80002d34: 00f00193 li gp,15
+ 80002d38: 29df1263 bne t5,t4,80002fbc <fail>
+
+0000000080002d3c <test_16>:
+ 80002d3c: 00000213 li tp,0
+ 80002d40: 00f0009b addiw ra,zero,15
+ 80002d44: 02009093 slli ra,ra,0x20
+ 80002d48: 00b0011b addiw sp,zero,11
+ 80002d4c: 02011113 slli sp,sp,0x20
+ 80002d50: 00000013 nop
+ 80002d54: 00000013 nop
+ 80002d58: 0220bf33 mulhu t5,ra,sp
+ 80002d5c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d60: 00200293 li t0,2
+ 80002d64: fc521ee3 bne tp,t0,80002d40 <test_16+0x4>
+ 80002d68: 0a500e93 li t4,165
+ 80002d6c: 01000193 li gp,16
+ 80002d70: 25df1663 bne t5,t4,80002fbc <fail>
+
+0000000080002d74 <test_17>:
+ 80002d74: 00000213 li tp,0
+ 80002d78: 00d0009b addiw ra,zero,13
+ 80002d7c: 02009093 slli ra,ra,0x20
+ 80002d80: 00000013 nop
+ 80002d84: 00b0011b addiw sp,zero,11
+ 80002d88: 02011113 slli sp,sp,0x20
+ 80002d8c: 0220bf33 mulhu t5,ra,sp
+ 80002d90: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d94: 00200293 li t0,2
+ 80002d98: fe5210e3 bne tp,t0,80002d78 <test_17+0x4>
+ 80002d9c: 08f00e93 li t4,143
+ 80002da0: 01100193 li gp,17
+ 80002da4: 21df1c63 bne t5,t4,80002fbc <fail>
+
+0000000080002da8 <test_18>:
+ 80002da8: 00000213 li tp,0
+ 80002dac: 0070009b addiw ra,zero,7
+ 80002db0: 02109093 slli ra,ra,0x21
+ 80002db4: 00000013 nop
+ 80002db8: 00b0011b addiw sp,zero,11
+ 80002dbc: 02011113 slli sp,sp,0x20
+ 80002dc0: 00000013 nop
+ 80002dc4: 0220bf33 mulhu t5,ra,sp
+ 80002dc8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002dcc: 00200293 li t0,2
+ 80002dd0: fc521ee3 bne tp,t0,80002dac <test_18+0x4>
+ 80002dd4: 09a00e93 li t4,154
+ 80002dd8: 01200193 li gp,18
+ 80002ddc: 1fdf1063 bne t5,t4,80002fbc <fail>
+
+0000000080002de0 <test_19>:
+ 80002de0: 00000213 li tp,0
+ 80002de4: 00f0009b addiw ra,zero,15
+ 80002de8: 02009093 slli ra,ra,0x20
+ 80002dec: 00000013 nop
+ 80002df0: 00000013 nop
+ 80002df4: 00b0011b addiw sp,zero,11
+ 80002df8: 02011113 slli sp,sp,0x20
+ 80002dfc: 0220bf33 mulhu t5,ra,sp
+ 80002e00: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e04: 00200293 li t0,2
+ 80002e08: fc521ee3 bne tp,t0,80002de4 <test_19+0x4>
+ 80002e0c: 0a500e93 li t4,165
+ 80002e10: 01300193 li gp,19
+ 80002e14: 1bdf1463 bne t5,t4,80002fbc <fail>
+
+0000000080002e18 <test_20>:
+ 80002e18: 00000213 li tp,0
+ 80002e1c: 00b0011b addiw sp,zero,11
+ 80002e20: 02011113 slli sp,sp,0x20
+ 80002e24: 00d0009b addiw ra,zero,13
+ 80002e28: 02009093 slli ra,ra,0x20
+ 80002e2c: 0220bf33 mulhu t5,ra,sp
+ 80002e30: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e34: 00200293 li t0,2
+ 80002e38: fe5212e3 bne tp,t0,80002e1c <test_20+0x4>
+ 80002e3c: 08f00e93 li t4,143
+ 80002e40: 01400193 li gp,20
+ 80002e44: 17df1c63 bne t5,t4,80002fbc <fail>
+
+0000000080002e48 <test_21>:
+ 80002e48: 00000213 li tp,0
+ 80002e4c: 00b0011b addiw sp,zero,11
+ 80002e50: 02011113 slli sp,sp,0x20
+ 80002e54: 0070009b addiw ra,zero,7
+ 80002e58: 02109093 slli ra,ra,0x21
+ 80002e5c: 00000013 nop
+ 80002e60: 0220bf33 mulhu t5,ra,sp
+ 80002e64: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e68: 00200293 li t0,2
+ 80002e6c: fe5210e3 bne tp,t0,80002e4c <test_21+0x4>
+ 80002e70: 09a00e93 li t4,154
+ 80002e74: 01500193 li gp,21
+ 80002e78: 15df1263 bne t5,t4,80002fbc <fail>
+
+0000000080002e7c <test_22>:
+ 80002e7c: 00000213 li tp,0
+ 80002e80: 00b0011b addiw sp,zero,11
+ 80002e84: 02011113 slli sp,sp,0x20
+ 80002e88: 00f0009b addiw ra,zero,15
+ 80002e8c: 02009093 slli ra,ra,0x20
+ 80002e90: 00000013 nop
+ 80002e94: 00000013 nop
+ 80002e98: 0220bf33 mulhu t5,ra,sp
+ 80002e9c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ea0: 00200293 li t0,2
+ 80002ea4: fc521ee3 bne tp,t0,80002e80 <test_22+0x4>
+ 80002ea8: 0a500e93 li t4,165
+ 80002eac: 01600193 li gp,22
+ 80002eb0: 11df1663 bne t5,t4,80002fbc <fail>
+
+0000000080002eb4 <test_23>:
+ 80002eb4: 00000213 li tp,0
+ 80002eb8: 00b0011b addiw sp,zero,11
+ 80002ebc: 02011113 slli sp,sp,0x20
+ 80002ec0: 00000013 nop
+ 80002ec4: 00d0009b addiw ra,zero,13
+ 80002ec8: 02009093 slli ra,ra,0x20
+ 80002ecc: 0220bf33 mulhu t5,ra,sp
+ 80002ed0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002ed4: 00200293 li t0,2
+ 80002ed8: fe5210e3 bne tp,t0,80002eb8 <test_23+0x4>
+ 80002edc: 08f00e93 li t4,143
+ 80002ee0: 01700193 li gp,23
+ 80002ee4: 0ddf1c63 bne t5,t4,80002fbc <fail>
+
+0000000080002ee8 <test_24>:
+ 80002ee8: 00000213 li tp,0
+ 80002eec: 00b0011b addiw sp,zero,11
+ 80002ef0: 02011113 slli sp,sp,0x20
+ 80002ef4: 00000013 nop
+ 80002ef8: 0070009b addiw ra,zero,7
+ 80002efc: 02109093 slli ra,ra,0x21
+ 80002f00: 00000013 nop
+ 80002f04: 0220bf33 mulhu t5,ra,sp
+ 80002f08: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002f0c: 00200293 li t0,2
+ 80002f10: fc521ee3 bne tp,t0,80002eec <test_24+0x4>
+ 80002f14: 09a00e93 li t4,154
+ 80002f18: 01800193 li gp,24
+ 80002f1c: 0bdf1063 bne t5,t4,80002fbc <fail>
+
+0000000080002f20 <test_25>:
+ 80002f20: 00000213 li tp,0
+ 80002f24: 00b0011b addiw sp,zero,11
+ 80002f28: 02011113 slli sp,sp,0x20
+ 80002f2c: 00000013 nop
+ 80002f30: 00000013 nop
+ 80002f34: 00f0009b addiw ra,zero,15
+ 80002f38: 02009093 slli ra,ra,0x20
+ 80002f3c: 0220bf33 mulhu t5,ra,sp
+ 80002f40: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002f44: 00200293 li t0,2
+ 80002f48: fc521ee3 bne tp,t0,80002f24 <test_25+0x4>
+ 80002f4c: 0a500e93 li t4,165
+ 80002f50: 01900193 li gp,25
+ 80002f54: 07df1463 bne t5,t4,80002fbc <fail>
+
+0000000080002f58 <test_26>:
+ 80002f58: 01f0009b addiw ra,zero,31
+ 80002f5c: 02009093 slli ra,ra,0x20
+ 80002f60: 02103133 mulhu sp,zero,ra
+ 80002f64: 00000e93 li t4,0
+ 80002f68: 01a00193 li gp,26
+ 80002f6c: 05d11863 bne sp,t4,80002fbc <fail>
+
+0000000080002f70 <test_27>:
+ 80002f70: 0010009b addiw ra,zero,1
+ 80002f74: 02509093 slli ra,ra,0x25
+ 80002f78: 0200b133 mulhu sp,ra,zero
+ 80002f7c: 00000e93 li t4,0
+ 80002f80: 01b00193 li gp,27
+ 80002f84: 03d11c63 bne sp,t4,80002fbc <fail>
+
+0000000080002f88 <test_28>:
+ 80002f88: 020030b3 mulhu ra,zero,zero
+ 80002f8c: 00000e93 li t4,0
+ 80002f90: 01c00193 li gp,28
+ 80002f94: 03d09463 bne ra,t4,80002fbc <fail>
+
+0000000080002f98 <test_29>:
+ 80002f98: 0210009b addiw ra,zero,33
+ 80002f9c: 02009093 slli ra,ra,0x20
+ 80002fa0: 0110011b addiw sp,zero,17
+ 80002fa4: 02111113 slli sp,sp,0x21
+ 80002fa8: 0220b033 mulhu zero,ra,sp
+ 80002fac: 00000e93 li t4,0
+ 80002fb0: 01d00193 li gp,29
+ 80002fb4: 01d01463 bne zero,t4,80002fbc <fail>
+ 80002fb8: 00301a63 bne zero,gp,80002fcc <pass>
+
+0000000080002fbc <fail>:
+ 80002fbc: 00119513 slli a0,gp,0x1
+ 80002fc0: 00050063 beqz a0,80002fc0 <fail+0x4>
+ 80002fc4: 00156513 ori a0,a0,1
+ 80002fc8: 00000073 ecall
+
+0000000080002fcc <pass>:
+ 80002fcc: 00100513 li a0,1
+ 80002fd0: 00000073 ecall
+ 80002fd4: c0001073 unimp
diff --git a/test/tests/rv64um-v-mulhu.elf b/test/tests/rv64um-v-mulhu.elf
new file mode 100644
index 0000000..62759c8
--- /dev/null
+++ b/test/tests/rv64um-v-mulhu.elf
Binary files differ
diff --git a/test/tests/rv64um-v-mulw.dump b/test/tests/rv64um-v-mulw.dump
new file mode 100644
index 0000000..0d3598f
--- /dev/null
+++ b/test/tests/rv64um-v-mulw.dump
@@ -0,0 +1,1140 @@
+
+rv64um-v-mulw: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <handle_reset>:
+ 8000000c: 00000297 auipc t0,0x0
+ 80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
+ 80000014: 30529073 csrw mtvec,t0
+ 80000018: 00009117 auipc sp,0x9
+ 8000001c: 6b810113 addi sp,sp,1720 # 800096d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00002617 auipc a2,0x2
+ 80002318: cec60613 addi a2,a2,-788 # 80004000 <begin_signature>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00006797 auipc a5,0x6
+ 80002334: 4b878793 addi a5,a5,1208 # 800087e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00006717 auipc a4,0x6
+ 80002348: 49c70713 addi a4,a4,1180 # 800087e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00006897 auipc a7,0x6
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800087e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00006797 auipc a5,0x6
+ 80002384: 07078793 addi a5,a5,112 # 800083f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf7810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00006797 auipc a5,0x6
+ 80002448: 3807be23 sd zero,924(a5) # 800087e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00001697 auipc a3,0x1
+ 8000245c: a6868693 addi a3,a3,-1432 # 80002ec0 <pass+0x10>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00001617 auipc a2,0x1
+ 800024b8: a9c60613 addi a2,a2,-1380 # 80002f50 <pass+0xa0>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00001617 auipc a2,0x1
+ 80002508: a6460613 addi a2,a2,-1436 # 80002f68 <pass+0xb8>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00001697 auipc a3,0x1
+ 80002558: 9b468693 addi a3,a3,-1612 # 80002f08 <pass+0x58>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00001697 auipc a3,0x1
+ 80002674: 9d068693 addi a3,a3,-1584 # 80003040 <pass+0x190>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00001617 auipc a2,0x1
+ 800026cc: 95060613 addi a2,a2,-1712 # 80003018 <pass+0x168>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00006d17 auipc s10,0x6
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800083f0 <user_mapping>
+ 80002724: 00002b97 auipc s7,0x2
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80004000 <begin_signature>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00006a17 auipc s4,0x6
+ 80002738: 0aca0a13 addi s4,s4,172 # 800087e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00006717 auipc a4,0x6
+ 8000274c: 08f73c23 sd a5,152(a4) # 800087e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00006717 auipc a4,0x6
+ 800027d4: 00f73823 sd a5,16(a4) # 800087e0 <freelist_tail>
+ 800027d8: 00006717 auipc a4,0x6
+ 800027dc: 00f73823 sd a5,16(a4) # 800087e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00001697 auipc a3,0x1
+ 800027f0: 88468693 addi a3,a3,-1916 # 80003070 <pass+0x1c0>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 7a468693 addi a3,a3,1956 # 80002fe0 <pass+0x130>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 73468693 addi a3,a3,1844 # 80002fa8 <pass+0xf8>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00002697 auipc a3,0x2
+ 800028e0: 72468693 addi a3,a3,1828 # 80005000 <begin_signature+0x1000>
+ 800028e4: 00003717 auipc a4,0x3
+ 800028e8: 71c70713 addi a4,a4,1820 # 80006000 <begin_signature+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00004797 auipc a5,0x4
+ 800028f8: 70c78793 addi a5,a5,1804 # 80007000 <begin_signature+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00001897 auipc a7,0x1
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80004000 <begin_signature>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00002697 auipc a3,0x2
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80004ff8 <begin_signature+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00001617 auipc a2,0x1
+ 80002938: 6cc60613 addi a2,a2,1740 # 80004000 <begin_signature>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00004697 auipc a3,0x4
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80006ff8 <begin_signature+0x2ff8>
+ 8000294c: 00002717 auipc a4,0x2
+ 80002950: 6af73a23 sd a5,1716(a4) # 80005000 <begin_signature+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00005697 auipc a3,0x5
+ 800029c0: 64468693 addi a3,a3,1604 # 80008000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00006617 auipc a2,0x6
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800087e8 <freelist_head>
+ 800029d4: 00006797 auipc a5,0x6
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800087e0 <freelist_tail>
+ 800029dc: 00006317 auipc t1,0x6
+ 800029e0: a1430313 addi t1,t1,-1516 # 800083f0 <user_mapping>
+ 800029e4: 01100793 li a5,17
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00006797 auipc a5,0x6
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800083e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 0e99b7b7 lui a5,0xe99b
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: 1b978793 addi a5,a5,441 # e99b1b9 <_start-0x71664e47>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 00000093 li ra,0
+ 80002acc: 00000113 li sp,0
+ 80002ad0: 02208f3b mulw t5,ra,sp
+ 80002ad4: 00000e93 li t4,0
+ 80002ad8: 00200193 li gp,2
+ 80002adc: 3ddf1263 bne t5,t4,80002ea0 <fail>
+
+0000000080002ae0 <test_3>:
+ 80002ae0: 00100093 li ra,1
+ 80002ae4: 00100113 li sp,1
+ 80002ae8: 02208f3b mulw t5,ra,sp
+ 80002aec: 00100e93 li t4,1
+ 80002af0: 00300193 li gp,3
+ 80002af4: 3bdf1663 bne t5,t4,80002ea0 <fail>
+
+0000000080002af8 <test_4>:
+ 80002af8: 00300093 li ra,3
+ 80002afc: 00700113 li sp,7
+ 80002b00: 02208f3b mulw t5,ra,sp
+ 80002b04: 01500e93 li t4,21
+ 80002b08: 00400193 li gp,4
+ 80002b0c: 39df1a63 bne t5,t4,80002ea0 <fail>
+
+0000000080002b10 <test_5>:
+ 80002b10: 00000093 li ra,0
+ 80002b14: ffff8137 lui sp,0xffff8
+ 80002b18: 02208f3b mulw t5,ra,sp
+ 80002b1c: 00000e93 li t4,0
+ 80002b20: 00500193 li gp,5
+ 80002b24: 37df1e63 bne t5,t4,80002ea0 <fail>
+
+0000000080002b28 <test_6>:
+ 80002b28: 800000b7 lui ra,0x80000
+ 80002b2c: 00000113 li sp,0
+ 80002b30: 02208f3b mulw t5,ra,sp
+ 80002b34: 00000e93 li t4,0
+ 80002b38: 00600193 li gp,6
+ 80002b3c: 37df1263 bne t5,t4,80002ea0 <fail>
+
+0000000080002b40 <test_7>:
+ 80002b40: 800000b7 lui ra,0x80000
+ 80002b44: ffff8137 lui sp,0xffff8
+ 80002b48: 02208f3b mulw t5,ra,sp
+ 80002b4c: 00000e93 li t4,0
+ 80002b50: 00700193 li gp,7
+ 80002b54: 35df1663 bne t5,t4,80002ea0 <fail>
+
+0000000080002b58 <test_8>:
+ 80002b58: 00d00093 li ra,13
+ 80002b5c: 00b00113 li sp,11
+ 80002b60: 022080bb mulw ra,ra,sp
+ 80002b64: 08f00e93 li t4,143
+ 80002b68: 00800193 li gp,8
+ 80002b6c: 33d09a63 bne ra,t4,80002ea0 <fail>
+
+0000000080002b70 <test_9>:
+ 80002b70: 00e00093 li ra,14
+ 80002b74: 00b00113 li sp,11
+ 80002b78: 0220813b mulw sp,ra,sp
+ 80002b7c: 09a00e93 li t4,154
+ 80002b80: 00900193 li gp,9
+ 80002b84: 31d11e63 bne sp,t4,80002ea0 <fail>
+
+0000000080002b88 <test_10>:
+ 80002b88: 00d00093 li ra,13
+ 80002b8c: 021080bb mulw ra,ra,ra
+ 80002b90: 0a900e93 li t4,169
+ 80002b94: 00a00193 li gp,10
+ 80002b98: 31d09463 bne ra,t4,80002ea0 <fail>
+
+0000000080002b9c <test_11>:
+ 80002b9c: 00000213 li tp,0
+ 80002ba0: 00d00093 li ra,13
+ 80002ba4: 00b00113 li sp,11
+ 80002ba8: 02208f3b mulw t5,ra,sp
+ 80002bac: 000f0313 mv t1,t5
+ 80002bb0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002bb4: 00200293 li t0,2
+ 80002bb8: fe5214e3 bne tp,t0,80002ba0 <test_11+0x4>
+ 80002bbc: 08f00e93 li t4,143
+ 80002bc0: 00b00193 li gp,11
+ 80002bc4: 2dd31e63 bne t1,t4,80002ea0 <fail>
+
+0000000080002bc8 <test_12>:
+ 80002bc8: 00000213 li tp,0
+ 80002bcc: 00e00093 li ra,14
+ 80002bd0: 00b00113 li sp,11
+ 80002bd4: 02208f3b mulw t5,ra,sp
+ 80002bd8: 00000013 nop
+ 80002bdc: 000f0313 mv t1,t5
+ 80002be0: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002be4: 00200293 li t0,2
+ 80002be8: fe5212e3 bne tp,t0,80002bcc <test_12+0x4>
+ 80002bec: 09a00e93 li t4,154
+ 80002bf0: 00c00193 li gp,12
+ 80002bf4: 2bd31663 bne t1,t4,80002ea0 <fail>
+
+0000000080002bf8 <test_13>:
+ 80002bf8: 00000213 li tp,0
+ 80002bfc: 00f00093 li ra,15
+ 80002c00: 00b00113 li sp,11
+ 80002c04: 02208f3b mulw t5,ra,sp
+ 80002c08: 00000013 nop
+ 80002c0c: 00000013 nop
+ 80002c10: 000f0313 mv t1,t5
+ 80002c14: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c18: 00200293 li t0,2
+ 80002c1c: fe5210e3 bne tp,t0,80002bfc <test_13+0x4>
+ 80002c20: 0a500e93 li t4,165
+ 80002c24: 00d00193 li gp,13
+ 80002c28: 27d31c63 bne t1,t4,80002ea0 <fail>
+
+0000000080002c2c <test_14>:
+ 80002c2c: 00000213 li tp,0
+ 80002c30: 00d00093 li ra,13
+ 80002c34: 00b00113 li sp,11
+ 80002c38: 02208f3b mulw t5,ra,sp
+ 80002c3c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c40: 00200293 li t0,2
+ 80002c44: fe5216e3 bne tp,t0,80002c30 <test_14+0x4>
+ 80002c48: 08f00e93 li t4,143
+ 80002c4c: 00e00193 li gp,14
+ 80002c50: 25df1863 bne t5,t4,80002ea0 <fail>
+
+0000000080002c54 <test_15>:
+ 80002c54: 00000213 li tp,0
+ 80002c58: 00e00093 li ra,14
+ 80002c5c: 00b00113 li sp,11
+ 80002c60: 00000013 nop
+ 80002c64: 02208f3b mulw t5,ra,sp
+ 80002c68: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c6c: 00200293 li t0,2
+ 80002c70: fe5214e3 bne tp,t0,80002c58 <test_15+0x4>
+ 80002c74: 09a00e93 li t4,154
+ 80002c78: 00f00193 li gp,15
+ 80002c7c: 23df1263 bne t5,t4,80002ea0 <fail>
+
+0000000080002c80 <test_16>:
+ 80002c80: 00000213 li tp,0
+ 80002c84: 00f00093 li ra,15
+ 80002c88: 00b00113 li sp,11
+ 80002c8c: 00000013 nop
+ 80002c90: 00000013 nop
+ 80002c94: 02208f3b mulw t5,ra,sp
+ 80002c98: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002c9c: 00200293 li t0,2
+ 80002ca0: fe5212e3 bne tp,t0,80002c84 <test_16+0x4>
+ 80002ca4: 0a500e93 li t4,165
+ 80002ca8: 01000193 li gp,16
+ 80002cac: 1fdf1a63 bne t5,t4,80002ea0 <fail>
+
+0000000080002cb0 <test_17>:
+ 80002cb0: 00000213 li tp,0
+ 80002cb4: 00d00093 li ra,13
+ 80002cb8: 00000013 nop
+ 80002cbc: 00b00113 li sp,11
+ 80002cc0: 02208f3b mulw t5,ra,sp
+ 80002cc4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002cc8: 00200293 li t0,2
+ 80002ccc: fe5214e3 bne tp,t0,80002cb4 <test_17+0x4>
+ 80002cd0: 08f00e93 li t4,143
+ 80002cd4: 01100193 li gp,17
+ 80002cd8: 1ddf1463 bne t5,t4,80002ea0 <fail>
+
+0000000080002cdc <test_18>:
+ 80002cdc: 00000213 li tp,0
+ 80002ce0: 00e00093 li ra,14
+ 80002ce4: 00000013 nop
+ 80002ce8: 00b00113 li sp,11
+ 80002cec: 00000013 nop
+ 80002cf0: 02208f3b mulw t5,ra,sp
+ 80002cf4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002cf8: 00200293 li t0,2
+ 80002cfc: fe5212e3 bne tp,t0,80002ce0 <test_18+0x4>
+ 80002d00: 09a00e93 li t4,154
+ 80002d04: 01200193 li gp,18
+ 80002d08: 19df1c63 bne t5,t4,80002ea0 <fail>
+
+0000000080002d0c <test_19>:
+ 80002d0c: 00000213 li tp,0
+ 80002d10: 00f00093 li ra,15
+ 80002d14: 00000013 nop
+ 80002d18: 00000013 nop
+ 80002d1c: 00b00113 li sp,11
+ 80002d20: 02208f3b mulw t5,ra,sp
+ 80002d24: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d28: 00200293 li t0,2
+ 80002d2c: fe5212e3 bne tp,t0,80002d10 <test_19+0x4>
+ 80002d30: 0a500e93 li t4,165
+ 80002d34: 01300193 li gp,19
+ 80002d38: 17df1463 bne t5,t4,80002ea0 <fail>
+
+0000000080002d3c <test_20>:
+ 80002d3c: 00000213 li tp,0
+ 80002d40: 00b00113 li sp,11
+ 80002d44: 00d00093 li ra,13
+ 80002d48: 02208f3b mulw t5,ra,sp
+ 80002d4c: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d50: 00200293 li t0,2
+ 80002d54: fe5216e3 bne tp,t0,80002d40 <test_20+0x4>
+ 80002d58: 08f00e93 li t4,143
+ 80002d5c: 01400193 li gp,20
+ 80002d60: 15df1063 bne t5,t4,80002ea0 <fail>
+
+0000000080002d64 <test_21>:
+ 80002d64: 00000213 li tp,0
+ 80002d68: 00b00113 li sp,11
+ 80002d6c: 00e00093 li ra,14
+ 80002d70: 00000013 nop
+ 80002d74: 02208f3b mulw t5,ra,sp
+ 80002d78: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002d7c: 00200293 li t0,2
+ 80002d80: fe5214e3 bne tp,t0,80002d68 <test_21+0x4>
+ 80002d84: 09a00e93 li t4,154
+ 80002d88: 01500193 li gp,21
+ 80002d8c: 11df1a63 bne t5,t4,80002ea0 <fail>
+
+0000000080002d90 <test_22>:
+ 80002d90: 00000213 li tp,0
+ 80002d94: 00b00113 li sp,11
+ 80002d98: 00f00093 li ra,15
+ 80002d9c: 00000013 nop
+ 80002da0: 00000013 nop
+ 80002da4: 02208f3b mulw t5,ra,sp
+ 80002da8: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002dac: 00200293 li t0,2
+ 80002db0: fe5212e3 bne tp,t0,80002d94 <test_22+0x4>
+ 80002db4: 0a500e93 li t4,165
+ 80002db8: 01600193 li gp,22
+ 80002dbc: 0fdf1263 bne t5,t4,80002ea0 <fail>
+
+0000000080002dc0 <test_23>:
+ 80002dc0: 00000213 li tp,0
+ 80002dc4: 00b00113 li sp,11
+ 80002dc8: 00000013 nop
+ 80002dcc: 00d00093 li ra,13
+ 80002dd0: 02208f3b mulw t5,ra,sp
+ 80002dd4: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002dd8: 00200293 li t0,2
+ 80002ddc: fe5214e3 bne tp,t0,80002dc4 <test_23+0x4>
+ 80002de0: 08f00e93 li t4,143
+ 80002de4: 01700193 li gp,23
+ 80002de8: 0bdf1c63 bne t5,t4,80002ea0 <fail>
+
+0000000080002dec <test_24>:
+ 80002dec: 00000213 li tp,0
+ 80002df0: 00b00113 li sp,11
+ 80002df4: 00000013 nop
+ 80002df8: 00e00093 li ra,14
+ 80002dfc: 00000013 nop
+ 80002e00: 02208f3b mulw t5,ra,sp
+ 80002e04: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e08: 00200293 li t0,2
+ 80002e0c: fe5212e3 bne tp,t0,80002df0 <test_24+0x4>
+ 80002e10: 09a00e93 li t4,154
+ 80002e14: 01800193 li gp,24
+ 80002e18: 09df1463 bne t5,t4,80002ea0 <fail>
+
+0000000080002e1c <test_25>:
+ 80002e1c: 00000213 li tp,0
+ 80002e20: 00b00113 li sp,11
+ 80002e24: 00000013 nop
+ 80002e28: 00000013 nop
+ 80002e2c: 00f00093 li ra,15
+ 80002e30: 02208f3b mulw t5,ra,sp
+ 80002e34: 00120213 addi tp,tp,1 # 1 <_start-0x7fffffff>
+ 80002e38: 00200293 li t0,2
+ 80002e3c: fe5212e3 bne tp,t0,80002e20 <test_25+0x4>
+ 80002e40: 0a500e93 li t4,165
+ 80002e44: 01900193 li gp,25
+ 80002e48: 05df1c63 bne t5,t4,80002ea0 <fail>
+
+0000000080002e4c <test_26>:
+ 80002e4c: 01f00093 li ra,31
+ 80002e50: 0210013b mulw sp,zero,ra
+ 80002e54: 00000e93 li t4,0
+ 80002e58: 01a00193 li gp,26
+ 80002e5c: 05d11263 bne sp,t4,80002ea0 <fail>
+
+0000000080002e60 <test_27>:
+ 80002e60: 02000093 li ra,32
+ 80002e64: 0200813b mulw sp,ra,zero
+ 80002e68: 00000e93 li t4,0
+ 80002e6c: 01b00193 li gp,27
+ 80002e70: 03d11863 bne sp,t4,80002ea0 <fail>
+
+0000000080002e74 <test_28>:
+ 80002e74: 020000bb mulw ra,zero,zero
+ 80002e78: 00000e93 li t4,0
+ 80002e7c: 01c00193 li gp,28
+ 80002e80: 03d09063 bne ra,t4,80002ea0 <fail>
+
+0000000080002e84 <test_29>:
+ 80002e84: 02100093 li ra,33
+ 80002e88: 02200113 li sp,34
+ 80002e8c: 0220803b mulw zero,ra,sp
+ 80002e90: 00000e93 li t4,0
+ 80002e94: 01d00193 li gp,29
+ 80002e98: 01d01463 bne zero,t4,80002ea0 <fail>
+ 80002e9c: 00301a63 bne zero,gp,80002eb0 <pass>
+
+0000000080002ea0 <fail>:
+ 80002ea0: 00119513 slli a0,gp,0x1
+ 80002ea4: 00050063 beqz a0,80002ea4 <fail+0x4>
+ 80002ea8: 00156513 ori a0,a0,1
+ 80002eac: 00000073 ecall
+
+0000000080002eb0 <pass>:
+ 80002eb0: 00100513 li a0,1
+ 80002eb4: 00000073 ecall
+ 80002eb8: c0001073 unimp
diff --git a/test/tests/rv64um-v-mulw.elf b/test/tests/rv64um-v-mulw.elf
new file mode 100644
index 0000000..bfc28b2
--- /dev/null
+++ b/test/tests/rv64um-v-mulw.elf
Binary files differ
diff --git a/test/tests/rv64um-v-rem.dump b/test/tests/rv64um-v-rem.dump
new file mode 100644
index 0000000..8c29a0c
--- /dev/null
+++ b/test/tests/rv64um-v-rem.dump
@@ -0,0 +1,915 @@
+
+rv64um-v-rem: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <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: 6b810113 addi sp,sp,1720 # 800086d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00001617 auipc a2,0x1
+ 80002318: cec60613 addi a2,a2,-788 # 80003000 <begin_signature>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00005797 auipc a5,0x5
+ 80002334: 4b878793 addi a5,a5,1208 # 800077e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00005717 auipc a4,0x5
+ 80002348: 49c70713 addi a4,a4,1180 # 800077e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00005897 auipc a7,0x5
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800077e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00005797 auipc a5,0x5
+ 80002384: 07078793 addi a5,a5,112 # 800073f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf8810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00005797 auipc a5,0x5
+ 80002448: 3807be23 sd zero,924(a5) # 800077e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00000697 auipc a3,0x0
+ 8000245c: 77868693 addi a3,a3,1912 # 80002bd0 <pass+0xc>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00000617 auipc a2,0x0
+ 800024b8: 7ac60613 addi a2,a2,1964 # 80002c60 <pass+0x9c>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00000617 auipc a2,0x0
+ 80002508: 77460613 addi a2,a2,1908 # 80002c78 <pass+0xb4>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00000697 auipc a3,0x0
+ 80002558: 6c468693 addi a3,a3,1732 # 80002c18 <pass+0x54>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00000697 auipc a3,0x0
+ 80002674: 6e068693 addi a3,a3,1760 # 80002d50 <pass+0x18c>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00000617 auipc a2,0x0
+ 800026cc: 66060613 addi a2,a2,1632 # 80002d28 <pass+0x164>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00005d17 auipc s10,0x5
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800073f0 <user_mapping>
+ 80002724: 00001b97 auipc s7,0x1
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80003000 <begin_signature>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00005a17 auipc s4,0x5
+ 80002738: 0aca0a13 addi s4,s4,172 # 800077e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00005717 auipc a4,0x5
+ 8000274c: 08f73c23 sd a5,152(a4) # 800077e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00005717 auipc a4,0x5
+ 800027d4: 00f73823 sd a5,16(a4) # 800077e0 <freelist_tail>
+ 800027d8: 00005717 auipc a4,0x5
+ 800027dc: 00f73823 sd a5,16(a4) # 800077e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 59468693 addi a3,a3,1428 # 80002d80 <pass+0x1bc>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 4b468693 addi a3,a3,1204 # 80002cf0 <pass+0x12c>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 44468693 addi a3,a3,1092 # 80002cb8 <pass+0xf4>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00001697 auipc a3,0x1
+ 800028e0: 72468693 addi a3,a3,1828 # 80004000 <begin_signature+0x1000>
+ 800028e4: 00002717 auipc a4,0x2
+ 800028e8: 71c70713 addi a4,a4,1820 # 80005000 <begin_signature+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00003797 auipc a5,0x3
+ 800028f8: 70c78793 addi a5,a5,1804 # 80006000 <begin_signature+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00000897 auipc a7,0x0
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80003000 <begin_signature>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00001697 auipc a3,0x1
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80003ff8 <begin_signature+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00000617 auipc a2,0x0
+ 80002938: 6cc60613 addi a2,a2,1740 # 80003000 <begin_signature>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00003697 auipc a3,0x3
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80005ff8 <begin_signature+0x2ff8>
+ 8000294c: 00001717 auipc a4,0x1
+ 80002950: 6af73a23 sd a5,1716(a4) # 80004000 <begin_signature+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00004697 auipc a3,0x4
+ 800029c0: 64468693 addi a3,a3,1604 # 80007000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00005617 auipc a2,0x5
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800077e8 <freelist_head>
+ 800029d4: 00005797 auipc a5,0x5
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800077e0 <freelist_tail>
+ 800029dc: 00005317 auipc t1,0x5
+ 800029e0: a1430313 addi t1,t1,-1516 # 800073f0 <user_mapping>
+ 800029e4: 03100793 li a5,49
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00005797 auipc a5,0x5
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800073e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 03a277b7 lui a5,0x3a27
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: ea378793 addi a5,a5,-349 # 3a26ea3 <_start-0x7c5d915d>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 01400093 li ra,20
+ 80002acc: 00600113 li sp,6
+ 80002ad0: 0220ef33 rem t5,ra,sp
+ 80002ad4: 00200e93 li t4,2
+ 80002ad8: 00200193 li gp,2
+ 80002adc: 0ddf1c63 bne t5,t4,80002bb4 <fail>
+
+0000000080002ae0 <test_3>:
+ 80002ae0: fec00093 li ra,-20
+ 80002ae4: 00600113 li sp,6
+ 80002ae8: 0220ef33 rem t5,ra,sp
+ 80002aec: ffe00e93 li t4,-2
+ 80002af0: 00300193 li gp,3
+ 80002af4: 0ddf1063 bne t5,t4,80002bb4 <fail>
+
+0000000080002af8 <test_4>:
+ 80002af8: 01400093 li ra,20
+ 80002afc: ffa00113 li sp,-6
+ 80002b00: 0220ef33 rem t5,ra,sp
+ 80002b04: 00200e93 li t4,2
+ 80002b08: 00400193 li gp,4
+ 80002b0c: 0bdf1463 bne t5,t4,80002bb4 <fail>
+
+0000000080002b10 <test_5>:
+ 80002b10: fec00093 li ra,-20
+ 80002b14: ffa00113 li sp,-6
+ 80002b18: 0220ef33 rem t5,ra,sp
+ 80002b1c: ffe00e93 li t4,-2
+ 80002b20: 00500193 li gp,5
+ 80002b24: 09df1863 bne t5,t4,80002bb4 <fail>
+
+0000000080002b28 <test_6>:
+ 80002b28: fff0009b addiw ra,zero,-1
+ 80002b2c: 03f09093 slli ra,ra,0x3f
+ 80002b30: 00100113 li sp,1
+ 80002b34: 0220ef33 rem t5,ra,sp
+ 80002b38: 00000e93 li t4,0
+ 80002b3c: 00600193 li gp,6
+ 80002b40: 07df1a63 bne t5,t4,80002bb4 <fail>
+
+0000000080002b44 <test_7>:
+ 80002b44: fff0009b addiw ra,zero,-1
+ 80002b48: 03f09093 slli ra,ra,0x3f
+ 80002b4c: fff00113 li sp,-1
+ 80002b50: 0220ef33 rem t5,ra,sp
+ 80002b54: 00000e93 li t4,0
+ 80002b58: 00700193 li gp,7
+ 80002b5c: 05df1c63 bne t5,t4,80002bb4 <fail>
+
+0000000080002b60 <test_8>:
+ 80002b60: fff0009b addiw ra,zero,-1
+ 80002b64: 03f09093 slli ra,ra,0x3f
+ 80002b68: 00000113 li sp,0
+ 80002b6c: 0220ef33 rem t5,ra,sp
+ 80002b70: fff00e9b addiw t4,zero,-1
+ 80002b74: 03fe9e93 slli t4,t4,0x3f
+ 80002b78: 00800193 li gp,8
+ 80002b7c: 03df1c63 bne t5,t4,80002bb4 <fail>
+
+0000000080002b80 <test_9>:
+ 80002b80: 00100093 li ra,1
+ 80002b84: 00000113 li sp,0
+ 80002b88: 0220ef33 rem t5,ra,sp
+ 80002b8c: 00100e93 li t4,1
+ 80002b90: 00900193 li gp,9
+ 80002b94: 03df1063 bne t5,t4,80002bb4 <fail>
+
+0000000080002b98 <test_10>:
+ 80002b98: 00000093 li ra,0
+ 80002b9c: 00000113 li sp,0
+ 80002ba0: 0220ef33 rem t5,ra,sp
+ 80002ba4: 00000e93 li t4,0
+ 80002ba8: 00a00193 li gp,10
+ 80002bac: 01df1463 bne t5,t4,80002bb4 <fail>
+ 80002bb0: 00301a63 bne zero,gp,80002bc4 <pass>
+
+0000000080002bb4 <fail>:
+ 80002bb4: 00119513 slli a0,gp,0x1
+ 80002bb8: 00050063 beqz a0,80002bb8 <fail+0x4>
+ 80002bbc: 00156513 ori a0,a0,1
+ 80002bc0: 00000073 ecall
+
+0000000080002bc4 <pass>:
+ 80002bc4: 00100513 li a0,1
+ 80002bc8: 00000073 ecall
+ 80002bcc: c0001073 unimp
diff --git a/test/tests/rv64um-v-rem.elf b/test/tests/rv64um-v-rem.elf
new file mode 100644
index 0000000..9caa3b3
--- /dev/null
+++ b/test/tests/rv64um-v-rem.elf
Binary files differ
diff --git a/test/tests/rv64um-v-remu.dump b/test/tests/rv64um-v-remu.dump
new file mode 100644
index 0000000..01d50ac
--- /dev/null
+++ b/test/tests/rv64um-v-remu.dump
@@ -0,0 +1,916 @@
+
+rv64um-v-remu: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <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: 6b810113 addi sp,sp,1720 # 800086d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00001617 auipc a2,0x1
+ 80002318: cec60613 addi a2,a2,-788 # 80003000 <begin_signature>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00005797 auipc a5,0x5
+ 80002334: 4b878793 addi a5,a5,1208 # 800077e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00005717 auipc a4,0x5
+ 80002348: 49c70713 addi a4,a4,1180 # 800077e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00005897 auipc a7,0x5
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800077e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00005797 auipc a5,0x5
+ 80002384: 07078793 addi a5,a5,112 # 800073f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf8810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00005797 auipc a5,0x5
+ 80002448: 3807be23 sd zero,924(a5) # 800077e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00000697 auipc a3,0x0
+ 8000245c: 78068693 addi a3,a3,1920 # 80002bd8 <pass+0x10>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00000617 auipc a2,0x0
+ 800024b8: 7b460613 addi a2,a2,1972 # 80002c68 <pass+0xa0>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00000617 auipc a2,0x0
+ 80002508: 77c60613 addi a2,a2,1916 # 80002c80 <pass+0xb8>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00000697 auipc a3,0x0
+ 80002558: 6cc68693 addi a3,a3,1740 # 80002c20 <pass+0x58>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00000697 auipc a3,0x0
+ 80002674: 6e868693 addi a3,a3,1768 # 80002d58 <pass+0x190>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00000617 auipc a2,0x0
+ 800026cc: 66860613 addi a2,a2,1640 # 80002d30 <pass+0x168>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00005d17 auipc s10,0x5
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800073f0 <user_mapping>
+ 80002724: 00001b97 auipc s7,0x1
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80003000 <begin_signature>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00005a17 auipc s4,0x5
+ 80002738: 0aca0a13 addi s4,s4,172 # 800077e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00005717 auipc a4,0x5
+ 8000274c: 08f73c23 sd a5,152(a4) # 800077e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00005717 auipc a4,0x5
+ 800027d4: 00f73823 sd a5,16(a4) # 800077e0 <freelist_tail>
+ 800027d8: 00005717 auipc a4,0x5
+ 800027dc: 00f73823 sd a5,16(a4) # 800077e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 59c68693 addi a3,a3,1436 # 80002d88 <pass+0x1c0>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 4bc68693 addi a3,a3,1212 # 80002cf8 <pass+0x130>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 44c68693 addi a3,a3,1100 # 80002cc0 <pass+0xf8>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00001697 auipc a3,0x1
+ 800028e0: 72468693 addi a3,a3,1828 # 80004000 <begin_signature+0x1000>
+ 800028e4: 00002717 auipc a4,0x2
+ 800028e8: 71c70713 addi a4,a4,1820 # 80005000 <begin_signature+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00003797 auipc a5,0x3
+ 800028f8: 70c78793 addi a5,a5,1804 # 80006000 <begin_signature+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00000897 auipc a7,0x0
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80003000 <begin_signature>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00001697 auipc a3,0x1
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80003ff8 <begin_signature+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00000617 auipc a2,0x0
+ 80002938: 6cc60613 addi a2,a2,1740 # 80003000 <begin_signature>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00003697 auipc a3,0x3
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80005ff8 <begin_signature+0x2ff8>
+ 8000294c: 00001717 auipc a4,0x1
+ 80002950: 6af73a23 sd a5,1716(a4) # 80004000 <begin_signature+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00004697 auipc a3,0x4
+ 800029c0: 64468693 addi a3,a3,1604 # 80007000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00005617 auipc a2,0x5
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800077e8 <freelist_head>
+ 800029d4: 00005797 auipc a5,0x5
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800077e0 <freelist_tail>
+ 800029dc: 00005317 auipc t1,0x5
+ 800029e0: a1430313 addi t1,t1,-1516 # 800073f0 <user_mapping>
+ 800029e4: 03e00793 li a5,62
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00005797 auipc a5,0x5
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800073e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 05d337b7 lui a5,0x5d33
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: 2c578793 addi a5,a5,709 # 5d332c5 <_start-0x7a2ccd3b>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 01400093 li ra,20
+ 80002acc: 00600113 li sp,6
+ 80002ad0: 0220ff33 remu t5,ra,sp
+ 80002ad4: 00200e93 li t4,2
+ 80002ad8: 00200193 li gp,2
+ 80002adc: 0ddf1e63 bne t5,t4,80002bb8 <fail>
+
+0000000080002ae0 <test_3>:
+ 80002ae0: fec00093 li ra,-20
+ 80002ae4: 00600113 li sp,6
+ 80002ae8: 0220ff33 remu t5,ra,sp
+ 80002aec: 00200e93 li t4,2
+ 80002af0: 00300193 li gp,3
+ 80002af4: 0ddf1263 bne t5,t4,80002bb8 <fail>
+
+0000000080002af8 <test_4>:
+ 80002af8: 01400093 li ra,20
+ 80002afc: ffa00113 li sp,-6
+ 80002b00: 0220ff33 remu t5,ra,sp
+ 80002b04: 01400e93 li t4,20
+ 80002b08: 00400193 li gp,4
+ 80002b0c: 0bdf1663 bne t5,t4,80002bb8 <fail>
+
+0000000080002b10 <test_5>:
+ 80002b10: fec00093 li ra,-20
+ 80002b14: ffa00113 li sp,-6
+ 80002b18: 0220ff33 remu t5,ra,sp
+ 80002b1c: fec00e93 li t4,-20
+ 80002b20: 00500193 li gp,5
+ 80002b24: 09df1a63 bne t5,t4,80002bb8 <fail>
+
+0000000080002b28 <test_6>:
+ 80002b28: fff0009b addiw ra,zero,-1
+ 80002b2c: 03f09093 slli ra,ra,0x3f
+ 80002b30: 00100113 li sp,1
+ 80002b34: 0220ff33 remu t5,ra,sp
+ 80002b38: 00000e93 li t4,0
+ 80002b3c: 00600193 li gp,6
+ 80002b40: 07df1c63 bne t5,t4,80002bb8 <fail>
+
+0000000080002b44 <test_7>:
+ 80002b44: fff0009b addiw ra,zero,-1
+ 80002b48: 03f09093 slli ra,ra,0x3f
+ 80002b4c: fff00113 li sp,-1
+ 80002b50: 0220ff33 remu t5,ra,sp
+ 80002b54: fff00e9b addiw t4,zero,-1
+ 80002b58: 03fe9e93 slli t4,t4,0x3f
+ 80002b5c: 00700193 li gp,7
+ 80002b60: 05df1c63 bne t5,t4,80002bb8 <fail>
+
+0000000080002b64 <test_8>:
+ 80002b64: fff0009b addiw ra,zero,-1
+ 80002b68: 03f09093 slli ra,ra,0x3f
+ 80002b6c: 00000113 li sp,0
+ 80002b70: 0220ff33 remu t5,ra,sp
+ 80002b74: fff00e9b addiw t4,zero,-1
+ 80002b78: 03fe9e93 slli t4,t4,0x3f
+ 80002b7c: 00800193 li gp,8
+ 80002b80: 03df1c63 bne t5,t4,80002bb8 <fail>
+
+0000000080002b84 <test_9>:
+ 80002b84: 00100093 li ra,1
+ 80002b88: 00000113 li sp,0
+ 80002b8c: 0220ff33 remu t5,ra,sp
+ 80002b90: 00100e93 li t4,1
+ 80002b94: 00900193 li gp,9
+ 80002b98: 03df1063 bne t5,t4,80002bb8 <fail>
+
+0000000080002b9c <test_10>:
+ 80002b9c: 00000093 li ra,0
+ 80002ba0: 00000113 li sp,0
+ 80002ba4: 0220ff33 remu t5,ra,sp
+ 80002ba8: 00000e93 li t4,0
+ 80002bac: 00a00193 li gp,10
+ 80002bb0: 01df1463 bne t5,t4,80002bb8 <fail>
+ 80002bb4: 00301a63 bne zero,gp,80002bc8 <pass>
+
+0000000080002bb8 <fail>:
+ 80002bb8: 00119513 slli a0,gp,0x1
+ 80002bbc: 00050063 beqz a0,80002bbc <fail+0x4>
+ 80002bc0: 00156513 ori a0,a0,1
+ 80002bc4: 00000073 ecall
+
+0000000080002bc8 <pass>:
+ 80002bc8: 00100513 li a0,1
+ 80002bcc: 00000073 ecall
+ 80002bd0: c0001073 unimp
diff --git a/test/tests/rv64um-v-remu.elf b/test/tests/rv64um-v-remu.elf
new file mode 100644
index 0000000..26ead9d
--- /dev/null
+++ b/test/tests/rv64um-v-remu.elf
Binary files differ
diff --git a/test/tests/rv64um-v-remuw.dump b/test/tests/rv64um-v-remuw.dump
new file mode 100644
index 0000000..f0688a4
--- /dev/null
+++ b/test/tests/rv64um-v-remuw.dump
@@ -0,0 +1,911 @@
+
+rv64um-v-remuw: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <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: 6b810113 addi sp,sp,1720 # 800086d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00001617 auipc a2,0x1
+ 80002318: cec60613 addi a2,a2,-788 # 80003000 <begin_signature>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00005797 auipc a5,0x5
+ 80002334: 4b878793 addi a5,a5,1208 # 800077e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00005717 auipc a4,0x5
+ 80002348: 49c70713 addi a4,a4,1180 # 800077e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00005897 auipc a7,0x5
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800077e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00005797 auipc a5,0x5
+ 80002384: 07078793 addi a5,a5,112 # 800073f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf8810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00005797 auipc a5,0x5
+ 80002448: 3807be23 sd zero,924(a5) # 800077e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00000697 auipc a3,0x0
+ 8000245c: 76868693 addi a3,a3,1896 # 80002bc0 <pass+0xc>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00000617 auipc a2,0x0
+ 800024b8: 79c60613 addi a2,a2,1948 # 80002c50 <pass+0x9c>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00000617 auipc a2,0x0
+ 80002508: 76460613 addi a2,a2,1892 # 80002c68 <pass+0xb4>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00000697 auipc a3,0x0
+ 80002558: 6b468693 addi a3,a3,1716 # 80002c08 <pass+0x54>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00000697 auipc a3,0x0
+ 80002674: 6d068693 addi a3,a3,1744 # 80002d40 <pass+0x18c>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00000617 auipc a2,0x0
+ 800026cc: 65060613 addi a2,a2,1616 # 80002d18 <pass+0x164>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00005d17 auipc s10,0x5
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800073f0 <user_mapping>
+ 80002724: 00001b97 auipc s7,0x1
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80003000 <begin_signature>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00005a17 auipc s4,0x5
+ 80002738: 0aca0a13 addi s4,s4,172 # 800077e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00005717 auipc a4,0x5
+ 8000274c: 08f73c23 sd a5,152(a4) # 800077e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00005717 auipc a4,0x5
+ 800027d4: 00f73823 sd a5,16(a4) # 800077e0 <freelist_tail>
+ 800027d8: 00005717 auipc a4,0x5
+ 800027dc: 00f73823 sd a5,16(a4) # 800077e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 58468693 addi a3,a3,1412 # 80002d70 <pass+0x1bc>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 4a468693 addi a3,a3,1188 # 80002ce0 <pass+0x12c>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 43468693 addi a3,a3,1076 # 80002ca8 <pass+0xf4>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00001697 auipc a3,0x1
+ 800028e0: 72468693 addi a3,a3,1828 # 80004000 <begin_signature+0x1000>
+ 800028e4: 00002717 auipc a4,0x2
+ 800028e8: 71c70713 addi a4,a4,1820 # 80005000 <begin_signature+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00003797 auipc a5,0x3
+ 800028f8: 70c78793 addi a5,a5,1804 # 80006000 <begin_signature+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00000897 auipc a7,0x0
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80003000 <begin_signature>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00001697 auipc a3,0x1
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80003ff8 <begin_signature+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00000617 auipc a2,0x0
+ 80002938: 6cc60613 addi a2,a2,1740 # 80003000 <begin_signature>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00003697 auipc a3,0x3
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80005ff8 <begin_signature+0x2ff8>
+ 8000294c: 00001717 auipc a4,0x1
+ 80002950: 6af73a23 sd a5,1716(a4) # 80004000 <begin_signature+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00004697 auipc a3,0x4
+ 800029c0: 64468693 addi a3,a3,1604 # 80007000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00005617 auipc a2,0x5
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800077e8 <freelist_head>
+ 800029d4: 00005797 auipc a5,0x5
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800077e0 <freelist_tail>
+ 800029dc: 00005317 auipc t1,0x5
+ 800029e0: a1430313 addi t1,t1,-1516 # 800073f0 <user_mapping>
+ 800029e4: 01700793 li a5,23
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00005797 auipc a5,0x5
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800073e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 01bd87b7 lui a5,0x1bd8
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: 7ed78793 addi a5,a5,2029 # 1bd87ed <_start-0x7e427813>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 01400093 li ra,20
+ 80002acc: 00600113 li sp,6
+ 80002ad0: 0220ff3b remuw t5,ra,sp
+ 80002ad4: 00200e93 li t4,2
+ 80002ad8: 00200193 li gp,2
+ 80002adc: 0ddf1463 bne t5,t4,80002ba4 <fail>
+
+0000000080002ae0 <test_3>:
+ 80002ae0: fec00093 li ra,-20
+ 80002ae4: 00600113 li sp,6
+ 80002ae8: 0220ff3b remuw t5,ra,sp
+ 80002aec: 00200e93 li t4,2
+ 80002af0: 00300193 li gp,3
+ 80002af4: 0bdf1863 bne t5,t4,80002ba4 <fail>
+
+0000000080002af8 <test_4>:
+ 80002af8: 01400093 li ra,20
+ 80002afc: ffa00113 li sp,-6
+ 80002b00: 0220ff3b remuw t5,ra,sp
+ 80002b04: 01400e93 li t4,20
+ 80002b08: 00400193 li gp,4
+ 80002b0c: 09df1c63 bne t5,t4,80002ba4 <fail>
+
+0000000080002b10 <test_5>:
+ 80002b10: fec00093 li ra,-20
+ 80002b14: ffa00113 li sp,-6
+ 80002b18: 0220ff3b remuw t5,ra,sp
+ 80002b1c: fec00e93 li t4,-20
+ 80002b20: 00500193 li gp,5
+ 80002b24: 09df1063 bne t5,t4,80002ba4 <fail>
+
+0000000080002b28 <test_6>:
+ 80002b28: 800000b7 lui ra,0x80000
+ 80002b2c: 00100113 li sp,1
+ 80002b30: 0220ff3b remuw t5,ra,sp
+ 80002b34: 00000e93 li t4,0
+ 80002b38: 00600193 li gp,6
+ 80002b3c: 07df1463 bne t5,t4,80002ba4 <fail>
+
+0000000080002b40 <test_7>:
+ 80002b40: 800000b7 lui ra,0x80000
+ 80002b44: fff00113 li sp,-1
+ 80002b48: 0220ff3b remuw t5,ra,sp
+ 80002b4c: 80000eb7 lui t4,0x80000
+ 80002b50: 00700193 li gp,7
+ 80002b54: 05df1863 bne t5,t4,80002ba4 <fail>
+
+0000000080002b58 <test_8>:
+ 80002b58: 800000b7 lui ra,0x80000
+ 80002b5c: 00000113 li sp,0
+ 80002b60: 0220ff3b remuw t5,ra,sp
+ 80002b64: 80000eb7 lui t4,0x80000
+ 80002b68: 00800193 li gp,8
+ 80002b6c: 03df1c63 bne t5,t4,80002ba4 <fail>
+
+0000000080002b70 <test_9>:
+ 80002b70: 00100093 li ra,1
+ 80002b74: 00000113 li sp,0
+ 80002b78: 0220ff3b remuw t5,ra,sp
+ 80002b7c: 00100e93 li t4,1
+ 80002b80: 00900193 li gp,9
+ 80002b84: 03df1063 bne t5,t4,80002ba4 <fail>
+
+0000000080002b88 <test_10>:
+ 80002b88: 00000093 li ra,0
+ 80002b8c: 00000113 li sp,0
+ 80002b90: 0220ff3b remuw t5,ra,sp
+ 80002b94: 00000e93 li t4,0
+ 80002b98: 00a00193 li gp,10
+ 80002b9c: 01df1463 bne t5,t4,80002ba4 <fail>
+ 80002ba0: 00301a63 bne zero,gp,80002bb4 <pass>
+
+0000000080002ba4 <fail>:
+ 80002ba4: 00119513 slli a0,gp,0x1
+ 80002ba8: 00050063 beqz a0,80002ba8 <fail+0x4>
+ 80002bac: 00156513 ori a0,a0,1
+ 80002bb0: 00000073 ecall
+
+0000000080002bb4 <pass>:
+ 80002bb4: 00100513 li a0,1
+ 80002bb8: 00000073 ecall
+ 80002bbc: c0001073 unimp
diff --git a/test/tests/rv64um-v-remuw.elf b/test/tests/rv64um-v-remuw.elf
new file mode 100644
index 0000000..795ae59
--- /dev/null
+++ b/test/tests/rv64um-v-remuw.elf
Binary files differ
diff --git a/test/tests/rv64um-v-remw.dump b/test/tests/rv64um-v-remw.dump
new file mode 100644
index 0000000..659d882
--- /dev/null
+++ b/test/tests/rv64um-v-remw.dump
@@ -0,0 +1,919 @@
+
+rv64um-v-remw: file format elf64-littleriscv
+
+
+Disassembly of section .text.init:
+
+0000000080000000 <_start>:
+ 80000000: 00c0006f j 8000000c <handle_reset>
+
+0000000080000004 <nmi_vector>:
+ 80000004: 2580206f j 8000225c <wtf>
+
+0000000080000008 <trap_vector>:
+ 80000008: 2540206f j 8000225c <wtf>
+
+000000008000000c <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: 6b810113 addi sp,sp,1720 # 800086d0 <_end+0xee0>
+ 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: a9850513 addi a0,a0,-1384 # 80002ac8 <userstart>
+ 80000038: 09d0206f j 800028d4 <vm_boot>
+
+000000008000003c <pop_tf>:
+ 8000003c: 10853283 ld t0,264(a0)
+ 80000040: 14129073 csrw sepc,t0
+ 80000044: 00853083 ld ra,8(a0)
+ 80000048: 01053103 ld sp,16(a0)
+ 8000004c: 01853183 ld gp,24(a0)
+ 80000050: 02053203 ld tp,32(a0)
+ 80000054: 02853283 ld t0,40(a0)
+ 80000058: 03053303 ld t1,48(a0)
+ 8000005c: 03853383 ld t2,56(a0)
+ 80000060: 04053403 ld s0,64(a0)
+ 80000064: 04853483 ld s1,72(a0)
+ 80000068: 05853583 ld a1,88(a0)
+ 8000006c: 06053603 ld a2,96(a0)
+ 80000070: 06853683 ld a3,104(a0)
+ 80000074: 07053703 ld a4,112(a0)
+ 80000078: 07853783 ld a5,120(a0)
+ 8000007c: 08053803 ld a6,128(a0)
+ 80000080: 08853883 ld a7,136(a0)
+ 80000084: 09053903 ld s2,144(a0)
+ 80000088: 09853983 ld s3,152(a0)
+ 8000008c: 0a053a03 ld s4,160(a0)
+ 80000090: 0a853a83 ld s5,168(a0)
+ 80000094: 0b053b03 ld s6,176(a0)
+ 80000098: 0b853b83 ld s7,184(a0)
+ 8000009c: 0c053c03 ld s8,192(a0)
+ 800000a0: 0c853c83 ld s9,200(a0)
+ 800000a4: 0d053d03 ld s10,208(a0)
+ 800000a8: 0d853d83 ld s11,216(a0)
+ 800000ac: 0e053e03 ld t3,224(a0)
+ 800000b0: 0e853e83 ld t4,232(a0)
+ 800000b4: 0f053f03 ld t5,240(a0)
+ 800000b8: 0f853f83 ld t6,248(a0)
+ 800000bc: 05053503 ld a0,80(a0)
+ 800000c0: 10200073 sret
+
+00000000800000c4 <trap_entry>:
+ 800000c4: 14011173 csrrw sp,sscratch,sp
+ 800000c8: 00113423 sd ra,8(sp)
+ 800000cc: 00313c23 sd gp,24(sp)
+ 800000d0: 02413023 sd tp,32(sp)
+ 800000d4: 02513423 sd t0,40(sp)
+ 800000d8: 02613823 sd t1,48(sp)
+ 800000dc: 02713c23 sd t2,56(sp)
+ 800000e0: 04813023 sd s0,64(sp)
+ 800000e4: 04913423 sd s1,72(sp)
+ 800000e8: 04a13823 sd a0,80(sp)
+ 800000ec: 04b13c23 sd a1,88(sp)
+ 800000f0: 06c13023 sd a2,96(sp)
+ 800000f4: 06d13423 sd a3,104(sp)
+ 800000f8: 06e13823 sd a4,112(sp)
+ 800000fc: 06f13c23 sd a5,120(sp)
+ 80000100: 09013023 sd a6,128(sp)
+ 80000104: 09113423 sd a7,136(sp)
+ 80000108: 09213823 sd s2,144(sp)
+ 8000010c: 09313c23 sd s3,152(sp)
+ 80000110: 0b413023 sd s4,160(sp)
+ 80000114: 0b513423 sd s5,168(sp)
+ 80000118: 0b613823 sd s6,176(sp)
+ 8000011c: 0b713c23 sd s7,184(sp)
+ 80000120: 0d813023 sd s8,192(sp)
+ 80000124: 0d913423 sd s9,200(sp)
+ 80000128: 0da13823 sd s10,208(sp)
+ 8000012c: 0db13c23 sd s11,216(sp)
+ 80000130: 0fc13023 sd t3,224(sp)
+ 80000134: 0fd13423 sd t4,232(sp)
+ 80000138: 0fe13823 sd t5,240(sp)
+ 8000013c: 0ff13c23 sd t6,248(sp)
+ 80000140: 140112f3 csrrw t0,sscratch,sp
+ 80000144: 00513823 sd t0,16(sp)
+ 80000148: 100022f3 csrr t0,sstatus
+ 8000014c: 10513023 sd t0,256(sp)
+ 80000150: 141022f3 csrr t0,sepc
+ 80000154: 10513423 sd t0,264(sp)
+ 80000158: 143022f3 csrr t0,sbadaddr
+ 8000015c: 10513823 sd t0,272(sp)
+ 80000160: 142022f3 csrr t0,scause
+ 80000164: 10513c23 sd t0,280(sp)
+ 80000168: 00010513 mv a0,sp
+ 8000016c: 4300206f j 8000259c <handle_trap>
+
+Disassembly of section .text:
+
+0000000080002000 <memcpy>:
+ 80002000: 00c5e7b3 or a5,a1,a2
+ 80002004: 00f567b3 or a5,a0,a5
+ 80002008: 0077f793 andi a5,a5,7
+ 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: 00858593 addi a1,a1,8
+ 80002044: ff85b703 ld a4,-8(a1)
+ 80002048: 00878793 addi a5,a5,8
+ 8000204c: fee7bc23 sd a4,-8(a5)
+ 80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
+ 80002054: 00008067 ret
+ 80002058: 00008067 ret
+
+000000008000205c <memset>:
+ 8000205c: 00c567b3 or a5,a0,a2
+ 80002060: 0077f793 andi a5,a5,7
+ 80002064: 00c50633 add a2,a0,a2
+ 80002068: 0ff5f593 andi a1,a1,255
+ 8000206c: 00078e63 beqz a5,80002088 <memset+0x2c>
+ 80002070: 00050793 mv a5,a0
+ 80002074: 04c57263 bleu a2,a0,800020b8 <memset+0x5c>
+ 80002078: 00178793 addi a5,a5,1
+ 8000207c: feb78fa3 sb a1,-1(a5)
+ 80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
+ 80002084: 00008067 ret
+ 80002088: 00859793 slli a5,a1,0x8
+ 8000208c: 00b7e5b3 or a1,a5,a1
+ 80002090: 01059793 slli a5,a1,0x10
+ 80002094: 00b7e7b3 or a5,a5,a1
+ 80002098: 02079593 slli a1,a5,0x20
+ 8000209c: 00f5e5b3 or a1,a1,a5
+ 800020a0: fec572e3 bleu a2,a0,80002084 <memset+0x28>
+ 800020a4: 00050793 mv a5,a0
+ 800020a8: 00878793 addi a5,a5,8
+ 800020ac: feb7bc23 sd a1,-8(a5)
+ 800020b0: fec7ece3 bltu a5,a2,800020a8 <memset+0x4c>
+ 800020b4: 00008067 ret
+ 800020b8: 00008067 ret
+
+00000000800020bc <strlen>:
+ 800020bc: 00054783 lbu a5,0(a0)
+ 800020c0: 00050713 mv a4,a0
+ 800020c4: 00078c63 beqz a5,800020dc <strlen+0x20>
+ 800020c8: 00150513 addi a0,a0,1
+ 800020cc: 00054783 lbu a5,0(a0)
+ 800020d0: fe079ce3 bnez a5,800020c8 <strlen+0xc>
+ 800020d4: 40e50533 sub a0,a0,a4
+ 800020d8: 00008067 ret
+ 800020dc: 00000513 li a0,0
+ 800020e0: 00008067 ret
+
+00000000800020e4 <strcmp>:
+ 800020e4: 00150513 addi a0,a0,1
+ 800020e8: fff54783 lbu a5,-1(a0)
+ 800020ec: 00158593 addi a1,a1,1
+ 800020f0: fff5c703 lbu a4,-1(a1)
+ 800020f4: 00078a63 beqz a5,80002108 <strcmp+0x24>
+ 800020f8: fee786e3 beq a5,a4,800020e4 <strcmp>
+ 800020fc: 0007851b sext.w a0,a5
+ 80002100: 40e5053b subw a0,a0,a4
+ 80002104: 00008067 ret
+ 80002108: 00000513 li a0,0
+ 8000210c: ff5ff06f j 80002100 <strcmp+0x1c>
+
+0000000080002110 <memcmp>:
+ 80002110: 00b567b3 or a5,a0,a1
+ 80002114: 0077f793 andi a5,a5,7
+ 80002118: 04079263 bnez a5,8000215c <memcmp+0x4c>
+ 8000211c: ff867693 andi a3,a2,-8
+ 80002120: 00d506b3 add a3,a0,a3
+ 80002124: 00050813 mv a6,a0
+ 80002128: 02d57a63 bleu a3,a0,8000215c <memcmp+0x4c>
+ 8000212c: 00053703 ld a4,0(a0)
+ 80002130: 0005b783 ld a5,0(a1)
+ 80002134: 00f70a63 beq a4,a5,80002148 <memcmp+0x38>
+ 80002138: 0240006f j 8000215c <memcmp+0x4c>
+ 8000213c: 00053703 ld a4,0(a0)
+ 80002140: 0005b783 ld a5,0(a1)
+ 80002144: 00f71863 bne a4,a5,80002154 <memcmp+0x44>
+ 80002148: 00850513 addi a0,a0,8
+ 8000214c: 00858593 addi a1,a1,8
+ 80002150: fed566e3 bltu a0,a3,8000213c <memcmp+0x2c>
+ 80002154: 41050833 sub a6,a0,a6
+ 80002158: 41060633 sub a2,a2,a6
+ 8000215c: 00c58633 add a2,a1,a2
+ 80002160: 0140006f j 80002174 <memcmp+0x64>
+ 80002164: 00158593 addi a1,a1,1
+ 80002168: fff54783 lbu a5,-1(a0)
+ 8000216c: fff5c703 lbu a4,-1(a1)
+ 80002170: 00e79a63 bne a5,a4,80002184 <memcmp+0x74>
+ 80002174: 00150513 addi a0,a0,1
+ 80002178: fec596e3 bne a1,a2,80002164 <memcmp+0x54>
+ 8000217c: 00000513 li a0,0
+ 80002180: 00008067 ret
+ 80002184: 40e7853b subw a0,a5,a4
+ 80002188: 00008067 ret
+
+000000008000218c <strcpy>:
+ 8000218c: 00050793 mv a5,a0
+ 80002190: 00158593 addi a1,a1,1
+ 80002194: fff5c703 lbu a4,-1(a1)
+ 80002198: 00178793 addi a5,a5,1
+ 8000219c: fee78fa3 sb a4,-1(a5)
+ 800021a0: fe0718e3 bnez a4,80002190 <strcpy+0x4>
+ 800021a4: 00008067 ret
+
+00000000800021a8 <atol>:
+ 800021a8: 00054783 lbu a5,0(a0)
+ 800021ac: 02000713 li a4,32
+ 800021b0: 00e79863 bne a5,a4,800021c0 <atol+0x18>
+ 800021b4: 00150513 addi a0,a0,1
+ 800021b8: 00054783 lbu a5,0(a0)
+ 800021bc: fee78ce3 beq a5,a4,800021b4 <atol+0xc>
+ 800021c0: fd57871b addiw a4,a5,-43
+ 800021c4: 0fd77713 andi a4,a4,253
+ 800021c8: 04070263 beqz a4,8000220c <atol+0x64>
+ 800021cc: 00054683 lbu a3,0(a0)
+ 800021d0: 00050793 mv a5,a0
+ 800021d4: 00000613 li a2,0
+ 800021d8: 04068863 beqz a3,80002228 <atol+0x80>
+ 800021dc: 00000513 li a0,0
+ 800021e0: 00178793 addi a5,a5,1
+ 800021e4: fd06859b addiw a1,a3,-48
+ 800021e8: 00251713 slli a4,a0,0x2
+ 800021ec: 0007c683 lbu a3,0(a5)
+ 800021f0: 00a70533 add a0,a4,a0
+ 800021f4: 00151513 slli a0,a0,0x1
+ 800021f8: 00a58533 add a0,a1,a0
+ 800021fc: fe0692e3 bnez a3,800021e0 <atol+0x38>
+ 80002200: 00060463 beqz a2,80002208 <atol+0x60>
+ 80002204: 40a00533 neg a0,a0
+ 80002208: 00008067 ret
+ 8000220c: 00154683 lbu a3,1(a0)
+ 80002210: fd378793 addi a5,a5,-45
+ 80002214: 0017b613 seqz a2,a5
+ 80002218: 00150793 addi a5,a0,1
+ 8000221c: fc0690e3 bnez a3,800021dc <atol+0x34>
+ 80002220: 00000513 li a0,0
+ 80002224: fddff06f j 80002200 <atol+0x58>
+ 80002228: 00000513 li a0,0
+ 8000222c: 00008067 ret
+
+0000000080002230 <terminate>:
+ 80002230: fffff797 auipc a5,0xfffff
+ 80002234: dd078793 addi a5,a5,-560 # 80001000 <tohost>
+ 80002238: 0007b703 ld a4,0(a5)
+ 8000223c: 00070a63 beqz a4,80002250 <terminate+0x20>
+ 80002240: fffff717 auipc a4,0xfffff
+ 80002244: e0073023 sd zero,-512(a4) # 80001040 <fromhost>
+ 80002248: 0007b703 ld a4,0(a5)
+ 8000224c: fe071ae3 bnez a4,80002240 <terminate+0x10>
+ 80002250: fffff797 auipc a5,0xfffff
+ 80002254: daa7b823 sd a0,-592(a5) # 80001000 <tohost>
+ 80002258: 0000006f j 80002258 <terminate+0x28>
+
+000000008000225c <wtf>:
+ 8000225c: ff010113 addi sp,sp,-16
+ 80002260: 34900513 li a0,841
+ 80002264: 00113423 sd ra,8(sp)
+ 80002268: fc9ff0ef jal ra,80002230 <terminate>
+
+000000008000226c <printhex>:
+ 8000226c: fe010113 addi sp,sp,-32
+ 80002270: 01710713 addi a4,sp,23
+ 80002274: 00710813 addi a6,sp,7
+ 80002278: 00900593 li a1,9
+ 8000227c: 00f57793 andi a5,a0,15
+ 80002280: 03000613 li a2,48
+ 80002284: 0ff7f693 andi a3,a5,255
+ 80002288: 00f5f463 bleu a5,a1,80002290 <printhex+0x24>
+ 8000228c: 05700613 li a2,87
+ 80002290: 00c687bb addw a5,a3,a2
+ 80002294: 00f70023 sb a5,0(a4)
+ 80002298: fff70713 addi a4,a4,-1
+ 8000229c: 00455513 srli a0,a0,0x4
+ 800022a0: fd071ee3 bne a4,a6,8000227c <printhex+0x10>
+ 800022a4: 00814783 lbu a5,8(sp)
+ 800022a8: 00010c23 sb zero,24(sp)
+ 800022ac: 04078463 beqz a5,800022f4 <printhex+0x88>
+ 800022b0: 10100513 li a0,257
+ 800022b4: 00810693 addi a3,sp,8
+ 800022b8: fffff717 auipc a4,0xfffff
+ 800022bc: d4870713 addi a4,a4,-696 # 80001000 <tohost>
+ 800022c0: 03051513 slli a0,a0,0x30
+ 800022c4: 00073583 ld a1,0(a4)
+ 800022c8: 00168693 addi a3,a3,1
+ 800022cc: 00a7e633 or a2,a5,a0
+ 800022d0: 00058a63 beqz a1,800022e4 <printhex+0x78>
+ 800022d4: fffff797 auipc a5,0xfffff
+ 800022d8: d607b623 sd zero,-660(a5) # 80001040 <fromhost>
+ 800022dc: 00073783 ld a5,0(a4)
+ 800022e0: fe079ae3 bnez a5,800022d4 <printhex+0x68>
+ 800022e4: 0006c783 lbu a5,0(a3)
+ 800022e8: fffff597 auipc a1,0xfffff
+ 800022ec: d0c5bc23 sd a2,-744(a1) # 80001000 <tohost>
+ 800022f0: fc079ae3 bnez a5,800022c4 <printhex+0x58>
+ 800022f4: 02010113 addi sp,sp,32
+ 800022f8: 00008067 ret
+
+00000000800022fc <handle_fault>:
+ 800022fc: fffff8b7 lui a7,0xfffff
+ 80002300: 01150733 add a4,a0,a7
+ 80002304: 0003e7b7 lui a5,0x3e
+ 80002308: 14f77463 bleu a5,a4,80002450 <handle_fault+0x154>
+ 8000230c: 00c55693 srli a3,a0,0xc
+ 80002310: 60068813 addi a6,a3,1536
+ 80002314: 00001617 auipc a2,0x1
+ 80002318: cec60613 addi a2,a2,-788 # 80003000 <begin_signature>
+ 8000231c: 00381793 slli a5,a6,0x3
+ 80002320: 00f607b3 add a5,a2,a5
+ 80002324: 0007b703 ld a4,0(a5) # 3e000 <_start-0x7ffc2000>
+ 80002328: 01157533 and a0,a0,a7
+ 8000232c: 0e071063 bnez a4,8000240c <handle_fault+0x110>
+ 80002330: 00005797 auipc a5,0x5
+ 80002334: 4b878793 addi a5,a5,1208 # 800077e8 <freelist_head>
+ 80002338: 0007b583 ld a1,0(a5)
+ 8000233c: 16058863 beqz a1,800024ac <handle_fault+0x1b0>
+ 80002340: 0085b783 ld a5,8(a1)
+ 80002344: 00005717 auipc a4,0x5
+ 80002348: 49c70713 addi a4,a4,1180 # 800077e0 <freelist_tail>
+ 8000234c: 00073703 ld a4,0(a4)
+ 80002350: 00005897 auipc a7,0x5
+ 80002354: 48f8bc23 sd a5,1176(a7) # 800077e8 <freelist_head>
+ 80002358: 0ee78663 beq a5,a4,80002444 <handle_fault+0x148>
+ 8000235c: 0005b783 ld a5,0(a1)
+ 80002360: 00381893 slli a7,a6,0x3
+ 80002364: 011608b3 add a7,a2,a7
+ 80002368: 00c7d793 srli a5,a5,0xc
+ 8000236c: 00a79793 slli a5,a5,0xa
+ 80002370: 0df7e313 ori t1,a5,223
+ 80002374: 01f7e713 ori a4,a5,31
+ 80002378: 0068b023 sd t1,0(a7)
+ 8000237c: 12050073 sfence.vma a0
+ 80002380: 00005797 auipc a5,0x5
+ 80002384: 07078793 addi a5,a5,112 # 800073f0 <user_mapping>
+ 80002388: 00469693 slli a3,a3,0x4
+ 8000238c: 00d786b3 add a3,a5,a3
+ 80002390: 0006b783 ld a5,0(a3)
+ 80002394: 16079463 bnez a5,800024fc <handle_fault+0x200>
+ 80002398: 0005b783 ld a5,0(a1)
+ 8000239c: 00f6b023 sd a5,0(a3)
+ 800023a0: 0085b783 ld a5,8(a1)
+ 800023a4: 00f6b423 sd a5,8(a3)
+ 800023a8: 000407b7 lui a5,0x40
+ 800023ac: 1007a8f3 csrrs a7,sstatus,a5
+ 800023b0: ffe007b7 lui a5,0xffe00
+ 800023b4: 00f507b3 add a5,a0,a5
+ 800023b8: 000015b7 lui a1,0x1
+ 800023bc: 00050693 mv a3,a0
+ 800023c0: 00b785b3 add a1,a5,a1
+ 800023c4: 0007bf03 ld t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf8810>
+ 800023c8: 0087be83 ld t4,8(a5)
+ 800023cc: 0107be03 ld t3,16(a5)
+ 800023d0: 0187b303 ld t1,24(a5)
+ 800023d4: 01e6b023 sd t5,0(a3)
+ 800023d8: 01d6b423 sd t4,8(a3)
+ 800023dc: 01c6b823 sd t3,16(a3)
+ 800023e0: 0066bc23 sd t1,24(a3)
+ 800023e4: 02078793 addi a5,a5,32
+ 800023e8: 02068693 addi a3,a3,32
+ 800023ec: fcb79ce3 bne a5,a1,800023c4 <handle_fault+0xc8>
+ 800023f0: 10089073 csrw sstatus,a7
+ 800023f4: 00381813 slli a6,a6,0x3
+ 800023f8: 01060633 add a2,a2,a6
+ 800023fc: 00e63023 sd a4,0(a2)
+ 80002400: 12050073 sfence.vma a0
+ 80002404: 0000100f fence.i
+ 80002408: 00008067 ret
+ 8000240c: 04077693 andi a3,a4,64
+ 80002410: 00069a63 bnez a3,80002424 <handle_fault+0x128>
+ 80002414: 04076713 ori a4,a4,64
+ 80002418: 00e7b023 sd a4,0(a5)
+ 8000241c: 12050073 sfence.vma a0
+ 80002420: 00008067 ret
+ 80002424: 08077693 andi a3,a4,128
+ 80002428: 12069263 bnez a3,8000254c <handle_fault+0x250>
+ 8000242c: 00f00693 li a3,15
+ 80002430: 10d59e63 bne a1,a3,8000254c <handle_fault+0x250>
+ 80002434: 08076713 ori a4,a4,128
+ 80002438: 00e7b023 sd a4,0(a5)
+ 8000243c: 12050073 sfence.vma a0
+ 80002440: 00008067 ret
+ 80002444: 00005797 auipc a5,0x5
+ 80002448: 3807be23 sd zero,924(a5) # 800077e0 <freelist_tail>
+ 8000244c: f11ff06f j 8000235c <handle_fault+0x60>
+ 80002450: 10100613 li a2,257
+ 80002454: 04100713 li a4,65
+ 80002458: 00000697 auipc a3,0x0
+ 8000245c: 78068693 addi a3,a3,1920 # 80002bd8 <pass+0xc>
+ 80002460: fffff797 auipc a5,0xfffff
+ 80002464: ba078793 addi a5,a5,-1120 # 80001000 <tohost>
+ 80002468: 03061613 slli a2,a2,0x30
+ 8000246c: 0007b503 ld a0,0(a5)
+ 80002470: 00168693 addi a3,a3,1
+ 80002474: 00c765b3 or a1,a4,a2
+ 80002478: 00050a63 beqz a0,8000248c <handle_fault+0x190>
+ 8000247c: fffff717 auipc a4,0xfffff
+ 80002480: bc073223 sd zero,-1084(a4) # 80001040 <fromhost>
+ 80002484: 0007b703 ld a4,0(a5)
+ 80002488: fe071ae3 bnez a4,8000247c <handle_fault+0x180>
+ 8000248c: 0006c703 lbu a4,0(a3)
+ 80002490: fffff517 auipc a0,0xfffff
+ 80002494: b6b53823 sd a1,-1168(a0) # 80001000 <tohost>
+ 80002498: fc071ae3 bnez a4,8000246c <handle_fault+0x170>
+ 8000249c: ff010113 addi sp,sp,-16
+ 800024a0: 00300513 li a0,3
+ 800024a4: 00113423 sd ra,8(sp)
+ 800024a8: d89ff0ef jal ra,80002230 <terminate>
+ 800024ac: 10100693 li a3,257
+ 800024b0: 04100713 li a4,65
+ 800024b4: 00000617 auipc a2,0x0
+ 800024b8: 7b460613 addi a2,a2,1972 # 80002c68 <pass+0x9c>
+ 800024bc: fffff797 auipc a5,0xfffff
+ 800024c0: b4478793 addi a5,a5,-1212 # 80001000 <tohost>
+ 800024c4: 03069693 slli a3,a3,0x30
+ 800024c8: 0007b503 ld a0,0(a5)
+ 800024cc: 00160613 addi a2,a2,1
+ 800024d0: 00d765b3 or a1,a4,a3
+ 800024d4: 00050a63 beqz a0,800024e8 <handle_fault+0x1ec>
+ 800024d8: fffff717 auipc a4,0xfffff
+ 800024dc: b6073423 sd zero,-1176(a4) # 80001040 <fromhost>
+ 800024e0: 0007b703 ld a4,0(a5)
+ 800024e4: fe071ae3 bnez a4,800024d8 <handle_fault+0x1dc>
+ 800024e8: 00064703 lbu a4,0(a2)
+ 800024ec: fffff517 auipc a0,0xfffff
+ 800024f0: b0b53a23 sd a1,-1260(a0) # 80001000 <tohost>
+ 800024f4: fc071ae3 bnez a4,800024c8 <handle_fault+0x1cc>
+ 800024f8: fa5ff06f j 8000249c <handle_fault+0x1a0>
+ 800024fc: 10100693 li a3,257
+ 80002500: 04100713 li a4,65
+ 80002504: 00000617 auipc a2,0x0
+ 80002508: 77c60613 addi a2,a2,1916 # 80002c80 <pass+0xb4>
+ 8000250c: fffff797 auipc a5,0xfffff
+ 80002510: af478793 addi a5,a5,-1292 # 80001000 <tohost>
+ 80002514: 03069693 slli a3,a3,0x30
+ 80002518: 0007b503 ld a0,0(a5)
+ 8000251c: 00160613 addi a2,a2,1
+ 80002520: 00d765b3 or a1,a4,a3
+ 80002524: 00050a63 beqz a0,80002538 <handle_fault+0x23c>
+ 80002528: fffff717 auipc a4,0xfffff
+ 8000252c: b0073c23 sd zero,-1256(a4) # 80001040 <fromhost>
+ 80002530: 0007b703 ld a4,0(a5)
+ 80002534: fe071ae3 bnez a4,80002528 <handle_fault+0x22c>
+ 80002538: 00064703 lbu a4,0(a2)
+ 8000253c: fffff517 auipc a0,0xfffff
+ 80002540: acb53223 sd a1,-1340(a0) # 80001000 <tohost>
+ 80002544: fc071ae3 bnez a4,80002518 <handle_fault+0x21c>
+ 80002548: f55ff06f j 8000249c <handle_fault+0x1a0>
+ 8000254c: 10100613 li a2,257
+ 80002550: 04100713 li a4,65
+ 80002554: 00000697 auipc a3,0x0
+ 80002558: 6cc68693 addi a3,a3,1740 # 80002c20 <pass+0x54>
+ 8000255c: fffff797 auipc a5,0xfffff
+ 80002560: aa478793 addi a5,a5,-1372 # 80001000 <tohost>
+ 80002564: 03061613 slli a2,a2,0x30
+ 80002568: 0007b503 ld a0,0(a5)
+ 8000256c: 00168693 addi a3,a3,1
+ 80002570: 00c765b3 or a1,a4,a2
+ 80002574: 00050a63 beqz a0,80002588 <handle_fault+0x28c>
+ 80002578: fffff717 auipc a4,0xfffff
+ 8000257c: ac073423 sd zero,-1336(a4) # 80001040 <fromhost>
+ 80002580: 0007b703 ld a4,0(a5)
+ 80002584: fe071ae3 bnez a4,80002578 <handle_fault+0x27c>
+ 80002588: 0006c703 lbu a4,0(a3)
+ 8000258c: fffff517 auipc a0,0xfffff
+ 80002590: a6b53a23 sd a1,-1420(a0) # 80001000 <tohost>
+ 80002594: fc071ae3 bnez a4,80002568 <handle_fault+0x26c>
+ 80002598: f05ff06f j 8000249c <handle_fault+0x1a0>
+
+000000008000259c <handle_trap>:
+ 8000259c: 11853583 ld a1,280(a0)
+ 800025a0: f9010113 addi sp,sp,-112
+ 800025a4: 06813023 sd s0,96(sp)
+ 800025a8: 06113423 sd ra,104(sp)
+ 800025ac: 04913c23 sd s1,88(sp)
+ 800025b0: 05213823 sd s2,80(sp)
+ 800025b4: 05313423 sd s3,72(sp)
+ 800025b8: 05413023 sd s4,64(sp)
+ 800025bc: 03513c23 sd s5,56(sp)
+ 800025c0: 03613823 sd s6,48(sp)
+ 800025c4: 03713423 sd s7,40(sp)
+ 800025c8: 03813023 sd s8,32(sp)
+ 800025cc: 01913c23 sd s9,24(sp)
+ 800025d0: 01a13823 sd s10,16(sp)
+ 800025d4: 01b13423 sd s11,8(sp)
+ 800025d8: 00800793 li a5,8
+ 800025dc: 00050413 mv s0,a0
+ 800025e0: 12f58a63 beq a1,a5,80002714 <handle_trap+0x178>
+ 800025e4: 00200793 li a5,2
+ 800025e8: 06f58063 beq a1,a5,80002648 <handle_trap+0xac>
+ 800025ec: ff458793 addi a5,a1,-12 # ff4 <_start-0x7ffff00c>
+ 800025f0: 00100713 li a4,1
+ 800025f4: 00f77663 bleu a5,a4,80002600 <handle_trap+0x64>
+ 800025f8: 00f00793 li a5,15
+ 800025fc: 1ef59463 bne a1,a5,800027e4 <handle_trap+0x248>
+ 80002600: 11043503 ld a0,272(s0)
+ 80002604: cf9ff0ef jal ra,800022fc <handle_fault>
+ 80002608: 00040513 mv a0,s0
+ 8000260c: 06013403 ld s0,96(sp)
+ 80002610: 06813083 ld ra,104(sp)
+ 80002614: 05813483 ld s1,88(sp)
+ 80002618: 05013903 ld s2,80(sp)
+ 8000261c: 04813983 ld s3,72(sp)
+ 80002620: 04013a03 ld s4,64(sp)
+ 80002624: 03813a83 ld s5,56(sp)
+ 80002628: 03013b03 ld s6,48(sp)
+ 8000262c: 02813b83 ld s7,40(sp)
+ 80002630: 02013c03 ld s8,32(sp)
+ 80002634: 01813c83 ld s9,24(sp)
+ 80002638: 01013d03 ld s10,16(sp)
+ 8000263c: 00813d83 ld s11,8(sp)
+ 80002640: 07010113 addi sp,sp,112
+ 80002644: 9f9fd06f j 8000003c <pop_tf>
+ 80002648: 10853703 ld a4,264(a0)
+ 8000264c: 00377793 andi a5,a4,3
+ 80002650: 06079a63 bnez a5,800026c4 <handle_trap+0x128>
+ 80002654: 008007ef jal a5,8000265c <handle_trap+0xc0>
+ 80002658: 00301073 fssr zero
+ 8000265c: 00072703 lw a4,0(a4)
+ 80002660: 0007a783 lw a5,0(a5)
+ 80002664: 04f70c63 beq a4,a5,800026bc <handle_trap+0x120>
+ 80002668: 10100513 li a0,257
+ 8000266c: 04100793 li a5,65
+ 80002670: 00000697 auipc a3,0x0
+ 80002674: 6e868693 addi a3,a3,1768 # 80002d58 <pass+0x18c>
+ 80002678: fffff717 auipc a4,0xfffff
+ 8000267c: 98870713 addi a4,a4,-1656 # 80001000 <tohost>
+ 80002680: 03051513 slli a0,a0,0x30
+ 80002684: 00073583 ld a1,0(a4)
+ 80002688: 00168693 addi a3,a3,1
+ 8000268c: 00a7e633 or a2,a5,a0
+ 80002690: 00058a63 beqz a1,800026a4 <handle_trap+0x108>
+ 80002694: fffff797 auipc a5,0xfffff
+ 80002698: 9a07b623 sd zero,-1620(a5) # 80001040 <fromhost>
+ 8000269c: 00073783 ld a5,0(a4)
+ 800026a0: fe079ae3 bnez a5,80002694 <handle_trap+0xf8>
+ 800026a4: 0006c783 lbu a5,0(a3)
+ 800026a8: fffff597 auipc a1,0xfffff
+ 800026ac: 94c5bc23 sd a2,-1704(a1) # 80001000 <tohost>
+ 800026b0: fc079ae3 bnez a5,80002684 <handle_trap+0xe8>
+ 800026b4: 00300513 li a0,3
+ 800026b8: b79ff0ef jal ra,80002230 <terminate>
+ 800026bc: 00100513 li a0,1
+ 800026c0: b71ff0ef jal ra,80002230 <terminate>
+ 800026c4: 10100793 li a5,257
+ 800026c8: 00000617 auipc a2,0x0
+ 800026cc: 66860613 addi a2,a2,1640 # 80002d30 <pass+0x164>
+ 800026d0: 04100693 li a3,65
+ 800026d4: fffff717 auipc a4,0xfffff
+ 800026d8: 92c70713 addi a4,a4,-1748 # 80001000 <tohost>
+ 800026dc: 03079793 slli a5,a5,0x30
+ 800026e0: 00073503 ld a0,0(a4)
+ 800026e4: 00160613 addi a2,a2,1
+ 800026e8: 00f6e5b3 or a1,a3,a5
+ 800026ec: 00050a63 beqz a0,80002700 <handle_trap+0x164>
+ 800026f0: fffff697 auipc a3,0xfffff
+ 800026f4: 9406b823 sd zero,-1712(a3) # 80001040 <fromhost>
+ 800026f8: 00073683 ld a3,0(a4)
+ 800026fc: fe069ae3 bnez a3,800026f0 <handle_trap+0x154>
+ 80002700: 00064683 lbu a3,0(a2)
+ 80002704: fffff517 auipc a0,0xfffff
+ 80002708: 8eb53e23 sd a1,-1796(a0) # 80001000 <tohost>
+ 8000270c: fc069ae3 bnez a3,800026e0 <handle_trap+0x144>
+ 80002710: fa5ff06f j 800026b4 <handle_trap+0x118>
+ 80002714: 05052983 lw s3,80(a0)
+ 80002718: 00001437 lui s0,0x1
+ 8000271c: 00005d17 auipc s10,0x5
+ 80002720: cd4d0d13 addi s10,s10,-812 # 800073f0 <user_mapping>
+ 80002724: 00001b97 auipc s7,0x1
+ 80002728: 8dcb8b93 addi s7,s7,-1828 # 80003000 <begin_signature>
+ 8000272c: 00040b37 lui s6,0x40
+ 80002730: ffe00ab7 lui s5,0xffe00
+ 80002734: 00005a17 auipc s4,0x5
+ 80002738: 0aca0a13 addi s4,s4,172 # 800077e0 <freelist_tail>
+ 8000273c: 0003f937 lui s2,0x3f
+ 80002740: 01c0006f j 8000275c <handle_trap+0x1c0>
+ 80002744: 00f73423 sd a5,8(a4)
+ 80002748: 00005717 auipc a4,0x5
+ 8000274c: 08f73c23 sd a5,152(a4) # 800077e0 <freelist_tail>
+ 80002750: 000017b7 lui a5,0x1
+ 80002754: 00f40433 add s0,s0,a5
+ 80002758: 15240663 beq s0,s2,800028a4 <handle_trap+0x308>
+ 8000275c: 00c45793 srli a5,s0,0xc
+ 80002760: 00479493 slli s1,a5,0x4
+ 80002764: 009d0733 add a4,s10,s1
+ 80002768: 00073703 ld a4,0(a4)
+ 8000276c: fe0702e3 beqz a4,80002750 <handle_trap+0x1b4>
+ 80002770: 60078793 addi a5,a5,1536 # 1600 <_start-0x7fffea00>
+ 80002774: 00379793 slli a5,a5,0x3
+ 80002778: 00fb87b3 add a5,s7,a5
+ 8000277c: 0007bc03 ld s8,0(a5)
+ 80002780: 040c7793 andi a5,s8,64
+ 80002784: 0e078463 beqz a5,8000286c <handle_trap+0x2d0>
+ 80002788: 100b2cf3 csrrs s9,sstatus,s6
+ 8000278c: 01540db3 add s11,s0,s5
+ 80002790: 00001637 lui a2,0x1
+ 80002794: 000d8593 mv a1,s11
+ 80002798: 00040513 mv a0,s0
+ 8000279c: 975ff0ef jal ra,80002110 <memcmp>
+ 800027a0: 00050e63 beqz a0,800027bc <handle_trap+0x220>
+ 800027a4: 080c7c13 andi s8,s8,128
+ 800027a8: 080c0663 beqz s8,80002834 <handle_trap+0x298>
+ 800027ac: 00001637 lui a2,0x1
+ 800027b0: 000d8593 mv a1,s11
+ 800027b4: 00040513 mv a0,s0
+ 800027b8: 849ff0ef jal ra,80002000 <memcpy>
+ 800027bc: 009d07b3 add a5,s10,s1
+ 800027c0: 100c9073 csrw sstatus,s9
+ 800027c4: 000a3703 ld a4,0(s4)
+ 800027c8: 0007b023 sd zero,0(a5)
+ 800027cc: f6071ce3 bnez a4,80002744 <handle_trap+0x1a8>
+ 800027d0: 00005717 auipc a4,0x5
+ 800027d4: 00f73823 sd a5,16(a4) # 800077e0 <freelist_tail>
+ 800027d8: 00005717 auipc a4,0x5
+ 800027dc: 00f73823 sd a5,16(a4) # 800077e8 <freelist_head>
+ 800027e0: f71ff06f j 80002750 <handle_trap+0x1b4>
+ 800027e4: 10100793 li a5,257
+ 800027e8: 04100613 li a2,65
+ 800027ec: 00000697 auipc a3,0x0
+ 800027f0: 59c68693 addi a3,a3,1436 # 80002d88 <pass+0x1bc>
+ 800027f4: fffff717 auipc a4,0xfffff
+ 800027f8: 80c70713 addi a4,a4,-2036 # 80001000 <tohost>
+ 800027fc: 03079793 slli a5,a5,0x30
+ 80002800: 00073503 ld a0,0(a4)
+ 80002804: 00168693 addi a3,a3,1
+ 80002808: 00f665b3 or a1,a2,a5
+ 8000280c: 00050a63 beqz a0,80002820 <handle_trap+0x284>
+ 80002810: fffff617 auipc a2,0xfffff
+ 80002814: 82063823 sd zero,-2000(a2) # 80001040 <fromhost>
+ 80002818: 00073603 ld a2,0(a4)
+ 8000281c: fe061ae3 bnez a2,80002810 <handle_trap+0x274>
+ 80002820: 0006c603 lbu a2,0(a3)
+ 80002824: ffffe517 auipc a0,0xffffe
+ 80002828: 7cb53e23 sd a1,2012(a0) # 80001000 <tohost>
+ 8000282c: fc061ae3 bnez a2,80002800 <handle_trap+0x264>
+ 80002830: e85ff06f j 800026b4 <handle_trap+0x118>
+ 80002834: 10100793 li a5,257
+ 80002838: 04100613 li a2,65
+ 8000283c: 00000697 auipc a3,0x0
+ 80002840: 4bc68693 addi a3,a3,1212 # 80002cf8 <pass+0x12c>
+ 80002844: ffffe717 auipc a4,0xffffe
+ 80002848: 7bc70713 addi a4,a4,1980 # 80001000 <tohost>
+ 8000284c: 03079793 slli a5,a5,0x30
+ 80002850: 00168693 addi a3,a3,1
+ 80002854: 00f665b3 or a1,a2,a5
+ 80002858: 00073603 ld a2,0(a4)
+ 8000285c: 04060863 beqz a2,800028ac <handle_trap+0x310>
+ 80002860: ffffe617 auipc a2,0xffffe
+ 80002864: 7e063023 sd zero,2016(a2) # 80001040 <fromhost>
+ 80002868: ff1ff06f j 80002858 <handle_trap+0x2bc>
+ 8000286c: 10100793 li a5,257
+ 80002870: 04100613 li a2,65
+ 80002874: 00000697 auipc a3,0x0
+ 80002878: 44c68693 addi a3,a3,1100 # 80002cc0 <pass+0xf4>
+ 8000287c: ffffe717 auipc a4,0xffffe
+ 80002880: 78470713 addi a4,a4,1924 # 80001000 <tohost>
+ 80002884: 03079793 slli a5,a5,0x30
+ 80002888: 00168693 addi a3,a3,1
+ 8000288c: 00f665b3 or a1,a2,a5
+ 80002890: 00073603 ld a2,0(a4)
+ 80002894: 02060663 beqz a2,800028c0 <handle_trap+0x324>
+ 80002898: ffffe617 auipc a2,0xffffe
+ 8000289c: 7a063423 sd zero,1960(a2) # 80001040 <fromhost>
+ 800028a0: ff1ff06f j 80002890 <handle_trap+0x2f4>
+ 800028a4: 00098513 mv a0,s3
+ 800028a8: 989ff0ef jal ra,80002230 <terminate>
+ 800028ac: 0006c603 lbu a2,0(a3)
+ 800028b0: ffffe517 auipc a0,0xffffe
+ 800028b4: 74b53823 sd a1,1872(a0) # 80001000 <tohost>
+ 800028b8: f8061ce3 bnez a2,80002850 <handle_trap+0x2b4>
+ 800028bc: df9ff06f j 800026b4 <handle_trap+0x118>
+ 800028c0: 0006c603 lbu a2,0(a3)
+ 800028c4: ffffe517 auipc a0,0xffffe
+ 800028c8: 72b53e23 sd a1,1852(a0) # 80001000 <tohost>
+ 800028cc: fa061ee3 bnez a2,80002888 <handle_trap+0x2ec>
+ 800028d0: de5ff06f j 800026b4 <handle_trap+0x118>
+
+00000000800028d4 <vm_boot>:
+ 800028d4: f14027f3 csrr a5,mhartid
+ 800028d8: 18079a63 bnez a5,80002a6c <vm_boot+0x198>
+ 800028dc: 00001697 auipc a3,0x1
+ 800028e0: 72468693 addi a3,a3,1828 # 80004000 <begin_signature+0x1000>
+ 800028e4: 00002717 auipc a4,0x2
+ 800028e8: 71c70713 addi a4,a4,1820 # 80005000 <begin_signature+0x2000>
+ 800028ec: 00c6d693 srli a3,a3,0xc
+ 800028f0: 00c75713 srli a4,a4,0xc
+ 800028f4: 00003797 auipc a5,0x3
+ 800028f8: 70c78793 addi a5,a5,1804 # 80006000 <begin_signature+0x3000>
+ 800028fc: 00a69693 slli a3,a3,0xa
+ 80002900: 00a71713 slli a4,a4,0xa
+ 80002904: 0016e693 ori a3,a3,1
+ 80002908: 00176713 ori a4,a4,1
+ 8000290c: 00c7d793 srli a5,a5,0xc
+ 80002910: 00000897 auipc a7,0x0
+ 80002914: 6ed8b823 sd a3,1776(a7) # 80003000 <begin_signature>
+ 80002918: 00a79793 slli a5,a5,0xa
+ 8000291c: 00001697 auipc a3,0x1
+ 80002920: 6ce6be23 sd a4,1756(a3) # 80003ff8 <begin_signature+0xff8>
+ 80002924: 20000737 lui a4,0x20000
+ 80002928: 0cf70713 addi a4,a4,207 # 200000cf <_start-0x5fffff31>
+ 8000292c: fff00593 li a1,-1
+ 80002930: 0017e793 ori a5,a5,1
+ 80002934: 00000617 auipc a2,0x0
+ 80002938: 6cc60613 addi a2,a2,1740 # 80003000 <begin_signature>
+ 8000293c: ed010113 addi sp,sp,-304
+ 80002940: 03f59813 slli a6,a1,0x3f
+ 80002944: 00003697 auipc a3,0x3
+ 80002948: 6ae6ba23 sd a4,1716(a3) # 80005ff8 <begin_signature+0x2ff8>
+ 8000294c: 00001717 auipc a4,0x1
+ 80002950: 6af73a23 sd a5,1716(a4) # 80004000 <begin_signature+0x1000>
+ 80002954: 00c65793 srli a5,a2,0xc
+ 80002958: 12113423 sd ra,296(sp)
+ 8000295c: 12813023 sd s0,288(sp)
+ 80002960: 0107e7b3 or a5,a5,a6
+ 80002964: 18079073 csrw satp,a5
+ 80002968: 01f00793 li a5,31
+ 8000296c: 00000297 auipc t0,0x0
+ 80002970: 01428293 addi t0,t0,20 # 80002980 <vm_boot+0xac>
+ 80002974: 305292f3 csrrw t0,mtvec,t0
+ 80002978: 3b059073 csrw pmpaddr0,a1
+ 8000297c: 3a079073 csrw pmpcfg0,a5
+ 80002980: bff00813 li a6,-1025
+ 80002984: 01581813 slli a6,a6,0x15
+ 80002988: ffffd797 auipc a5,0xffffd
+ 8000298c: 73c78793 addi a5,a5,1852 # 800000c4 <trap_entry>
+ 80002990: 010787b3 add a5,a5,a6
+ 80002994: 10579073 csrw stvec,a5
+ 80002998: 340027f3 csrr a5,mscratch
+ 8000299c: 010787b3 add a5,a5,a6
+ 800029a0: 14079073 csrw sscratch,a5
+ 800029a4: 0000b7b7 lui a5,0xb
+ 800029a8: 1007879b addiw a5,a5,256
+ 800029ac: 30279073 csrw medeleg,a5
+ 800029b0: 0001e7b7 lui a5,0x1e
+ 800029b4: 30079073 csrw mstatus,a5
+ 800029b8: 30405073 csrwi mie,0
+ 800029bc: 00004697 auipc a3,0x4
+ 800029c0: 64468693 addi a3,a3,1604 # 80007000 <freelist_nodes>
+ 800029c4: 010687b3 add a5,a3,a6
+ 800029c8: 3e078713 addi a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
+ 800029cc: 00005617 auipc a2,0x5
+ 800029d0: e0f63e23 sd a5,-484(a2) # 800077e8 <freelist_head>
+ 800029d4: 00005797 auipc a5,0x5
+ 800029d8: e0e7b623 sd a4,-500(a5) # 800077e0 <freelist_tail>
+ 800029dc: 00005317 auipc t1,0x5
+ 800029e0: a1430313 addi t1,t1,-1516 # 800073f0 <user_mapping>
+ 800029e4: 03d00793 li a5,61
+ 800029e8: 000808b7 lui a7,0x80
+ 800029ec: 01080813 addi a6,a6,16
+ 800029f0: 03f7871b addiw a4,a5,63
+ 800029f4: 02071713 slli a4,a4,0x20
+ 800029f8: 0017d61b srliw a2,a5,0x1
+ 800029fc: 02075713 srli a4,a4,0x20
+ 80002a00: 00c7c7b3 xor a5,a5,a2
+ 80002a04: 01170733 add a4,a4,a7
+ 80002a08: 010685b3 add a1,a3,a6
+ 80002a0c: 00c71713 slli a4,a4,0xc
+ 80002a10: 0057979b slliw a5,a5,0x5
+ 80002a14: 00e6b023 sd a4,0(a3)
+ 80002a18: 00b6b423 sd a1,8(a3)
+ 80002a1c: 0207f793 andi a5,a5,32
+ 80002a20: 01068693 addi a3,a3,16
+ 80002a24: 00c7e7b3 or a5,a5,a2
+ 80002a28: fcd314e3 bne t1,a3,800029f0 <vm_boot+0x11c>
+ 80002a2c: 00050413 mv s0,a0
+ 80002a30: 12000613 li a2,288
+ 80002a34: 00000593 li a1,0
+ 80002a38: 00010513 mv a0,sp
+ 80002a3c: 00005797 auipc a5,0x5
+ 80002a40: 9a07b623 sd zero,-1620(a5) # 800073e8 <freelist_nodes+0x3e8>
+ 80002a44: e18ff0ef jal ra,8000205c <memset>
+ 80002a48: 800007b7 lui a5,0x80000
+ 80002a4c: 00f40433 add s0,s0,a5
+ 80002a50: 00010513 mv a0,sp
+ 80002a54: 10813423 sd s0,264(sp)
+ 80002a58: de4fd0ef jal ra,8000003c <pop_tf>
+ 80002a5c: 12813083 ld ra,296(sp)
+ 80002a60: 12013403 ld s0,288(sp)
+ 80002a64: 13010113 addi sp,sp,304
+ 80002a68: 00008067 ret
+ 80002a6c: 0ffa37b7 lui a5,0xffa3
+ 80002a70: 000805b7 lui a1,0x80
+ 80002a74: 57578793 addi a5,a5,1397 # ffa3575 <_start-0x7005ca8b>
+ 80002a78: ffc58593 addi a1,a1,-4 # 7fffc <_start-0x7ff80004>
+ 80002a7c: 00100613 li a2,1
+ 80002a80: 00b7f733 and a4,a5,a1
+ 80002a84: 01f61613 slli a2,a2,0x1f
+ 80002a88: 0017f693 andi a3,a5,1
+ 80002a8c: 02079793 slli a5,a5,0x20
+ 80002a90: 0207d793 srli a5,a5,0x20
+ 80002a94: 00c70733 add a4,a4,a2
+ 80002a98: 02068263 beqz a3,80002abc <vm_boot+0x1e8>
+ 80002a9c: 0007202f amoadd.w zero,zero,(a4)
+ 80002aa0: 0017d793 srli a5,a5,0x1
+ 80002aa4: 00b7f733 and a4,a5,a1
+ 80002aa8: 0017f693 andi a3,a5,1
+ 80002aac: 02079793 slli a5,a5,0x20
+ 80002ab0: 0207d793 srli a5,a5,0x20
+ 80002ab4: 00c70733 add a4,a4,a2
+ 80002ab8: fe0692e3 bnez a3,80002a9c <vm_boot+0x1c8>
+ 80002abc: 00072003 lw zero,0(a4)
+ 80002ac0: 0017d793 srli a5,a5,0x1
+ 80002ac4: fe1ff06f j 80002aa4 <vm_boot+0x1d0>
+
+0000000080002ac8 <userstart>:
+ 80002ac8: 01400093 li ra,20
+ 80002acc: 00600113 li sp,6
+ 80002ad0: 0220ef3b remw t5,ra,sp
+ 80002ad4: 00200e93 li t4,2
+ 80002ad8: 00200193 li gp,2
+ 80002adc: 0fdf1063 bne t5,t4,80002bbc <fail>
+
+0000000080002ae0 <test_3>:
+ 80002ae0: fec00093 li ra,-20
+ 80002ae4: 00600113 li sp,6
+ 80002ae8: 0220ef3b remw t5,ra,sp
+ 80002aec: ffe00e93 li t4,-2
+ 80002af0: 00300193 li gp,3
+ 80002af4: 0ddf1463 bne t5,t4,80002bbc <fail>
+
+0000000080002af8 <test_4>:
+ 80002af8: 01400093 li ra,20
+ 80002afc: ffa00113 li sp,-6
+ 80002b00: 0220ef3b remw t5,ra,sp
+ 80002b04: 00200e93 li t4,2
+ 80002b08: 00400193 li gp,4
+ 80002b0c: 0bdf1863 bne t5,t4,80002bbc <fail>
+
+0000000080002b10 <test_5>:
+ 80002b10: fec00093 li ra,-20
+ 80002b14: ffa00113 li sp,-6
+ 80002b18: 0220ef3b remw t5,ra,sp
+ 80002b1c: ffe00e93 li t4,-2
+ 80002b20: 00500193 li gp,5
+ 80002b24: 09df1c63 bne t5,t4,80002bbc <fail>
+
+0000000080002b28 <test_6>:
+ 80002b28: 800000b7 lui ra,0x80000
+ 80002b2c: 00100113 li sp,1
+ 80002b30: 0220ef3b remw t5,ra,sp
+ 80002b34: 00000e93 li t4,0
+ 80002b38: 00600193 li gp,6
+ 80002b3c: 09df1063 bne t5,t4,80002bbc <fail>
+
+0000000080002b40 <test_7>:
+ 80002b40: 800000b7 lui ra,0x80000
+ 80002b44: fff00113 li sp,-1
+ 80002b48: 0220ef3b remw t5,ra,sp
+ 80002b4c: 00000e93 li t4,0
+ 80002b50: 00700193 li gp,7
+ 80002b54: 07df1463 bne t5,t4,80002bbc <fail>
+
+0000000080002b58 <test_8>:
+ 80002b58: 800000b7 lui ra,0x80000
+ 80002b5c: 00000113 li sp,0
+ 80002b60: 0220ef3b remw t5,ra,sp
+ 80002b64: 80000eb7 lui t4,0x80000
+ 80002b68: 00800193 li gp,8
+ 80002b6c: 05df1863 bne t5,t4,80002bbc <fail>
+
+0000000080002b70 <test_9>:
+ 80002b70: 00100093 li ra,1
+ 80002b74: 00000113 li sp,0
+ 80002b78: 0220ef3b remw t5,ra,sp
+ 80002b7c: 00100e93 li t4,1
+ 80002b80: 00900193 li gp,9
+ 80002b84: 03df1c63 bne t5,t4,80002bbc <fail>
+
+0000000080002b88 <test_10>:
+ 80002b88: 00000093 li ra,0
+ 80002b8c: 00000113 li sp,0
+ 80002b90: 0220ef3b remw t5,ra,sp
+ 80002b94: 00000e93 li t4,0
+ 80002b98: 00a00193 li gp,10
+ 80002b9c: 03df1063 bne t5,t4,80002bbc <fail>
+
+0000000080002ba0 <test_11>:
+ 80002ba0: 89700093 li ra,-1897
+ 80002ba4: 00000113 li sp,0
+ 80002ba8: 0220ef3b remw t5,ra,sp
+ 80002bac: 89700e93 li t4,-1897
+ 80002bb0: 00b00193 li gp,11
+ 80002bb4: 01df1463 bne t5,t4,80002bbc <fail>
+ 80002bb8: 00301a63 bne zero,gp,80002bcc <pass>
+
+0000000080002bbc <fail>:
+ 80002bbc: 00119513 slli a0,gp,0x1
+ 80002bc0: 00050063 beqz a0,80002bc0 <fail+0x4>
+ 80002bc4: 00156513 ori a0,a0,1
+ 80002bc8: 00000073 ecall
+
+0000000080002bcc <pass>:
+ 80002bcc: 00100513 li a0,1
+ 80002bd0: 00000073 ecall
+ 80002bd4: c0001073 unimp
diff --git a/test/tests/rv64um-v-remw.elf b/test/tests/rv64um-v-remw.elf
new file mode 100644
index 0000000..7471536
--- /dev/null
+++ b/test/tests/rv64um-v-remw.elf
Binary files differ