aboutsummaryrefslogtreecommitdiff
path: root/test/riscv-tests/rv32ui-v-lhu.dump
blob: 86e4b7d83c4ce8a214d26d2610fe92d1613a7384 (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
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

rv32ui-v-lhu:     file format elf32-littleriscv


Disassembly of section .text.init:

80000000 <_start>:
80000000:	00c0006f          	j	8000000c <handle_reset>

80000004 <nmi_vector>:
80000004:	2780206f          	j	8000227c <wtf>

80000008 <trap_vector>:
80000008:	2740206f          	j	8000227c <wtf>

8000000c <handle_reset>:
8000000c:	00000297          	auipc	t0,0x0
80000010:	ffc28293          	addi	t0,t0,-4 # 80000008 <trap_vector>
80000014:	30529073          	csrw	mtvec,t0
80000018:	00008117          	auipc	sp,0x8
8000001c:	35010113          	addi	sp,sp,848 # 80008368 <_end+0xf70>
80000020:	f14022f3          	csrr	t0,mhartid
80000024:	00c29293          	slli	t0,t0,0xc
80000028:	00510133          	add	sp,sp,t0
8000002c:	34011073          	csrw	mscratch,sp
80000030:	00003517          	auipc	a0,0x3
80000034:	bb050513          	addi	a0,a0,-1104 # 80002be0 <userstart>
80000038:	2090206f          	j	80002a40 <vm_boot>

8000003c <pop_tf>:
8000003c:	08452283          	lw	t0,132(a0)
80000040:	14129073          	csrw	sepc,t0
80000044:	00452083          	lw	ra,4(a0)
80000048:	00852103          	lw	sp,8(a0)
8000004c:	00c52183          	lw	gp,12(a0)
80000050:	01052203          	lw	tp,16(a0)
80000054:	01452283          	lw	t0,20(a0)
80000058:	01852303          	lw	t1,24(a0)
8000005c:	01c52383          	lw	t2,28(a0)
80000060:	02052403          	lw	s0,32(a0)
80000064:	02452483          	lw	s1,36(a0)
80000068:	02c52583          	lw	a1,44(a0)
8000006c:	03052603          	lw	a2,48(a0)
80000070:	03452683          	lw	a3,52(a0)
80000074:	03852703          	lw	a4,56(a0)
80000078:	03c52783          	lw	a5,60(a0)
8000007c:	04052803          	lw	a6,64(a0)
80000080:	04452883          	lw	a7,68(a0)
80000084:	04852903          	lw	s2,72(a0)
80000088:	04c52983          	lw	s3,76(a0)
8000008c:	05052a03          	lw	s4,80(a0)
80000090:	05452a83          	lw	s5,84(a0)
80000094:	05852b03          	lw	s6,88(a0)
80000098:	05c52b83          	lw	s7,92(a0)
8000009c:	06052c03          	lw	s8,96(a0)
800000a0:	06452c83          	lw	s9,100(a0)
800000a4:	06852d03          	lw	s10,104(a0)
800000a8:	06c52d83          	lw	s11,108(a0)
800000ac:	07052e03          	lw	t3,112(a0)
800000b0:	07452e83          	lw	t4,116(a0)
800000b4:	07852f03          	lw	t5,120(a0)
800000b8:	07c52f83          	lw	t6,124(a0)
800000bc:	02852503          	lw	a0,40(a0)
800000c0:	10200073          	sret

800000c4 <trap_entry>:
800000c4:	14011173          	csrrw	sp,sscratch,sp
800000c8:	00112223          	sw	ra,4(sp)
800000cc:	00312623          	sw	gp,12(sp)
800000d0:	00412823          	sw	tp,16(sp)
800000d4:	00512a23          	sw	t0,20(sp)
800000d8:	00612c23          	sw	t1,24(sp)
800000dc:	00712e23          	sw	t2,28(sp)
800000e0:	02812023          	sw	s0,32(sp)
800000e4:	02912223          	sw	s1,36(sp)
800000e8:	02a12423          	sw	a0,40(sp)
800000ec:	02b12623          	sw	a1,44(sp)
800000f0:	02c12823          	sw	a2,48(sp)
800000f4:	02d12a23          	sw	a3,52(sp)
800000f8:	02e12c23          	sw	a4,56(sp)
800000fc:	02f12e23          	sw	a5,60(sp)
80000100:	05012023          	sw	a6,64(sp)
80000104:	05112223          	sw	a7,68(sp)
80000108:	05212423          	sw	s2,72(sp)
8000010c:	05312623          	sw	s3,76(sp)
80000110:	05412823          	sw	s4,80(sp)
80000114:	05512a23          	sw	s5,84(sp)
80000118:	05612c23          	sw	s6,88(sp)
8000011c:	05712e23          	sw	s7,92(sp)
80000120:	07812023          	sw	s8,96(sp)
80000124:	07912223          	sw	s9,100(sp)
80000128:	07a12423          	sw	s10,104(sp)
8000012c:	07b12623          	sw	s11,108(sp)
80000130:	07c12823          	sw	t3,112(sp)
80000134:	07d12a23          	sw	t4,116(sp)
80000138:	07e12c23          	sw	t5,120(sp)
8000013c:	07f12e23          	sw	t6,124(sp)
80000140:	140112f3          	csrrw	t0,sscratch,sp
80000144:	00512423          	sw	t0,8(sp)
80000148:	100022f3          	csrr	t0,sstatus
8000014c:	08512023          	sw	t0,128(sp)
80000150:	141022f3          	csrr	t0,sepc
80000154:	08512223          	sw	t0,132(sp)
80000158:	143022f3          	csrr	t0,sbadaddr
8000015c:	08512423          	sw	t0,136(sp)
80000160:	142022f3          	csrr	t0,scause
80000164:	08512623          	sw	t0,140(sp)
80000168:	00010513          	mv	a0,sp
8000016c:	50c0206f          	j	80002678 <handle_trap>

Disassembly of section .text:

80002000 <memcpy>:
80002000:	00c5e7b3          	or	a5,a1,a2
80002004:	00f567b3          	or	a5,a0,a5
80002008:	0037f793          	andi	a5,a5,3
8000200c:	00c506b3          	add	a3,a0,a2
80002010:	02078463          	beqz	a5,80002038 <memcpy+0x38>
80002014:	00c58633          	add	a2,a1,a2
80002018:	00050793          	mv	a5,a0
8000201c:	02d57e63          	bleu	a3,a0,80002058 <memcpy+0x58>
80002020:	00158593          	addi	a1,a1,1
80002024:	fff5c703          	lbu	a4,-1(a1)
80002028:	00178793          	addi	a5,a5,1
8000202c:	fee78fa3          	sb	a4,-1(a5)
80002030:	feb618e3          	bne	a2,a1,80002020 <memcpy+0x20>
80002034:	00008067          	ret
80002038:	fed57ee3          	bleu	a3,a0,80002034 <memcpy+0x34>
8000203c:	00050793          	mv	a5,a0
80002040:	00458593          	addi	a1,a1,4
80002044:	ffc5a703          	lw	a4,-4(a1)
80002048:	00478793          	addi	a5,a5,4
8000204c:	fee7ae23          	sw	a4,-4(a5)
80002050:	fed7e8e3          	bltu	a5,a3,80002040 <memcpy+0x40>
80002054:	00008067          	ret
80002058:	00008067          	ret

8000205c <memset>:
8000205c:	00c567b3          	or	a5,a0,a2
80002060:	0037f793          	andi	a5,a5,3
80002064:	00c50633          	add	a2,a0,a2
80002068:	02078063          	beqz	a5,80002088 <memset+0x2c>
8000206c:	0ff5f593          	andi	a1,a1,255
80002070:	00050793          	mv	a5,a0
80002074:	04c57063          	bleu	a2,a0,800020b4 <memset+0x58>
80002078:	00178793          	addi	a5,a5,1
8000207c:	feb78fa3          	sb	a1,-1(a5)
80002080:	fef61ce3          	bne	a2,a5,80002078 <memset+0x1c>
80002084:	00008067          	ret
80002088:	0ff5f593          	andi	a1,a1,255
8000208c:	00859793          	slli	a5,a1,0x8
80002090:	00b7e7b3          	or	a5,a5,a1
80002094:	01079593          	slli	a1,a5,0x10
80002098:	00f5e5b3          	or	a1,a1,a5
8000209c:	fec574e3          	bleu	a2,a0,80002084 <memset+0x28>
800020a0:	00050793          	mv	a5,a0
800020a4:	00478793          	addi	a5,a5,4
800020a8:	feb7ae23          	sw	a1,-4(a5)
800020ac:	fec7ece3          	bltu	a5,a2,800020a4 <memset+0x48>
800020b0:	00008067          	ret
800020b4:	00008067          	ret

800020b8 <strlen>:
800020b8:	00054783          	lbu	a5,0(a0)
800020bc:	00050713          	mv	a4,a0
800020c0:	00078c63          	beqz	a5,800020d8 <strlen+0x20>
800020c4:	00150513          	addi	a0,a0,1
800020c8:	00054783          	lbu	a5,0(a0)
800020cc:	fe079ce3          	bnez	a5,800020c4 <strlen+0xc>
800020d0:	40e50533          	sub	a0,a0,a4
800020d4:	00008067          	ret
800020d8:	00000513          	li	a0,0
800020dc:	00008067          	ret

800020e0 <strcmp>:
800020e0:	00150513          	addi	a0,a0,1
800020e4:	fff54783          	lbu	a5,-1(a0)
800020e8:	00158593          	addi	a1,a1,1
800020ec:	fff5c703          	lbu	a4,-1(a1)
800020f0:	00078863          	beqz	a5,80002100 <strcmp+0x20>
800020f4:	fee786e3          	beq	a5,a4,800020e0 <strcmp>
800020f8:	40e78533          	sub	a0,a5,a4
800020fc:	00008067          	ret
80002100:	00000793          	li	a5,0
80002104:	ff5ff06f          	j	800020f8 <strcmp+0x18>

80002108 <memcmp>:
80002108:	00b567b3          	or	a5,a0,a1
8000210c:	0037f793          	andi	a5,a5,3
80002110:	04079263          	bnez	a5,80002154 <memcmp+0x4c>
80002114:	ffc67693          	andi	a3,a2,-4
80002118:	00d506b3          	add	a3,a0,a3
8000211c:	00050813          	mv	a6,a0
80002120:	02d57a63          	bleu	a3,a0,80002154 <memcmp+0x4c>
80002124:	00052703          	lw	a4,0(a0)
80002128:	0005a783          	lw	a5,0(a1)
8000212c:	00f70a63          	beq	a4,a5,80002140 <memcmp+0x38>
80002130:	0240006f          	j	80002154 <memcmp+0x4c>
80002134:	00052703          	lw	a4,0(a0)
80002138:	0005a783          	lw	a5,0(a1)
8000213c:	00f71863          	bne	a4,a5,8000214c <memcmp+0x44>
80002140:	00450513          	addi	a0,a0,4
80002144:	00458593          	addi	a1,a1,4
80002148:	fed566e3          	bltu	a0,a3,80002134 <memcmp+0x2c>
8000214c:	41050833          	sub	a6,a0,a6
80002150:	41060633          	sub	a2,a2,a6
80002154:	00c58633          	add	a2,a1,a2
80002158:	0140006f          	j	8000216c <memcmp+0x64>
8000215c:	00158593          	addi	a1,a1,1
80002160:	fff54783          	lbu	a5,-1(a0)
80002164:	fff5c703          	lbu	a4,-1(a1)
80002168:	00e79a63          	bne	a5,a4,8000217c <memcmp+0x74>
8000216c:	00150513          	addi	a0,a0,1
80002170:	fec596e3          	bne	a1,a2,8000215c <memcmp+0x54>
80002174:	00000513          	li	a0,0
80002178:	00008067          	ret
8000217c:	40e78533          	sub	a0,a5,a4
80002180:	00008067          	ret

80002184 <strcpy>:
80002184:	00050793          	mv	a5,a0
80002188:	00158593          	addi	a1,a1,1
8000218c:	fff5c703          	lbu	a4,-1(a1)
80002190:	00178793          	addi	a5,a5,1
80002194:	fee78fa3          	sb	a4,-1(a5)
80002198:	fe0718e3          	bnez	a4,80002188 <strcpy+0x4>
8000219c:	00008067          	ret

800021a0 <atol>:
800021a0:	00054783          	lbu	a5,0(a0)
800021a4:	02000713          	li	a4,32
800021a8:	00e79863          	bne	a5,a4,800021b8 <atol+0x18>
800021ac:	00150513          	addi	a0,a0,1
800021b0:	00054783          	lbu	a5,0(a0)
800021b4:	fee78ce3          	beq	a5,a4,800021ac <atol+0xc>
800021b8:	fd578713          	addi	a4,a5,-43
800021bc:	0fd77713          	andi	a4,a4,253
800021c0:	04070263          	beqz	a4,80002204 <atol+0x64>
800021c4:	00054683          	lbu	a3,0(a0)
800021c8:	00050793          	mv	a5,a0
800021cc:	00000613          	li	a2,0
800021d0:	04068863          	beqz	a3,80002220 <atol+0x80>
800021d4:	00000513          	li	a0,0
800021d8:	00178793          	addi	a5,a5,1
800021dc:	fd068593          	addi	a1,a3,-48
800021e0:	00251713          	slli	a4,a0,0x2
800021e4:	0007c683          	lbu	a3,0(a5)
800021e8:	00a70533          	add	a0,a4,a0
800021ec:	00151513          	slli	a0,a0,0x1
800021f0:	00a58533          	add	a0,a1,a0
800021f4:	fe0692e3          	bnez	a3,800021d8 <atol+0x38>
800021f8:	00060463          	beqz	a2,80002200 <atol+0x60>
800021fc:	40a00533          	neg	a0,a0
80002200:	00008067          	ret
80002204:	00154683          	lbu	a3,1(a0)
80002208:	fd378793          	addi	a5,a5,-45
8000220c:	0017b613          	seqz	a2,a5
80002210:	00150793          	addi	a5,a0,1
80002214:	fc0690e3          	bnez	a3,800021d4 <atol+0x34>
80002218:	00000513          	li	a0,0
8000221c:	fddff06f          	j	800021f8 <atol+0x58>
80002220:	00000513          	li	a0,0
80002224:	00008067          	ret

80002228 <terminate>:
80002228:	fffff697          	auipc	a3,0xfffff
8000222c:	dd868693          	addi	a3,a3,-552 # 80001000 <tohost>
80002230:	0006a703          	lw	a4,0(a3)
80002234:	0046a783          	lw	a5,4(a3)
80002238:	00050813          	mv	a6,a0
8000223c:	41f55893          	srai	a7,a0,0x1f
80002240:	00f76733          	or	a4,a4,a5
80002244:	02070663          	beqz	a4,80002270 <terminate+0x48>
80002248:	fffff617          	auipc	a2,0xfffff
8000224c:	df860613          	addi	a2,a2,-520 # 80001040 <fromhost>
80002250:	00000713          	li	a4,0
80002254:	00e62023          	sw	a4,0(a2)
80002258:	00000793          	li	a5,0
8000225c:	00f62223          	sw	a5,4(a2)
80002260:	0006a703          	lw	a4,0(a3)
80002264:	0046a783          	lw	a5,4(a3)
80002268:	00f76733          	or	a4,a4,a5
8000226c:	fe0712e3          	bnez	a4,80002250 <terminate+0x28>
80002270:	0106a023          	sw	a6,0(a3)
80002274:	0116a223          	sw	a7,4(a3)
80002278:	0000006f          	j	80002278 <terminate+0x50>

8000227c <wtf>:
8000227c:	ff010113          	addi	sp,sp,-16
80002280:	34900513          	li	a0,841
80002284:	00112623          	sw	ra,12(sp)
80002288:	fa1ff0ef          	jal	ra,80002228 <terminate>

8000228c <printhex>:
8000228c:	fe010113          	addi	sp,sp,-32
80002290:	01b10793          	addi	a5,sp,27
80002294:	00b10e93          	addi	t4,sp,11
80002298:	00900e13          	li	t3,9
8000229c:	00f57693          	andi	a3,a0,15
800022a0:	01c59313          	slli	t1,a1,0x1c
800022a4:	00455513          	srli	a0,a0,0x4
800022a8:	05700613          	li	a2,87
800022ac:	0ff6f713          	andi	a4,a3,255
800022b0:	00de6463          	bltu	t3,a3,800022b8 <printhex+0x2c>
800022b4:	03000613          	li	a2,48
800022b8:	00c70733          	add	a4,a4,a2
800022bc:	00e78023          	sb	a4,0(a5)
800022c0:	fff78793          	addi	a5,a5,-1
800022c4:	00a36533          	or	a0,t1,a0
800022c8:	0045d593          	srli	a1,a1,0x4
800022cc:	fdd798e3          	bne	a5,t4,8000229c <printhex+0x10>
800022d0:	00c14583          	lbu	a1,12(sp)
800022d4:	00010e23          	sb	zero,28(sp)
800022d8:	06058263          	beqz	a1,8000233c <printhex+0xb0>
800022dc:	00c10513          	addi	a0,sp,12
800022e0:	fffff697          	auipc	a3,0xfffff
800022e4:	d2068693          	addi	a3,a3,-736 # 80001000 <tohost>
800022e8:	fffff617          	auipc	a2,0xfffff
800022ec:	d5860613          	addi	a2,a2,-680 # 80001040 <fromhost>
800022f0:	0006a703          	lw	a4,0(a3)
800022f4:	0046a783          	lw	a5,4(a3)
800022f8:	00058813          	mv	a6,a1
800022fc:	00150513          	addi	a0,a0,1
80002300:	00f76733          	or	a4,a4,a5
80002304:	010108b7          	lui	a7,0x1010
80002308:	02070263          	beqz	a4,8000232c <printhex+0xa0>
8000230c:	00000713          	li	a4,0
80002310:	00e62023          	sw	a4,0(a2)
80002314:	00000793          	li	a5,0
80002318:	00f62223          	sw	a5,4(a2)
8000231c:	0006a703          	lw	a4,0(a3)
80002320:	0046a783          	lw	a5,4(a3)
80002324:	00f76733          	or	a4,a4,a5
80002328:	fe0712e3          	bnez	a4,8000230c <printhex+0x80>
8000232c:	00054583          	lbu	a1,0(a0)
80002330:	0106a023          	sw	a6,0(a3)
80002334:	0116a223          	sw	a7,4(a3)
80002338:	fa059ce3          	bnez	a1,800022f0 <printhex+0x64>
8000233c:	02010113          	addi	sp,sp,32
80002340:	00008067          	ret

80002344 <handle_fault>:
80002344:	ff010113          	addi	sp,sp,-16
80002348:	fffff6b7          	lui	a3,0xfffff
8000234c:	00112623          	sw	ra,12(sp)
80002350:	00812423          	sw	s0,8(sp)
80002354:	00912223          	sw	s1,4(sp)
80002358:	00d50733          	add	a4,a0,a3
8000235c:	0003e7b7          	lui	a5,0x3e
80002360:	16f77263          	bleu	a5,a4,800024c4 <handle_fault+0x180>
80002364:	00c55613          	srli	a2,a0,0xc
80002368:	40060e13          	addi	t3,a2,1024
8000236c:	00003317          	auipc	t1,0x3
80002370:	c9430313          	addi	t1,t1,-876 # 80005000 <pt>
80002374:	002e1793          	slli	a5,t3,0x2
80002378:	00f307b3          	add	a5,t1,a5
8000237c:	0007a703          	lw	a4,0(a5) # 3e000 <_start-0x7ffc2000>
80002380:	00d57533          	and	a0,a0,a3
80002384:	0e071863          	bnez	a4,80002474 <handle_fault+0x130>
80002388:	00005797          	auipc	a5,0x5
8000238c:	06c78793          	addi	a5,a5,108 # 800073f4 <freelist_head>
80002390:	0007a583          	lw	a1,0(a5)
80002394:	1a058063          	beqz	a1,80002534 <handle_fault+0x1f0>
80002398:	0045a783          	lw	a5,4(a1)
8000239c:	00005717          	auipc	a4,0x5
800023a0:	05470713          	addi	a4,a4,84 # 800073f0 <freelist_tail>
800023a4:	00072703          	lw	a4,0(a4)
800023a8:	00005697          	auipc	a3,0x5
800023ac:	04f6a623          	sw	a5,76(a3) # 800073f4 <freelist_head>
800023b0:	10e78463          	beq	a5,a4,800024b8 <handle_fault+0x174>
800023b4:	0005a703          	lw	a4,0(a1)
800023b8:	002e1793          	slli	a5,t3,0x2
800023bc:	00f307b3          	add	a5,t1,a5
800023c0:	00c75713          	srli	a4,a4,0xc
800023c4:	00a71713          	slli	a4,a4,0xa
800023c8:	0df76e93          	ori	t4,a4,223
800023cc:	01f76693          	ori	a3,a4,31
800023d0:	01d7a023          	sw	t4,0(a5)
800023d4:	12050073          	sfence.vma	a0
800023d8:	00005717          	auipc	a4,0x5
800023dc:	e2070713          	addi	a4,a4,-480 # 800071f8 <user_mapping>
800023e0:	00361793          	slli	a5,a2,0x3
800023e4:	00f707b3          	add	a5,a4,a5
800023e8:	0007a703          	lw	a4,0(a5)
800023ec:	1a071a63          	bnez	a4,800025a0 <handle_fault+0x25c>
800023f0:	0005a703          	lw	a4,0(a1)
800023f4:	00e7a023          	sw	a4,0(a5)
800023f8:	0045a703          	lw	a4,4(a1)
800023fc:	00e7a223          	sw	a4,4(a5)
80002400:	000407b7          	lui	a5,0x40
80002404:	1007a5f3          	csrrs	a1,sstatus,a5
80002408:	ffc007b7          	lui	a5,0xffc00
8000240c:	00f507b3          	add	a5,a0,a5
80002410:	00001637          	lui	a2,0x1
80002414:	00050713          	mv	a4,a0
80002418:	00c78633          	add	a2,a5,a2
8000241c:	0007af03          	lw	t5,0(a5) # ffc00000 <_end+0x7fbf8c08>
80002420:	0047ae83          	lw	t4,4(a5)
80002424:	0087a883          	lw	a7,8(a5)
80002428:	00c7a803          	lw	a6,12(a5)
8000242c:	01e72023          	sw	t5,0(a4)
80002430:	01d72223          	sw	t4,4(a4)
80002434:	01172423          	sw	a7,8(a4)
80002438:	01072623          	sw	a6,12(a4)
8000243c:	01078793          	addi	a5,a5,16
80002440:	01070713          	addi	a4,a4,16
80002444:	fcc79ce3          	bne	a5,a2,8000241c <handle_fault+0xd8>
80002448:	10059073          	csrw	sstatus,a1
8000244c:	002e1e13          	slli	t3,t3,0x2
80002450:	01c30333          	add	t1,t1,t3
80002454:	00d32023          	sw	a3,0(t1)
80002458:	12050073          	sfence.vma	a0
8000245c:	0000100f          	fence.i
80002460:	00c12083          	lw	ra,12(sp)
80002464:	00812403          	lw	s0,8(sp)
80002468:	00412483          	lw	s1,4(sp)
8000246c:	01010113          	addi	sp,sp,16
80002470:	00008067          	ret
80002474:	04077693          	andi	a3,a4,64
80002478:	02069263          	bnez	a3,8000249c <handle_fault+0x158>
8000247c:	04076713          	ori	a4,a4,64
80002480:	00e7a023          	sw	a4,0(a5)
80002484:	12050073          	sfence.vma	a0
80002488:	00c12083          	lw	ra,12(sp)
8000248c:	00812403          	lw	s0,8(sp)
80002490:	00412483          	lw	s1,4(sp)
80002494:	01010113          	addi	sp,sp,16
80002498:	00008067          	ret
8000249c:	08077693          	andi	a3,a4,128
800024a0:	16069663          	bnez	a3,8000260c <handle_fault+0x2c8>
800024a4:	00f00693          	li	a3,15
800024a8:	16d59263          	bne	a1,a3,8000260c <handle_fault+0x2c8>
800024ac:	08076713          	ori	a4,a4,128
800024b0:	00e7a023          	sw	a4,0(a5)
800024b4:	fd1ff06f          	j	80002484 <handle_fault+0x140>
800024b8:	00005797          	auipc	a5,0x5
800024bc:	f207ac23          	sw	zero,-200(a5) # 800073f0 <freelist_tail>
800024c0:	ef5ff06f          	j	800023b4 <handle_fault+0x70>
800024c4:	04100513          	li	a0,65
800024c8:	00001597          	auipc	a1,0x1
800024cc:	9b458593          	addi	a1,a1,-1612 # 80002e7c <pass+0xc>
800024d0:	fffff697          	auipc	a3,0xfffff
800024d4:	b3068693          	addi	a3,a3,-1232 # 80001000 <tohost>
800024d8:	fffff617          	auipc	a2,0xfffff
800024dc:	b6860613          	addi	a2,a2,-1176 # 80001040 <fromhost>
800024e0:	0006a703          	lw	a4,0(a3)
800024e4:	0046a783          	lw	a5,4(a3)
800024e8:	00050313          	mv	t1,a0
800024ec:	00158593          	addi	a1,a1,1
800024f0:	00f76733          	or	a4,a4,a5
800024f4:	010103b7          	lui	t2,0x1010
800024f8:	02070263          	beqz	a4,8000251c <handle_fault+0x1d8>
800024fc:	00000793          	li	a5,0
80002500:	00f62023          	sw	a5,0(a2)
80002504:	00000813          	li	a6,0
80002508:	01062223          	sw	a6,4(a2)
8000250c:	0006a703          	lw	a4,0(a3)
80002510:	0046a783          	lw	a5,4(a3)
80002514:	00f76733          	or	a4,a4,a5
80002518:	fe0712e3          	bnez	a4,800024fc <handle_fault+0x1b8>
8000251c:	0005c503          	lbu	a0,0(a1)
80002520:	0066a023          	sw	t1,0(a3)
80002524:	0076a223          	sw	t2,4(a3)
80002528:	fa051ce3          	bnez	a0,800024e0 <handle_fault+0x19c>
8000252c:	00300513          	li	a0,3
80002530:	cf9ff0ef          	jal	ra,80002228 <terminate>
80002534:	04100513          	li	a0,65
80002538:	00001597          	auipc	a1,0x1
8000253c:	9d058593          	addi	a1,a1,-1584 # 80002f08 <pass+0x98>
80002540:	fffff697          	auipc	a3,0xfffff
80002544:	ac068693          	addi	a3,a3,-1344 # 80001000 <tohost>
80002548:	fffff617          	auipc	a2,0xfffff
8000254c:	af860613          	addi	a2,a2,-1288 # 80001040 <fromhost>
80002550:	0006a703          	lw	a4,0(a3)
80002554:	0046a783          	lw	a5,4(a3)
80002558:	00050f13          	mv	t5,a0
8000255c:	00158593          	addi	a1,a1,1
80002560:	00f76733          	or	a4,a4,a5
80002564:	01010fb7          	lui	t6,0x1010
80002568:	02070263          	beqz	a4,8000258c <handle_fault+0x248>
8000256c:	00000793          	li	a5,0
80002570:	00f62023          	sw	a5,0(a2)
80002574:	00000813          	li	a6,0
80002578:	01062223          	sw	a6,4(a2)
8000257c:	0006a703          	lw	a4,0(a3)
80002580:	0046a783          	lw	a5,4(a3)
80002584:	00f76733          	or	a4,a4,a5
80002588:	fe0712e3          	bnez	a4,8000256c <handle_fault+0x228>
8000258c:	0005c503          	lbu	a0,0(a1)
80002590:	01e6a023          	sw	t5,0(a3)
80002594:	01f6a223          	sw	t6,4(a3)
80002598:	fa051ce3          	bnez	a0,80002550 <handle_fault+0x20c>
8000259c:	f91ff06f          	j	8000252c <handle_fault+0x1e8>
800025a0:	04100513          	li	a0,65
800025a4:	00001597          	auipc	a1,0x1
800025a8:	97c58593          	addi	a1,a1,-1668 # 80002f20 <pass+0xb0>
800025ac:	fffff697          	auipc	a3,0xfffff
800025b0:	a5468693          	addi	a3,a3,-1452 # 80001000 <tohost>
800025b4:	fffff617          	auipc	a2,0xfffff
800025b8:	a8c60613          	addi	a2,a2,-1396 # 80001040 <fromhost>
800025bc:	0006a703          	lw	a4,0(a3)
800025c0:	0046a783          	lw	a5,4(a3)
800025c4:	00050813          	mv	a6,a0
800025c8:	00158593          	addi	a1,a1,1
800025cc:	00f76733          	or	a4,a4,a5
800025d0:	010108b7          	lui	a7,0x1010
800025d4:	02070263          	beqz	a4,800025f8 <handle_fault+0x2b4>
800025d8:	00000713          	li	a4,0
800025dc:	00e62023          	sw	a4,0(a2)
800025e0:	00000793          	li	a5,0
800025e4:	00f62223          	sw	a5,4(a2)
800025e8:	0006a703          	lw	a4,0(a3)
800025ec:	0046a783          	lw	a5,4(a3)
800025f0:	00f76733          	or	a4,a4,a5
800025f4:	fe0712e3          	bnez	a4,800025d8 <handle_fault+0x294>
800025f8:	0005c503          	lbu	a0,0(a1)
800025fc:	0106a023          	sw	a6,0(a3)
80002600:	0116a223          	sw	a7,4(a3)
80002604:	fa051ce3          	bnez	a0,800025bc <handle_fault+0x278>
80002608:	f25ff06f          	j	8000252c <handle_fault+0x1e8>
8000260c:	04100793          	li	a5,65
80002610:	00001597          	auipc	a1,0x1
80002614:	8b058593          	addi	a1,a1,-1872 # 80002ec0 <pass+0x50>
80002618:	fffff697          	auipc	a3,0xfffff
8000261c:	9e868693          	addi	a3,a3,-1560 # 80001000 <tohost>
80002620:	fffff617          	auipc	a2,0xfffff
80002624:	a2060613          	addi	a2,a2,-1504 # 80001040 <fromhost>
80002628:	0006a803          	lw	a6,0(a3)
8000262c:	0046a883          	lw	a7,4(a3)
80002630:	00078413          	mv	s0,a5
80002634:	00158593          	addi	a1,a1,1
80002638:	01186833          	or	a6,a6,a7
8000263c:	010104b7          	lui	s1,0x1010
80002640:	02080263          	beqz	a6,80002664 <handle_fault+0x320>
80002644:	00000793          	li	a5,0
80002648:	00f62023          	sw	a5,0(a2)
8000264c:	00000813          	li	a6,0
80002650:	01062223          	sw	a6,4(a2)
80002654:	0006a703          	lw	a4,0(a3)
80002658:	0046a783          	lw	a5,4(a3)
8000265c:	00f76733          	or	a4,a4,a5
80002660:	fe0712e3          	bnez	a4,80002644 <handle_fault+0x300>
80002664:	0005c783          	lbu	a5,0(a1)
80002668:	0086a023          	sw	s0,0(a3)
8000266c:	0096a223          	sw	s1,4(a3)
80002670:	fa079ce3          	bnez	a5,80002628 <handle_fault+0x2e4>
80002674:	eb9ff06f          	j	8000252c <handle_fault+0x1e8>

80002678 <handle_trap>:
80002678:	08c52583          	lw	a1,140(a0)
8000267c:	fb010113          	addi	sp,sp,-80
80002680:	03412c23          	sw	s4,56(sp)
80002684:	04112623          	sw	ra,76(sp)
80002688:	04812423          	sw	s0,72(sp)
8000268c:	04912223          	sw	s1,68(sp)
80002690:	05212023          	sw	s2,64(sp)
80002694:	03312e23          	sw	s3,60(sp)
80002698:	03512a23          	sw	s5,52(sp)
8000269c:	03612823          	sw	s6,48(sp)
800026a0:	03712623          	sw	s7,44(sp)
800026a4:	03812423          	sw	s8,40(sp)
800026a8:	03912223          	sw	s9,36(sp)
800026ac:	03a12023          	sw	s10,32(sp)
800026b0:	01b12e23          	sw	s11,28(sp)
800026b4:	00800793          	li	a5,8
800026b8:	00050a13          	mv	s4,a0
800026bc:	16f58663          	beq	a1,a5,80002828 <handle_trap+0x1b0>
800026c0:	00200793          	li	a5,2
800026c4:	06f58063          	beq	a1,a5,80002724 <handle_trap+0xac>
800026c8:	ff458793          	addi	a5,a1,-12
800026cc:	00100713          	li	a4,1
800026d0:	00f77663          	bleu	a5,a4,800026dc <handle_trap+0x64>
800026d4:	00f00793          	li	a5,15
800026d8:	22f59a63          	bne	a1,a5,8000290c <handle_trap+0x294>
800026dc:	088a2503          	lw	a0,136(s4)
800026e0:	c65ff0ef          	jal	ra,80002344 <handle_fault>
800026e4:	04812403          	lw	s0,72(sp)
800026e8:	04c12083          	lw	ra,76(sp)
800026ec:	04412483          	lw	s1,68(sp)
800026f0:	04012903          	lw	s2,64(sp)
800026f4:	03c12983          	lw	s3,60(sp)
800026f8:	03412a83          	lw	s5,52(sp)
800026fc:	03012b03          	lw	s6,48(sp)
80002700:	02c12b83          	lw	s7,44(sp)
80002704:	02812c03          	lw	s8,40(sp)
80002708:	02412c83          	lw	s9,36(sp)
8000270c:	02012d03          	lw	s10,32(sp)
80002710:	01c12d83          	lw	s11,28(sp)
80002714:	000a0513          	mv	a0,s4
80002718:	03812a03          	lw	s4,56(sp)
8000271c:	05010113          	addi	sp,sp,80
80002720:	91dfd06f          	j	8000003c <pop_tf>
80002724:	08452703          	lw	a4,132(a0)
80002728:	00377793          	andi	a5,a4,3
8000272c:	08079863          	bnez	a5,800027bc <handle_trap+0x144>
80002730:	008007ef          	jal	a5,80002738 <handle_trap+0xc0>
80002734:	00301073          	fssr	zero
80002738:	00072703          	lw	a4,0(a4)
8000273c:	0007a783          	lw	a5,0(a5)
80002740:	06f70a63          	beq	a4,a5,800027b4 <handle_trap+0x13c>
80002744:	04100513          	li	a0,65
80002748:	00001597          	auipc	a1,0x1
8000274c:	8a058593          	addi	a1,a1,-1888 # 80002fe8 <pass+0x178>
80002750:	fffff697          	auipc	a3,0xfffff
80002754:	8b068693          	addi	a3,a3,-1872 # 80001000 <tohost>
80002758:	fffff617          	auipc	a2,0xfffff
8000275c:	8e860613          	addi	a2,a2,-1816 # 80001040 <fromhost>
80002760:	0006a703          	lw	a4,0(a3)
80002764:	0046a783          	lw	a5,4(a3)
80002768:	00050813          	mv	a6,a0
8000276c:	00158593          	addi	a1,a1,1
80002770:	00f76733          	or	a4,a4,a5
80002774:	010108b7          	lui	a7,0x1010
80002778:	02070263          	beqz	a4,8000279c <handle_trap+0x124>
8000277c:	00000713          	li	a4,0
80002780:	00e62023          	sw	a4,0(a2)
80002784:	00000793          	li	a5,0
80002788:	00f62223          	sw	a5,4(a2)
8000278c:	0006a703          	lw	a4,0(a3)
80002790:	0046a783          	lw	a5,4(a3)
80002794:	00f76733          	or	a4,a4,a5
80002798:	fe0712e3          	bnez	a4,8000277c <handle_trap+0x104>
8000279c:	0005c503          	lbu	a0,0(a1)
800027a0:	0106a023          	sw	a6,0(a3)
800027a4:	0116a223          	sw	a7,4(a3)
800027a8:	fa051ce3          	bnez	a0,80002760 <handle_trap+0xe8>
800027ac:	00300513          	li	a0,3
800027b0:	a79ff0ef          	jal	ra,80002228 <terminate>
800027b4:	00100513          	li	a0,1
800027b8:	a71ff0ef          	jal	ra,80002228 <terminate>
800027bc:	00001597          	auipc	a1,0x1
800027c0:	80858593          	addi	a1,a1,-2040 # 80002fc4 <pass+0x154>
800027c4:	04100613          	li	a2,65
800027c8:	fffff697          	auipc	a3,0xfffff
800027cc:	83868693          	addi	a3,a3,-1992 # 80001000 <tohost>
800027d0:	fffff517          	auipc	a0,0xfffff
800027d4:	87050513          	addi	a0,a0,-1936 # 80001040 <fromhost>
800027d8:	0006a703          	lw	a4,0(a3)
800027dc:	0046a783          	lw	a5,4(a3)
800027e0:	00060e13          	mv	t3,a2
800027e4:	00158593          	addi	a1,a1,1
800027e8:	00f76733          	or	a4,a4,a5
800027ec:	01010eb7          	lui	t4,0x1010
800027f0:	02070263          	beqz	a4,80002814 <handle_trap+0x19c>
800027f4:	00000793          	li	a5,0
800027f8:	00f52023          	sw	a5,0(a0)
800027fc:	00000813          	li	a6,0
80002800:	01052223          	sw	a6,4(a0)
80002804:	0006a703          	lw	a4,0(a3)
80002808:	0046a783          	lw	a5,4(a3)
8000280c:	00f76733          	or	a4,a4,a5
80002810:	fe0712e3          	bnez	a4,800027f4 <handle_trap+0x17c>
80002814:	0005c603          	lbu	a2,0(a1)
80002818:	01c6a023          	sw	t3,0(a3)
8000281c:	01d6a223          	sw	t4,4(a3)
80002820:	fa061ce3          	bnez	a2,800027d8 <handle_trap+0x160>
80002824:	f89ff06f          	j	800027ac <handle_trap+0x134>
80002828:	02852783          	lw	a5,40(a0)
8000282c:	00001a37          	lui	s4,0x1
80002830:	00005b17          	auipc	s6,0x5
80002834:	9c8b0b13          	addi	s6,s6,-1592 # 800071f8 <user_mapping>
80002838:	00f12223          	sw	a5,4(sp)
8000283c:	00002d17          	auipc	s10,0x2
80002840:	7c4d0d13          	addi	s10,s10,1988 # 80005000 <pt>
80002844:	00040cb7          	lui	s9,0x40
80002848:	ffc00c37          	lui	s8,0xffc00
8000284c:	0003fab7          	lui	s5,0x3f
80002850:	01c0006f          	j	8000286c <handle_trap+0x1f4>
80002854:	00f72223          	sw	a5,4(a4)
80002858:	00005717          	auipc	a4,0x5
8000285c:	b8f72c23          	sw	a5,-1128(a4) # 800073f0 <freelist_tail>
80002860:	000017b7          	lui	a5,0x1
80002864:	00fa0a33          	add	s4,s4,a5
80002868:	1b5a0463          	beq	s4,s5,80002a10 <handle_trap+0x398>
8000286c:	00ca5713          	srli	a4,s4,0xc
80002870:	00371b93          	slli	s7,a4,0x3
80002874:	017b0633          	add	a2,s6,s7
80002878:	00062603          	lw	a2,0(a2)
8000287c:	fe0602e3          	beqz	a2,80002860 <handle_trap+0x1e8>
80002880:	40070713          	addi	a4,a4,1024
80002884:	00271713          	slli	a4,a4,0x2
80002888:	00ed0733          	add	a4,s10,a4
8000288c:	00072703          	lw	a4,0(a4)
80002890:	04077613          	andi	a2,a4,64
80002894:	12060863          	beqz	a2,800029c4 <handle_trap+0x34c>
80002898:	00e12623          	sw	a4,12(sp)
8000289c:	100cadf3          	csrrs	s11,sstatus,s9
800028a0:	018a0833          	add	a6,s4,s8
800028a4:	00001637          	lui	a2,0x1
800028a8:	00080593          	mv	a1,a6
800028ac:	000a0513          	mv	a0,s4
800028b0:	01012423          	sw	a6,8(sp)
800028b4:	855ff0ef          	jal	ra,80002108 <memcmp>
800028b8:	02050263          	beqz	a0,800028dc <handle_trap+0x264>
800028bc:	00c12703          	lw	a4,12(sp)
800028c0:	00812803          	lw	a6,8(sp)
800028c4:	08077713          	andi	a4,a4,128
800028c8:	0a070863          	beqz	a4,80002978 <handle_trap+0x300>
800028cc:	00001637          	lui	a2,0x1
800028d0:	00080593          	mv	a1,a6
800028d4:	000a0513          	mv	a0,s4
800028d8:	f28ff0ef          	jal	ra,80002000 <memcpy>
800028dc:	017b07b3          	add	a5,s6,s7
800028e0:	100d9073          	csrw	sstatus,s11
800028e4:	00005717          	auipc	a4,0x5
800028e8:	b0c70713          	addi	a4,a4,-1268 # 800073f0 <freelist_tail>
800028ec:	00072703          	lw	a4,0(a4)
800028f0:	0007a023          	sw	zero,0(a5) # 1000 <_start-0x7ffff000>
800028f4:	f60710e3          	bnez	a4,80002854 <handle_trap+0x1dc>
800028f8:	00005717          	auipc	a4,0x5
800028fc:	aef72c23          	sw	a5,-1288(a4) # 800073f0 <freelist_tail>
80002900:	00005717          	auipc	a4,0x5
80002904:	aef72a23          	sw	a5,-1292(a4) # 800073f4 <freelist_head>
80002908:	f59ff06f          	j	80002860 <handle_trap+0x1e8>
8000290c:	04100593          	li	a1,65
80002910:	00000617          	auipc	a2,0x0
80002914:	70460613          	addi	a2,a2,1796 # 80003014 <pass+0x1a4>
80002918:	ffffe697          	auipc	a3,0xffffe
8000291c:	6e868693          	addi	a3,a3,1768 # 80001000 <tohost>
80002920:	ffffe517          	auipc	a0,0xffffe
80002924:	72050513          	addi	a0,a0,1824 # 80001040 <fromhost>
80002928:	0006a703          	lw	a4,0(a3)
8000292c:	0046a783          	lw	a5,4(a3)
80002930:	00058313          	mv	t1,a1
80002934:	00160613          	addi	a2,a2,1
80002938:	00f76733          	or	a4,a4,a5
8000293c:	010103b7          	lui	t2,0x1010
80002940:	02070263          	beqz	a4,80002964 <handle_trap+0x2ec>
80002944:	00000793          	li	a5,0
80002948:	00f52023          	sw	a5,0(a0)
8000294c:	00000813          	li	a6,0
80002950:	01052223          	sw	a6,4(a0)
80002954:	0006a703          	lw	a4,0(a3)
80002958:	0046a783          	lw	a5,4(a3)
8000295c:	00f76733          	or	a4,a4,a5
80002960:	fe0712e3          	bnez	a4,80002944 <handle_trap+0x2cc>
80002964:	00064583          	lbu	a1,0(a2)
80002968:	0066a023          	sw	t1,0(a3)
8000296c:	0076a223          	sw	t2,4(a3)
80002970:	fa059ce3          	bnez	a1,80002928 <handle_trap+0x2b0>
80002974:	e39ff06f          	j	800027ac <handle_trap+0x134>
80002978:	04100793          	li	a5,65
8000297c:	00000617          	auipc	a2,0x0
80002980:	61460613          	addi	a2,a2,1556 # 80002f90 <pass+0x120>
80002984:	ffffe697          	auipc	a3,0xffffe
80002988:	67c68693          	addi	a3,a3,1660 # 80001000 <tohost>
8000298c:	ffffe597          	auipc	a1,0xffffe
80002990:	6b458593          	addi	a1,a1,1716 # 80001040 <fromhost>
80002994:	00078413          	mv	s0,a5
80002998:	00160613          	addi	a2,a2,1
8000299c:	010104b7          	lui	s1,0x1010
800029a0:	0006a703          	lw	a4,0(a3)
800029a4:	0046a783          	lw	a5,4(a3)
800029a8:	00f76733          	or	a4,a4,a5
800029ac:	06070663          	beqz	a4,80002a18 <handle_trap+0x3a0>
800029b0:	00000793          	li	a5,0
800029b4:	00000813          	li	a6,0
800029b8:	00f5a023          	sw	a5,0(a1)
800029bc:	0105a223          	sw	a6,4(a1)
800029c0:	fe1ff06f          	j	800029a0 <handle_trap+0x328>
800029c4:	04100793          	li	a5,65
800029c8:	00000617          	auipc	a2,0x0
800029cc:	59460613          	addi	a2,a2,1428 # 80002f5c <pass+0xec>
800029d0:	ffffe697          	auipc	a3,0xffffe
800029d4:	63068693          	addi	a3,a3,1584 # 80001000 <tohost>
800029d8:	ffffe597          	auipc	a1,0xffffe
800029dc:	66858593          	addi	a1,a1,1640 # 80001040 <fromhost>
800029e0:	00078913          	mv	s2,a5
800029e4:	00160613          	addi	a2,a2,1
800029e8:	010109b7          	lui	s3,0x1010
800029ec:	0006a703          	lw	a4,0(a3)
800029f0:	0046a783          	lw	a5,4(a3)
800029f4:	00f76733          	or	a4,a4,a5
800029f8:	02070a63          	beqz	a4,80002a2c <handle_trap+0x3b4>
800029fc:	00000793          	li	a5,0
80002a00:	00000813          	li	a6,0
80002a04:	00f5a023          	sw	a5,0(a1)
80002a08:	0105a223          	sw	a6,4(a1)
80002a0c:	fe1ff06f          	j	800029ec <handle_trap+0x374>
80002a10:	00412503          	lw	a0,4(sp)
80002a14:	815ff0ef          	jal	ra,80002228 <terminate>
80002a18:	00064783          	lbu	a5,0(a2)
80002a1c:	0086a023          	sw	s0,0(a3)
80002a20:	0096a223          	sw	s1,4(a3)
80002a24:	f60798e3          	bnez	a5,80002994 <handle_trap+0x31c>
80002a28:	d85ff06f          	j	800027ac <handle_trap+0x134>
80002a2c:	00064783          	lbu	a5,0(a2)
80002a30:	0126a023          	sw	s2,0(a3)
80002a34:	0136a223          	sw	s3,4(a3)
80002a38:	fa0794e3          	bnez	a5,800029e0 <handle_trap+0x368>
80002a3c:	d71ff06f          	j	800027ac <handle_trap+0x134>

80002a40 <vm_boot>:
80002a40:	f14027f3          	csrr	a5,mhartid
80002a44:	14079a63          	bnez	a5,80002b98 <vm_boot+0x158>
80002a48:	00003797          	auipc	a5,0x3
80002a4c:	5b878793          	addi	a5,a5,1464 # 80006000 <pt+0x1000>
80002a50:	00c7d793          	srli	a5,a5,0xc
80002a54:	00a79793          	slli	a5,a5,0xa
80002a58:	0017e793          	ori	a5,a5,1
80002a5c:	00002697          	auipc	a3,0x2
80002a60:	5af6a223          	sw	a5,1444(a3) # 80005000 <pt>
80002a64:	200007b7          	lui	a5,0x20000
80002a68:	00002717          	auipc	a4,0x2
80002a6c:	59870713          	addi	a4,a4,1432 # 80005000 <pt>
80002a70:	0cf78793          	addi	a5,a5,207 # 200000cf <_start-0x5fffff31>
80002a74:	f6010113          	addi	sp,sp,-160
80002a78:	00003697          	auipc	a3,0x3
80002a7c:	58f6a223          	sw	a5,1412(a3) # 80005ffc <pt+0xffc>
80002a80:	00c75793          	srli	a5,a4,0xc
80002a84:	80000737          	lui	a4,0x80000
80002a88:	08112e23          	sw	ra,156(sp)
80002a8c:	08812c23          	sw	s0,152(sp)
80002a90:	00e7e7b3          	or	a5,a5,a4
80002a94:	18079073          	csrw	satp,a5
80002a98:	01f00793          	li	a5,31
80002a9c:	fff00713          	li	a4,-1
80002aa0:	00000297          	auipc	t0,0x0
80002aa4:	01428293          	addi	t0,t0,20 # 80002ab4 <vm_boot+0x74>
80002aa8:	305292f3          	csrrw	t0,mtvec,t0
80002aac:	3b071073          	csrw	pmpaddr0,a4
80002ab0:	3a079073          	csrw	pmpcfg0,a5
80002ab4:	7fbfd797          	auipc	a5,0x7fbfd
80002ab8:	61078793          	addi	a5,a5,1552 # ffc000c4 <_end+0x7fbf8ccc>
80002abc:	10579073          	csrw	stvec,a5
80002ac0:	340027f3          	csrr	a5,mscratch
80002ac4:	7fc00837          	lui	a6,0x7fc00
80002ac8:	010787b3          	add	a5,a5,a6
80002acc:	14079073          	csrw	sscratch,a5
80002ad0:	0000b7b7          	lui	a5,0xb
80002ad4:	10078793          	addi	a5,a5,256 # b100 <_start-0x7fff4f00>
80002ad8:	30279073          	csrw	medeleg,a5
80002adc:	0001e7b7          	lui	a5,0x1e
80002ae0:	30079073          	csrw	mstatus,a5
80002ae4:	30405073          	csrwi	mie,0
80002ae8:	7fc04797          	auipc	a5,0x7fc04
80002aec:	51878793          	addi	a5,a5,1304 # ffc07000 <_end+0x7fbffc08>
80002af0:	00005717          	auipc	a4,0x5
80002af4:	90f72223          	sw	a5,-1788(a4) # 800073f4 <freelist_head>
80002af8:	7fc04797          	auipc	a5,0x7fc04
80002afc:	6f878793          	addi	a5,a5,1784 # ffc071f0 <_end+0x7fbffdf8>
80002b00:	00005717          	auipc	a4,0x5
80002b04:	8ef72823          	sw	a5,-1808(a4) # 800073f0 <freelist_tail>
80002b08:	000808b7          	lui	a7,0x80
80002b0c:	00004717          	auipc	a4,0x4
80002b10:	4f470713          	addi	a4,a4,1268 # 80007000 <freelist_nodes>
80002b14:	00004317          	auipc	t1,0x4
80002b18:	6e430313          	addi	t1,t1,1764 # 800071f8 <user_mapping>
80002b1c:	02a00793          	li	a5,42
80002b20:	03f88893          	addi	a7,a7,63 # 8003f <_start-0x7ff7ffc1>
80002b24:	00880813          	addi	a6,a6,8 # 7fc00008 <_start-0x3ffff8>
80002b28:	0017d613          	srli	a2,a5,0x1
80002b2c:	011786b3          	add	a3,a5,a7
80002b30:	00f647b3          	xor	a5,a2,a5
80002b34:	010705b3          	add	a1,a4,a6
80002b38:	00c69693          	slli	a3,a3,0xc
80002b3c:	00579793          	slli	a5,a5,0x5
80002b40:	00d72023          	sw	a3,0(a4)
80002b44:	00b72223          	sw	a1,4(a4)
80002b48:	0207f793          	andi	a5,a5,32
80002b4c:	00870713          	addi	a4,a4,8
80002b50:	00f667b3          	or	a5,a2,a5
80002b54:	fce31ae3          	bne	t1,a4,80002b28 <vm_boot+0xe8>
80002b58:	00050413          	mv	s0,a0
80002b5c:	09000613          	li	a2,144
80002b60:	00000593          	li	a1,0
80002b64:	00010513          	mv	a0,sp
80002b68:	00004797          	auipc	a5,0x4
80002b6c:	6807a623          	sw	zero,1676(a5) # 800071f4 <freelist_nodes+0x1f4>
80002b70:	cecff0ef          	jal	ra,8000205c <memset>
80002b74:	800007b7          	lui	a5,0x80000
80002b78:	00f40433          	add	s0,s0,a5
80002b7c:	00010513          	mv	a0,sp
80002b80:	08812223          	sw	s0,132(sp)
80002b84:	cb8fd0ef          	jal	ra,8000003c <pop_tf>
80002b88:	09c12083          	lw	ra,156(sp)
80002b8c:	09812403          	lw	s0,152(sp)
80002b90:	0a010113          	addi	sp,sp,160
80002b94:	00008067          	ret
80002b98:	0fdfd7b7          	lui	a5,0xfdfd
80002b9c:	00080637          	lui	a2,0x80
80002ba0:	ee978793          	addi	a5,a5,-279 # fdfcee9 <_start-0x70203117>
80002ba4:	ffc60613          	addi	a2,a2,-4 # 7fffc <_start-0x7ff80004>
80002ba8:	800005b7          	lui	a1,0x80000
80002bac:	00c7f733          	and	a4,a5,a2
80002bb0:	0017f693          	andi	a3,a5,1
80002bb4:	00b70733          	add	a4,a4,a1
80002bb8:	00068e63          	beqz	a3,80002bd4 <vm_boot+0x194>
80002bbc:	0007202f          	amoadd.w	zero,zero,(a4)
80002bc0:	0017d793          	srli	a5,a5,0x1
80002bc4:	00c7f733          	and	a4,a5,a2
80002bc8:	0017f693          	andi	a3,a5,1
80002bcc:	00b70733          	add	a4,a4,a1
80002bd0:	fe0696e3          	bnez	a3,80002bbc <vm_boot+0x17c>
80002bd4:	00072003          	lw	zero,0(a4)
80002bd8:	0017d793          	srli	a5,a5,0x1
80002bdc:	fe9ff06f          	j	80002bc4 <vm_boot+0x184>

80002be0 <userstart>:
80002be0:	00001097          	auipc	ra,0x1
80002be4:	42008093          	addi	ra,ra,1056 # 80004000 <begin_signature>
80002be8:	0000df03          	lhu	t5,0(ra)
80002bec:	0ff00e93          	li	t4,255
80002bf0:	00200193          	li	gp,2
80002bf4:	27df1663          	bne	t5,t4,80002e60 <fail>

80002bf8 <test_3>:
80002bf8:	00001097          	auipc	ra,0x1
80002bfc:	40808093          	addi	ra,ra,1032 # 80004000 <begin_signature>
80002c00:	0020df03          	lhu	t5,2(ra)
80002c04:	00010eb7          	lui	t4,0x10
80002c08:	f00e8e93          	addi	t4,t4,-256 # ff00 <_start-0x7fff0100>
80002c0c:	00300193          	li	gp,3
80002c10:	25df1863          	bne	t5,t4,80002e60 <fail>

80002c14 <test_4>:
80002c14:	00001097          	auipc	ra,0x1
80002c18:	3ec08093          	addi	ra,ra,1004 # 80004000 <begin_signature>
80002c1c:	0040df03          	lhu	t5,4(ra)
80002c20:	00001eb7          	lui	t4,0x1
80002c24:	ff0e8e93          	addi	t4,t4,-16 # ff0 <_start-0x7ffff010>
80002c28:	00400193          	li	gp,4
80002c2c:	23df1a63          	bne	t5,t4,80002e60 <fail>

80002c30 <test_5>:
80002c30:	00001097          	auipc	ra,0x1
80002c34:	3d008093          	addi	ra,ra,976 # 80004000 <begin_signature>
80002c38:	0060df03          	lhu	t5,6(ra)
80002c3c:	0000feb7          	lui	t4,0xf
80002c40:	00fe8e93          	addi	t4,t4,15 # f00f <_start-0x7fff0ff1>
80002c44:	00500193          	li	gp,5
80002c48:	21df1c63          	bne	t5,t4,80002e60 <fail>

80002c4c <test_6>:
80002c4c:	00001097          	auipc	ra,0x1
80002c50:	3ba08093          	addi	ra,ra,954 # 80004006 <tdat4>
80002c54:	ffa0df03          	lhu	t5,-6(ra)
80002c58:	0ff00e93          	li	t4,255
80002c5c:	00600193          	li	gp,6
80002c60:	21df1063          	bne	t5,t4,80002e60 <fail>

80002c64 <test_7>:
80002c64:	00001097          	auipc	ra,0x1
80002c68:	3a208093          	addi	ra,ra,930 # 80004006 <tdat4>
80002c6c:	ffc0df03          	lhu	t5,-4(ra)
80002c70:	00010eb7          	lui	t4,0x10
80002c74:	f00e8e93          	addi	t4,t4,-256 # ff00 <_start-0x7fff0100>
80002c78:	00700193          	li	gp,7
80002c7c:	1fdf1263          	bne	t5,t4,80002e60 <fail>

80002c80 <test_8>:
80002c80:	00001097          	auipc	ra,0x1
80002c84:	38608093          	addi	ra,ra,902 # 80004006 <tdat4>
80002c88:	ffe0df03          	lhu	t5,-2(ra)
80002c8c:	00001eb7          	lui	t4,0x1
80002c90:	ff0e8e93          	addi	t4,t4,-16 # ff0 <_start-0x7ffff010>
80002c94:	00800193          	li	gp,8
80002c98:	1ddf1463          	bne	t5,t4,80002e60 <fail>

80002c9c <test_9>:
80002c9c:	00001097          	auipc	ra,0x1
80002ca0:	36a08093          	addi	ra,ra,874 # 80004006 <tdat4>
80002ca4:	0000df03          	lhu	t5,0(ra)
80002ca8:	0000feb7          	lui	t4,0xf
80002cac:	00fe8e93          	addi	t4,t4,15 # f00f <_start-0x7fff0ff1>
80002cb0:	00900193          	li	gp,9
80002cb4:	1bdf1663          	bne	t5,t4,80002e60 <fail>

80002cb8 <test_10>:
80002cb8:	00001097          	auipc	ra,0x1
80002cbc:	34808093          	addi	ra,ra,840 # 80004000 <begin_signature>
80002cc0:	fe008093          	addi	ra,ra,-32
80002cc4:	0200d283          	lhu	t0,32(ra)
80002cc8:	0ff00e93          	li	t4,255
80002ccc:	00a00193          	li	gp,10
80002cd0:	19d29863          	bne	t0,t4,80002e60 <fail>

80002cd4 <test_11>:
80002cd4:	00001097          	auipc	ra,0x1
80002cd8:	32c08093          	addi	ra,ra,812 # 80004000 <begin_signature>
80002cdc:	ffb08093          	addi	ra,ra,-5
80002ce0:	0070d283          	lhu	t0,7(ra)
80002ce4:	00010eb7          	lui	t4,0x10
80002ce8:	f00e8e93          	addi	t4,t4,-256 # ff00 <_start-0x7fff0100>
80002cec:	00b00193          	li	gp,11
80002cf0:	17d29863          	bne	t0,t4,80002e60 <fail>

80002cf4 <test_12>:
80002cf4:	00c00193          	li	gp,12
80002cf8:	00000213          	li	tp,0
80002cfc:	00001097          	auipc	ra,0x1
80002d00:	30608093          	addi	ra,ra,774 # 80004002 <tdat2>
80002d04:	0020df03          	lhu	t5,2(ra)
80002d08:	000f0313          	mv	t1,t5
80002d0c:	00001eb7          	lui	t4,0x1
80002d10:	ff0e8e93          	addi	t4,t4,-16 # ff0 <_start-0x7ffff010>
80002d14:	15d31663          	bne	t1,t4,80002e60 <fail>
80002d18:	00120213          	addi	tp,tp,1 # 1 <_start-0x7fffffff>
80002d1c:	00200293          	li	t0,2
80002d20:	fc521ee3          	bne	tp,t0,80002cfc <test_12+0x8>

80002d24 <test_13>:
80002d24:	00d00193          	li	gp,13
80002d28:	00000213          	li	tp,0
80002d2c:	00001097          	auipc	ra,0x1
80002d30:	2d808093          	addi	ra,ra,728 # 80004004 <tdat3>
80002d34:	0020df03          	lhu	t5,2(ra)
80002d38:	00000013          	nop
80002d3c:	000f0313          	mv	t1,t5
80002d40:	0000feb7          	lui	t4,0xf
80002d44:	00fe8e93          	addi	t4,t4,15 # f00f <_start-0x7fff0ff1>
80002d48:	11d31c63          	bne	t1,t4,80002e60 <fail>
80002d4c:	00120213          	addi	tp,tp,1 # 1 <_start-0x7fffffff>
80002d50:	00200293          	li	t0,2
80002d54:	fc521ce3          	bne	tp,t0,80002d2c <test_13+0x8>

80002d58 <test_14>:
80002d58:	00e00193          	li	gp,14
80002d5c:	00000213          	li	tp,0
80002d60:	00001097          	auipc	ra,0x1
80002d64:	2a008093          	addi	ra,ra,672 # 80004000 <begin_signature>
80002d68:	0020df03          	lhu	t5,2(ra)
80002d6c:	00000013          	nop
80002d70:	00000013          	nop
80002d74:	000f0313          	mv	t1,t5
80002d78:	00010eb7          	lui	t4,0x10
80002d7c:	f00e8e93          	addi	t4,t4,-256 # ff00 <_start-0x7fff0100>
80002d80:	0fd31063          	bne	t1,t4,80002e60 <fail>
80002d84:	00120213          	addi	tp,tp,1 # 1 <_start-0x7fffffff>
80002d88:	00200293          	li	t0,2
80002d8c:	fc521ae3          	bne	tp,t0,80002d60 <test_14+0x8>

80002d90 <test_15>:
80002d90:	00f00193          	li	gp,15
80002d94:	00000213          	li	tp,0
80002d98:	00001097          	auipc	ra,0x1
80002d9c:	26a08093          	addi	ra,ra,618 # 80004002 <tdat2>
80002da0:	0020df03          	lhu	t5,2(ra)
80002da4:	00001eb7          	lui	t4,0x1
80002da8:	ff0e8e93          	addi	t4,t4,-16 # ff0 <_start-0x7ffff010>
80002dac:	0bdf1a63          	bne	t5,t4,80002e60 <fail>
80002db0:	00120213          	addi	tp,tp,1 # 1 <_start-0x7fffffff>
80002db4:	00200293          	li	t0,2
80002db8:	fe5210e3          	bne	tp,t0,80002d98 <test_15+0x8>

80002dbc <test_16>:
80002dbc:	01000193          	li	gp,16
80002dc0:	00000213          	li	tp,0
80002dc4:	00001097          	auipc	ra,0x1
80002dc8:	24008093          	addi	ra,ra,576 # 80004004 <tdat3>
80002dcc:	00000013          	nop
80002dd0:	0020df03          	lhu	t5,2(ra)
80002dd4:	0000feb7          	lui	t4,0xf
80002dd8:	00fe8e93          	addi	t4,t4,15 # f00f <_start-0x7fff0ff1>
80002ddc:	09df1263          	bne	t5,t4,80002e60 <fail>
80002de0:	00120213          	addi	tp,tp,1 # 1 <_start-0x7fffffff>
80002de4:	00200293          	li	t0,2
80002de8:	fc521ee3          	bne	tp,t0,80002dc4 <test_16+0x8>

80002dec <test_17>:
80002dec:	01100193          	li	gp,17
80002df0:	00000213          	li	tp,0
80002df4:	00001097          	auipc	ra,0x1
80002df8:	20c08093          	addi	ra,ra,524 # 80004000 <begin_signature>
80002dfc:	00000013          	nop
80002e00:	00000013          	nop
80002e04:	0020df03          	lhu	t5,2(ra)
80002e08:	00010eb7          	lui	t4,0x10
80002e0c:	f00e8e93          	addi	t4,t4,-256 # ff00 <_start-0x7fff0100>
80002e10:	05df1863          	bne	t5,t4,80002e60 <fail>
80002e14:	00120213          	addi	tp,tp,1 # 1 <_start-0x7fffffff>
80002e18:	00200293          	li	t0,2
80002e1c:	fc521ce3          	bne	tp,t0,80002df4 <test_17+0x8>

80002e20 <test_18>:
80002e20:	00001297          	auipc	t0,0x1
80002e24:	1e028293          	addi	t0,t0,480 # 80004000 <begin_signature>
80002e28:	0002d103          	lhu	sp,0(t0)
80002e2c:	00200113          	li	sp,2
80002e30:	00200e93          	li	t4,2
80002e34:	01200193          	li	gp,18
80002e38:	03d11463          	bne	sp,t4,80002e60 <fail>

80002e3c <test_19>:
80002e3c:	00001297          	auipc	t0,0x1
80002e40:	1c428293          	addi	t0,t0,452 # 80004000 <begin_signature>
80002e44:	0002d103          	lhu	sp,0(t0)
80002e48:	00000013          	nop
80002e4c:	00200113          	li	sp,2
80002e50:	00200e93          	li	t4,2
80002e54:	01300193          	li	gp,19
80002e58:	01d11463          	bne	sp,t4,80002e60 <fail>
80002e5c:	00301a63          	bne	zero,gp,80002e70 <pass>

80002e60 <fail>:
80002e60:	00119513          	slli	a0,gp,0x1
80002e64:	00050063          	beqz	a0,80002e64 <fail+0x4>
80002e68:	00156513          	ori	a0,a0,1
80002e6c:	00000073          	ecall

80002e70 <pass>:
80002e70:	00100513          	li	a0,1
80002e74:	00000073          	ecall
80002e78:	c0001073          	unimp

Disassembly of section .data:

80004000 <begin_signature>:
80004000:	00ff                	0xff

80004002 <tdat2>:
80004002:	ff00                	fsw	fs0,56(a4)

80004004 <tdat3>:
80004004:	0ff0                	addi	a2,sp,988

80004006 <tdat4>:
80004006:	          	0xf00f