aboutsummaryrefslogtreecommitdiff
path: root/test/tests/rv64ui-v-andi.dump
blob: 6503a37802c2d0a4b0c8a05ae828f58511cae875 (plain)
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

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