1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
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,stval
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
|