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
|
rv32ua-v-lrsc: file format elf32-littleriscv
Disassembly of section .text.init:
80000000 <_start>:
80000000: 00c0006f j 8000000c <handle_reset>
80000004 <nmi_vector>:
80000004: 2780206f j 8000227c <wtf>
80000008 <trap_vector>:
80000008: 2740206f j 8000227c <wtf>
8000000c <handle_reset>:
8000000c: 00000297 auipc t0,0x0
80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
80000014: 30529073 csrw mtvec,t0
80000018: 00007117 auipc sp,0x7
8000001c: 35010113 addi sp,sp,848 # 80007368 <_end+0xf70>
80000020: f14022f3 csrr t0,mhartid
80000024: 00c29293 slli t0,t0,0xc
80000028: 00510133 add sp,sp,t0
8000002c: 34011073 csrw mscratch,sp
80000030: 00003517 auipc a0,0x3
80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
80000038: 2090206f j 80002a40 <vm_boot>
8000003c <pop_tf>:
8000003c: 08452283 lw t0,132(a0)
80000040: 14129073 csrw sepc,t0
80000044: 00452083 lw ra,4(a0)
80000048: 00852103 lw sp,8(a0)
8000004c: 00c52183 lw gp,12(a0)
80000050: 01052203 lw tp,16(a0)
80000054: 01452283 lw t0,20(a0)
80000058: 01852303 lw t1,24(a0)
8000005c: 01c52383 lw t2,28(a0)
80000060: 02052403 lw s0,32(a0)
80000064: 02452483 lw s1,36(a0)
80000068: 02c52583 lw a1,44(a0)
8000006c: 03052603 lw a2,48(a0)
80000070: 03452683 lw a3,52(a0)
80000074: 03852703 lw a4,56(a0)
80000078: 03c52783 lw a5,60(a0)
8000007c: 04052803 lw a6,64(a0)
80000080: 04452883 lw a7,68(a0)
80000084: 04852903 lw s2,72(a0)
80000088: 04c52983 lw s3,76(a0)
8000008c: 05052a03 lw s4,80(a0)
80000090: 05452a83 lw s5,84(a0)
80000094: 05852b03 lw s6,88(a0)
80000098: 05c52b83 lw s7,92(a0)
8000009c: 06052c03 lw s8,96(a0)
800000a0: 06452c83 lw s9,100(a0)
800000a4: 06852d03 lw s10,104(a0)
800000a8: 06c52d83 lw s11,108(a0)
800000ac: 07052e03 lw t3,112(a0)
800000b0: 07452e83 lw t4,116(a0)
800000b4: 07852f03 lw t5,120(a0)
800000b8: 07c52f83 lw t6,124(a0)
800000bc: 02852503 lw a0,40(a0)
800000c0: 10200073 sret
800000c4 <trap_entry>:
800000c4: 14011173 csrrw sp,sscratch,sp
800000c8: 00112223 sw ra,4(sp)
800000cc: 00312623 sw gp,12(sp)
800000d0: 00412823 sw tp,16(sp)
800000d4: 00512a23 sw t0,20(sp)
800000d8: 00612c23 sw t1,24(sp)
800000dc: 00712e23 sw t2,28(sp)
800000e0: 02812023 sw s0,32(sp)
800000e4: 02912223 sw s1,36(sp)
800000e8: 02a12423 sw a0,40(sp)
800000ec: 02b12623 sw a1,44(sp)
800000f0: 02c12823 sw a2,48(sp)
800000f4: 02d12a23 sw a3,52(sp)
800000f8: 02e12c23 sw a4,56(sp)
800000fc: 02f12e23 sw a5,60(sp)
80000100: 05012023 sw a6,64(sp)
80000104: 05112223 sw a7,68(sp)
80000108: 05212423 sw s2,72(sp)
8000010c: 05312623 sw s3,76(sp)
80000110: 05412823 sw s4,80(sp)
80000114: 05512a23 sw s5,84(sp)
80000118: 05612c23 sw s6,88(sp)
8000011c: 05712e23 sw s7,92(sp)
80000120: 07812023 sw s8,96(sp)
80000124: 07912223 sw s9,100(sp)
80000128: 07a12423 sw s10,104(sp)
8000012c: 07b12623 sw s11,108(sp)
80000130: 07c12823 sw t3,112(sp)
80000134: 07d12a23 sw t4,116(sp)
80000138: 07e12c23 sw t5,120(sp)
8000013c: 07f12e23 sw t6,124(sp)
80000140: 140112f3 csrrw t0,sscratch,sp
80000144: 00512423 sw t0,8(sp)
80000148: 100022f3 csrr t0,sstatus
8000014c: 08512023 sw t0,128(sp)
80000150: 141022f3 csrr t0,sepc
80000154: 08512223 sw t0,132(sp)
80000158: 143022f3 csrr t0,sbadaddr
8000015c: 08512423 sw t0,136(sp)
80000160: 142022f3 csrr t0,scause
80000164: 08512623 sw t0,140(sp)
80000168: 00010513 mv a0,sp
8000016c: 50c0206f j 80002678 <handle_trap>
Disassembly of section .text:
80002000 <memcpy>:
80002000: 00c5e7b3 or a5,a1,a2
80002004: 00f567b3 or a5,a0,a5
80002008: 0037f793 andi a5,a5,3
8000200c: 00c506b3 add a3,a0,a2
80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
80002014: 00c58633 add a2,a1,a2
80002018: 00050793 mv a5,a0
8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
80002020: 00158593 addi a1,a1,1
80002024: fff5c703 lbu a4,-1(a1)
80002028: 00178793 addi a5,a5,1
8000202c: fee78fa3 sb a4,-1(a5)
80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
80002034: 00008067 ret
80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
8000203c: 00050793 mv a5,a0
80002040: 00458593 addi a1,a1,4
80002044: ffc5a703 lw a4,-4(a1)
80002048: 00478793 addi a5,a5,4
8000204c: fee7ae23 sw a4,-4(a5)
80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
80002054: 00008067 ret
80002058: 00008067 ret
8000205c <memset>:
8000205c: 00c567b3 or a5,a0,a2
80002060: 0037f793 andi a5,a5,3
80002064: 00c50633 add a2,a0,a2
80002068: 02078063 beqz a5,80002088 <memset+0x2c>
8000206c: 0ff5f593 andi a1,a1,255
80002070: 00050793 mv a5,a0
80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
80002078: 00178793 addi a5,a5,1
8000207c: feb78fa3 sb a1,-1(a5)
80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
80002084: 00008067 ret
80002088: 0ff5f593 andi a1,a1,255
8000208c: 00859793 slli a5,a1,0x8
80002090: 00b7e7b3 or a5,a5,a1
80002094: 01079593 slli a1,a5,0x10
80002098: 00f5e5b3 or a1,a1,a5
8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
800020a0: 00050793 mv a5,a0
800020a4: 00478793 addi a5,a5,4
800020a8: feb7ae23 sw a1,-4(a5)
800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
800020b0: 00008067 ret
800020b4: 00008067 ret
800020b8 <strlen>:
800020b8: 00054783 lbu a5,0(a0)
800020bc: 00050713 mv a4,a0
800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
800020c4: 00150513 addi a0,a0,1
800020c8: 00054783 lbu a5,0(a0)
800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
800020d0: 40e50533 sub a0,a0,a4
800020d4: 00008067 ret
800020d8: 00000513 li a0,0
800020dc: 00008067 ret
800020e0 <strcmp>:
800020e0: 00150513 addi a0,a0,1
800020e4: fff54783 lbu a5,-1(a0)
800020e8: 00158593 addi a1,a1,1
800020ec: fff5c703 lbu a4,-1(a1)
800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
800020f8: 40e78533 sub a0,a5,a4
800020fc: 00008067 ret
80002100: 00000793 li a5,0
80002104: ff5ff06f j 800020f8 <strcmp+0x18>
80002108 <memcmp>:
80002108: 00b567b3 or a5,a0,a1
8000210c: 0037f793 andi a5,a5,3
80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
80002114: ffc67693 andi a3,a2,-4
80002118: 00d506b3 add a3,a0,a3
8000211c: 00050813 mv a6,a0
80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
80002124: 00052703 lw a4,0(a0)
80002128: 0005a783 lw a5,0(a1)
8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
80002130: 0240006f j 80002154 <memcmp+0x4c>
80002134: 00052703 lw a4,0(a0)
80002138: 0005a783 lw a5,0(a1)
8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
80002140: 00450513 addi a0,a0,4
80002144: 00458593 addi a1,a1,4
80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
8000214c: 41050833 sub a6,a0,a6
80002150: 41060633 sub a2,a2,a6
80002154: 00c58633 add a2,a1,a2
80002158: 0140006f j 8000216c <memcmp+0x64>
8000215c: 00158593 addi a1,a1,1
80002160: fff54783 lbu a5,-1(a0)
80002164: fff5c703 lbu a4,-1(a1)
80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
8000216c: 00150513 addi a0,a0,1
80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
80002174: 00000513 li a0,0
80002178: 00008067 ret
8000217c: 40e78533 sub a0,a5,a4
80002180: 00008067 ret
80002184 <strcpy>:
80002184: 00050793 mv a5,a0
80002188: 00158593 addi a1,a1,1
8000218c: fff5c703 lbu a4,-1(a1)
80002190: 00178793 addi a5,a5,1
80002194: fee78fa3 sb a4,-1(a5)
80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
8000219c: 00008067 ret
800021a0 <atol>:
800021a0: 00054783 lbu a5,0(a0)
800021a4: 02000713 li a4,32
800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
800021ac: 00150513 addi a0,a0,1
800021b0: 00054783 lbu a5,0(a0)
800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
800021b8: fd578713 addi a4,a5,-43
800021bc: 0fd77713 andi a4,a4,253
800021c0: 04070263 beqz a4,80002204 <atol+0x64>
800021c4: 00054683 lbu a3,0(a0)
800021c8: 00050793 mv a5,a0
800021cc: 00000613 li a2,0
800021d0: 04068863 beqz a3,80002220 <atol+0x80>
800021d4: 00000513 li a0,0
800021d8: 00178793 addi a5,a5,1
800021dc: fd068593 addi a1,a3,-48
800021e0: 00251713 slli a4,a0,0x2
800021e4: 0007c683 lbu a3,0(a5)
800021e8: 00a70533 add a0,a4,a0
800021ec: 00151513 slli a0,a0,0x1
800021f0: 00a58533 add a0,a1,a0
800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
800021f8: 00060463 beqz a2,80002200 <atol+0x60>
800021fc: 40a00533 neg a0,a0
80002200: 00008067 ret
80002204: 00154683 lbu a3,1(a0)
80002208: fd378793 addi a5,a5,-45
8000220c: 0017b613 seqz a2,a5
80002210: 00150793 addi a5,a0,1
80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
80002218: 00000513 li a0,0
8000221c: fddff06f j 800021f8 <atol+0x58>
80002220: 00000513 li a0,0
80002224: 00008067 ret
80002228 <terminate>:
80002228: fffff697 auipc a3,0xfffff
8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
80002230: 0006a703 lw a4,0(a3)
80002234: 0046a783 lw a5,4(a3)
80002238: 00050813 mv a6,a0
8000223c: 41f55893 srai a7,a0,0x1f
80002240: 00f76733 or a4,a4,a5
80002244: 02070663 beqz a4,80002270 <terminate+0x48>
80002248: fffff617 auipc a2,0xfffff
8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
80002250: 00000713 li a4,0
80002254: 00e62023 sw a4,0(a2)
80002258: 00000793 li a5,0
8000225c: 00f62223 sw a5,4(a2)
80002260: 0006a703 lw a4,0(a3)
80002264: 0046a783 lw a5,4(a3)
80002268: 00f76733 or a4,a4,a5
8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
80002270: 0106a023 sw a6,0(a3)
80002274: 0116a223 sw a7,4(a3)
80002278: 0000006f j 80002278 <terminate+0x50>
8000227c <wtf>:
8000227c: ff010113 addi sp,sp,-16
80002280: 34900513 li a0,841
80002284: 00112623 sw ra,12(sp)
80002288: fa1ff0ef jal ra,80002228 <terminate>
8000228c <printhex>:
8000228c: fe010113 addi sp,sp,-32
80002290: 01b10793 addi a5,sp,27
80002294: 00b10e93 addi t4,sp,11
80002298: 00900e13 li t3,9
8000229c: 00f57693 andi a3,a0,15
800022a0: 01c59313 slli t1,a1,0x1c
800022a4: 00455513 srli a0,a0,0x4
800022a8: 05700613 li a2,87
800022ac: 0ff6f713 andi a4,a3,255
800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
800022b4: 03000613 li a2,48
800022b8: 00c70733 add a4,a4,a2
800022bc: 00e78023 sb a4,0(a5)
800022c0: fff78793 addi a5,a5,-1
800022c4: 00a36533 or a0,t1,a0
800022c8: 0045d593 srli a1,a1,0x4
800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
800022d0: 00c14583 lbu a1,12(sp)
800022d4: 00010e23 sb zero,28(sp)
800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
800022dc: 00c10513 addi a0,sp,12
800022e0: fffff697 auipc a3,0xfffff
800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
800022e8: fffff617 auipc a2,0xfffff
800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
800022f0: 0006a703 lw a4,0(a3)
800022f4: 0046a783 lw a5,4(a3)
800022f8: 00058813 mv a6,a1
800022fc: 00150513 addi a0,a0,1
80002300: 00f76733 or a4,a4,a5
80002304: 010108b7 lui a7,0x1010
80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
8000230c: 00000713 li a4,0
80002310: 00e62023 sw a4,0(a2)
80002314: 00000793 li a5,0
80002318: 00f62223 sw a5,4(a2)
8000231c: 0006a703 lw a4,0(a3)
80002320: 0046a783 lw a5,4(a3)
80002324: 00f76733 or a4,a4,a5
80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
8000232c: 00054583 lbu a1,0(a0)
80002330: 0106a023 sw a6,0(a3)
80002334: 0116a223 sw a7,4(a3)
80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
8000233c: 02010113 addi sp,sp,32
80002340: 00008067 ret
80002344 <handle_fault>:
80002344: ff010113 addi sp,sp,-16
80002348: fffff6b7 lui a3,0xfffff
8000234c: 00112623 sw ra,12(sp)
80002350: 00812423 sw s0,8(sp)
80002354: 00912223 sw s1,4(sp)
80002358: 00d50733 add a4,a0,a3
8000235c: 0003e7b7 lui a5,0x3e
80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
80002364: 00c55613 srli a2,a0,0xc
80002368: 40060e13 addi t3,a2,1024
8000236c: 00002317 auipc t1,0x2
80002370: c9430313 addi t1,t1,-876 # 80004000 <pt>
80002374: 002e1793 slli a5,t3,0x2
80002378: 00f307b3 add a5,t1,a5
8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
80002380: 00d57533 and a0,a0,a3
80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
80002388: 00004797 auipc a5,0x4
8000238c: 06c78793 addi a5,a5,108 # 800063f4 <freelist_head>
80002390: 0007a583 lw a1,0(a5)
80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
80002398: 0045a783 lw a5,4(a1)
8000239c: 00004717 auipc a4,0x4
800023a0: 05470713 addi a4,a4,84 # 800063f0 <freelist_tail>
800023a4: 00072703 lw a4,0(a4)
800023a8: 00004697 auipc a3,0x4
800023ac: 04f6a623 sw a5,76(a3) # 800063f4 <freelist_head>
800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
800023b4: 0005a703 lw a4,0(a1)
800023b8: 002e1793 slli a5,t3,0x2
800023bc: 00f307b3 add a5,t1,a5
800023c0: 00c75713 srli a4,a4,0xc
800023c4: 00a71713 slli a4,a4,0xa
800023c8: 0df76e93 ori t4,a4,223
800023cc: 01f76693 ori a3,a4,31
800023d0: 01d7a023 sw t4,0(a5)
800023d4: 12050073 sfence.vma a0
800023d8: 00004717 auipc a4,0x4
800023dc: e2070713 addi a4,a4,-480 # 800061f8 <user_mapping>
800023e0: 00361793 slli a5,a2,0x3
800023e4: 00f707b3 add a5,a4,a5
800023e8: 0007a703 lw a4,0(a5)
800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
800023f0: 0005a703 lw a4,0(a1)
800023f4: 00e7a023 sw a4,0(a5)
800023f8: 0045a703 lw a4,4(a1)
800023fc: 00e7a223 sw a4,4(a5)
80002400: 000407b7 lui a5,0x40
80002404: 1007a5f3 csrrs a1,sstatus,a5
80002408: ffc007b7 lui a5,0xffc00
8000240c: 00f507b3 add a5,a0,a5
80002410: 00001637 lui a2,0x1
80002414: 00050713 mv a4,a0
80002418: 00c78633 add a2,a5,a2
8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf9c08>
80002420: 0047ae83 lw t4,4(a5)
80002424: 0087a883 lw a7,8(a5)
80002428: 00c7a803 lw a6,12(a5)
8000242c: 01e72023 sw t5,0(a4)
80002430: 01d72223 sw t4,4(a4)
80002434: 01172423 sw a7,8(a4)
80002438: 01072623 sw a6,12(a4)
8000243c: 01078793 addi a5,a5,16
80002440: 01070713 addi a4,a4,16
80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
80002448: 10059073 csrw sstatus,a1
8000244c: 002e1e13 slli t3,t3,0x2
80002450: 01c30333 add t1,t1,t3
80002454: 00d32023 sw a3,0(t1)
80002458: 12050073 sfence.vma a0
8000245c: 0000100f fence.i
80002460: 00c12083 lw ra,12(sp)
80002464: 00812403 lw s0,8(sp)
80002468: 00412483 lw s1,4(sp)
8000246c: 01010113 addi sp,sp,16
80002470: 00008067 ret
80002474: 04077693 andi a3,a4,64
80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
8000247c: 04076713 ori a4,a4,64
80002480: 00e7a023 sw a4,0(a5)
80002484: 12050073 sfence.vma a0
80002488: 00c12083 lw ra,12(sp)
8000248c: 00812403 lw s0,8(sp)
80002490: 00412483 lw s1,4(sp)
80002494: 01010113 addi sp,sp,16
80002498: 00008067 ret
8000249c: 08077693 andi a3,a4,128
800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
800024a4: 00f00693 li a3,15
800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
800024ac: 08076713 ori a4,a4,128
800024b0: 00e7a023 sw a4,0(a5)
800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
800024b8: 00004797 auipc a5,0x4
800024bc: f207ac23 sw zero,-200(a5) # 800063f0 <freelist_tail>
800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
800024c4: 04100513 li a0,65
800024c8: 00000597 auipc a1,0x0
800024cc: 7f858593 addi a1,a1,2040 # 80002cc0 <pass+0xc>
800024d0: fffff697 auipc a3,0xfffff
800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
800024d8: fffff617 auipc a2,0xfffff
800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
800024e0: 0006a703 lw a4,0(a3)
800024e4: 0046a783 lw a5,4(a3)
800024e8: 00050313 mv t1,a0
800024ec: 00158593 addi a1,a1,1
800024f0: 00f76733 or a4,a4,a5
800024f4: 010103b7 lui t2,0x1010
800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
800024fc: 00000793 li a5,0
80002500: 00f62023 sw a5,0(a2)
80002504: 00000813 li a6,0
80002508: 01062223 sw a6,4(a2)
8000250c: 0006a703 lw a4,0(a3)
80002510: 0046a783 lw a5,4(a3)
80002514: 00f76733 or a4,a4,a5
80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
8000251c: 0005c503 lbu a0,0(a1)
80002520: 0066a023 sw t1,0(a3)
80002524: 0076a223 sw t2,4(a3)
80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
8000252c: 00300513 li a0,3
80002530: cf9ff0ef jal ra,80002228 <terminate>
80002534: 04100513 li a0,65
80002538: 00001597 auipc a1,0x1
8000253c: 81458593 addi a1,a1,-2028 # 80002d4c <pass+0x98>
80002540: fffff697 auipc a3,0xfffff
80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
80002548: fffff617 auipc a2,0xfffff
8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
80002550: 0006a703 lw a4,0(a3)
80002554: 0046a783 lw a5,4(a3)
80002558: 00050f13 mv t5,a0
8000255c: 00158593 addi a1,a1,1
80002560: 00f76733 or a4,a4,a5
80002564: 01010fb7 lui t6,0x1010
80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
8000256c: 00000793 li a5,0
80002570: 00f62023 sw a5,0(a2)
80002574: 00000813 li a6,0
80002578: 01062223 sw a6,4(a2)
8000257c: 0006a703 lw a4,0(a3)
80002580: 0046a783 lw a5,4(a3)
80002584: 00f76733 or a4,a4,a5
80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
8000258c: 0005c503 lbu a0,0(a1)
80002590: 01e6a023 sw t5,0(a3)
80002594: 01f6a223 sw t6,4(a3)
80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
800025a0: 04100513 li a0,65
800025a4: 00000597 auipc a1,0x0
800025a8: 7c058593 addi a1,a1,1984 # 80002d64 <pass+0xb0>
800025ac: fffff697 auipc a3,0xfffff
800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
800025b4: fffff617 auipc a2,0xfffff
800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
800025bc: 0006a703 lw a4,0(a3)
800025c0: 0046a783 lw a5,4(a3)
800025c4: 00050813 mv a6,a0
800025c8: 00158593 addi a1,a1,1
800025cc: 00f76733 or a4,a4,a5
800025d0: 010108b7 lui a7,0x1010
800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
800025d8: 00000713 li a4,0
800025dc: 00e62023 sw a4,0(a2)
800025e0: 00000793 li a5,0
800025e4: 00f62223 sw a5,4(a2)
800025e8: 0006a703 lw a4,0(a3)
800025ec: 0046a783 lw a5,4(a3)
800025f0: 00f76733 or a4,a4,a5
800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
800025f8: 0005c503 lbu a0,0(a1)
800025fc: 0106a023 sw a6,0(a3)
80002600: 0116a223 sw a7,4(a3)
80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
8000260c: 04100793 li a5,65
80002610: 00000597 auipc a1,0x0
80002614: 6f458593 addi a1,a1,1780 # 80002d04 <pass+0x50>
80002618: fffff697 auipc a3,0xfffff
8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
80002620: fffff617 auipc a2,0xfffff
80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
80002628: 0006a803 lw a6,0(a3)
8000262c: 0046a883 lw a7,4(a3)
80002630: 00078413 mv s0,a5
80002634: 00158593 addi a1,a1,1
80002638: 01186833 or a6,a6,a7
8000263c: 010104b7 lui s1,0x1010
80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
80002644: 00000793 li a5,0
80002648: 00f62023 sw a5,0(a2)
8000264c: 00000813 li a6,0
80002650: 01062223 sw a6,4(a2)
80002654: 0006a703 lw a4,0(a3)
80002658: 0046a783 lw a5,4(a3)
8000265c: 00f76733 or a4,a4,a5
80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
80002664: 0005c783 lbu a5,0(a1)
80002668: 0086a023 sw s0,0(a3)
8000266c: 0096a223 sw s1,4(a3)
80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
80002678 <handle_trap>:
80002678: 08c52583 lw a1,140(a0)
8000267c: fb010113 addi sp,sp,-80
80002680: 03412c23 sw s4,56(sp)
80002684: 04112623 sw ra,76(sp)
80002688: 04812423 sw s0,72(sp)
8000268c: 04912223 sw s1,68(sp)
80002690: 05212023 sw s2,64(sp)
80002694: 03312e23 sw s3,60(sp)
80002698: 03512a23 sw s5,52(sp)
8000269c: 03612823 sw s6,48(sp)
800026a0: 03712623 sw s7,44(sp)
800026a4: 03812423 sw s8,40(sp)
800026a8: 03912223 sw s9,36(sp)
800026ac: 03a12023 sw s10,32(sp)
800026b0: 01b12e23 sw s11,28(sp)
800026b4: 00800793 li a5,8
800026b8: 00050a13 mv s4,a0
800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
800026c0: 00200793 li a5,2
800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
800026c8: ff458793 addi a5,a1,-12
800026cc: 00100713 li a4,1
800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
800026d4: 00f00793 li a5,15
800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
800026dc: 088a2503 lw a0,136(s4)
800026e0: c65ff0ef jal ra,80002344 <handle_fault>
800026e4: 04812403 lw s0,72(sp)
800026e8: 04c12083 lw ra,76(sp)
800026ec: 04412483 lw s1,68(sp)
800026f0: 04012903 lw s2,64(sp)
800026f4: 03c12983 lw s3,60(sp)
800026f8: 03412a83 lw s5,52(sp)
800026fc: 03012b03 lw s6,48(sp)
80002700: 02c12b83 lw s7,44(sp)
80002704: 02812c03 lw s8,40(sp)
80002708: 02412c83 lw s9,36(sp)
8000270c: 02012d03 lw s10,32(sp)
80002710: 01c12d83 lw s11,28(sp)
80002714: 000a0513 mv a0,s4
80002718: 03812a03 lw s4,56(sp)
8000271c: 05010113 addi sp,sp,80
80002720: 91dfd06f j 8000003c <pop_tf>
80002724: 08452703 lw a4,132(a0)
80002728: 00377793 andi a5,a4,3
8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
80002734: 00301073 fssr zero
80002738: 00072703 lw a4,0(a4)
8000273c: 0007a783 lw a5,0(a5)
80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
80002744: 04100513 li a0,65
80002748: 00000597 auipc a1,0x0
8000274c: 6e458593 addi a1,a1,1764 # 80002e2c <pass+0x178>
80002750: fffff697 auipc a3,0xfffff
80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
80002758: fffff617 auipc a2,0xfffff
8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
80002760: 0006a703 lw a4,0(a3)
80002764: 0046a783 lw a5,4(a3)
80002768: 00050813 mv a6,a0
8000276c: 00158593 addi a1,a1,1
80002770: 00f76733 or a4,a4,a5
80002774: 010108b7 lui a7,0x1010
80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
8000277c: 00000713 li a4,0
80002780: 00e62023 sw a4,0(a2)
80002784: 00000793 li a5,0
80002788: 00f62223 sw a5,4(a2)
8000278c: 0006a703 lw a4,0(a3)
80002790: 0046a783 lw a5,4(a3)
80002794: 00f76733 or a4,a4,a5
80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
8000279c: 0005c503 lbu a0,0(a1)
800027a0: 0106a023 sw a6,0(a3)
800027a4: 0116a223 sw a7,4(a3)
800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
800027ac: 00300513 li a0,3
800027b0: a79ff0ef jal ra,80002228 <terminate>
800027b4: 00100513 li a0,1
800027b8: a71ff0ef jal ra,80002228 <terminate>
800027bc: 00000597 auipc a1,0x0
800027c0: 64c58593 addi a1,a1,1612 # 80002e08 <pass+0x154>
800027c4: 04100613 li a2,65
800027c8: fffff697 auipc a3,0xfffff
800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
800027d0: fffff517 auipc a0,0xfffff
800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
800027d8: 0006a703 lw a4,0(a3)
800027dc: 0046a783 lw a5,4(a3)
800027e0: 00060e13 mv t3,a2
800027e4: 00158593 addi a1,a1,1
800027e8: 00f76733 or a4,a4,a5
800027ec: 01010eb7 lui t4,0x1010
800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
800027f4: 00000793 li a5,0
800027f8: 00f52023 sw a5,0(a0)
800027fc: 00000813 li a6,0
80002800: 01052223 sw a6,4(a0)
80002804: 0006a703 lw a4,0(a3)
80002808: 0046a783 lw a5,4(a3)
8000280c: 00f76733 or a4,a4,a5
80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
80002814: 0005c603 lbu a2,0(a1)
80002818: 01c6a023 sw t3,0(a3)
8000281c: 01d6a223 sw t4,4(a3)
80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
80002824: f89ff06f j 800027ac <handle_trap+0x134>
80002828: 02852783 lw a5,40(a0)
8000282c: 00001a37 lui s4,0x1
80002830: 00004b17 auipc s6,0x4
80002834: 9c8b0b13 addi s6,s6,-1592 # 800061f8 <user_mapping>
80002838: 00f12223 sw a5,4(sp)
8000283c: 00001d17 auipc s10,0x1
80002840: 7c4d0d13 addi s10,s10,1988 # 80004000 <pt>
80002844: 00040cb7 lui s9,0x40
80002848: ffc00c37 lui s8,0xffc00
8000284c: 0003fab7 lui s5,0x3f
80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
80002854: 00f72223 sw a5,4(a4)
80002858: 00004717 auipc a4,0x4
8000285c: b8f72c23 sw a5,-1128(a4) # 800063f0 <freelist_tail>
80002860: 000017b7 lui a5,0x1
80002864: 00fa0a33 add s4,s4,a5
80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
8000286c: 00ca5713 srli a4,s4,0xc
80002870: 00371b93 slli s7,a4,0x3
80002874: 017b0633 add a2,s6,s7
80002878: 00062603 lw a2,0(a2)
8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
80002880: 40070713 addi a4,a4,1024
80002884: 00271713 slli a4,a4,0x2
80002888: 00ed0733 add a4,s10,a4
8000288c: 00072703 lw a4,0(a4)
80002890: 04077613 andi a2,a4,64
80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
80002898: 00e12623 sw a4,12(sp)
8000289c: 100cadf3 csrrs s11,sstatus,s9
800028a0: 018a0833 add a6,s4,s8
800028a4: 00001637 lui a2,0x1
800028a8: 00080593 mv a1,a6
800028ac: 000a0513 mv a0,s4
800028b0: 01012423 sw a6,8(sp)
800028b4: 855ff0ef jal ra,80002108 <memcmp>
800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
800028bc: 00c12703 lw a4,12(sp)
800028c0: 00812803 lw a6,8(sp)
800028c4: 08077713 andi a4,a4,128
800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
800028cc: 00001637 lui a2,0x1
800028d0: 00080593 mv a1,a6
800028d4: 000a0513 mv a0,s4
800028d8: f28ff0ef jal ra,80002000 <memcpy>
800028dc: 017b07b3 add a5,s6,s7
800028e0: 100d9073 csrw sstatus,s11
800028e4: 00004717 auipc a4,0x4
800028e8: b0c70713 addi a4,a4,-1268 # 800063f0 <freelist_tail>
800028ec: 00072703 lw a4,0(a4)
800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
800028f8: 00004717 auipc a4,0x4
800028fc: aef72c23 sw a5,-1288(a4) # 800063f0 <freelist_tail>
80002900: 00004717 auipc a4,0x4
80002904: aef72a23 sw a5,-1292(a4) # 800063f4 <freelist_head>
80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
8000290c: 04100593 li a1,65
80002910: 00000617 auipc a2,0x0
80002914: 54860613 addi a2,a2,1352 # 80002e58 <pass+0x1a4>
80002918: ffffe697 auipc a3,0xffffe
8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
80002920: ffffe517 auipc a0,0xffffe
80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
80002928: 0006a703 lw a4,0(a3)
8000292c: 0046a783 lw a5,4(a3)
80002930: 00058313 mv t1,a1
80002934: 00160613 addi a2,a2,1
80002938: 00f76733 or a4,a4,a5
8000293c: 010103b7 lui t2,0x1010
80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
80002944: 00000793 li a5,0
80002948: 00f52023 sw a5,0(a0)
8000294c: 00000813 li a6,0
80002950: 01052223 sw a6,4(a0)
80002954: 0006a703 lw a4,0(a3)
80002958: 0046a783 lw a5,4(a3)
8000295c: 00f76733 or a4,a4,a5
80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
80002964: 00064583 lbu a1,0(a2)
80002968: 0066a023 sw t1,0(a3)
8000296c: 0076a223 sw t2,4(a3)
80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
80002974: e39ff06f j 800027ac <handle_trap+0x134>
80002978: 04100793 li a5,65
8000297c: 00000617 auipc a2,0x0
80002980: 45860613 addi a2,a2,1112 # 80002dd4 <pass+0x120>
80002984: ffffe697 auipc a3,0xffffe
80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
8000298c: ffffe597 auipc a1,0xffffe
80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
80002994: 00078413 mv s0,a5
80002998: 00160613 addi a2,a2,1
8000299c: 010104b7 lui s1,0x1010
800029a0: 0006a703 lw a4,0(a3)
800029a4: 0046a783 lw a5,4(a3)
800029a8: 00f76733 or a4,a4,a5
800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
800029b0: 00000793 li a5,0
800029b4: 00000813 li a6,0
800029b8: 00f5a023 sw a5,0(a1)
800029bc: 0105a223 sw a6,4(a1)
800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
800029c4: 04100793 li a5,65
800029c8: 00000617 auipc a2,0x0
800029cc: 3d860613 addi a2,a2,984 # 80002da0 <pass+0xec>
800029d0: ffffe697 auipc a3,0xffffe
800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
800029d8: ffffe597 auipc a1,0xffffe
800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
800029e0: 00078913 mv s2,a5
800029e4: 00160613 addi a2,a2,1
800029e8: 010109b7 lui s3,0x1010
800029ec: 0006a703 lw a4,0(a3)
800029f0: 0046a783 lw a5,4(a3)
800029f4: 00f76733 or a4,a4,a5
800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
800029fc: 00000793 li a5,0
80002a00: 00000813 li a6,0
80002a04: 00f5a023 sw a5,0(a1)
80002a08: 0105a223 sw a6,4(a1)
80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
80002a10: 00412503 lw a0,4(sp)
80002a14: 815ff0ef jal ra,80002228 <terminate>
80002a18: 00064783 lbu a5,0(a2)
80002a1c: 0086a023 sw s0,0(a3)
80002a20: 0096a223 sw s1,4(a3)
80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
80002a28: d85ff06f j 800027ac <handle_trap+0x134>
80002a2c: 00064783 lbu a5,0(a2)
80002a30: 0126a023 sw s2,0(a3)
80002a34: 0136a223 sw s3,4(a3)
80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
80002a40 <vm_boot>:
80002a40: f14027f3 csrr a5,mhartid
80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
80002a48: 00002797 auipc a5,0x2
80002a4c: 5b878793 addi a5,a5,1464 # 80005000 <pt+0x1000>
80002a50: 00c7d793 srli a5,a5,0xc
80002a54: 00a79793 slli a5,a5,0xa
80002a58: 0017e793 ori a5,a5,1
80002a5c: 00001697 auipc a3,0x1
80002a60: 5af6a223 sw a5,1444(a3) # 80004000 <pt>
80002a64: 200007b7 lui a5,0x20000
80002a68: 00001717 auipc a4,0x1
80002a6c: 59870713 addi a4,a4,1432 # 80004000 <pt>
80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
80002a74: f6010113 addi sp,sp,-160
80002a78: 00002697 auipc a3,0x2
80002a7c: 58f6a223 sw a5,1412(a3) # 80004ffc <pt+0xffc>
80002a80: 00c75793 srli a5,a4,0xc
80002a84: 80000737 lui a4,0x80000
80002a88: 08112e23 sw ra,156(sp)
80002a8c: 08812c23 sw s0,152(sp)
80002a90: 00e7e7b3 or a5,a5,a4
80002a94: 18079073 csrw satp,a5
80002a98: 01f00793 li a5,31
80002a9c: fff00713 li a4,-1
80002aa0: 00000297 auipc t0,0x0
80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
80002aa8: 305292f3 csrrw t0,mtvec,t0
80002aac: 3b071073 csrw pmpaddr0,a4
80002ab0: 3a079073 csrw pmpcfg0,a5
80002ab4: 7fbfd797 auipc a5,0x7fbfd
80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf9ccc>
80002abc: 10579073 csrw stvec,a5
80002ac0: 340027f3 csrr a5,mscratch
80002ac4: 7fc00837 lui a6,0x7fc00
80002ac8: 010787b3 add a5,a5,a6
80002acc: 14079073 csrw sscratch,a5
80002ad0: 0000b7b7 lui a5,0xb
80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
80002ad8: 30279073 csrw medeleg,a5
80002adc: 0001e7b7 lui a5,0x1e
80002ae0: 30079073 csrw mstatus,a5
80002ae4: 30405073 csrwi mie,0
80002ae8: 7fc03797 auipc a5,0x7fc03
80002aec: 51878793 addi a5,a5,1304 # ffc06000 <_end+0x7fbffc08>
80002af0: 00004717 auipc a4,0x4
80002af4: 90f72223 sw a5,-1788(a4) # 800063f4 <freelist_head>
80002af8: 7fc03797 auipc a5,0x7fc03
80002afc: 6f878793 addi a5,a5,1784 # ffc061f0 <_end+0x7fbffdf8>
80002b00: 00004717 auipc a4,0x4
80002b04: 8ef72823 sw a5,-1808(a4) # 800063f0 <freelist_tail>
80002b08: 000808b7 lui a7,0x80
80002b0c: 00003717 auipc a4,0x3
80002b10: 4f470713 addi a4,a4,1268 # 80006000 <freelist_nodes>
80002b14: 00003317 auipc t1,0x3
80002b18: 6e430313 addi t1,t1,1764 # 800061f8 <user_mapping>
80002b1c: 00500793 li a5,5
80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
80002b28: 0017d613 srli a2,a5,0x1
80002b2c: 011786b3 add a3,a5,a7
80002b30: 00f647b3 xor a5,a2,a5
80002b34: 010705b3 add a1,a4,a6
80002b38: 00c69693 slli a3,a3,0xc
80002b3c: 00579793 slli a5,a5,0x5
80002b40: 00d72023 sw a3,0(a4)
80002b44: 00b72223 sw a1,4(a4)
80002b48: 0207f793 andi a5,a5,32
80002b4c: 00870713 addi a4,a4,8
80002b50: 00f667b3 or a5,a2,a5
80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
80002b58: 00050413 mv s0,a0
80002b5c: 09000613 li a2,144
80002b60: 00000593 li a1,0
80002b64: 00010513 mv a0,sp
80002b68: 00003797 auipc a5,0x3
80002b6c: 6807a623 sw zero,1676(a5) # 800061f4 <freelist_nodes+0x1f4>
80002b70: cecff0ef jal ra,8000205c <memset>
80002b74: 800007b7 lui a5,0x80000
80002b78: 00f40433 add s0,s0,a5
80002b7c: 00010513 mv a0,sp
80002b80: 08812223 sw s0,132(sp)
80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
80002b88: 09c12083 lw ra,156(sp)
80002b8c: 09812403 lw s0,152(sp)
80002b90: 0a010113 addi sp,sp,160
80002b94: 00008067 ret
80002b98: 01a297b7 lui a5,0x1a29
80002b9c: 00080637 lui a2,0x80
80002ba0: cbe78793 addi a5,a5,-834 # 1a28cbe <_start-0x7e5d7342>
80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
80002ba8: 800005b7 lui a1,0x80000
80002bac: 00c7f733 and a4,a5,a2
80002bb0: 0017f693 andi a3,a5,1
80002bb4: 00b70733 add a4,a4,a1
80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
80002bbc: 0007202f amoadd.w zero,zero,(a4)
80002bc0: 0017d793 srli a5,a5,0x1
80002bc4: 00c7f733 and a4,a5,a2
80002bc8: 0017f693 andi a3,a5,1
80002bcc: 00b70733 add a4,a4,a1
80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
80002bd4: 00072003 lw zero,0(a4)
80002bd8: 0017d793 srli a5,a5,0x1
80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
80002be0 <userstart>:
80002be0: 00000517 auipc a0,0x0
80002be4: 42050513 addi a0,a0,1056 # 80003000 <begin_signature>
80002be8: 00100593 li a1,1
80002bec: 00b5262f amoadd.w a2,a1,(a0)
80002bf0: 00100693 li a3,1
80002bf4: fed67ee3 bleu a3,a2,80002bf0 <userstart+0x10>
80002bf8: 00052583 lw a1,0(a0)
80002bfc: fed5eee3 bltu a1,a3,80002bf8 <userstart+0x18>
80002c00 <test_2>:
80002c00: 00000517 auipc a0,0x0
80002c04: 40850513 addi a0,a0,1032 # 80003008 <foo>
80002c08: 1805272f sc.w a4,zero,(a0)
80002c0c: 00100e93 li t4,1
80002c10: 00200193 li gp,2
80002c14: 09d71863 bne a4,t4,80002ca4 <fail>
80002c18 <test_3>:
80002c18: 00000517 auipc a0,0x0
80002c1c: 3f050513 addi a0,a0,1008 # 80003008 <foo>
80002c20: 40050593 addi a1,a0,1024
80002c24: 1005a5af lr.w a1,(a1)
80002c28: 18b5272f sc.w a4,a1,(a0)
80002c2c: 00100e93 li t4,1
80002c30: 00300193 li gp,3
80002c34: 07d71863 bne a4,t4,80002ca4 <fail>
80002c38: 00000517 auipc a0,0x0
80002c3c: 3d050513 addi a0,a0,976 # 80003008 <foo>
80002c40: 40000593 li a1,1024
80002c44: 00160613 addi a2,a2,1
80002c48: 1005272f lr.w a4,(a0)
80002c4c: 00c70733 add a4,a4,a2
80002c50: 18e5272f sc.w a4,a4,(a0)
80002c54: fe071ae3 bnez a4,80002c48 <test_3+0x30>
80002c58: fff58593 addi a1,a1,-1 # 7fffffff <_end+0xffff9c07>
80002c5c: fe0596e3 bnez a1,80002c48 <test_3+0x30>
80002c60: 00000517 auipc a0,0x0
80002c64: 3a450513 addi a0,a0,932 # 80003004 <barrier>
80002c68: 00100593 li a1,1
80002c6c: 00b5202f amoadd.w zero,a1,(a0)
80002c70: 00052583 lw a1,0(a0)
80002c74: fed5cee3 blt a1,a3,80002c70 <test_3+0x58>
80002c78: 0ff0000f fence
80002c7c <test_4>:
80002c7c: 00000517 auipc a0,0x0
80002c80: 38c52503 lw a0,908(a0) # 80003008 <foo>
80002c84: 00969593 slli a1,a3,0x9
80002c88: 40b50533 sub a0,a0,a1
80002c8c: fff68693 addi a3,a3,-1
80002c90: fe06dce3 bgez a3,80002c88 <test_4+0xc>
80002c94: 00000e93 li t4,0
80002c98: 00400193 li gp,4
80002c9c: 01d51463 bne a0,t4,80002ca4 <fail>
80002ca0: 00301a63 bne zero,gp,80002cb4 <pass>
80002ca4 <fail>:
80002ca4: 00119513 slli a0,gp,0x1
80002ca8: 00050063 beqz a0,80002ca8 <fail+0x4>
80002cac: 00156513 ori a0,a0,1
80002cb0: 00000073 ecall
80002cb4 <pass>:
80002cb4: 00100513 li a0,1
80002cb8: 00000073 ecall
80002cbc: c0001073 unimp
Disassembly of section .data:
80003000 <begin_signature>:
80003000: 0000 unimp
80003002: 0000 unimp
80003004 <barrier>:
80003004: 0000 unimp
80003006: 0000 unimp
80003008 <foo>:
80003008: 0000 unimp
8000300a: 0000 unimp
|