# means that this is a non-executable line of code ## means that this is not executed in the common case (kassert/panic) ### means that this is code that should be present in the assembly ### version of cpu_switch but isn't so we comment it out here for fairness # 803afaac : 803afaac: 40026000 mfc0 v0,c0_status 803afab0: ac900128 sw s0,296(a0) 803afab4: ac91012c sw s1,300(a0) 803afab8: ac920130 sw s2,304(a0) 803afabc: ac930134 sw s3,308(a0) 803afac0: ac940138 sw s4,312(a0) 803afac4: ac95013c sw s5,316(a0) 803afac8: ac960140 sw s6,320(a0) 803afacc: ac970144 sw s7,324(a0) 803afad0: ac9e014c sw s8,332(a0) 803afad4: ac9d0148 sw sp,328(a0) 803afad8: ac9f0150 sw ra,336(a0) 803afadc: ac9c0158 sw gp,344(a0) 803afae0: ac820154 sw v0,340(a0) 803afae4: 03e01821 move v1,ra 803afae8: 0c0ebebc jal 803afaf0 803afaec: 00000000 nop # 803afaf0 : 803afaf0: ac9f015c sw ra,348(a0) 803afaf4: 0060f821 move ra,v1 803afaf8: 03e00008 jr ra 803afafc: 00001021 move v0,zero # 803afb00 : 803afb00: 8c900128 lw s0,296(a0) 803afb04: 8c91012c lw s1,300(a0) 803afb08: 8c920130 lw s2,304(a0) 803afb0c: 8c930134 lw s3,308(a0) 803afb10: 8c940138 lw s4,312(a0) 803afb14: 8c95013c lw s5,316(a0) 803afb18: 8c960140 lw s6,320(a0) 803afb1c: 8c970144 lw s7,324(a0) 803afb20: 8c9e014c lw s8,332(a0) 803afb24: 8c9d0148 lw sp,328(a0) 803afb28: 8c9f0150 lw ra,336(a0) 803afb2c: 8c9c0158 lw gp,344(a0) 803afb30: 8c820154 lw v0,340(a0) 803afb34: 40086000 mfc0 t0,c0_status 803afb38: 3108ff00 andi t0,t0,0xff00 803afb3c: 3c01ffff lui at,0xffff 803afb40: 342100ff ori at,at,0xff 803afb44: 00411024 and v0,v0,at 803afb48: 00481025 or v0,v0,t0 803afb4c: 40826000 mtc0 v0,c0_status 803afb50: 00000000 nop 803afb54: 00000000 nop 803afb58: 00000000 nop 803afb5c: 00000000 nop 803afb60: 00000000 nop 803afb64: 00000000 nop 803afb68: 00000000 nop 803afb6c: 00000000 nop 803afb70: 00000000 nop 803afb74: 00000000 nop 803afb78: 03e00008 jr ra 803afb7c: 24020001 li v0,1 # 803ab8d8 : 803ab8d8: 27bdffd0 addiu sp,sp,-48 803ab8dc: afbf0028 sw ra,40(sp) 803ab8e0: afb10024 sw s1,36(sp) 803ab8e4: afb00020 sw s0,32(sp) 803ab8e8: 00808021 move s0,a0 803ab8ec: 8c9101b0 lw s1,432(a0) 803ab8f0: 8c84021c lw a0,540(a0) ## 803ab8f4: 30821fff andi v0,a0,0x1fff ## 803ab8f8: 10400005 beqz v0,803ab910 ## 803ab8fc: 00000000 nop ## 803ab900: 3c048041 lui a0,0x8041 ## 803ab904: 248420a0 addiu a0,a0,8352 ## 803ab908: 0c092094 jal 80248250 ## 803ab90c: 00000000 nop 803ab910: 3c02803d lui v0,0x803d 803ab914: 8c42eddc lw v0,-4644(v0) 803ab918: ac500000 sw s0,0(v0) 803ab91c: ac510010 sw s1,16(v0) 803ab920: 3c02c000 lui v0,0xc000 803ab924: 0082102b sltu v0,a0,v0 803ab928: 1440000d bnez v0,803ab960 803ab92c: 00000000 nop 803ab930: afa00010 sw zero,16(sp) 803ab934: afa40014 sw a0,20(sp) 803ab938: 8e0201f8 lw v0,504(s0) 803ab93c: afa20018 sw v0,24(sp) 803ab940: 8e0201fc lw v0,508(s0) 803ab944: afa2001c sw v0,28(sp) 803ab948: 0c0ec011 jal 803b0044 803ab94c: 24050001 li a1,1 803ab950: 00002021 move a0,zero 803ab954: 27a50010 addiu a1,sp,16 803ab958: 0c0ebf98 jal 803afe60 803ab95c: 24060001 li a2,1 803ab960: 0c0e9d2c jal 803a74b0 803ab964: 02002021 move a0,s0 803ab968: 0c0ebec0 jal 803afb00 803ab96c: 02202021 move a0,s1 ## 803ab970: 3c048041 lui a0,0x8041 ## 803ab974: 248420d0 addiu a0,a0,8400 ## 803ab978: 0c092094 jal 80248250 ## 803ab97c: 00000000 nop # 803ab990 : 803ab990: 27bdffe8 addiu sp,sp,-24 803ab994: afbf0010 sw ra,16(sp) 803ab998: afa40018 sw a0,24(sp) 803ab99c: afa5001c sw a1,28(sp) 803ab9a0: afa60020 sw a2,32(sp) 803ab9a4: 0c0ebeab jal 803afaac 803ab9a8: 8c8401b0 lw a0,432(a0) 803ab9ac: 1440000f bnez v0,803ab9ec 803ab9b0: 8fbf0010 lw ra,16(sp) ### 803ab9b4: 0000000f sync ### 803ab9b8: 00000000 nop ### 803ab9bc: 00000000 nop ### 803ab9c0: 00000000 nop ### 803ab9c4: 00000000 nop ### 803ab9c8: 00000000 nop ### 803ab9cc: 00000000 nop ### 803ab9d0: 00000000 nop ### 803ab9d4: 00000000 nop 803ab9d8: 8fa30020 lw v1,32(sp) 803ab9dc: 8fa20018 lw v0,24(sp) 803ab9e0: ac430000 sw v1,0(v0) 803ab9e4: 0c0eae36 jal 803ab8d8 803ab9e8: 8fa4001c lw a0,28(sp) 803ab9ec: 03e00008 jr ra 803ab9f0: 27bd0018 addiu sp,sp,24 # 803b0044 : 803b0044: 14a0000f bnez a1,803b0084 803b0048: 2402e0ff li v0,-7937 ## 803b004c: 40036000 mfc0 v1,c0_status ## 803b0050: 40806000 mtc0 zero,c0_status ## 803b0054: 00000000 nop ## 803b0058: 00000000 nop ## 803b005c: 00000000 nop ## 803b0060: 00000000 nop ## 803b0064: 00000000 nop ## 803b0068: 00000000 nop ## 803b006c: 00000000 nop ## 803b0070: 00000000 nop ## 803b0074: 00000000 nop ## 803b0078: 00000000 nop ## 803b007c: 40085000 mfc0 t0,c0_entryhi ## 803b0080: 400b2800 mfc0 t3,c0_pagemask 803b0084: 00822024 and a0,a0,v0 803b0088: 40845000 mtc0 a0,c0_entryhi 803b008c: 00000000 nop 803b0090: 00000000 nop 803b0094: 00000000 nop 803b0098: 00000000 nop 803b009c: 42000008 tlbp 803b00a0: 00000000 nop 803b00a4: 00000000 nop 803b00a8: 00000000 nop 803b00ac: 00000000 nop 803b00b0: 40020000 mfc0 v0,c0_index 803b00b4: 0440000f bltz v0,803b00f4 803b00b8: 3c098000 lui t1,0x8000 803b00bc: 00021340 sll v0,v0,0xd 803b00c0: 01224821 addu t1,t1,v0 803b00c4: 40895000 mtc0 t1,c0_entryhi 803b00c8: 40801000 mtc0 zero,c0_entrylo0 803b00cc: 40801800 mtc0 zero,c0_entrylo1 803b00d0: 00000000 nop 803b00d4: 00000000 nop 803b00d8: 00000000 nop 803b00dc: 00000000 nop 803b00e0: 42000002 tlbwi 803b00e4: 00000000 nop 803b00e8: 00000000 nop 803b00ec: 00000000 nop 803b00f0: 00000000 nop 803b00f4: 14a0000e bnez a1,803b0130 803b00f8: 00000000 nop ## 803b00fc: 40885000 mtc0 t0,c0_entryhi ## 803b0100: 408b2800 mtc0 t3,c0_pagemask ## 803b0104: 40836000 mtc0 v1,c0_status ## 803b0108: 00000000 nop ## 803b010c: 00000000 nop ## 803b0110: 00000000 nop ## 803b0114: 00000000 nop ## 803b0118: 00000000 nop ## 803b011c: 00000000 nop ## 803b0120: 00000000 nop ## 803b0124: 00000000 nop ## 803b0128: 00000000 nop ## 803b012c: 00000000 nop 803b0130: 03e00008 jr ra 803b0134: 00000000 nop # 803afe60 : 803afe60: 14c0000e bnez a2,803afe9c 803afe64: 00000000 nop ## 803afe68: 40036000 mfc0 v1,c0_status ## 803afe6c: 40806000 mtc0 zero,c0_status ## 803afe70: 00000000 nop ## 803afe74: 00000000 nop ## 803afe78: 00000000 nop ## 803afe7c: 00000000 nop ## 803afe80: 00000000 nop ## 803afe84: 00000000 nop ## 803afe88: 00000000 nop ## 803afe8c: 00000000 nop ## 803afe90: 00000000 nop ## 803afe94: 00000000 nop ## 803afe98: 40025000 mfc0 v0,c0_entryhi 803afe9c: 8ca80008 lw t0,8(a1) 803afea0: 8ca9000c lw t1,12(a1) 803afea4: 40881000 mtc0 t0,c0_entrylo0 803afea8: 40891800 mtc0 t1,c0_entrylo1 803afeac: 8caa0000 lw t2,0(a1) 803afeb0: 8cab0004 lw t3,4(a1) 803afeb4: 40840000 mtc0 a0,c0_index 803afeb8: 408a2800 mtc0 t2,c0_pagemask 803afebc: 408b5000 mtc0 t3,c0_entryhi 803afec0: 00000000 nop 803afec4: 00000000 nop 803afec8: 00000000 nop 803afecc: 00000000 nop 803afed0: 42000002 tlbwi 803afed4: 00000000 nop 803afed8: 00000000 nop 803afedc: 00000000 nop 803afee0: 00000000 nop 803afee4: 14c0000f bnez a2,803aff24 803afee8: 00000000 nop ## 803afeec: 40825000 mtc0 v0,c0_entryhi ## 803afef0: 00000000 nop ## 803afef4: 40802800 mtc0 zero,c0_pagemask ## 803afef8: 40836000 mtc0 v1,c0_status ## 803afefc: 00000000 nop ## 803aff00: 00000000 nop ## 803aff04: 00000000 nop ## 803aff08: 00000000 nop ## 803aff0c: 00000000 nop ## 803aff10: 00000000 nop ## 803aff14: 00000000 nop ## 803aff18: 00000000 nop ## 803aff1c: 00000000 nop ## 803aff20: 00000000 nop 803aff24: 03e00008 jr ra 803aff28: 00000000 nop