From b72ba39983da80aec1bf7923231ee8bd43e78269 Mon Sep 17 00:00:00 2001 From: Jens Ahrensfeld Date: Sun, 1 Sep 2013 10:48:09 +0000 Subject: [PATCH] - TLB enabled by default Committed on the Free edition of March Hare Software CVSNT Server. Upgrade to CVS Suite for more features and support: http://march-hare.com/cvsnt/ git-svn-id: http://moon:8086/svn/vhdl/branches/BRANCH_MIPS_TLB@1032 cc03376c-175c-47c8-b038-4cd826a8556b --- .../mips_sys/src/bootloader_flash.ROM.vhd | 108 +- .../mips_sys/src/bootloader_flash.ROM_ld.vhd | 108 +- projects/mips_sys/src/bootloader_flash.dis | 2836 ++++++++--------- projects/mips_sys/src/mips_sys.vhd | 93 +- projects/mips_sys/src/mips_sys_sim.vhd | 67 + 5 files changed, 1667 insertions(+), 1545 deletions(-) diff --git a/projects/mips_sys/src/bootloader_flash.ROM.vhd b/projects/mips_sys/src/bootloader_flash.ROM.vhd index 02a1d9c..f616d56 100644 --- a/projects/mips_sys/src/bootloader_flash.ROM.vhd +++ b/projects/mips_sys/src/bootloader_flash.ROM.vhd @@ -19,7 +19,7 @@ ARCHITECTURE data OF rom IS constant word_array : word_array_t := ( - X"3C1D8000", -- 00000000 + X"3C1D8400", -- 00000000 X"27BDEFF0", -- 00000004 X"3C1A1040", -- 00000008 X"375A000A", -- 0000000C @@ -31,18 +31,18 @@ ARCHITECTURE data OF rom IS X"409AF800", -- 00000024 X"42000020", -- 00000028 X"42000022", -- 0000002C - X"3C1ABFC0", -- 00000030 + X"3C1A9FC0", -- 00000030 X"275A005C", -- 00000034 X"0340F809", -- 00000038 X"00000000", -- 0000003C - X"3C1ABFC0", -- 00000040 + X"3C1A9FC0", -- 00000040 X"275A1150", -- 00000044 X"0340F809", -- 00000048 X"00000000", -- 0000004C X"00000000", -- 00000050 X"0BF00014", -- 00000054 X"00000000", -- 00000058 - X"3C1AA001", -- 0000005C + X"3C1AAC01", -- 0000005C X"275A0008", -- 00000060 X"241B000D", -- 00000064 X"AF5B0000", -- 00000068 @@ -120,7 +120,7 @@ ARCHITECTURE data OF rom IS X"001AD082", -- 00000188 X"335A000F", -- 0000018C X"035BD025", -- 00000190 - X"3C1BA000", -- 00000194 + X"3C1BAC00", -- 00000194 X"277B0000", -- 00000198 X"AF7A0000", -- 0000019C X"401A6800", -- 000001A0 @@ -148,27 +148,27 @@ ARCHITECTURE data OF rom IS X"40027800", -- 000001F8 X"03E00008", -- 000001FC X"00000000", -- 00000200 - X"3C02A001", -- 00000204 + X"3C02AC01", -- 00000204 X"34430004", -- 00000208 X"8C620000", -- 0000020C X"00000000", -- 00000210 X"30420010", -- 00000214 X"1040FFFC", -- 00000218 - X"3C02A001", -- 0000021C + X"3C02AC01", -- 0000021C X"8C420000", -- 00000220 X"00000000", -- 00000224 X"00021600", -- 00000228 X"03E00008", -- 0000022C X"00021603", -- 00000230 X"00042600", -- 00000234 - X"3C02A001", -- 00000238 + X"3C02AC01", -- 00000238 X"00042603", -- 0000023C X"34430004", -- 00000240 X"8C620000", -- 00000244 X"00000000", -- 00000248 X"30420002", -- 0000024C X"1440FFFC", -- 00000250 - X"3C02A001", -- 00000254 + X"3C02AC01", -- 00000254 X"AC440000", -- 00000258 X"03E00008", -- 0000025C X"00000000", -- 00000260 @@ -176,30 +176,30 @@ ARCHITECTURE data OF rom IS X"00042603", -- 00000268 X"2402000A", -- 0000026C X"1482000A", -- 00000270 - X"3C02A001", -- 00000274 + X"3C02AC01", -- 00000274 X"34430004", -- 00000278 X"8C620000", -- 0000027C X"00000000", -- 00000280 X"30420002", -- 00000284 X"1440FFFC", -- 00000288 - X"3C02A001", -- 0000028C + X"3C02AC01", -- 0000028C X"2403000D", -- 00000290 X"AC430000", -- 00000294 - X"3C02A001", -- 00000298 + X"3C02AC01", -- 00000298 X"34430004", -- 0000029C X"8C620000", -- 000002A0 X"00000000", -- 000002A4 X"30420002", -- 000002A8 X"1440FFFC", -- 000002AC - X"3C02A001", -- 000002B0 + X"3C02AC01", -- 000002B0 X"AC440000", -- 000002B4 X"03E00008", -- 000002B8 X"00000000", -- 000002BC - X"3C02A001", -- 000002C0 + X"3C02AC01", -- 000002C0 X"34470004", -- 000002C4 X"00802821", -- 000002C8 X"2409000A", -- 000002CC - X"3C06A001", -- 000002D0 + X"3C06AC01", -- 000002D0 X"0BF000C6", -- 000002D4 X"2408000D", -- 000002D8 X"14690007", -- 000002DC @@ -224,11 +224,11 @@ ARCHITECTURE data OF rom IS X"03E00008", -- 00000328 X"00000000", -- 0000032C X"00042600", -- 00000330 - X"3C02A001", -- 00000334 + X"3C02AC01", -- 00000334 X"00042603", -- 00000338 X"344A0004", -- 0000033C X"00003821", -- 00000340 - X"3C09A001", -- 00000344 + X"3C09AC01", -- 00000344 X"24080002", -- 00000348 X"308200FF", -- 0000034C X"00022902", -- 00000350 @@ -286,15 +286,15 @@ ARCHITECTURE data OF rom IS X"00C0B021", -- 00000420 X"00002021", -- 00000424 X"00409821", -- 00000428 - X"3C02A001", -- 0000042C + X"3C02AC01", -- 0000042C X"00E09021", -- 00000430 X"0080A821", -- 00000434 X"345E0004", -- 00000438 X"00E0A021", -- 0000043C - X"3C17A001", -- 00000440 + X"3C17AC01", -- 00000440 X"0FF000E8", -- 00000444 X"02A02021", -- 00000448 - X"3C04BFC0", -- 0000044C + X"3C049FC0", -- 0000044C X"0FF000B0", -- 00000450 X"248416A0", -- 00000454 X"02608821", -- 00000458 @@ -305,20 +305,20 @@ ARCHITECTURE data OF rom IS X"82240000", -- 0000046C X"0FF000CC", -- 00000470 X"2652FFFF", -- 00000474 - X"3C04BFC0", -- 00000478 + X"3C049FC0", -- 00000478 X"0FF000B0", -- 0000047C X"24841778", -- 00000480 X"0BF00128", -- 00000484 X"26310001", -- 00000488 - X"3C04BFC0", -- 0000048C + X"3C049FC0", -- 0000048C X"0FF000B0", -- 00000490 X"248416A4", -- 00000494 X"0BF0012C", -- 00000498 - X"3C04BFC0", -- 0000049C + X"3C049FC0", -- 0000049C X"0216102A", -- 000004A0 X"1440FFEF", -- 000004A4 X"26100001", -- 000004A8 - X"3C04BFC0", -- 000004AC + X"3C049FC0", -- 000004AC X"0FF000B0", -- 000004B0 X"248416A4", -- 000004B4 X"02602821", -- 000004B8 @@ -355,15 +355,15 @@ ARCHITECTURE data OF rom IS X"24840001", -- 00000534 X"0BF00155", -- 00000538 X"24A50001", -- 0000053C - X"3C04BFC0", -- 00000540 + X"3C049FC0", -- 00000540 X"0FF000B0", -- 00000544 X"24841778", -- 00000548 X"0BF00159", -- 0000054C - X"3C04BFC0", -- 00000550 + X"3C049FC0", -- 00000550 X"0096102A", -- 00000554 X"1440FFDA", -- 00000558 X"00000000", -- 0000055C - X"3C04BFC0", -- 00000560 + X"3C049FC0", -- 00000560 X"0FF000B0", -- 00000564 X"248416CC", -- 00000568 X"02B6A821", -- 0000056C @@ -1134,7 +1134,7 @@ ARCHITECTURE data OF rom IS X"AFB20248", -- 00001160 X"AFB10244", -- 00001164 X"AFB00240", -- 00001168 - X"3C11A000", -- 0000116C + X"3C11AC00", -- 0000116C X"AFBF0264", -- 00001170 X"AFBE0260", -- 00001174 X"AFB7025C", -- 00001178 @@ -1158,7 +1158,7 @@ ARCHITECTURE data OF rom IS X"00000000", -- 000011C0 X"04410004", -- 000011C4 X"00102C02", -- 000011C8 - X"3C04BFC0", -- 000011CC + X"3C049FC0", -- 000011CC X"0BF00494", -- 000011D0 X"248416A8", -- 000011D4 X"02402021", -- 000011D8 @@ -1169,7 +1169,7 @@ ARCHITECTURE data OF rom IS X"3C030800", -- 000011EC X"00431024", -- 000011F0 X"14400045", -- 000011F4 - X"3C11BFC0", -- 000011F8 + X"3C119FC0", -- 000011F8 X"0FF000B0", -- 000011FC X"2624175C", -- 00001200 X"3C02A400", -- 00001204 @@ -1184,23 +1184,23 @@ ARCHITECTURE data OF rom IS X"00000000", -- 00001228 X"0FF000B0", -- 0000122C X"2624175C", -- 00001230 - X"3C04BFC0", -- 00001234 + X"3C049FC0", -- 00001234 X"0FF000B0", -- 00001238 X"248416D0", -- 0000123C X"0FF000E8", -- 00001240 X"02402021", -- 00001244 - X"3C04BFC0", -- 00001248 + X"3C049FC0", -- 00001248 X"248416E8", -- 0000124C X"0FF000B0", -- 00001250 X"00000000", -- 00001254 X"0BF00560", -- 00001258 X"24020001", -- 0000125C - X"3C04BFC0", -- 00001260 + X"3C049FC0", -- 00001260 X"0FF000B0", -- 00001264 X"248416F4", -- 00001268 X"0FF000E8", -- 0000126C X"02402021", -- 00001270 - X"3C04BFC0", -- 00001274 + X"3C049FC0", -- 00001274 X"0FF000B0", -- 00001278 X"24841718", -- 0000127C X"8E02000C", -- 00001280 @@ -1219,16 +1219,16 @@ ARCHITECTURE data OF rom IS X"24840001", -- 000012B4 X"1440FFF8", -- 000012B8 X"24630004", -- 000012BC - X"3C04BFC0", -- 000012C0 + X"3C049FC0", -- 000012C0 X"0FF000B0", -- 000012C4 X"24841720", -- 000012C8 - X"3C04BFC0", -- 000012CC + X"3C049FC0", -- 000012CC X"0FF000B0", -- 000012D0 X"24841728", -- 000012D4 X"8E040004", -- 000012D8 X"0FF000E8", -- 000012DC X"00000000", -- 000012E0 - X"3C04BFC0", -- 000012E4 + X"3C049FC0", -- 000012E4 X"0FF000B0", -- 000012E8 X"2484175C", -- 000012EC X"3C1A1000", -- 000012F0 @@ -1240,27 +1240,27 @@ ARCHITECTURE data OF rom IS X"00001021", -- 00001308 X"0FF000B0", -- 0000130C X"2624175C", -- 00001310 - X"3C04BFC0", -- 00001314 + X"3C049FC0", -- 00001314 X"0FF000B0", -- 00001318 X"24841734", -- 0000131C - X"3C024000", -- 00001320 - X"3C034010", -- 00001324 + X"3C028000", -- 00001320 + X"3C038010", -- 00001324 X"AC400000", -- 00001328 X"24420004", -- 0000132C X"1443FFFD", -- 00001330 X"00009821", -- 00001334 - X"3C02BFC0", -- 00001338 + X"3C029FC0", -- 00001338 X"245516CC", -- 0000133C - X"3C02BFC0", -- 00001340 + X"3C029FC0", -- 00001340 X"24561720", -- 00001344 - X"3C02BFC0", -- 00001348 + X"3C029FC0", -- 00001348 X"245E17D4", -- 0000134C - X"3C02BFC0", -- 00001350 + X"3C029FC0", -- 00001350 X"245717F4", -- 00001354 - X"3C04BFC0", -- 00001358 + X"3C049FC0", -- 00001358 X"0FF000B0", -- 0000135C X"24841754", -- 00001360 - X"3C14BFC0", -- 00001364 + X"3C149FC0", -- 00001364 X"27B00040", -- 00001368 X"0FF00431", -- 0000136C X"02002021", -- 00001370 @@ -1276,7 +1276,7 @@ ARCHITECTURE data OF rom IS X"1462FFEF", -- 00001398 X"00000000", -- 0000139C X"0BF004FF", -- 000013A0 - X"3C04BFC0", -- 000013A4 + X"3C049FC0", -- 000013A4 X"8FA50010", -- 000013A8 X"8FA60014", -- 000013AC X"0BF004F4", -- 000013B0 @@ -1313,7 +1313,7 @@ ARCHITECTURE data OF rom IS X"AFA70148", -- 0000142C X"0FF00364", -- 00001430 X"AFA20140", -- 00001434 - X"3C04BFC0", -- 00001438 + X"3C049FC0", -- 00001438 X"24841760", -- 0000143C X"0FF000B0", -- 00001440 X"AFA20150", -- 00001444 @@ -1322,14 +1322,14 @@ ARCHITECTURE data OF rom IS X"00000000", -- 00001450 X"0FF000B0", -- 00001454 X"02A02021", -- 00001458 - X"3C04BFC0", -- 0000145C + X"3C049FC0", -- 0000145C X"0FF000B0", -- 00001460 X"2484177C", -- 00001464 X"0FF000E8", -- 00001468 X"02402021", -- 0000146C X"0FF000B0", -- 00001470 X"02A02021", -- 00001474 - X"3C04BFC0", -- 00001478 + X"3C049FC0", -- 00001478 X"0FF000B0", -- 0000147C X"24841798", -- 00001480 X"8FA40150", -- 00001484 @@ -1337,7 +1337,7 @@ ARCHITECTURE data OF rom IS X"00000000", -- 0000148C X"0FF000B0", -- 00001490 X"02A02021", -- 00001494 - X"3C04BFC0", -- 00001498 + X"3C049FC0", -- 00001498 X"0FF000B0", -- 0000149C X"248417B4", -- 000014A0 X"8FA6014C", -- 000014A4 @@ -1367,7 +1367,7 @@ ARCHITECTURE data OF rom IS X"00408021", -- 00001504 X"0FF000B0", -- 00001508 X"02C02021", -- 0000150C - X"3C04BFC0", -- 00001510 + X"3C049FC0", -- 00001510 X"0FF000B0", -- 00001514 X"248417E4", -- 00001518 X"8FA50148", -- 0000151C @@ -1381,7 +1381,7 @@ ARCHITECTURE data OF rom IS X"268417C4", -- 0000153C X"0FF000E8", -- 00001540 X"02002021", -- 00001544 - X"3C04BFC0", -- 00001548 + X"3C049FC0", -- 00001548 X"0FF000B0", -- 0000154C X"248417D0", -- 00001550 X"0BF0055C", -- 00001554 @@ -1394,7 +1394,7 @@ ARCHITECTURE data OF rom IS X"0601FF7E", -- 00001570 X"27B00040", -- 00001574 X"0BF004D7", -- 00001578 - X"3C04BFC0", -- 0000157C + X"3C049FC0", -- 0000157C X"8FBF0264", -- 00001580 X"8FBE0260", -- 00001584 X"8FB7025C", -- 00001588 diff --git a/projects/mips_sys/src/bootloader_flash.ROM_ld.vhd b/projects/mips_sys/src/bootloader_flash.ROM_ld.vhd index 35ded1a..e4ae867 100644 --- a/projects/mips_sys/src/bootloader_flash.ROM_ld.vhd +++ b/projects/mips_sys/src/bootloader_flash.ROM_ld.vhd @@ -31,7 +31,7 @@ ARCHITECTURE data OF rom IS signal word_array : word_array_t := ( - X"3C1D8000", -- 00000000 + X"3C1D8400", -- 00000000 X"27BDEFF0", -- 00000004 X"3C1A1040", -- 00000008 X"375A000A", -- 0000000C @@ -43,18 +43,18 @@ ARCHITECTURE data OF rom IS X"409AF800", -- 00000024 X"42000020", -- 00000028 X"42000022", -- 0000002C - X"3C1ABFC0", -- 00000030 + X"3C1A9FC0", -- 00000030 X"275A005C", -- 00000034 X"0340F809", -- 00000038 X"00000000", -- 0000003C - X"3C1ABFC0", -- 00000040 + X"3C1A9FC0", -- 00000040 X"275A1150", -- 00000044 X"0340F809", -- 00000048 X"00000000", -- 0000004C X"00000000", -- 00000050 X"0BF00014", -- 00000054 X"00000000", -- 00000058 - X"3C1AA001", -- 0000005C + X"3C1AAC01", -- 0000005C X"275A0008", -- 00000060 X"241B000D", -- 00000064 X"AF5B0000", -- 00000068 @@ -132,7 +132,7 @@ ARCHITECTURE data OF rom IS X"001AD082", -- 00000188 X"335A000F", -- 0000018C X"035BD025", -- 00000190 - X"3C1BA000", -- 00000194 + X"3C1BAC00", -- 00000194 X"277B0000", -- 00000198 X"AF7A0000", -- 0000019C X"401A6800", -- 000001A0 @@ -160,27 +160,27 @@ ARCHITECTURE data OF rom IS X"40027800", -- 000001F8 X"03E00008", -- 000001FC X"00000000", -- 00000200 - X"3C02A001", -- 00000204 + X"3C02AC01", -- 00000204 X"34430004", -- 00000208 X"8C620000", -- 0000020C X"00000000", -- 00000210 X"30420010", -- 00000214 X"1040FFFC", -- 00000218 - X"3C02A001", -- 0000021C + X"3C02AC01", -- 0000021C X"8C420000", -- 00000220 X"00000000", -- 00000224 X"00021600", -- 00000228 X"03E00008", -- 0000022C X"00021603", -- 00000230 X"00042600", -- 00000234 - X"3C02A001", -- 00000238 + X"3C02AC01", -- 00000238 X"00042603", -- 0000023C X"34430004", -- 00000240 X"8C620000", -- 00000244 X"00000000", -- 00000248 X"30420002", -- 0000024C X"1440FFFC", -- 00000250 - X"3C02A001", -- 00000254 + X"3C02AC01", -- 00000254 X"AC440000", -- 00000258 X"03E00008", -- 0000025C X"00000000", -- 00000260 @@ -188,30 +188,30 @@ ARCHITECTURE data OF rom IS X"00042603", -- 00000268 X"2402000A", -- 0000026C X"1482000A", -- 00000270 - X"3C02A001", -- 00000274 + X"3C02AC01", -- 00000274 X"34430004", -- 00000278 X"8C620000", -- 0000027C X"00000000", -- 00000280 X"30420002", -- 00000284 X"1440FFFC", -- 00000288 - X"3C02A001", -- 0000028C + X"3C02AC01", -- 0000028C X"2403000D", -- 00000290 X"AC430000", -- 00000294 - X"3C02A001", -- 00000298 + X"3C02AC01", -- 00000298 X"34430004", -- 0000029C X"8C620000", -- 000002A0 X"00000000", -- 000002A4 X"30420002", -- 000002A8 X"1440FFFC", -- 000002AC - X"3C02A001", -- 000002B0 + X"3C02AC01", -- 000002B0 X"AC440000", -- 000002B4 X"03E00008", -- 000002B8 X"00000000", -- 000002BC - X"3C02A001", -- 000002C0 + X"3C02AC01", -- 000002C0 X"34470004", -- 000002C4 X"00802821", -- 000002C8 X"2409000A", -- 000002CC - X"3C06A001", -- 000002D0 + X"3C06AC01", -- 000002D0 X"0BF000C6", -- 000002D4 X"2408000D", -- 000002D8 X"14690007", -- 000002DC @@ -236,11 +236,11 @@ ARCHITECTURE data OF rom IS X"03E00008", -- 00000328 X"00000000", -- 0000032C X"00042600", -- 00000330 - X"3C02A001", -- 00000334 + X"3C02AC01", -- 00000334 X"00042603", -- 00000338 X"344A0004", -- 0000033C X"00003821", -- 00000340 - X"3C09A001", -- 00000344 + X"3C09AC01", -- 00000344 X"24080002", -- 00000348 X"308200FF", -- 0000034C X"00022902", -- 00000350 @@ -298,15 +298,15 @@ ARCHITECTURE data OF rom IS X"00C0B021", -- 00000420 X"00002021", -- 00000424 X"00409821", -- 00000428 - X"3C02A001", -- 0000042C + X"3C02AC01", -- 0000042C X"00E09021", -- 00000430 X"0080A821", -- 00000434 X"345E0004", -- 00000438 X"00E0A021", -- 0000043C - X"3C17A001", -- 00000440 + X"3C17AC01", -- 00000440 X"0FF000E8", -- 00000444 X"02A02021", -- 00000448 - X"3C04BFC0", -- 0000044C + X"3C049FC0", -- 0000044C X"0FF000B0", -- 00000450 X"248416A0", -- 00000454 X"02608821", -- 00000458 @@ -317,20 +317,20 @@ ARCHITECTURE data OF rom IS X"82240000", -- 0000046C X"0FF000CC", -- 00000470 X"2652FFFF", -- 00000474 - X"3C04BFC0", -- 00000478 + X"3C049FC0", -- 00000478 X"0FF000B0", -- 0000047C X"24841778", -- 00000480 X"0BF00128", -- 00000484 X"26310001", -- 00000488 - X"3C04BFC0", -- 0000048C + X"3C049FC0", -- 0000048C X"0FF000B0", -- 00000490 X"248416A4", -- 00000494 X"0BF0012C", -- 00000498 - X"3C04BFC0", -- 0000049C + X"3C049FC0", -- 0000049C X"0216102A", -- 000004A0 X"1440FFEF", -- 000004A4 X"26100001", -- 000004A8 - X"3C04BFC0", -- 000004AC + X"3C049FC0", -- 000004AC X"0FF000B0", -- 000004B0 X"248416A4", -- 000004B4 X"02602821", -- 000004B8 @@ -367,15 +367,15 @@ ARCHITECTURE data OF rom IS X"24840001", -- 00000534 X"0BF00155", -- 00000538 X"24A50001", -- 0000053C - X"3C04BFC0", -- 00000540 + X"3C049FC0", -- 00000540 X"0FF000B0", -- 00000544 X"24841778", -- 00000548 X"0BF00159", -- 0000054C - X"3C04BFC0", -- 00000550 + X"3C049FC0", -- 00000550 X"0096102A", -- 00000554 X"1440FFDA", -- 00000558 X"00000000", -- 0000055C - X"3C04BFC0", -- 00000560 + X"3C049FC0", -- 00000560 X"0FF000B0", -- 00000564 X"248416CC", -- 00000568 X"02B6A821", -- 0000056C @@ -1146,7 +1146,7 @@ ARCHITECTURE data OF rom IS X"AFB20248", -- 00001160 X"AFB10244", -- 00001164 X"AFB00240", -- 00001168 - X"3C11A000", -- 0000116C + X"3C11AC00", -- 0000116C X"AFBF0264", -- 00001170 X"AFBE0260", -- 00001174 X"AFB7025C", -- 00001178 @@ -1170,7 +1170,7 @@ ARCHITECTURE data OF rom IS X"00000000", -- 000011C0 X"04410004", -- 000011C4 X"00102C02", -- 000011C8 - X"3C04BFC0", -- 000011CC + X"3C049FC0", -- 000011CC X"0BF00494", -- 000011D0 X"248416A8", -- 000011D4 X"02402021", -- 000011D8 @@ -1181,7 +1181,7 @@ ARCHITECTURE data OF rom IS X"3C030800", -- 000011EC X"00431024", -- 000011F0 X"14400045", -- 000011F4 - X"3C11BFC0", -- 000011F8 + X"3C119FC0", -- 000011F8 X"0FF000B0", -- 000011FC X"2624175C", -- 00001200 X"3C02A400", -- 00001204 @@ -1196,23 +1196,23 @@ ARCHITECTURE data OF rom IS X"00000000", -- 00001228 X"0FF000B0", -- 0000122C X"2624175C", -- 00001230 - X"3C04BFC0", -- 00001234 + X"3C049FC0", -- 00001234 X"0FF000B0", -- 00001238 X"248416D0", -- 0000123C X"0FF000E8", -- 00001240 X"02402021", -- 00001244 - X"3C04BFC0", -- 00001248 + X"3C049FC0", -- 00001248 X"248416E8", -- 0000124C X"0FF000B0", -- 00001250 X"00000000", -- 00001254 X"0BF00560", -- 00001258 X"24020001", -- 0000125C - X"3C04BFC0", -- 00001260 + X"3C049FC0", -- 00001260 X"0FF000B0", -- 00001264 X"248416F4", -- 00001268 X"0FF000E8", -- 0000126C X"02402021", -- 00001270 - X"3C04BFC0", -- 00001274 + X"3C049FC0", -- 00001274 X"0FF000B0", -- 00001278 X"24841718", -- 0000127C X"8E02000C", -- 00001280 @@ -1231,16 +1231,16 @@ ARCHITECTURE data OF rom IS X"24840001", -- 000012B4 X"1440FFF8", -- 000012B8 X"24630004", -- 000012BC - X"3C04BFC0", -- 000012C0 + X"3C049FC0", -- 000012C0 X"0FF000B0", -- 000012C4 X"24841720", -- 000012C8 - X"3C04BFC0", -- 000012CC + X"3C049FC0", -- 000012CC X"0FF000B0", -- 000012D0 X"24841728", -- 000012D4 X"8E040004", -- 000012D8 X"0FF000E8", -- 000012DC X"00000000", -- 000012E0 - X"3C04BFC0", -- 000012E4 + X"3C049FC0", -- 000012E4 X"0FF000B0", -- 000012E8 X"2484175C", -- 000012EC X"3C1A1000", -- 000012F0 @@ -1252,27 +1252,27 @@ ARCHITECTURE data OF rom IS X"00001021", -- 00001308 X"0FF000B0", -- 0000130C X"2624175C", -- 00001310 - X"3C04BFC0", -- 00001314 + X"3C049FC0", -- 00001314 X"0FF000B0", -- 00001318 X"24841734", -- 0000131C - X"3C024000", -- 00001320 - X"3C034010", -- 00001324 + X"3C028000", -- 00001320 + X"3C038010", -- 00001324 X"AC400000", -- 00001328 X"24420004", -- 0000132C X"1443FFFD", -- 00001330 X"00009821", -- 00001334 - X"3C02BFC0", -- 00001338 + X"3C029FC0", -- 00001338 X"245516CC", -- 0000133C - X"3C02BFC0", -- 00001340 + X"3C029FC0", -- 00001340 X"24561720", -- 00001344 - X"3C02BFC0", -- 00001348 + X"3C029FC0", -- 00001348 X"245E17D4", -- 0000134C - X"3C02BFC0", -- 00001350 + X"3C029FC0", -- 00001350 X"245717F4", -- 00001354 - X"3C04BFC0", -- 00001358 + X"3C049FC0", -- 00001358 X"0FF000B0", -- 0000135C X"24841754", -- 00001360 - X"3C14BFC0", -- 00001364 + X"3C149FC0", -- 00001364 X"27B00040", -- 00001368 X"0FF00431", -- 0000136C X"02002021", -- 00001370 @@ -1288,7 +1288,7 @@ ARCHITECTURE data OF rom IS X"1462FFEF", -- 00001398 X"00000000", -- 0000139C X"0BF004FF", -- 000013A0 - X"3C04BFC0", -- 000013A4 + X"3C049FC0", -- 000013A4 X"8FA50010", -- 000013A8 X"8FA60014", -- 000013AC X"0BF004F4", -- 000013B0 @@ -1325,7 +1325,7 @@ ARCHITECTURE data OF rom IS X"AFA70148", -- 0000142C X"0FF00364", -- 00001430 X"AFA20140", -- 00001434 - X"3C04BFC0", -- 00001438 + X"3C049FC0", -- 00001438 X"24841760", -- 0000143C X"0FF000B0", -- 00001440 X"AFA20150", -- 00001444 @@ -1334,14 +1334,14 @@ ARCHITECTURE data OF rom IS X"00000000", -- 00001450 X"0FF000B0", -- 00001454 X"02A02021", -- 00001458 - X"3C04BFC0", -- 0000145C + X"3C049FC0", -- 0000145C X"0FF000B0", -- 00001460 X"2484177C", -- 00001464 X"0FF000E8", -- 00001468 X"02402021", -- 0000146C X"0FF000B0", -- 00001470 X"02A02021", -- 00001474 - X"3C04BFC0", -- 00001478 + X"3C049FC0", -- 00001478 X"0FF000B0", -- 0000147C X"24841798", -- 00001480 X"8FA40150", -- 00001484 @@ -1349,7 +1349,7 @@ ARCHITECTURE data OF rom IS X"00000000", -- 0000148C X"0FF000B0", -- 00001490 X"02A02021", -- 00001494 - X"3C04BFC0", -- 00001498 + X"3C049FC0", -- 00001498 X"0FF000B0", -- 0000149C X"248417B4", -- 000014A0 X"8FA6014C", -- 000014A4 @@ -1379,7 +1379,7 @@ ARCHITECTURE data OF rom IS X"00408021", -- 00001504 X"0FF000B0", -- 00001508 X"02C02021", -- 0000150C - X"3C04BFC0", -- 00001510 + X"3C049FC0", -- 00001510 X"0FF000B0", -- 00001514 X"248417E4", -- 00001518 X"8FA50148", -- 0000151C @@ -1393,7 +1393,7 @@ ARCHITECTURE data OF rom IS X"268417C4", -- 0000153C X"0FF000E8", -- 00001540 X"02002021", -- 00001544 - X"3C04BFC0", -- 00001548 + X"3C049FC0", -- 00001548 X"0FF000B0", -- 0000154C X"248417D0", -- 00001550 X"0BF0055C", -- 00001554 @@ -1406,7 +1406,7 @@ ARCHITECTURE data OF rom IS X"0601FF7E", -- 00001570 X"27B00040", -- 00001574 X"0BF004D7", -- 00001578 - X"3C04BFC0", -- 0000157C + X"3C049FC0", -- 0000157C X"8FBF0264", -- 00001580 X"8FBE0260", -- 00001584 X"8FB7025C", -- 00001588 diff --git a/projects/mips_sys/src/bootloader_flash.dis b/projects/mips_sys/src/bootloader_flash.dis index 488a1f1..c46e185 100644 --- a/projects/mips_sys/src/bootloader_flash.dis +++ b/projects/mips_sys/src/bootloader_flash.dis @@ -4,1465 +4,1465 @@ bootloader_flash.elf: file format elf32-bigmips Disassembly of section .init: -bfc00000 <__entry>: -bfc00000: 3c1d8000 lui sp,0x8000 -bfc00004: 27bdeff0 addiu sp,sp,-4112 -bfc00008: 3c1a1040 lui k0,0x1040 -bfc0000c: 375a000a ori k0,k0,0xa -bfc00010: 409a6000 mtc0 k0,c0_sr -bfc00014: 241a0000 li k0,0 -bfc00018: 409a6800 mtc0 k0,c0_cause -bfc0001c: 401a7800 mfc0 k0,c0_prid -bfc00020: 00000000 nop -bfc00024: 409af800 mtc0 k0,$31 -bfc00028: 42000020 c0 0x20 -bfc0002c: 42000022 c0 0x22 -bfc00030: 3c1abfc0 lui k0,0xbfc0 -bfc00034: 275a005c addiu k0,k0,92 -bfc00038: 0340f809 jalr k0 -bfc0003c: 00000000 nop -bfc00040: 3c1abfc0 lui k0,0xbfc0 -bfc00044: 275a1150 addiu k0,k0,4432 -bfc00048: 0340f809 jalr k0 -bfc0004c: 00000000 nop +9fc00000 <__entry>: +9fc00000: 3c1d8400 lui sp,0x8400 +9fc00004: 27bdeff0 addiu sp,sp,-4112 +9fc00008: 3c1a1040 lui k0,0x1040 +9fc0000c: 375a000a ori k0,k0,0xa +9fc00010: 409a6000 mtc0 k0,c0_sr +9fc00014: 241a0000 li k0,0 +9fc00018: 409a6800 mtc0 k0,c0_cause +9fc0001c: 401a7800 mfc0 k0,c0_prid +9fc00020: 00000000 nop +9fc00024: 409af800 mtc0 k0,$31 +9fc00028: 42000020 c0 0x20 +9fc0002c: 42000022 c0 0x22 +9fc00030: 3c1a9fc0 lui k0,0x9fc0 +9fc00034: 275a005c addiu k0,k0,92 +9fc00038: 0340f809 jalr k0 +9fc0003c: 00000000 nop +9fc00040: 3c1a9fc0 lui k0,0x9fc0 +9fc00044: 275a1150 addiu k0,k0,4432 +9fc00048: 0340f809 jalr k0 +9fc0004c: 00000000 nop -bfc00050 <_terminate>: -bfc00050: 00000000 nop -bfc00054: 0bf00014 j bfc00050 <_terminate> -bfc00058: 00000000 nop +9fc00050 <_terminate>: +9fc00050: 00000000 nop +9fc00054: 0bf00014 j 9fc00050 <_terminate> +9fc00058: 00000000 nop -bfc0005c <_init>: -bfc0005c: 3c1aa001 275a0008 241b000d af5b0000 <...'Z..$....[.. -bfc0006c: 03e00008 .... +9fc0005c <_init>: +9fc0005c: 3c1aac01 275a0008 241b000d af5b0000 <...'Z..$....[.. +9fc0006c: 03e00008 .... Disassembly of section .ktext: -bfc00180 <_exc_handler>: -bfc00180: 401a6800 mfc0 k0,c0_cause -bfc00184: 3c1bc000 lui k1,0xc000 -bfc00188: 001ad082 srl k0,k0,0x2 -bfc0018c: 335a000f andi k0,k0,0xf -bfc00190: 035bd025 or k0,k0,k1 -bfc00194: 3c1ba000 lui k1,0xa000 -bfc00198: 277b0000 addiu k1,k1,0 -bfc0019c: af7a0000 sw k0,0(k1) -bfc001a0: 401a6800 mfc0 k0,c0_cause -bfc001a4: 00000000 nop -bfc001a8: 001ad202 srl k0,k0,0x8 -bfc001ac: 335a00ff andi k0,k0,0xff -bfc001b0: 1740fffb bnez k0,bfc001a0 <_exc_handler+0x20> -bfc001b4: 00000000 nop -bfc001b8: 401a7000 mfc0 k0,c0_epc -bfc001bc: 00000000 nop -bfc001c0: 03400008 jr k0 -bfc001c4: 42000010 rfe +9fc00180 <_exc_handler>: +9fc00180: 401a6800 mfc0 k0,c0_cause +9fc00184: 3c1bc000 lui k1,0xc000 +9fc00188: 001ad082 srl k0,k0,0x2 +9fc0018c: 335a000f andi k0,k0,0xf +9fc00190: 035bd025 or k0,k0,k1 +9fc00194: 3c1bac00 lui k1,0xac00 +9fc00198: 277b0000 addiu k1,k1,0 +9fc0019c: af7a0000 sw k0,0(k1) +9fc001a0: 401a6800 mfc0 k0,c0_cause +9fc001a4: 00000000 nop +9fc001a8: 001ad202 srl k0,k0,0x8 +9fc001ac: 335a00ff andi k0,k0,0xff +9fc001b0: 1740fffb bnez k0,9fc001a0 <_exc_handler+0x20> +9fc001b4: 00000000 nop +9fc001b8: 401a7000 mfc0 k0,c0_epc +9fc001bc: 00000000 nop +9fc001c0: 03400008 jr k0 +9fc001c4: 42000010 rfe Disassembly of section .text: -bfc001c8 : -bfc001c8: 40026000 mfc0 v0,c0_sr -bfc001cc: 03e00008 jr ra -bfc001d0: 00000000 nop +9fc001c8 : +9fc001c8: 40026000 mfc0 v0,c0_sr +9fc001cc: 03e00008 jr ra +9fc001d0: 00000000 nop -bfc001d4 : -bfc001d4: 40846000 mtc0 a0,c0_sr -bfc001d8: 03e00008 jr ra -bfc001dc: 00000000 nop +9fc001d4 : +9fc001d4: 40846000 mtc0 a0,c0_sr +9fc001d8: 03e00008 jr ra +9fc001dc: 00000000 nop -bfc001e0 : -bfc001e0: 40026800 mfc0 v0,c0_cause -bfc001e4: 03e00008 jr ra -bfc001e8: 00000000 nop +9fc001e0 : +9fc001e0: 40026800 mfc0 v0,c0_cause +9fc001e4: 03e00008 jr ra +9fc001e8: 00000000 nop -bfc001ec : -bfc001ec: 40846800 mtc0 a0,c0_cause -bfc001f0: 03e00008 jr ra -bfc001f4: 00000000 nop +9fc001ec : +9fc001ec: 40846800 mtc0 a0,c0_cause +9fc001f0: 03e00008 jr ra +9fc001f4: 00000000 nop -bfc001f8 : -bfc001f8: 40027800 mfc0 v0,c0_prid -bfc001fc: 03e00008 jr ra -bfc00200: 00000000 nop +9fc001f8 : +9fc001f8: 40027800 mfc0 v0,c0_prid +9fc001fc: 03e00008 jr ra +9fc00200: 00000000 nop -bfc00204 : -bfc00204: 3c02a001 lui v0,0xa001 -bfc00208: 34430004 ori v1,v0,0x4 -bfc0020c: 8c620000 lw v0,0(v1) -bfc00210: 00000000 nop -bfc00214: 30420010 andi v0,v0,0x10 -bfc00218: 1040fffc beqz v0,bfc0020c -bfc0021c: 3c02a001 lui v0,0xa001 -bfc00220: 8c420000 lw v0,0(v0) -bfc00224: 00000000 nop -bfc00228: 00021600 sll v0,v0,0x18 -bfc0022c: 03e00008 jr ra -bfc00230: 00021603 sra v0,v0,0x18 +9fc00204 : +9fc00204: 3c02ac01 lui v0,0xac01 +9fc00208: 34430004 ori v1,v0,0x4 +9fc0020c: 8c620000 lw v0,0(v1) +9fc00210: 00000000 nop +9fc00214: 30420010 andi v0,v0,0x10 +9fc00218: 1040fffc beqz v0,9fc0020c +9fc0021c: 3c02ac01 lui v0,0xac01 +9fc00220: 8c420000 lw v0,0(v0) +9fc00224: 00000000 nop +9fc00228: 00021600 sll v0,v0,0x18 +9fc0022c: 03e00008 jr ra +9fc00230: 00021603 sra v0,v0,0x18 -bfc00234 : -bfc00234: 00042600 sll a0,a0,0x18 -bfc00238: 3c02a001 lui v0,0xa001 -bfc0023c: 00042603 sra a0,a0,0x18 -bfc00240: 34430004 ori v1,v0,0x4 -bfc00244: 8c620000 lw v0,0(v1) -bfc00248: 00000000 nop -bfc0024c: 30420002 andi v0,v0,0x2 -bfc00250: 1440fffc bnez v0,bfc00244 -bfc00254: 3c02a001 lui v0,0xa001 -bfc00258: ac440000 sw a0,0(v0) -bfc0025c: 03e00008 jr ra -bfc00260: 00000000 nop +9fc00234 : +9fc00234: 00042600 sll a0,a0,0x18 +9fc00238: 3c02ac01 lui v0,0xac01 +9fc0023c: 00042603 sra a0,a0,0x18 +9fc00240: 34430004 ori v1,v0,0x4 +9fc00244: 8c620000 lw v0,0(v1) +9fc00248: 00000000 nop +9fc0024c: 30420002 andi v0,v0,0x2 +9fc00250: 1440fffc bnez v0,9fc00244 +9fc00254: 3c02ac01 lui v0,0xac01 +9fc00258: ac440000 sw a0,0(v0) +9fc0025c: 03e00008 jr ra +9fc00260: 00000000 nop -bfc00264 <_putchar>: -bfc00264: 00042600 sll a0,a0,0x18 -bfc00268: 00042603 sra a0,a0,0x18 -bfc0026c: 2402000a li v0,10 -bfc00270: 1482000a bne a0,v0,bfc0029c <_putchar+0x38> -bfc00274: 3c02a001 lui v0,0xa001 -bfc00278: 34430004 ori v1,v0,0x4 -bfc0027c: 8c620000 lw v0,0(v1) -bfc00280: 00000000 nop -bfc00284: 30420002 andi v0,v0,0x2 -bfc00288: 1440fffc bnez v0,bfc0027c <_putchar+0x18> -bfc0028c: 3c02a001 lui v0,0xa001 -bfc00290: 2403000d li v1,13 -bfc00294: ac430000 sw v1,0(v0) -bfc00298: 3c02a001 lui v0,0xa001 -bfc0029c: 34430004 ori v1,v0,0x4 -bfc002a0: 8c620000 lw v0,0(v1) -bfc002a4: 00000000 nop -bfc002a8: 30420002 andi v0,v0,0x2 -bfc002ac: 1440fffc bnez v0,bfc002a0 <_putchar+0x3c> -bfc002b0: 3c02a001 lui v0,0xa001 -bfc002b4: ac440000 sw a0,0(v0) -bfc002b8: 03e00008 jr ra -bfc002bc: 00000000 nop +9fc00264 <_putchar>: +9fc00264: 00042600 sll a0,a0,0x18 +9fc00268: 00042603 sra a0,a0,0x18 +9fc0026c: 2402000a li v0,10 +9fc00270: 1482000a bne a0,v0,9fc0029c <_putchar+0x38> +9fc00274: 3c02ac01 lui v0,0xac01 +9fc00278: 34430004 ori v1,v0,0x4 +9fc0027c: 8c620000 lw v0,0(v1) +9fc00280: 00000000 nop +9fc00284: 30420002 andi v0,v0,0x2 +9fc00288: 1440fffc bnez v0,9fc0027c <_putchar+0x18> +9fc0028c: 3c02ac01 lui v0,0xac01 +9fc00290: 2403000d li v1,13 +9fc00294: ac430000 sw v1,0(v0) +9fc00298: 3c02ac01 lui v0,0xac01 +9fc0029c: 34430004 ori v1,v0,0x4 +9fc002a0: 8c620000 lw v0,0(v1) +9fc002a4: 00000000 nop +9fc002a8: 30420002 andi v0,v0,0x2 +9fc002ac: 1440fffc bnez v0,9fc002a0 <_putchar+0x3c> +9fc002b0: 3c02ac01 lui v0,0xac01 +9fc002b4: ac440000 sw a0,0(v0) +9fc002b8: 03e00008 jr ra +9fc002bc: 00000000 nop -bfc002c0 : -bfc002c0: 3c02a001 lui v0,0xa001 -bfc002c4: 34470004 ori a3,v0,0x4 -bfc002c8: 00802821 move a1,a0 -bfc002cc: 2409000a li t1,10 -bfc002d0: 3c06a001 lui a2,0xa001 -bfc002d4: 0bf000c6 j bfc00318 -bfc002d8: 2408000d li t0,13 -bfc002dc: 14690007 bne v1,t1,bfc002fc -bfc002e0: 00000000 nop -bfc002e4: 8ce20000 lw v0,0(a3) -bfc002e8: 00000000 nop -bfc002ec: 30420002 andi v0,v0,0x2 -bfc002f0: 1440fffc bnez v0,bfc002e4 -bfc002f4: 00000000 nop -bfc002f8: acc80000 sw t0,0(a2) -bfc002fc: 8ce20000 lw v0,0(a3) -bfc00300: 00000000 nop -bfc00304: 30420002 andi v0,v0,0x2 -bfc00308: 1440fffc bnez v0,bfc002fc -bfc0030c: 00000000 nop -bfc00310: acc30000 sw v1,0(a2) -bfc00314: 24a50001 addiu a1,a1,1 -bfc00318: 80a30000 lb v1,0(a1) -bfc0031c: 00000000 nop -bfc00320: 1460ffee bnez v1,bfc002dc -bfc00324: 00a41023 subu v0,a1,a0 -bfc00328: 03e00008 jr ra -bfc0032c: 00000000 nop +9fc002c0 : +9fc002c0: 3c02ac01 lui v0,0xac01 +9fc002c4: 34470004 ori a3,v0,0x4 +9fc002c8: 00802821 move a1,a0 +9fc002cc: 2409000a li t1,10 +9fc002d0: 3c06ac01 lui a2,0xac01 +9fc002d4: 0bf000c6 j 9fc00318 +9fc002d8: 2408000d li t0,13 +9fc002dc: 14690007 bne v1,t1,9fc002fc +9fc002e0: 00000000 nop +9fc002e4: 8ce20000 lw v0,0(a3) +9fc002e8: 00000000 nop +9fc002ec: 30420002 andi v0,v0,0x2 +9fc002f0: 1440fffc bnez v0,9fc002e4 +9fc002f4: 00000000 nop +9fc002f8: acc80000 sw t0,0(a2) +9fc002fc: 8ce20000 lw v0,0(a3) +9fc00300: 00000000 nop +9fc00304: 30420002 andi v0,v0,0x2 +9fc00308: 1440fffc bnez v0,9fc002fc +9fc0030c: 00000000 nop +9fc00310: acc30000 sw v1,0(a2) +9fc00314: 24a50001 addiu a1,a1,1 +9fc00318: 80a30000 lb v1,0(a1) +9fc0031c: 00000000 nop +9fc00320: 1460ffee bnez v1,9fc002dc +9fc00324: 00a41023 subu v0,a1,a0 +9fc00328: 03e00008 jr ra +9fc0032c: 00000000 nop -bfc00330 : -bfc00330: 00042600 sll a0,a0,0x18 -bfc00334: 3c02a001 lui v0,0xa001 -bfc00338: 00042603 sra a0,a0,0x18 -bfc0033c: 344a0004 ori t2,v0,0x4 -bfc00340: 00003821 move a3,zero -bfc00344: 3c09a001 lui t1,0xa001 -bfc00348: 24080002 li t0,2 -bfc0034c: 308200ff andi v0,a0,0xff -bfc00350: 00022902 srl a1,v0,0x4 -bfc00354: 00041100 sll v0,a0,0x4 -bfc00358: 00022600 sll a0,v0,0x18 -bfc0035c: 2ca3000a sltiu v1,a1,10 -bfc00360: 00042603 sra a0,a0,0x18 -bfc00364: 14600002 bnez v1,bfc00370 -bfc00368: 24a60030 addiu a2,a1,48 -bfc0036c: 24a60037 addiu a2,a1,55 -bfc00370: 8d420000 lw v0,0(t2) -bfc00374: 00000000 nop -bfc00378: 30420002 andi v0,v0,0x2 -bfc0037c: 1440fffc bnez v0,bfc00370 -bfc00380: 00061600 sll v0,a2,0x18 -bfc00384: 00021603 sra v0,v0,0x18 -bfc00388: 24e70001 addiu a3,a3,1 -bfc0038c: ad220000 sw v0,0(t1) -bfc00390: 14e8ffef bne a3,t0,bfc00350 -bfc00394: 308200ff andi v0,a0,0xff -bfc00398: 03e00008 jr ra -bfc0039c: 00000000 nop +9fc00330 : +9fc00330: 00042600 sll a0,a0,0x18 +9fc00334: 3c02ac01 lui v0,0xac01 +9fc00338: 00042603 sra a0,a0,0x18 +9fc0033c: 344a0004 ori t2,v0,0x4 +9fc00340: 00003821 move a3,zero +9fc00344: 3c09ac01 lui t1,0xac01 +9fc00348: 24080002 li t0,2 +9fc0034c: 308200ff andi v0,a0,0xff +9fc00350: 00022902 srl a1,v0,0x4 +9fc00354: 00041100 sll v0,a0,0x4 +9fc00358: 00022600 sll a0,v0,0x18 +9fc0035c: 2ca3000a sltiu v1,a1,10 +9fc00360: 00042603 sra a0,a0,0x18 +9fc00364: 14600002 bnez v1,9fc00370 +9fc00368: 24a60030 addiu a2,a1,48 +9fc0036c: 24a60037 addiu a2,a1,55 +9fc00370: 8d420000 lw v0,0(t2) +9fc00374: 00000000 nop +9fc00378: 30420002 andi v0,v0,0x2 +9fc0037c: 1440fffc bnez v0,9fc00370 +9fc00380: 00061600 sll v0,a2,0x18 +9fc00384: 00021603 sra v0,v0,0x18 +9fc00388: 24e70001 addiu a3,a3,1 +9fc0038c: ad220000 sw v0,0(t1) +9fc00390: 14e8ffef bne a3,t0,9fc00350 +9fc00394: 308200ff andi v0,a0,0xff +9fc00398: 03e00008 jr ra +9fc0039c: 00000000 nop -bfc003a0 : -bfc003a0: 27bdffe0 addiu sp,sp,-32 -bfc003a4: afb20018 sw s2,24(sp) -bfc003a8: afb10014 sw s1,20(sp) -bfc003ac: afb00010 sw s0,16(sp) -bfc003b0: afbf001c sw ra,28(sp) -bfc003b4: 00808821 move s1,a0 -bfc003b8: 00008021 move s0,zero -bfc003bc: 24120004 li s2,4 -bfc003c0: 00112603 sra a0,s1,0x18 -bfc003c4: 0ff000cc jal bfc00330 -bfc003c8: 26100001 addiu s0,s0,1 -bfc003cc: 1612fffc bne s0,s2,bfc003c0 -bfc003d0: 00118a00 sll s1,s1,0x8 -bfc003d4: 8fbf001c lw ra,28(sp) -bfc003d8: 8fb20018 lw s2,24(sp) -bfc003dc: 8fb10014 lw s1,20(sp) -bfc003e0: 8fb00010 lw s0,16(sp) -bfc003e4: 03e00008 jr ra -bfc003e8: 27bd0020 addiu sp,sp,32 +9fc003a0 : +9fc003a0: 27bdffe0 addiu sp,sp,-32 +9fc003a4: afb20018 sw s2,24(sp) +9fc003a8: afb10014 sw s1,20(sp) +9fc003ac: afb00010 sw s0,16(sp) +9fc003b0: afbf001c sw ra,28(sp) +9fc003b4: 00808821 move s1,a0 +9fc003b8: 00008021 move s0,zero +9fc003bc: 24120004 li s2,4 +9fc003c0: 00112603 sra a0,s1,0x18 +9fc003c4: 0ff000cc jal 9fc00330 +9fc003c8: 26100001 addiu s0,s0,1 +9fc003cc: 1612fffc bne s0,s2,9fc003c0 +9fc003d0: 00118a00 sll s1,s1,0x8 +9fc003d4: 8fbf001c lw ra,28(sp) +9fc003d8: 8fb20018 lw s2,24(sp) +9fc003dc: 8fb10014 lw s1,20(sp) +9fc003e0: 8fb00010 lw s0,16(sp) +9fc003e4: 03e00008 jr ra +9fc003e8: 27bd0020 addiu sp,sp,32 -bfc003ec : -bfc003ec: 27bdffc8 addiu sp,sp,-56 -bfc003f0: afb60028 sw s6,40(sp) -bfc003f4: afbf0034 sw ra,52(sp) -bfc003f8: afbe0030 sw s8,48(sp) -bfc003fc: afb7002c sw s7,44(sp) -bfc00400: afb50024 sw s5,36(sp) -bfc00404: afb40020 sw s4,32(sp) -bfc00408: afb3001c sw s3,28(sp) -bfc0040c: afb20018 sw s2,24(sp) -bfc00410: afb10014 sw s1,20(sp) -bfc00414: afb00010 sw s0,16(sp) -bfc00418: 00801021 move v0,a0 -bfc0041c: 10a00002 beqz a1,bfc00428 -bfc00420: 00c0b021 move s6,a2 -bfc00424: 00002021 move a0,zero -bfc00428: 00409821 move s3,v0 -bfc0042c: 3c02a001 lui v0,0xa001 -bfc00430: 00e09021 move s2,a3 -bfc00434: 0080a821 move s5,a0 -bfc00438: 345e0004 ori s8,v0,0x4 -bfc0043c: 00e0a021 move s4,a3 -bfc00440: 3c17a001 lui s7,0xa001 -bfc00444: 0ff000e8 jal bfc003a0 -bfc00448: 02a02021 move a0,s5 -bfc0044c: 3c04bfc0 lui a0,0xbfc0 -bfc00450: 0ff000b0 jal bfc002c0 -bfc00454: 248416a0 addiu a0,a0,5792 -bfc00458: 02608821 move s1,s3 -bfc0045c: 0bf00128 j bfc004a0 -bfc00460: 00008021 move s0,zero -bfc00464: 12400009 beqz s2,bfc0048c -bfc00468: 00000000 nop -bfc0046c: 82240000 lb a0,0(s1) -bfc00470: 0ff000cc jal bfc00330 -bfc00474: 2652ffff addiu s2,s2,-1 -bfc00478: 3c04bfc0 lui a0,0xbfc0 -bfc0047c: 0ff000b0 jal bfc002c0 -bfc00480: 24841778 addiu a0,a0,6008 -bfc00484: 0bf00128 j bfc004a0 -bfc00488: 26310001 addiu s1,s1,1 -bfc0048c: 3c04bfc0 lui a0,0xbfc0 -bfc00490: 0ff000b0 jal bfc002c0 -bfc00494: 248416a4 addiu a0,a0,5796 -bfc00498: 0bf0012c j bfc004b0 -bfc0049c: 3c04bfc0 lui a0,0xbfc0 -bfc004a0: 0216102a slt v0,s0,s6 -bfc004a4: 1440ffef bnez v0,bfc00464 -bfc004a8: 26100001 addiu s0,s0,1 -bfc004ac: 3c04bfc0 lui a0,0xbfc0 -bfc004b0: 0ff000b0 jal bfc002c0 -bfc004b4: 248416a4 addiu a0,a0,5796 -bfc004b8: 02602821 move a1,s3 -bfc004bc: 0bf00155 j bfc00554 -bfc004c0: 00002021 move a0,zero -bfc004c4: 1280001e beqz s4,bfc00540 -bfc004c8: 00000000 nop -bfc004cc: 90a30000 lbu v1,0(a1) -bfc004d0: 00000000 nop -bfc004d4: 2462ffe0 addiu v0,v1,-32 -bfc004d8: 304200ff andi v0,v0,0xff -bfc004dc: 2c420060 sltiu v0,v0,96 -bfc004e0: 14400003 bnez v0,bfc004f0 -bfc004e4: 00031e00 sll v1,v1,0x18 -bfc004e8: 2403002e li v1,46 -bfc004ec: 00031e00 sll v1,v1,0x18 -bfc004f0: 00031e03 sra v1,v1,0x18 -bfc004f4: 2402000a li v0,10 -bfc004f8: 14620007 bne v1,v0,bfc00518 -bfc004fc: 00000000 nop -bfc00500: 8fc20000 lw v0,0(s8) -bfc00504: 00000000 nop -bfc00508: 30420002 andi v0,v0,0x2 -bfc0050c: 1440fffc bnez v0,bfc00500 -bfc00510: 2402000d li v0,13 -bfc00514: aee20000 sw v0,0(s7) -bfc00518: 8fc20000 lw v0,0(s8) -bfc0051c: 00000000 nop -bfc00520: 30420002 andi v0,v0,0x2 -bfc00524: 1440fffc bnez v0,bfc00518 -bfc00528: 00000000 nop -bfc0052c: aee30000 sw v1,0(s7) -bfc00530: 2694ffff addiu s4,s4,-1 -bfc00534: 24840001 addiu a0,a0,1 -bfc00538: 0bf00155 j bfc00554 -bfc0053c: 24a50001 addiu a1,a1,1 -bfc00540: 3c04bfc0 lui a0,0xbfc0 -bfc00544: 0ff000b0 jal bfc002c0 -bfc00548: 24841778 addiu a0,a0,6008 -bfc0054c: 0bf00159 j bfc00564 -bfc00550: 3c04bfc0 lui a0,0xbfc0 -bfc00554: 0096102a slt v0,a0,s6 -bfc00558: 1440ffda bnez v0,bfc004c4 -bfc0055c: 00000000 nop -bfc00560: 3c04bfc0 lui a0,0xbfc0 -bfc00564: 0ff000b0 jal bfc002c0 -bfc00568: 248416cc addiu a0,a0,5836 -bfc0056c: 02b6a821 addu s5,s5,s6 -bfc00570: 1640ffb4 bnez s2,bfc00444 -bfc00574: 02769821 addu s3,s3,s6 -bfc00578: 8fbf0034 lw ra,52(sp) -bfc0057c: 8fbe0030 lw s8,48(sp) -bfc00580: 8fb7002c lw s7,44(sp) -bfc00584: 8fb60028 lw s6,40(sp) -bfc00588: 8fb50024 lw s5,36(sp) -bfc0058c: 8fb40020 lw s4,32(sp) -bfc00590: 8fb3001c lw s3,28(sp) -bfc00594: 8fb20018 lw s2,24(sp) -bfc00598: 8fb10014 lw s1,20(sp) -bfc0059c: 8fb00010 lw s0,16(sp) -bfc005a0: 03e00008 jr ra -bfc005a4: 27bd0038 addiu sp,sp,56 +9fc003ec : +9fc003ec: 27bdffc8 addiu sp,sp,-56 +9fc003f0: afb60028 sw s6,40(sp) +9fc003f4: afbf0034 sw ra,52(sp) +9fc003f8: afbe0030 sw s8,48(sp) +9fc003fc: afb7002c sw s7,44(sp) +9fc00400: afb50024 sw s5,36(sp) +9fc00404: afb40020 sw s4,32(sp) +9fc00408: afb3001c sw s3,28(sp) +9fc0040c: afb20018 sw s2,24(sp) +9fc00410: afb10014 sw s1,20(sp) +9fc00414: afb00010 sw s0,16(sp) +9fc00418: 00801021 move v0,a0 +9fc0041c: 10a00002 beqz a1,9fc00428 +9fc00420: 00c0b021 move s6,a2 +9fc00424: 00002021 move a0,zero +9fc00428: 00409821 move s3,v0 +9fc0042c: 3c02ac01 lui v0,0xac01 +9fc00430: 00e09021 move s2,a3 +9fc00434: 0080a821 move s5,a0 +9fc00438: 345e0004 ori s8,v0,0x4 +9fc0043c: 00e0a021 move s4,a3 +9fc00440: 3c17ac01 lui s7,0xac01 +9fc00444: 0ff000e8 jal 9fc003a0 +9fc00448: 02a02021 move a0,s5 +9fc0044c: 3c049fc0 lui a0,0x9fc0 +9fc00450: 0ff000b0 jal 9fc002c0 +9fc00454: 248416a0 addiu a0,a0,5792 +9fc00458: 02608821 move s1,s3 +9fc0045c: 0bf00128 j 9fc004a0 +9fc00460: 00008021 move s0,zero +9fc00464: 12400009 beqz s2,9fc0048c +9fc00468: 00000000 nop +9fc0046c: 82240000 lb a0,0(s1) +9fc00470: 0ff000cc jal 9fc00330 +9fc00474: 2652ffff addiu s2,s2,-1 +9fc00478: 3c049fc0 lui a0,0x9fc0 +9fc0047c: 0ff000b0 jal 9fc002c0 +9fc00480: 24841778 addiu a0,a0,6008 +9fc00484: 0bf00128 j 9fc004a0 +9fc00488: 26310001 addiu s1,s1,1 +9fc0048c: 3c049fc0 lui a0,0x9fc0 +9fc00490: 0ff000b0 jal 9fc002c0 +9fc00494: 248416a4 addiu a0,a0,5796 +9fc00498: 0bf0012c j 9fc004b0 +9fc0049c: 3c049fc0 lui a0,0x9fc0 +9fc004a0: 0216102a slt v0,s0,s6 +9fc004a4: 1440ffef bnez v0,9fc00464 +9fc004a8: 26100001 addiu s0,s0,1 +9fc004ac: 3c049fc0 lui a0,0x9fc0 +9fc004b0: 0ff000b0 jal 9fc002c0 +9fc004b4: 248416a4 addiu a0,a0,5796 +9fc004b8: 02602821 move a1,s3 +9fc004bc: 0bf00155 j 9fc00554 +9fc004c0: 00002021 move a0,zero +9fc004c4: 1280001e beqz s4,9fc00540 +9fc004c8: 00000000 nop +9fc004cc: 90a30000 lbu v1,0(a1) +9fc004d0: 00000000 nop +9fc004d4: 2462ffe0 addiu v0,v1,-32 +9fc004d8: 304200ff andi v0,v0,0xff +9fc004dc: 2c420060 sltiu v0,v0,96 +9fc004e0: 14400003 bnez v0,9fc004f0 +9fc004e4: 00031e00 sll v1,v1,0x18 +9fc004e8: 2403002e li v1,46 +9fc004ec: 00031e00 sll v1,v1,0x18 +9fc004f0: 00031e03 sra v1,v1,0x18 +9fc004f4: 2402000a li v0,10 +9fc004f8: 14620007 bne v1,v0,9fc00518 +9fc004fc: 00000000 nop +9fc00500: 8fc20000 lw v0,0(s8) +9fc00504: 00000000 nop +9fc00508: 30420002 andi v0,v0,0x2 +9fc0050c: 1440fffc bnez v0,9fc00500 +9fc00510: 2402000d li v0,13 +9fc00514: aee20000 sw v0,0(s7) +9fc00518: 8fc20000 lw v0,0(s8) +9fc0051c: 00000000 nop +9fc00520: 30420002 andi v0,v0,0x2 +9fc00524: 1440fffc bnez v0,9fc00518 +9fc00528: 00000000 nop +9fc0052c: aee30000 sw v1,0(s7) +9fc00530: 2694ffff addiu s4,s4,-1 +9fc00534: 24840001 addiu a0,a0,1 +9fc00538: 0bf00155 j 9fc00554 +9fc0053c: 24a50001 addiu a1,a1,1 +9fc00540: 3c049fc0 lui a0,0x9fc0 +9fc00544: 0ff000b0 jal 9fc002c0 +9fc00548: 24841778 addiu a0,a0,6008 +9fc0054c: 0bf00159 j 9fc00564 +9fc00550: 3c049fc0 lui a0,0x9fc0 +9fc00554: 0096102a slt v0,a0,s6 +9fc00558: 1440ffda bnez v0,9fc004c4 +9fc0055c: 00000000 nop +9fc00560: 3c049fc0 lui a0,0x9fc0 +9fc00564: 0ff000b0 jal 9fc002c0 +9fc00568: 248416cc addiu a0,a0,5836 +9fc0056c: 02b6a821 addu s5,s5,s6 +9fc00570: 1640ffb4 bnez s2,9fc00444 +9fc00574: 02769821 addu s3,s3,s6 +9fc00578: 8fbf0034 lw ra,52(sp) +9fc0057c: 8fbe0030 lw s8,48(sp) +9fc00580: 8fb7002c lw s7,44(sp) +9fc00584: 8fb60028 lw s6,40(sp) +9fc00588: 8fb50024 lw s5,36(sp) +9fc0058c: 8fb40020 lw s4,32(sp) +9fc00590: 8fb3001c lw s3,28(sp) +9fc00594: 8fb20018 lw s2,24(sp) +9fc00598: 8fb10014 lw s1,20(sp) +9fc0059c: 8fb00010 lw s0,16(sp) +9fc005a0: 03e00008 jr ra +9fc005a4: 27bd0038 addiu sp,sp,56 -bfc005a8 : -bfc005a8: 00c03821 move a3,a2 -bfc005ac: 00a03021 move a2,a1 -bfc005b0: 0bf000fb j bfc003ec -bfc005b4: 24050001 li a1,1 +9fc005a8 : +9fc005a8: 00c03821 move a3,a2 +9fc005ac: 00a03021 move a2,a1 +9fc005b0: 0bf000fb j 9fc003ec +9fc005b4: 24050001 li a1,1 -bfc005b8 : -bfc005b8: 8c840000 lw a0,0(a0) -bfc005bc: 3c020070 lui v0,0x70 -bfc005c0: 34420070 ori v0,v0,0x70 -bfc005c4: 3c0300ff lui v1,0xff -bfc005c8: ac820000 sw v0,0(a0) -bfc005cc: 346300ff ori v1,v1,0xff -bfc005d0: 8c820000 lw v0,0(a0) -bfc005d4: ac830000 sw v1,0(a0) -bfc005d8: 03e00008 jr ra -bfc005dc: 00000000 nop +9fc005b8 : +9fc005b8: 8c840000 lw a0,0(a0) +9fc005bc: 3c020070 lui v0,0x70 +9fc005c0: 34420070 ori v0,v0,0x70 +9fc005c4: 3c0300ff lui v1,0xff +9fc005c8: ac820000 sw v0,0(a0) +9fc005cc: 346300ff ori v1,v1,0xff +9fc005d0: 8c820000 lw v0,0(a0) +9fc005d4: ac830000 sw v1,0(a0) +9fc005d8: 03e00008 jr ra +9fc005dc: 00000000 nop -bfc005e0 : -bfc005e0: 27bdfff8 addiu sp,sp,-8 -bfc005e4: ac850000 sw a1,0(a0) -bfc005e8: 24820008 addiu v0,a0,8 -bfc005ec: 0bf0017f j bfc005fc -bfc005f0: 24830020 addiu v1,a0,32 -bfc005f4: a0400000 sb zero,0(v0) -bfc005f8: 24420001 addiu v0,v0,1 -bfc005fc: 1443fffd bne v0,v1,bfc005f4 -bfc00600: 00000000 nop -bfc00604: 24020001 li v0,1 -bfc00608: ac820004 sw v0,4(a0) -bfc0060c: 03e00008 jr ra -bfc00610: 27bd0008 addiu sp,sp,8 +9fc005e0 : +9fc005e0: 27bdfff8 addiu sp,sp,-8 +9fc005e4: ac850000 sw a1,0(a0) +9fc005e8: 24820008 addiu v0,a0,8 +9fc005ec: 0bf0017f j 9fc005fc +9fc005f0: 24830020 addiu v1,a0,32 +9fc005f4: a0400000 sb zero,0(v0) +9fc005f8: 24420001 addiu v0,v0,1 +9fc005fc: 1443fffd bne v0,v1,9fc005f4 +9fc00600: 00000000 nop +9fc00604: 24020001 li v0,1 +9fc00608: ac820004 sw v0,4(a0) +9fc0060c: 03e00008 jr ra +9fc00610: 27bd0008 addiu sp,sp,8 -bfc00614 : -bfc00614: 8c870000 lw a3,0(a0) -bfc00618: 3c020098 lui v0,0x98 -bfc0061c: 34420098 ori v0,v0,0x98 -bfc00620: ace20000 sw v0,0(a3) -bfc00624: 3c0200ff lui v0,0xff -bfc00628: 344200ff ori v0,v0,0xff -bfc0062c: ace20000 sw v0,0(a3) -bfc00630: 3c020090 lui v0,0x90 -bfc00634: 34420090 ori v0,v0,0x90 -bfc00638: ace20000 sw v0,0(a3) -bfc0063c: 00804021 move t0,a0 -bfc00640: 94e4009c lhu a0,156(a3) -bfc00644: 24030002 li v1,2 -bfc00648: 24020020 li v0,32 -bfc0064c: ad030008 sw v1,8(t0) -bfc00650: ad03001c sw v1,28(t0) -bfc00654: ad020018 sw v0,24(t0) -bfc00658: 3084ffff andi a0,a0,0xffff -bfc0065c: 0bf0019d j bfc00674 -bfc00660: 00001821 move v1,zero -bfc00664: 8d020008 lw v0,8(t0) -bfc00668: 00000000 nop -bfc0066c: 00021040 sll v0,v0,0x1 -bfc00670: ad020008 sw v0,8(t0) -bfc00674: 0064102b sltu v0,v1,a0 -bfc00678: 1440fffa bnez v0,bfc00664 -bfc0067c: 24630001 addiu v1,v1,1 -bfc00680: 94e200ac lhu v0,172(a3) -bfc00684: 94e300a8 lhu v1,168(a3) -bfc00688: 3042ffff andi v0,v0,0xffff -bfc0068c: 8d04001c lw a0,28(t0) -bfc00690: 3063ffff andi v1,v1,0xffff -bfc00694: 00021200 sll v0,v0,0x8 -bfc00698: 00432825 or a1,v0,v1 -bfc0069c: ad040014 sw a0,20(t0) -bfc006a0: 0bf001ae j bfc006b8 -bfc006a4: 00001821 move v1,zero -bfc006a8: 8d020014 lw v0,20(t0) -bfc006ac: 00000000 nop -bfc006b0: 00021040 sll v0,v0,0x1 -bfc006b4: ad020014 sw v0,20(t0) -bfc006b8: 0065102b sltu v0,v1,a1 -bfc006bc: 1440fffa bnez v0,bfc006a8 -bfc006c0: 24630001 addiu v1,v1,1 -bfc006c4: 94e300b8 lhu v1,184(a3) -bfc006c8: 94e600b4 lhu a2,180(a3) -bfc006cc: 94e200c0 lhu v0,192(a3) -bfc006d0: 94e400bc lhu a0,188(a3) -bfc006d4: 8d05001c lw a1,28(t0) -bfc006d8: 3042ffff andi v0,v0,0xffff -bfc006dc: 3084ffff andi a0,a0,0xffff -bfc006e0: 00021200 sll v0,v0,0x8 -bfc006e4: 00441025 or v0,v0,a0 -bfc006e8: 00052a00 sll a1,a1,0x8 -bfc006ec: 00a20018 mult a1,v0 -bfc006f0: 3063ffff andi v1,v1,0xffff -bfc006f4: 30c6ffff andi a2,a2,0xffff -bfc006f8: 00031a00 sll v1,v1,0x8 -bfc006fc: 00661825 or v1,v1,a2 -bfc00700: 24630001 addiu v1,v1,1 -bfc00704: ad030010 sw v1,16(t0) -bfc00708: 3c0300ff lui v1,0xff -bfc0070c: 346300ff ori v1,v1,0xff -bfc00710: 00001021 move v0,zero -bfc00714: 00002812 mflo a1 -bfc00718: ad05000c sw a1,12(t0) -bfc0071c: ace30000 sw v1,0(a3) -bfc00720: 03e00008 jr ra -bfc00724: 00000000 nop +9fc00614 : +9fc00614: 8c870000 lw a3,0(a0) +9fc00618: 3c020098 lui v0,0x98 +9fc0061c: 34420098 ori v0,v0,0x98 +9fc00620: ace20000 sw v0,0(a3) +9fc00624: 3c0200ff lui v0,0xff +9fc00628: 344200ff ori v0,v0,0xff +9fc0062c: ace20000 sw v0,0(a3) +9fc00630: 3c020090 lui v0,0x90 +9fc00634: 34420090 ori v0,v0,0x90 +9fc00638: ace20000 sw v0,0(a3) +9fc0063c: 00804021 move t0,a0 +9fc00640: 94e4009c lhu a0,156(a3) +9fc00644: 24030002 li v1,2 +9fc00648: 24020020 li v0,32 +9fc0064c: ad030008 sw v1,8(t0) +9fc00650: ad03001c sw v1,28(t0) +9fc00654: ad020018 sw v0,24(t0) +9fc00658: 3084ffff andi a0,a0,0xffff +9fc0065c: 0bf0019d j 9fc00674 +9fc00660: 00001821 move v1,zero +9fc00664: 8d020008 lw v0,8(t0) +9fc00668: 00000000 nop +9fc0066c: 00021040 sll v0,v0,0x1 +9fc00670: ad020008 sw v0,8(t0) +9fc00674: 0064102b sltu v0,v1,a0 +9fc00678: 1440fffa bnez v0,9fc00664 +9fc0067c: 24630001 addiu v1,v1,1 +9fc00680: 94e200ac lhu v0,172(a3) +9fc00684: 94e300a8 lhu v1,168(a3) +9fc00688: 3042ffff andi v0,v0,0xffff +9fc0068c: 8d04001c lw a0,28(t0) +9fc00690: 3063ffff andi v1,v1,0xffff +9fc00694: 00021200 sll v0,v0,0x8 +9fc00698: 00432825 or a1,v0,v1 +9fc0069c: ad040014 sw a0,20(t0) +9fc006a0: 0bf001ae j 9fc006b8 +9fc006a4: 00001821 move v1,zero +9fc006a8: 8d020014 lw v0,20(t0) +9fc006ac: 00000000 nop +9fc006b0: 00021040 sll v0,v0,0x1 +9fc006b4: ad020014 sw v0,20(t0) +9fc006b8: 0065102b sltu v0,v1,a1 +9fc006bc: 1440fffa bnez v0,9fc006a8 +9fc006c0: 24630001 addiu v1,v1,1 +9fc006c4: 94e300b8 lhu v1,184(a3) +9fc006c8: 94e600b4 lhu a2,180(a3) +9fc006cc: 94e200c0 lhu v0,192(a3) +9fc006d0: 94e400bc lhu a0,188(a3) +9fc006d4: 8d05001c lw a1,28(t0) +9fc006d8: 3042ffff andi v0,v0,0xffff +9fc006dc: 3084ffff andi a0,a0,0xffff +9fc006e0: 00021200 sll v0,v0,0x8 +9fc006e4: 00441025 or v0,v0,a0 +9fc006e8: 00052a00 sll a1,a1,0x8 +9fc006ec: 00a20018 mult a1,v0 +9fc006f0: 3063ffff andi v1,v1,0xffff +9fc006f4: 30c6ffff andi a2,a2,0xffff +9fc006f8: 00031a00 sll v1,v1,0x8 +9fc006fc: 00661825 or v1,v1,a2 +9fc00700: 24630001 addiu v1,v1,1 +9fc00704: ad030010 sw v1,16(t0) +9fc00708: 3c0300ff lui v1,0xff +9fc0070c: 346300ff ori v1,v1,0xff +9fc00710: 00001021 move v0,zero +9fc00714: 00002812 mflo a1 +9fc00718: ad05000c sw a1,12(t0) +9fc0071c: ace30000 sw v1,0(a3) +9fc00720: 03e00008 jr ra +9fc00724: 00000000 nop -bfc00728 : -bfc00728: 8c820008 lw v0,8(a0) -bfc0072c: 8c860000 lw a2,0(a0) -bfc00730: 00021082 srl v0,v0,0x2 -bfc00734: 00a2102b sltu v0,a1,v0 -bfc00738: 14400004 bnez v0,bfc0074c -bfc0073c: 3c030090 lui v1,0x90 -bfc00740: 3c028010 lui v0,0x8010 -bfc00744: 03e00008 jr ra -bfc00748: 34420002 ori v0,v0,0x2 -bfc0074c: 8c820010 lw v0,16(a0) -bfc00750: 00000000 nop -bfc00754: 2442ffff addiu v0,v0,-1 -bfc00758: 00021400 sll v0,v0,0x10 -bfc0075c: 00a21024 and v0,a1,v0 -bfc00760: 24420002 addiu v0,v0,2 -bfc00764: 34630090 ori v1,v1,0x90 -bfc00768: 00021080 sll v0,v0,0x2 -bfc0076c: acc30000 sw v1,0(a2) -bfc00770: 00c21021 addu v0,a2,v0 -bfc00774: 8c430000 lw v1,0(v0) -bfc00778: 3c020001 lui v0,0x1 -bfc0077c: 34420001 ori v0,v0,0x1 -bfc00780: 00621824 and v1,v1,v0 -bfc00784: 3c0200ff lui v0,0xff -bfc00788: 344200ff ori v0,v0,0xff -bfc0078c: acc20000 sw v0,0(a2) -bfc00790: 03e00008 jr ra -bfc00794: 0003102b sltu v0,zero,v1 +9fc00728 : +9fc00728: 8c820008 lw v0,8(a0) +9fc0072c: 8c860000 lw a2,0(a0) +9fc00730: 00021082 srl v0,v0,0x2 +9fc00734: 00a2102b sltu v0,a1,v0 +9fc00738: 14400004 bnez v0,9fc0074c +9fc0073c: 3c030090 lui v1,0x90 +9fc00740: 3c028010 lui v0,0x8010 +9fc00744: 03e00008 jr ra +9fc00748: 34420002 ori v0,v0,0x2 +9fc0074c: 8c820010 lw v0,16(a0) +9fc00750: 00000000 nop +9fc00754: 2442ffff addiu v0,v0,-1 +9fc00758: 00021400 sll v0,v0,0x10 +9fc0075c: 00a21024 and v0,a1,v0 +9fc00760: 24420002 addiu v0,v0,2 +9fc00764: 34630090 ori v1,v1,0x90 +9fc00768: 00021080 sll v0,v0,0x2 +9fc0076c: acc30000 sw v1,0(a2) +9fc00770: 00c21021 addu v0,a2,v0 +9fc00774: 8c430000 lw v1,0(v0) +9fc00778: 3c020001 lui v0,0x1 +9fc0077c: 34420001 ori v0,v0,0x1 +9fc00780: 00621824 and v1,v1,v0 +9fc00784: 3c0200ff lui v0,0xff +9fc00788: 344200ff ori v0,v0,0xff +9fc0078c: acc20000 sw v0,0(a2) +9fc00790: 03e00008 jr ra +9fc00794: 0003102b sltu v0,zero,v1 -bfc00798 : -bfc00798: 8c820008 lw v0,8(a0) -bfc0079c: 00a01821 move v1,a1 -bfc007a0: 00021082 srl v0,v0,0x2 -bfc007a4: 00a2102b sltu v0,a1,v0 -bfc007a8: 8c850000 lw a1,0(a0) -bfc007ac: 14400003 bnez v0,bfc007bc -bfc007b0: 3c028010 lui v0,0x8010 -bfc007b4: 0bf0020c j bfc00830 -bfc007b8: 34430002 ori v1,v0,0x2 -bfc007bc: 8c820010 lw v0,16(a0) -bfc007c0: 00000000 nop -bfc007c4: 2442ffff addiu v0,v0,-1 -bfc007c8: 00021400 sll v0,v0,0x10 -bfc007cc: 00621024 and v0,v1,v0 -bfc007d0: 00021080 sll v0,v0,0x2 -bfc007d4: 00a22021 addu a0,a1,v0 -bfc007d8: 3c020020 lui v0,0x20 -bfc007dc: 34420020 ori v0,v0,0x20 -bfc007e0: ac820000 sw v0,0(a0) -bfc007e4: 3c0200d0 lui v0,0xd0 -bfc007e8: 344200d0 ori v0,v0,0xd0 -bfc007ec: ac820000 sw v0,0(a0) -bfc007f0: 3c020080 lui v0,0x80 -bfc007f4: 34430080 ori v1,v0,0x80 -bfc007f8: 8c860000 lw a2,0(a0) -bfc007fc: 00000000 nop -bfc00800: 00c31024 and v0,a2,v1 -bfc00804: 1443fffc bne v0,v1,bfc007f8 -bfc00808: 3c02002a lui v0,0x2a -bfc0080c: 3442002a ori v0,v0,0x2a -bfc00810: 00c21024 and v0,a2,v0 -bfc00814: 10400003 beqz v0,bfc00824 -bfc00818: 00001821 move v1,zero -bfc0081c: 3c029010 lui v0,0x9010 -bfc00820: 00c21825 or v1,a2,v0 -bfc00824: 3c0200ff lui v0,0xff -bfc00828: 344200ff ori v0,v0,0xff -bfc0082c: ac820000 sw v0,0(a0) -bfc00830: 03e00008 jr ra -bfc00834: 00601021 move v0,v1 +9fc00798 : +9fc00798: 8c820008 lw v0,8(a0) +9fc0079c: 00a01821 move v1,a1 +9fc007a0: 00021082 srl v0,v0,0x2 +9fc007a4: 00a2102b sltu v0,a1,v0 +9fc007a8: 8c850000 lw a1,0(a0) +9fc007ac: 14400003 bnez v0,9fc007bc +9fc007b0: 3c028010 lui v0,0x8010 +9fc007b4: 0bf0020c j 9fc00830 +9fc007b8: 34430002 ori v1,v0,0x2 +9fc007bc: 8c820010 lw v0,16(a0) +9fc007c0: 00000000 nop +9fc007c4: 2442ffff addiu v0,v0,-1 +9fc007c8: 00021400 sll v0,v0,0x10 +9fc007cc: 00621024 and v0,v1,v0 +9fc007d0: 00021080 sll v0,v0,0x2 +9fc007d4: 00a22021 addu a0,a1,v0 +9fc007d8: 3c020020 lui v0,0x20 +9fc007dc: 34420020 ori v0,v0,0x20 +9fc007e0: ac820000 sw v0,0(a0) +9fc007e4: 3c0200d0 lui v0,0xd0 +9fc007e8: 344200d0 ori v0,v0,0xd0 +9fc007ec: ac820000 sw v0,0(a0) +9fc007f0: 3c020080 lui v0,0x80 +9fc007f4: 34430080 ori v1,v0,0x80 +9fc007f8: 8c860000 lw a2,0(a0) +9fc007fc: 00000000 nop +9fc00800: 00c31024 and v0,a2,v1 +9fc00804: 1443fffc bne v0,v1,9fc007f8 +9fc00808: 3c02002a lui v0,0x2a +9fc0080c: 3442002a ori v0,v0,0x2a +9fc00810: 00c21024 and v0,a2,v0 +9fc00814: 10400003 beqz v0,9fc00824 +9fc00818: 00001821 move v1,zero +9fc0081c: 3c029010 lui v0,0x9010 +9fc00820: 00c21825 or v1,a2,v0 +9fc00824: 3c0200ff lui v0,0xff +9fc00828: 344200ff ori v0,v0,0xff +9fc0082c: ac820000 sw v0,0(a0) +9fc00830: 03e00008 jr ra +9fc00834: 00601021 move v0,v1 -bfc00838 : -bfc00838: 8c820008 lw v0,8(a0) -bfc0083c: 00a01821 move v1,a1 -bfc00840: 00021082 srl v0,v0,0x2 -bfc00844: 00a2102b sltu v0,a1,v0 -bfc00848: 8c850000 lw a1,0(a0) -bfc0084c: 14400003 bnez v0,bfc0085c -bfc00850: 3c028010 lui v0,0x8010 -bfc00854: 0bf00234 j bfc008d0 -bfc00858: 34430002 ori v1,v0,0x2 -bfc0085c: 8c820010 lw v0,16(a0) -bfc00860: 00000000 nop -bfc00864: 2442ffff addiu v0,v0,-1 -bfc00868: 00021400 sll v0,v0,0x10 -bfc0086c: 00621024 and v0,v1,v0 -bfc00870: 00021080 sll v0,v0,0x2 -bfc00874: 00a22021 addu a0,a1,v0 -bfc00878: 3c020060 lui v0,0x60 -bfc0087c: 34420060 ori v0,v0,0x60 -bfc00880: ac820000 sw v0,0(a0) -bfc00884: 3c020001 lui v0,0x1 -bfc00888: 34420001 ori v0,v0,0x1 -bfc0088c: ac820000 sw v0,0(a0) -bfc00890: 3c020080 lui v0,0x80 -bfc00894: 34430080 ori v1,v0,0x80 -bfc00898: 8c860000 lw a2,0(a0) -bfc0089c: 00000000 nop -bfc008a0: 00c31024 and v0,a2,v1 -bfc008a4: 1443fffc bne v0,v1,bfc00898 -bfc008a8: 3c020038 lui v0,0x38 -bfc008ac: 34420038 ori v0,v0,0x38 -bfc008b0: 00c21024 and v0,a2,v0 -bfc008b4: 10400003 beqz v0,bfc008c4 -bfc008b8: 00001821 move v1,zero -bfc008bc: 3c029010 lui v0,0x9010 -bfc008c0: 00c21825 or v1,a2,v0 -bfc008c4: 3c0200ff lui v0,0xff -bfc008c8: 344200ff ori v0,v0,0xff -bfc008cc: ac820000 sw v0,0(a0) -bfc008d0: 03e00008 jr ra -bfc008d4: 00601021 move v0,v1 +9fc00838 : +9fc00838: 8c820008 lw v0,8(a0) +9fc0083c: 00a01821 move v1,a1 +9fc00840: 00021082 srl v0,v0,0x2 +9fc00844: 00a2102b sltu v0,a1,v0 +9fc00848: 8c850000 lw a1,0(a0) +9fc0084c: 14400003 bnez v0,9fc0085c +9fc00850: 3c028010 lui v0,0x8010 +9fc00854: 0bf00234 j 9fc008d0 +9fc00858: 34430002 ori v1,v0,0x2 +9fc0085c: 8c820010 lw v0,16(a0) +9fc00860: 00000000 nop +9fc00864: 2442ffff addiu v0,v0,-1 +9fc00868: 00021400 sll v0,v0,0x10 +9fc0086c: 00621024 and v0,v1,v0 +9fc00870: 00021080 sll v0,v0,0x2 +9fc00874: 00a22021 addu a0,a1,v0 +9fc00878: 3c020060 lui v0,0x60 +9fc0087c: 34420060 ori v0,v0,0x60 +9fc00880: ac820000 sw v0,0(a0) +9fc00884: 3c020001 lui v0,0x1 +9fc00888: 34420001 ori v0,v0,0x1 +9fc0088c: ac820000 sw v0,0(a0) +9fc00890: 3c020080 lui v0,0x80 +9fc00894: 34430080 ori v1,v0,0x80 +9fc00898: 8c860000 lw a2,0(a0) +9fc0089c: 00000000 nop +9fc008a0: 00c31024 and v0,a2,v1 +9fc008a4: 1443fffc bne v0,v1,9fc00898 +9fc008a8: 3c020038 lui v0,0x38 +9fc008ac: 34420038 ori v0,v0,0x38 +9fc008b0: 00c21024 and v0,a2,v0 +9fc008b4: 10400003 beqz v0,9fc008c4 +9fc008b8: 00001821 move v1,zero +9fc008bc: 3c029010 lui v0,0x9010 +9fc008c0: 00c21825 or v1,a2,v0 +9fc008c4: 3c0200ff lui v0,0xff +9fc008c8: 344200ff ori v0,v0,0xff +9fc008cc: ac820000 sw v0,0(a0) +9fc008d0: 03e00008 jr ra +9fc008d4: 00601021 move v0,v1 -bfc008d8 : -bfc008d8: 8c820008 lw v0,8(a0) -bfc008dc: 00a01821 move v1,a1 -bfc008e0: 00021082 srl v0,v0,0x2 -bfc008e4: 00a2102b sltu v0,a1,v0 -bfc008e8: 8c850000 lw a1,0(a0) -bfc008ec: 14400003 bnez v0,bfc008fc -bfc008f0: 3c028010 lui v0,0x8010 -bfc008f4: 0bf0025c j bfc00970 -bfc008f8: 34430002 ori v1,v0,0x2 -bfc008fc: 8c820010 lw v0,16(a0) -bfc00900: 00000000 nop -bfc00904: 2442ffff addiu v0,v0,-1 -bfc00908: 00021400 sll v0,v0,0x10 -bfc0090c: 00621024 and v0,v1,v0 -bfc00910: 00021080 sll v0,v0,0x2 -bfc00914: 00a22021 addu a0,a1,v0 -bfc00918: 3c020060 lui v0,0x60 -bfc0091c: 34420060 ori v0,v0,0x60 -bfc00920: ac820000 sw v0,0(a0) -bfc00924: 3c0200d0 lui v0,0xd0 -bfc00928: 344200d0 ori v0,v0,0xd0 -bfc0092c: ac820000 sw v0,0(a0) -bfc00930: 3c020080 lui v0,0x80 -bfc00934: 34430080 ori v1,v0,0x80 -bfc00938: 8c860000 lw a2,0(a0) -bfc0093c: 00000000 nop -bfc00940: 00c31024 and v0,a2,v1 -bfc00944: 1443fffc bne v0,v1,bfc00938 -bfc00948: 3c020038 lui v0,0x38 -bfc0094c: 34420038 ori v0,v0,0x38 -bfc00950: 00c21024 and v0,a2,v0 -bfc00954: 10400003 beqz v0,bfc00964 -bfc00958: 00001821 move v1,zero -bfc0095c: 3c029010 lui v0,0x9010 -bfc00960: 00c21825 or v1,a2,v0 -bfc00964: 3c0200ff lui v0,0xff -bfc00968: 344200ff ori v0,v0,0xff -bfc0096c: ac820000 sw v0,0(a0) -bfc00970: 03e00008 jr ra -bfc00974: 00601021 move v0,v1 +9fc008d8 : +9fc008d8: 8c820008 lw v0,8(a0) +9fc008dc: 00a01821 move v1,a1 +9fc008e0: 00021082 srl v0,v0,0x2 +9fc008e4: 00a2102b sltu v0,a1,v0 +9fc008e8: 8c850000 lw a1,0(a0) +9fc008ec: 14400003 bnez v0,9fc008fc +9fc008f0: 3c028010 lui v0,0x8010 +9fc008f4: 0bf0025c j 9fc00970 +9fc008f8: 34430002 ori v1,v0,0x2 +9fc008fc: 8c820010 lw v0,16(a0) +9fc00900: 00000000 nop +9fc00904: 2442ffff addiu v0,v0,-1 +9fc00908: 00021400 sll v0,v0,0x10 +9fc0090c: 00621024 and v0,v1,v0 +9fc00910: 00021080 sll v0,v0,0x2 +9fc00914: 00a22021 addu a0,a1,v0 +9fc00918: 3c020060 lui v0,0x60 +9fc0091c: 34420060 ori v0,v0,0x60 +9fc00920: ac820000 sw v0,0(a0) +9fc00924: 3c0200d0 lui v0,0xd0 +9fc00928: 344200d0 ori v0,v0,0xd0 +9fc0092c: ac820000 sw v0,0(a0) +9fc00930: 3c020080 lui v0,0x80 +9fc00934: 34430080 ori v1,v0,0x80 +9fc00938: 8c860000 lw a2,0(a0) +9fc0093c: 00000000 nop +9fc00940: 00c31024 and v0,a2,v1 +9fc00944: 1443fffc bne v0,v1,9fc00938 +9fc00948: 3c020038 lui v0,0x38 +9fc0094c: 34420038 ori v0,v0,0x38 +9fc00950: 00c21024 and v0,a2,v0 +9fc00954: 10400003 beqz v0,9fc00964 +9fc00958: 00001821 move v1,zero +9fc0095c: 3c029010 lui v0,0x9010 +9fc00960: 00c21825 or v1,a2,v0 +9fc00964: 3c0200ff lui v0,0xff +9fc00968: 344200ff ori v0,v0,0xff +9fc0096c: ac820000 sw v0,0(a0) +9fc00970: 03e00008 jr ra +9fc00974: 00601021 move v0,v1 -bfc00978 : -bfc00978: 8c820008 lw v0,8(a0) -bfc0097c: 8c840000 lw a0,0(a0) -bfc00980: 00021082 srl v0,v0,0x2 -bfc00984: 00a2102b sltu v0,a1,v0 -bfc00988: 14400003 bnez v0,bfc00998 -bfc0098c: 3c028010 lui v0,0x8010 -bfc00990: 0bf0027c j bfc009f0 -bfc00994: 34430002 ori v1,v0,0x2 -bfc00998: 00051080 sll v0,a1,0x2 -bfc0099c: 00822021 addu a0,a0,v0 -bfc009a0: 3c020040 lui v0,0x40 -bfc009a4: 34420040 ori v0,v0,0x40 -bfc009a8: ac820000 sw v0,0(a0) -bfc009ac: 3c020080 lui v0,0x80 -bfc009b0: ac860000 sw a2,0(a0) -bfc009b4: 34430080 ori v1,v0,0x80 -bfc009b8: 8c860000 lw a2,0(a0) -bfc009bc: 00000000 nop -bfc009c0: 00c31024 and v0,a2,v1 -bfc009c4: 1443fffc bne v0,v1,bfc009b8 -bfc009c8: 3c02001a lui v0,0x1a -bfc009cc: 3442001a ori v0,v0,0x1a -bfc009d0: 00c21024 and v0,a2,v0 -bfc009d4: 10400003 beqz v0,bfc009e4 -bfc009d8: 00001821 move v1,zero -bfc009dc: 3c029010 lui v0,0x9010 -bfc009e0: 00c21825 or v1,a2,v0 -bfc009e4: 3c0200ff lui v0,0xff -bfc009e8: 344200ff ori v0,v0,0xff -bfc009ec: ac820000 sw v0,0(a0) -bfc009f0: 03e00008 jr ra -bfc009f4: 00601021 move v0,v1 +9fc00978 : +9fc00978: 8c820008 lw v0,8(a0) +9fc0097c: 8c840000 lw a0,0(a0) +9fc00980: 00021082 srl v0,v0,0x2 +9fc00984: 00a2102b sltu v0,a1,v0 +9fc00988: 14400003 bnez v0,9fc00998 +9fc0098c: 3c028010 lui v0,0x8010 +9fc00990: 0bf0027c j 9fc009f0 +9fc00994: 34430002 ori v1,v0,0x2 +9fc00998: 00051080 sll v0,a1,0x2 +9fc0099c: 00822021 addu a0,a0,v0 +9fc009a0: 3c020040 lui v0,0x40 +9fc009a4: 34420040 ori v0,v0,0x40 +9fc009a8: ac820000 sw v0,0(a0) +9fc009ac: 3c020080 lui v0,0x80 +9fc009b0: ac860000 sw a2,0(a0) +9fc009b4: 34430080 ori v1,v0,0x80 +9fc009b8: 8c860000 lw a2,0(a0) +9fc009bc: 00000000 nop +9fc009c0: 00c31024 and v0,a2,v1 +9fc009c4: 1443fffc bne v0,v1,9fc009b8 +9fc009c8: 3c02001a lui v0,0x1a +9fc009cc: 3442001a ori v0,v0,0x1a +9fc009d0: 00c21024 and v0,a2,v0 +9fc009d4: 10400003 beqz v0,9fc009e4 +9fc009d8: 00001821 move v1,zero +9fc009dc: 3c029010 lui v0,0x9010 +9fc009e0: 00c21825 or v1,a2,v0 +9fc009e4: 3c0200ff lui v0,0xff +9fc009e8: 344200ff ori v0,v0,0xff +9fc009ec: ac820000 sw v0,0(a0) +9fc009f0: 03e00008 jr ra +9fc009f4: 00601021 move v0,v1 -bfc009f8 : -bfc009f8: 8c820008 lw v0,8(a0) -bfc009fc: 27bdffe8 addiu sp,sp,-24 -bfc00a00: 00021082 srl v0,v0,0x2 -bfc00a04: 00a2102b sltu v0,a1,v0 -bfc00a08: afb40014 sw s4,20(sp) -bfc00a0c: afb30010 sw s3,16(sp) -bfc00a10: afb2000c sw s2,12(sp) -bfc00a14: afb10008 sw s1,8(sp) -bfc00a18: afb00004 sw s0,4(sp) -bfc00a1c: 0080c021 move t8,a0 -bfc00a20: 8c8e0000 lw t6,0(a0) -bfc00a24: 14400004 bnez v0,bfc00a38 -bfc00a28: 00c0a021 move s4,a2 -bfc00a2c: 3c028010 lui v0,0x8010 -bfc00a30: 0bf002e3 j bfc00b8c -bfc00a34: 34440002 ori a0,v0,0x2 -bfc00a38: 8c820010 lw v0,16(a0) -bfc00a3c: 00006821 move t5,zero -bfc00a40: 2442ffff addiu v0,v0,-1 -bfc00a44: 0002cc00 sll t9,v0,0x10 -bfc00a48: 3c0200e8 lui v0,0xe8 -bfc00a4c: 345300e8 ori s3,v0,0xe8 -bfc00a50: 3c020080 lui v0,0x80 -bfc00a54: 344f0080 ori t7,v0,0x80 -bfc00a58: 3c02001a lui v0,0x1a -bfc00a5c: 3446001a ori a2,v0,0x1a -bfc00a60: 3c0200d0 lui v0,0xd0 -bfc00a64: 345200d0 ori s2,v0,0xd0 -bfc00a68: 3c0200ff lui v0,0xff -bfc00a6c: 345100ff ori s1,v0,0xff -bfc00a70: 0bf002e1 j bfc00b84 -bfc00a74: 3c100001 lui s0,0x1 -bfc00a78: 01851023 subu v0,t4,a1 -bfc00a7c: 00505021 addu t2,v0,s0 -bfc00a80: 00ea102b sltu v0,a3,t2 -bfc00a84: 10400002 beqz v0,bfc00a90 -bfc00a88: 000c1080 sll v0,t4,0x2 -bfc00a8c: 00e05021 move t2,a3 -bfc00a90: 0bf002d7 j bfc00b5c -bfc00a94: 01c25821 addu t3,t6,v0 -bfc00a98: ad730000 sw s3,0(t3) -bfc00a9c: 8d630000 lw v1,0(t3) -bfc00aa0: 00000000 nop -bfc00aa4: 006f1024 and v0,v1,t7 -bfc00aa8: 144ffffc bne v0,t7,bfc00a9c -bfc00aac: 00661024 and v0,v1,a2 -bfc00ab0: 14400026 bnez v0,bfc00b4c -bfc00ab4: 3c029010 lui v0,0x9010 -bfc00ab8: 8f020014 lw v0,20(t8) -bfc00abc: 00000000 nop -bfc00ac0: 00021882 srl v1,v0,0x2 -bfc00ac4: 006a102b sltu v0,v1,t2 -bfc00ac8: 10400002 beqz v0,bfc00ad4 -bfc00acc: 01404021 move t0,t2 -bfc00ad0: 00604021 move t0,v1 -bfc00ad4: 2503ffff addiu v1,t0,-1 -bfc00ad8: 00031400 sll v0,v1,0x10 -bfc00adc: 00431025 or v0,v0,v1 -bfc00ae0: 00052080 sll a0,a1,0x2 -bfc00ae4: 000d1880 sll v1,t5,0x2 -bfc00ae8: 02834821 addu t1,s4,v1 -bfc00aec: ad620000 sw v0,0(t3) -bfc00af0: 01c42021 addu a0,t6,a0 -bfc00af4: 0bf002c3 j bfc00b0c -bfc00af8: 00001821 move v1,zero -bfc00afc: 8d220000 lw v0,0(t1) -bfc00b00: 25290004 addiu t1,t1,4 -bfc00b04: ac820000 sw v0,0(a0) -bfc00b08: 24840004 addiu a0,a0,4 -bfc00b0c: 0068102b sltu v0,v1,t0 -bfc00b10: 1440fffa bnez v0,bfc00afc -bfc00b14: 24630001 addiu v1,v1,1 -bfc00b18: 01a86821 addu t5,t5,t0 -bfc00b1c: 00a82821 addu a1,a1,t0 -bfc00b20: 00e83823 subu a3,a3,t0 -bfc00b24: ad720000 sw s2,0(t3) -bfc00b28: 8d630000 lw v1,0(t3) -bfc00b2c: 00000000 nop -bfc00b30: 006f1024 and v0,v1,t7 -bfc00b34: 144ffffc bne v0,t7,bfc00b28 -bfc00b38: 00661024 and v0,v1,a2 -bfc00b3c: 10400005 beqz v0,bfc00b54 -bfc00b40: 01485023 subu t2,t2,t0 -bfc00b44: 01485021 addu t2,t2,t0 -bfc00b48: 3c029010 lui v0,0x9010 -bfc00b4c: 0bf002d9 j bfc00b64 -bfc00b50: 00622025 or a0,v1,v0 -bfc00b54: ad710000 sw s1,0(t3) -bfc00b58: 00002021 move a0,zero -bfc00b5c: 1540ffce bnez t2,bfc00a98 -bfc00b60: 00000000 nop -bfc00b64: 04810007 bgez a0,bfc00b84 -bfc00b68: 000c1880 sll v1,t4,0x2 -bfc00b6c: 3c0200ff lui v0,0xff -bfc00b70: 01c31821 addu v1,t6,v1 -bfc00b74: 344200ff ori v0,v0,0xff -bfc00b78: ac620000 sw v0,0(v1) -bfc00b7c: 0bf002e4 j bfc00b90 -bfc00b80: 00801021 move v0,a0 -bfc00b84: 14e0ffbc bnez a3,bfc00a78 -bfc00b88: 00b96024 and t4,a1,t9 -bfc00b8c: 00801021 move v0,a0 -bfc00b90: 8fb40014 lw s4,20(sp) -bfc00b94: 8fb30010 lw s3,16(sp) -bfc00b98: 8fb2000c lw s2,12(sp) -bfc00b9c: 8fb10008 lw s1,8(sp) -bfc00ba0: 8fb00004 lw s0,4(sp) -bfc00ba4: 03e00008 jr ra -bfc00ba8: 27bd0018 addiu sp,sp,24 +9fc009f8 : +9fc009f8: 8c820008 lw v0,8(a0) +9fc009fc: 27bdffe8 addiu sp,sp,-24 +9fc00a00: 00021082 srl v0,v0,0x2 +9fc00a04: 00a2102b sltu v0,a1,v0 +9fc00a08: afb40014 sw s4,20(sp) +9fc00a0c: afb30010 sw s3,16(sp) +9fc00a10: afb2000c sw s2,12(sp) +9fc00a14: afb10008 sw s1,8(sp) +9fc00a18: afb00004 sw s0,4(sp) +9fc00a1c: 0080c021 move t8,a0 +9fc00a20: 8c8e0000 lw t6,0(a0) +9fc00a24: 14400004 bnez v0,9fc00a38 +9fc00a28: 00c0a021 move s4,a2 +9fc00a2c: 3c028010 lui v0,0x8010 +9fc00a30: 0bf002e3 j 9fc00b8c +9fc00a34: 34440002 ori a0,v0,0x2 +9fc00a38: 8c820010 lw v0,16(a0) +9fc00a3c: 00006821 move t5,zero +9fc00a40: 2442ffff addiu v0,v0,-1 +9fc00a44: 0002cc00 sll t9,v0,0x10 +9fc00a48: 3c0200e8 lui v0,0xe8 +9fc00a4c: 345300e8 ori s3,v0,0xe8 +9fc00a50: 3c020080 lui v0,0x80 +9fc00a54: 344f0080 ori t7,v0,0x80 +9fc00a58: 3c02001a lui v0,0x1a +9fc00a5c: 3446001a ori a2,v0,0x1a +9fc00a60: 3c0200d0 lui v0,0xd0 +9fc00a64: 345200d0 ori s2,v0,0xd0 +9fc00a68: 3c0200ff lui v0,0xff +9fc00a6c: 345100ff ori s1,v0,0xff +9fc00a70: 0bf002e1 j 9fc00b84 +9fc00a74: 3c100001 lui s0,0x1 +9fc00a78: 01851023 subu v0,t4,a1 +9fc00a7c: 00505021 addu t2,v0,s0 +9fc00a80: 00ea102b sltu v0,a3,t2 +9fc00a84: 10400002 beqz v0,9fc00a90 +9fc00a88: 000c1080 sll v0,t4,0x2 +9fc00a8c: 00e05021 move t2,a3 +9fc00a90: 0bf002d7 j 9fc00b5c +9fc00a94: 01c25821 addu t3,t6,v0 +9fc00a98: ad730000 sw s3,0(t3) +9fc00a9c: 8d630000 lw v1,0(t3) +9fc00aa0: 00000000 nop +9fc00aa4: 006f1024 and v0,v1,t7 +9fc00aa8: 144ffffc bne v0,t7,9fc00a9c +9fc00aac: 00661024 and v0,v1,a2 +9fc00ab0: 14400026 bnez v0,9fc00b4c +9fc00ab4: 3c029010 lui v0,0x9010 +9fc00ab8: 8f020014 lw v0,20(t8) +9fc00abc: 00000000 nop +9fc00ac0: 00021882 srl v1,v0,0x2 +9fc00ac4: 006a102b sltu v0,v1,t2 +9fc00ac8: 10400002 beqz v0,9fc00ad4 +9fc00acc: 01404021 move t0,t2 +9fc00ad0: 00604021 move t0,v1 +9fc00ad4: 2503ffff addiu v1,t0,-1 +9fc00ad8: 00031400 sll v0,v1,0x10 +9fc00adc: 00431025 or v0,v0,v1 +9fc00ae0: 00052080 sll a0,a1,0x2 +9fc00ae4: 000d1880 sll v1,t5,0x2 +9fc00ae8: 02834821 addu t1,s4,v1 +9fc00aec: ad620000 sw v0,0(t3) +9fc00af0: 01c42021 addu a0,t6,a0 +9fc00af4: 0bf002c3 j 9fc00b0c +9fc00af8: 00001821 move v1,zero +9fc00afc: 8d220000 lw v0,0(t1) +9fc00b00: 25290004 addiu t1,t1,4 +9fc00b04: ac820000 sw v0,0(a0) +9fc00b08: 24840004 addiu a0,a0,4 +9fc00b0c: 0068102b sltu v0,v1,t0 +9fc00b10: 1440fffa bnez v0,9fc00afc +9fc00b14: 24630001 addiu v1,v1,1 +9fc00b18: 01a86821 addu t5,t5,t0 +9fc00b1c: 00a82821 addu a1,a1,t0 +9fc00b20: 00e83823 subu a3,a3,t0 +9fc00b24: ad720000 sw s2,0(t3) +9fc00b28: 8d630000 lw v1,0(t3) +9fc00b2c: 00000000 nop +9fc00b30: 006f1024 and v0,v1,t7 +9fc00b34: 144ffffc bne v0,t7,9fc00b28 +9fc00b38: 00661024 and v0,v1,a2 +9fc00b3c: 10400005 beqz v0,9fc00b54 +9fc00b40: 01485023 subu t2,t2,t0 +9fc00b44: 01485021 addu t2,t2,t0 +9fc00b48: 3c029010 lui v0,0x9010 +9fc00b4c: 0bf002d9 j 9fc00b64 +9fc00b50: 00622025 or a0,v1,v0 +9fc00b54: ad710000 sw s1,0(t3) +9fc00b58: 00002021 move a0,zero +9fc00b5c: 1540ffce bnez t2,9fc00a98 +9fc00b60: 00000000 nop +9fc00b64: 04810007 bgez a0,9fc00b84 +9fc00b68: 000c1880 sll v1,t4,0x2 +9fc00b6c: 3c0200ff lui v0,0xff +9fc00b70: 01c31821 addu v1,t6,v1 +9fc00b74: 344200ff ori v0,v0,0xff +9fc00b78: ac620000 sw v0,0(v1) +9fc00b7c: 0bf002e4 j 9fc00b90 +9fc00b80: 00801021 move v0,a0 +9fc00b84: 14e0ffbc bnez a3,9fc00a78 +9fc00b88: 00b96024 and t4,a1,t9 +9fc00b8c: 00801021 move v0,a0 +9fc00b90: 8fb40014 lw s4,20(sp) +9fc00b94: 8fb30010 lw s3,16(sp) +9fc00b98: 8fb2000c lw s2,12(sp) +9fc00b9c: 8fb10008 lw s1,8(sp) +9fc00ba0: 8fb00004 lw s0,4(sp) +9fc00ba4: 03e00008 jr ra +9fc00ba8: 27bd0018 addiu sp,sp,24 -bfc00bac : -bfc00bac: 27bdffe0 addiu sp,sp,-32 -bfc00bb0: afbf001c sw ra,28(sp) -bfc00bb4: ac850000 sw a1,0(a0) -bfc00bb8: 24820008 addiu v0,a0,8 -bfc00bbc: 0bf002f3 j bfc00bcc -bfc00bc0: 24830020 addiu v1,a0,32 -bfc00bc4: a0400000 sb zero,0(v0) -bfc00bc8: 24420001 addiu v0,v0,1 -bfc00bcc: 1443fffd bne v0,v1,bfc00bc4 -bfc00bd0: 00000000 nop -bfc00bd4: 3c021234 lui v0,0x1234 -bfc00bd8: 34425678 ori v0,v0,0x5678 -bfc00bdc: 00021e02 srl v1,v0,0x18 -bfc00be0: afa20010 sw v0,16(sp) -bfc00be4: 24020012 li v0,18 -bfc00be8: 14620003 bne v1,v0,bfc00bf8 -bfc00bec: ac800004 sw zero,4(a0) -bfc00bf0: 24020001 li v0,1 -bfc00bf4: ac820004 sw v0,4(a0) -bfc00bf8: 0ff00185 jal bfc00614 -bfc00bfc: 00000000 nop -bfc00c00: 8fbf001c lw ra,28(sp) -bfc00c04: 00000000 nop -bfc00c08: 03e00008 jr ra -bfc00c0c: 27bd0020 addiu sp,sp,32 +9fc00bac : +9fc00bac: 27bdffe0 addiu sp,sp,-32 +9fc00bb0: afbf001c sw ra,28(sp) +9fc00bb4: ac850000 sw a1,0(a0) +9fc00bb8: 24820008 addiu v0,a0,8 +9fc00bbc: 0bf002f3 j 9fc00bcc +9fc00bc0: 24830020 addiu v1,a0,32 +9fc00bc4: a0400000 sb zero,0(v0) +9fc00bc8: 24420001 addiu v0,v0,1 +9fc00bcc: 1443fffd bne v0,v1,9fc00bc4 +9fc00bd0: 00000000 nop +9fc00bd4: 3c021234 lui v0,0x1234 +9fc00bd8: 34425678 ori v0,v0,0x5678 +9fc00bdc: 00021e02 srl v1,v0,0x18 +9fc00be0: afa20010 sw v0,16(sp) +9fc00be4: 24020012 li v0,18 +9fc00be8: 14620003 bne v1,v0,9fc00bf8 +9fc00bec: ac800004 sw zero,4(a0) +9fc00bf0: 24020001 li v0,1 +9fc00bf4: ac820004 sw v0,4(a0) +9fc00bf8: 0ff00185 jal 9fc00614 +9fc00bfc: 00000000 nop +9fc00c00: 8fbf001c lw ra,28(sp) +9fc00c04: 00000000 nop +9fc00c08: 03e00008 jr ra +9fc00c0c: 27bd0020 addiu sp,sp,32 -bfc00c10 : -bfc00c10: 27bdffd8 addiu sp,sp,-40 -bfc00c14: 30c20003 andi v0,a2,0x3 -bfc00c18: afb2001c sw s2,28(sp) -bfc00c1c: afbf0024 sw ra,36(sp) -bfc00c20: afb30020 sw s3,32(sp) -bfc00c24: afb10018 sw s1,24(sp) -bfc00c28: afb00014 sw s0,20(sp) -bfc00c2c: 10400004 beqz v0,bfc00c40 -bfc00c30: 00809021 move s2,a0 -bfc00c34: 00061082 srl v0,a2,0x2 -bfc00c38: 24420001 addiu v0,v0,1 -bfc00c3c: 00023080 sll a2,v0,0x2 -bfc00c40: 00c59821 addu s3,a2,a1 -bfc00c44: 0bf00324 j bfc00c90 -bfc00c48: 00a08821 move s1,a1 -bfc00c4c: 0ff001ca jal bfc00728 -bfc00c50: 00000000 nop -bfc00c54: 02402021 move a0,s2 -bfc00c58: 10400005 beqz v0,bfc00c70 -bfc00c5c: 02002821 move a1,s0 -bfc00c60: 0ff00236 jal bfc008d8 -bfc00c64: 00000000 nop -bfc00c68: 04400011 bltz v0,bfc00cb0 -bfc00c6c: 00401821 move v1,v0 -bfc00c70: 02002821 move a1,s0 -bfc00c74: 0ff001e6 jal bfc00798 -bfc00c78: 02402021 move a0,s2 -bfc00c7c: 0440000c bltz v0,bfc00cb0 -bfc00c80: 00401821 move v1,v0 -bfc00c84: 8e42000c lw v0,12(s2) -bfc00c88: 00000000 nop -bfc00c8c: 02228821 addu s1,s1,v0 -bfc00c90: 001117c3 sra v0,s1,0x1f -bfc00c94: 00021782 srl v0,v0,0x1e -bfc00c98: 00511021 addu v0,v0,s1 -bfc00c9c: 00028083 sra s0,v0,0x2 -bfc00ca0: 0233102b sltu v0,s1,s3 -bfc00ca4: 02402021 move a0,s2 -bfc00ca8: 1440ffe8 bnez v0,bfc00c4c -bfc00cac: 02002821 move a1,s0 -bfc00cb0: 8fbf0024 lw ra,36(sp) -bfc00cb4: 00601021 move v0,v1 -bfc00cb8: 8fb30020 lw s3,32(sp) -bfc00cbc: 8fb2001c lw s2,28(sp) -bfc00cc0: 8fb10018 lw s1,24(sp) -bfc00cc4: 8fb00014 lw s0,20(sp) -bfc00cc8: 03e00008 jr ra -bfc00ccc: 27bd0028 addiu sp,sp,40 +9fc00c10 : +9fc00c10: 27bdffd8 addiu sp,sp,-40 +9fc00c14: 30c20003 andi v0,a2,0x3 +9fc00c18: afb2001c sw s2,28(sp) +9fc00c1c: afbf0024 sw ra,36(sp) +9fc00c20: afb30020 sw s3,32(sp) +9fc00c24: afb10018 sw s1,24(sp) +9fc00c28: afb00014 sw s0,20(sp) +9fc00c2c: 10400004 beqz v0,9fc00c40 +9fc00c30: 00809021 move s2,a0 +9fc00c34: 00061082 srl v0,a2,0x2 +9fc00c38: 24420001 addiu v0,v0,1 +9fc00c3c: 00023080 sll a2,v0,0x2 +9fc00c40: 00c59821 addu s3,a2,a1 +9fc00c44: 0bf00324 j 9fc00c90 +9fc00c48: 00a08821 move s1,a1 +9fc00c4c: 0ff001ca jal 9fc00728 +9fc00c50: 00000000 nop +9fc00c54: 02402021 move a0,s2 +9fc00c58: 10400005 beqz v0,9fc00c70 +9fc00c5c: 02002821 move a1,s0 +9fc00c60: 0ff00236 jal 9fc008d8 +9fc00c64: 00000000 nop +9fc00c68: 04400011 bltz v0,9fc00cb0 +9fc00c6c: 00401821 move v1,v0 +9fc00c70: 02002821 move a1,s0 +9fc00c74: 0ff001e6 jal 9fc00798 +9fc00c78: 02402021 move a0,s2 +9fc00c7c: 0440000c bltz v0,9fc00cb0 +9fc00c80: 00401821 move v1,v0 +9fc00c84: 8e42000c lw v0,12(s2) +9fc00c88: 00000000 nop +9fc00c8c: 02228821 addu s1,s1,v0 +9fc00c90: 001117c3 sra v0,s1,0x1f +9fc00c94: 00021782 srl v0,v0,0x1e +9fc00c98: 00511021 addu v0,v0,s1 +9fc00c9c: 00028083 sra s0,v0,0x2 +9fc00ca0: 0233102b sltu v0,s1,s3 +9fc00ca4: 02402021 move a0,s2 +9fc00ca8: 1440ffe8 bnez v0,9fc00c4c +9fc00cac: 02002821 move a1,s0 +9fc00cb0: 8fbf0024 lw ra,36(sp) +9fc00cb4: 00601021 move v0,v1 +9fc00cb8: 8fb30020 lw s3,32(sp) +9fc00cbc: 8fb2001c lw s2,28(sp) +9fc00cc0: 8fb10018 lw s1,24(sp) +9fc00cc4: 8fb00014 lw s0,20(sp) +9fc00cc8: 03e00008 jr ra +9fc00ccc: 27bd0028 addiu sp,sp,40 -bfc00cd0 : -bfc00cd0: 30e20003 andi v0,a3,0x3 -bfc00cd4: 10400003 beqz v0,bfc00ce4 -bfc00cd8: 00071082 srl v0,a3,0x2 -bfc00cdc: 24420001 addiu v0,v0,1 -bfc00ce0: 00023880 sll a3,v0,0x2 -bfc00ce4: 00052882 srl a1,a1,0x2 -bfc00ce8: 0bf0027e j bfc009f8 -bfc00cec: 00073882 srl a3,a3,0x2 +9fc00cd0 : +9fc00cd0: 30e20003 andi v0,a3,0x3 +9fc00cd4: 10400003 beqz v0,9fc00ce4 +9fc00cd8: 00071082 srl v0,a3,0x2 +9fc00cdc: 24420001 addiu v0,v0,1 +9fc00ce0: 00023880 sll a3,v0,0x2 +9fc00ce4: 00052882 srl a1,a1,0x2 +9fc00ce8: 0bf0027e j 9fc009f8 +9fc00cec: 00073882 srl a3,a3,0x2 -bfc00cf0 : -bfc00cf0: 8c820000 lw v0,0(a0) -bfc00cf4: 00002021 move a0,zero -bfc00cf8: 0bf00347 j bfc00d1c -bfc00cfc: 00454021 addu t0,v0,a1 -bfc00d00: 90630000 lbu v1,0(v1) -bfc00d04: 90a20000 lbu v0,0(a1) -bfc00d08: 00000000 nop -bfc00d0c: 10620003 beq v1,v0,bfc00d1c -bfc00d10: 3c028010 lui v0,0x8010 -bfc00d14: 03e00008 jr ra -bfc00d18: 34420003 ori v0,v0,0x3 -bfc00d1c: 0087102b sltu v0,a0,a3 -bfc00d20: 01041821 addu v1,t0,a0 -bfc00d24: 00c42821 addu a1,a2,a0 -bfc00d28: 1440fff5 bnez v0,bfc00d00 -bfc00d2c: 24840001 addiu a0,a0,1 -bfc00d30: 03e00008 jr ra -bfc00d34: 00000000 nop +9fc00cf0 : +9fc00cf0: 8c820000 lw v0,0(a0) +9fc00cf4: 00002021 move a0,zero +9fc00cf8: 0bf00347 j 9fc00d1c +9fc00cfc: 00454021 addu t0,v0,a1 +9fc00d00: 90630000 lbu v1,0(v1) +9fc00d04: 90a20000 lbu v0,0(a1) +9fc00d08: 00000000 nop +9fc00d0c: 10620003 beq v1,v0,9fc00d1c +9fc00d10: 3c028010 lui v0,0x8010 +9fc00d14: 03e00008 jr ra +9fc00d18: 34420003 ori v0,v0,0x3 +9fc00d1c: 0087102b sltu v0,a0,a3 +9fc00d20: 01041821 addu v1,t0,a0 +9fc00d24: 00c42821 addu a1,a2,a0 +9fc00d28: 1440fff5 bnez v0,9fc00d00 +9fc00d2c: 24840001 addiu a0,a0,1 +9fc00d30: 03e00008 jr ra +9fc00d34: 00000000 nop -bfc00d38 : -bfc00d38: 8c82000c lw v0,12(a0) -bfc00d3c: 00000000 nop -bfc00d40: 14400002 bnez v0,bfc00d4c -bfc00d44: 00a2001b divu zero,a1,v0 -bfc00d48: 0007000d break 0x7 -bfc00d4c: 00001010 mfhi v0 -bfc00d50: 0002102b sltu v0,zero,v0 -bfc00d54: 00002812 mflo a1 -bfc00d58: 03e00008 jr ra -bfc00d5c: 00a21021 addu v0,a1,v0 +9fc00d38 : +9fc00d38: 8c82000c lw v0,12(a0) +9fc00d3c: 00000000 nop +9fc00d40: 14400002 bnez v0,9fc00d4c +9fc00d44: 00a2001b divu zero,a1,v0 +9fc00d48: 0007000d break 0x7 +9fc00d4c: 00001010 mfhi v0 +9fc00d50: 0002102b sltu v0,zero,v0 +9fc00d54: 00002812 mflo a1 +9fc00d58: 03e00008 jr ra +9fc00d5c: 00a21021 addu v0,a1,v0 -bfc00d60 : -bfc00d60: 8c830010 lw v1,16(a0) -bfc00d64: 00000000 nop -bfc00d68: 00a3102b sltu v0,a1,v1 -bfc00d6c: 14400002 bnez v0,bfc00d78 -bfc00d70: 00000000 nop -bfc00d74: 2465ffff addiu a1,v1,-1 -bfc00d78: 8c82000c lw v0,12(a0) -bfc00d7c: 00000000 nop -bfc00d80: 00a20018 mult a1,v0 -bfc00d84: 00001012 mflo v0 -bfc00d88: 03e00008 jr ra -bfc00d8c: 00000000 nop +9fc00d60 : +9fc00d60: 8c830010 lw v1,16(a0) +9fc00d64: 00000000 nop +9fc00d68: 00a3102b sltu v0,a1,v1 +9fc00d6c: 14400002 bnez v0,9fc00d78 +9fc00d70: 00000000 nop +9fc00d74: 2465ffff addiu a1,v1,-1 +9fc00d78: 8c82000c lw v0,12(a0) +9fc00d7c: 00000000 nop +9fc00d80: 00a20018 mult a1,v0 +9fc00d84: 00001012 mflo v0 +9fc00d88: 03e00008 jr ra +9fc00d8c: 00000000 nop -bfc00d90 : -bfc00d90: 27bdffe8 addiu sp,sp,-24 -bfc00d94: afbf0014 sw ra,20(sp) -bfc00d98: afb00010 sw s0,16(sp) -bfc00d9c: 0ff0034e jal bfc00d38 -bfc00da0: 00808021 move s0,a0 -bfc00da4: 8e03000c lw v1,12(s0) -bfc00da8: 8fbf0014 lw ra,20(sp) -bfc00dac: 00430018 mult v0,v1 -bfc00db0: 8fb00010 lw s0,16(sp) -bfc00db4: 00001012 mflo v0 -bfc00db8: 03e00008 jr ra -bfc00dbc: 27bd0018 addiu sp,sp,24 +9fc00d90 : +9fc00d90: 27bdffe8 addiu sp,sp,-24 +9fc00d94: afbf0014 sw ra,20(sp) +9fc00d98: afb00010 sw s0,16(sp) +9fc00d9c: 0ff0034e jal 9fc00d38 +9fc00da0: 00808021 move s0,a0 +9fc00da4: 8e03000c lw v1,12(s0) +9fc00da8: 8fbf0014 lw ra,20(sp) +9fc00dac: 00430018 mult v0,v1 +9fc00db0: 8fb00010 lw s0,16(sp) +9fc00db4: 00001012 mflo v0 +9fc00db8: 03e00008 jr ra +9fc00dbc: 27bd0018 addiu sp,sp,24 -bfc00dc0 : -bfc00dc0: 90830000 lbu v1,0(a0) -bfc00dc4: 00000000 nop -bfc00dc8: 2c620041 sltiu v0,v1,65 -bfc00dcc: 14400002 bnez v0,bfc00dd8 -bfc00dd0: 2462ffd0 addiu v0,v1,-48 -bfc00dd4: 2462ffc9 addiu v0,v1,-55 -bfc00dd8: 90840001 lbu a0,1(a0) -bfc00ddc: 304200ff andi v0,v0,0xff -bfc00de0: 304300ff andi v1,v0,0xff -bfc00de4: 2c820041 sltiu v0,a0,65 -bfc00de8: 14400003 bnez v0,bfc00df8 -bfc00dec: 00000000 nop -bfc00df0: 0bf0037f j bfc00dfc -bfc00df4: 2482ffc9 addiu v0,a0,-55 -bfc00df8: 2482ffd0 addiu v0,a0,-48 -bfc00dfc: 304400ff andi a0,v0,0xff -bfc00e00: 00031100 sll v0,v1,0x4 -bfc00e04: 00821025 or v0,a0,v0 -bfc00e08: 03e00008 jr ra -bfc00e0c: 304200ff andi v0,v0,0xff +9fc00dc0 : +9fc00dc0: 90830000 lbu v1,0(a0) +9fc00dc4: 00000000 nop +9fc00dc8: 2c620041 sltiu v0,v1,65 +9fc00dcc: 14400002 bnez v0,9fc00dd8 +9fc00dd0: 2462ffd0 addiu v0,v1,-48 +9fc00dd4: 2462ffc9 addiu v0,v1,-55 +9fc00dd8: 90840001 lbu a0,1(a0) +9fc00ddc: 304200ff andi v0,v0,0xff +9fc00de0: 304300ff andi v1,v0,0xff +9fc00de4: 2c820041 sltiu v0,a0,65 +9fc00de8: 14400003 bnez v0,9fc00df8 +9fc00dec: 00000000 nop +9fc00df0: 0bf0037f j 9fc00dfc +9fc00df4: 2482ffc9 addiu v0,a0,-55 +9fc00df8: 2482ffd0 addiu v0,a0,-48 +9fc00dfc: 304400ff andi a0,v0,0xff +9fc00e00: 00031100 sll v0,v1,0x4 +9fc00e04: 00821025 or v0,a0,v0 +9fc00e08: 03e00008 jr ra +9fc00e0c: 304200ff andi v0,v0,0xff -bfc00e10 : -bfc00e10: 10c00094 beqz a2,bfc01064 -bfc00e14: 00805021 move t2,a0 -bfc00e18: 24020003 li v0,3 -bfc00e1c: ac820008 sw v0,8(a0) -bfc00e20: 90a40001 lbu a0,1(a1) -bfc00e24: 00000000 nop -bfc00e28: 2482ffcf addiu v0,a0,-49 -bfc00e2c: 304200ff andi v0,v0,0xff -bfc00e30: 2c420003 sltiu v0,v0,3 -bfc00e34: 10400005 beqz v0,bfc00e4c -bfc00e38: 2482ffc9 addiu v0,a0,-55 -bfc00e3c: 24020002 li v0,2 -bfc00e40: ad420008 sw v0,8(t2) -bfc00e44: 0bf003a1 j bfc00e84 -bfc00e48: 2489ffd1 addiu t1,a0,-47 -bfc00e4c: 304200ff andi v0,v0,0xff -bfc00e50: 2c420003 sltiu v0,v0,3 -bfc00e54: 10400006 beqz v0,bfc00e70 -bfc00e58: 24020030 li v0,48 -bfc00e5c: 2402003b li v0,59 -bfc00e60: 00444823 subu t1,v0,a0 -bfc00e64: 24020004 li v0,4 -bfc00e68: 0bf003a1 j bfc00e84 -bfc00e6c: ad420008 sw v0,8(t2) -bfc00e70: 14820004 bne a0,v0,bfc00e84 -bfc00e74: 00004821 move t1,zero -bfc00e78: 24020001 li v0,1 -bfc00e7c: ad420008 sw v0,8(t2) -bfc00e80: 24090002 li t1,2 -bfc00e84: 90a30002 lbu v1,2(a1) -bfc00e88: 00000000 nop -bfc00e8c: 2c620041 sltiu v0,v1,65 -bfc00e90: 10400003 beqz v0,bfc00ea0 -bfc00e94: 24a40002 addiu a0,a1,2 -bfc00e98: 0bf003a9 j bfc00ea4 -bfc00e9c: 2462ffd0 addiu v0,v1,-48 -bfc00ea0: 2462ffc9 addiu v0,v1,-55 -bfc00ea4: 90830001 lbu v1,1(a0) -bfc00ea8: 304200ff andi v0,v0,0xff -bfc00eac: 304400ff andi a0,v0,0xff -bfc00eb0: 2c620041 sltiu v0,v1,65 -bfc00eb4: 10400002 beqz v0,bfc00ec0 -bfc00eb8: 2462ffc9 addiu v0,v1,-55 -bfc00ebc: 2462ffd0 addiu v0,v1,-48 -bfc00ec0: 304300ff andi v1,v0,0xff -bfc00ec4: 00041100 sll v0,a0,0x4 -bfc00ec8: 00621025 or v0,v1,v0 -bfc00ecc: 304200ff andi v0,v0,0xff -bfc00ed0: ad420004 sw v0,4(t2) -bfc00ed4: ad400000 sw zero,0(t2) -bfc00ed8: 00405821 move t3,v0 -bfc00edc: 00a03021 move a2,a1 -bfc00ee0: 0bf003d5 j bfc00f54 -bfc00ee4: 00003821 move a3,zero -bfc00ee8: 90c20004 lbu v0,4(a2) -bfc00eec: 00000000 nop -bfc00ef0: 2443ffc9 addiu v1,v0,-55 -bfc00ef4: 2444ffd0 addiu a0,v0,-48 -bfc00ef8: 2c420041 sltiu v0,v0,65 -bfc00efc: 10400002 beqz v0,bfc00f08 -bfc00f00: 306300ff andi v1,v1,0xff -bfc00f04: 308300ff andi v1,a0,0xff -bfc00f08: 90c20005 lbu v0,5(a2) -bfc00f0c: 306800ff andi t0,v1,0xff -bfc00f10: 2444ffc9 addiu a0,v0,-55 -bfc00f14: 2443ffd0 addiu v1,v0,-48 -bfc00f18: 2c420041 sltiu v0,v0,65 -bfc00f1c: 10400002 beqz v0,bfc00f28 -bfc00f20: 308400ff andi a0,a0,0xff -bfc00f24: 306400ff andi a0,v1,0xff -bfc00f28: 8d430000 lw v1,0(t2) -bfc00f2c: 00081100 sll v0,t0,0x4 -bfc00f30: 00821025 or v0,a0,v0 -bfc00f34: 304200ff andi v0,v0,0xff -bfc00f38: 00031a00 sll v1,v1,0x8 -bfc00f3c: 004b2021 addu a0,v0,t3 -bfc00f40: 00431025 or v0,v0,v1 -bfc00f44: ad420000 sw v0,0(t2) -bfc00f48: 308b00ff andi t3,a0,0xff -bfc00f4c: 24e70001 addiu a3,a3,1 -bfc00f50: 24c60002 addiu a2,a2,2 -bfc00f54: 00e9102a slt v0,a3,t1 -bfc00f58: 1440ffe3 bnez v0,bfc00ee8 -bfc00f5c: 25220002 addiu v0,t1,2 -bfc00f60: 8d440004 lw a0,4(t2) -bfc00f64: 00021040 sll v0,v0,0x1 -bfc00f68: 00091827 nor v1,zero,t1 -bfc00f6c: 00832021 addu a0,a0,v1 -bfc00f70: 00a21021 addu v0,a1,v0 -bfc00f74: ad440004 sw a0,4(t2) -bfc00f78: ad42000c sw v0,12(t2) -bfc00f7c: 0bf003f9 j bfc00fe4 -bfc00f80: 00003021 move a2,zero -bfc00f84: 90e20000 lbu v0,0(a3) -bfc00f88: 00000000 nop -bfc00f8c: 2444ffc9 addiu a0,v0,-55 -bfc00f90: 2445ffd0 addiu a1,v0,-48 -bfc00f94: 2c420041 sltiu v0,v0,65 -bfc00f98: 10400002 beqz v0,bfc00fa4 -bfc00f9c: 308400ff andi a0,a0,0xff -bfc00fa0: 30a400ff andi a0,a1,0xff -bfc00fa4: 90e20001 lbu v0,1(a3) -bfc00fa8: 308700ff andi a3,a0,0xff -bfc00fac: 2445ffc9 addiu a1,v0,-55 -bfc00fb0: 2444ffd0 addiu a0,v0,-48 -bfc00fb4: 2c420041 sltiu v0,v0,65 -bfc00fb8: 14400002 bnez v0,bfc00fc4 -bfc00fbc: 308400ff andi a0,a0,0xff -bfc00fc0: 30a400ff andi a0,a1,0xff -bfc00fc4: 00071100 sll v0,a3,0x4 -bfc00fc8: 00821025 or v0,a0,v0 -bfc00fcc: 304200ff andi v0,v0,0xff -bfc00fd0: 00661821 addu v1,v1,a2 -bfc00fd4: 004b2021 addu a0,v0,t3 -bfc00fd8: a0620000 sb v0,0(v1) -bfc00fdc: 308b00ff andi t3,a0,0xff -bfc00fe0: 24c60001 addiu a2,a2,1 -bfc00fe4: 8d420004 lw v0,4(t2) -bfc00fe8: 8d43000c lw v1,12(t2) -bfc00fec: 00062040 sll a0,a2,0x1 -bfc00ff0: 00c2102a slt v0,a2,v0 -bfc00ff4: 1440ffe3 bnez v0,bfc00f84 -bfc00ff8: 00643821 addu a3,v1,a0 -bfc00ffc: 90e40000 lbu a0,0(a3) -bfc01000: 00000000 nop -bfc01004: 2c820041 sltiu v0,a0,65 -bfc01008: 10400003 beqz v0,bfc01018 -bfc0100c: 00e01821 move v1,a3 -bfc01010: 0bf00407 j bfc0101c -bfc01014: 2482ffd0 addiu v0,a0,-48 -bfc01018: 2482ffc9 addiu v0,a0,-55 -bfc0101c: 90630001 lbu v1,1(v1) -bfc01020: 304200ff andi v0,v0,0xff -bfc01024: 304400ff andi a0,v0,0xff -bfc01028: 2c620041 sltiu v0,v1,65 -bfc0102c: 10400002 beqz v0,bfc01038 -bfc01030: 2462ffc9 addiu v0,v1,-55 -bfc01034: 2462ffd0 addiu v0,v1,-48 -bfc01038: 304200ff andi v0,v0,0xff -bfc0103c: 00041900 sll v1,a0,0x4 -bfc01040: 00431825 or v1,v0,v1 -bfc01044: 000b1027 nor v0,zero,t3 -bfc01048: 304200ff andi v0,v0,0xff -bfc0104c: 306300ff andi v1,v1,0xff -bfc01050: 14430004 bne v0,v1,bfc01064 -bfc01054: 00000000 nop -bfc01058: 8d420008 lw v0,8(t2) -bfc0105c: 03e00008 jr ra -bfc01060: 00000000 nop -bfc01064: 03e00008 jr ra -bfc01068: 00001021 move v0,zero +9fc00e10 : +9fc00e10: 10c00094 beqz a2,9fc01064 +9fc00e14: 00805021 move t2,a0 +9fc00e18: 24020003 li v0,3 +9fc00e1c: ac820008 sw v0,8(a0) +9fc00e20: 90a40001 lbu a0,1(a1) +9fc00e24: 00000000 nop +9fc00e28: 2482ffcf addiu v0,a0,-49 +9fc00e2c: 304200ff andi v0,v0,0xff +9fc00e30: 2c420003 sltiu v0,v0,3 +9fc00e34: 10400005 beqz v0,9fc00e4c +9fc00e38: 2482ffc9 addiu v0,a0,-55 +9fc00e3c: 24020002 li v0,2 +9fc00e40: ad420008 sw v0,8(t2) +9fc00e44: 0bf003a1 j 9fc00e84 +9fc00e48: 2489ffd1 addiu t1,a0,-47 +9fc00e4c: 304200ff andi v0,v0,0xff +9fc00e50: 2c420003 sltiu v0,v0,3 +9fc00e54: 10400006 beqz v0,9fc00e70 +9fc00e58: 24020030 li v0,48 +9fc00e5c: 2402003b li v0,59 +9fc00e60: 00444823 subu t1,v0,a0 +9fc00e64: 24020004 li v0,4 +9fc00e68: 0bf003a1 j 9fc00e84 +9fc00e6c: ad420008 sw v0,8(t2) +9fc00e70: 14820004 bne a0,v0,9fc00e84 +9fc00e74: 00004821 move t1,zero +9fc00e78: 24020001 li v0,1 +9fc00e7c: ad420008 sw v0,8(t2) +9fc00e80: 24090002 li t1,2 +9fc00e84: 90a30002 lbu v1,2(a1) +9fc00e88: 00000000 nop +9fc00e8c: 2c620041 sltiu v0,v1,65 +9fc00e90: 10400003 beqz v0,9fc00ea0 +9fc00e94: 24a40002 addiu a0,a1,2 +9fc00e98: 0bf003a9 j 9fc00ea4 +9fc00e9c: 2462ffd0 addiu v0,v1,-48 +9fc00ea0: 2462ffc9 addiu v0,v1,-55 +9fc00ea4: 90830001 lbu v1,1(a0) +9fc00ea8: 304200ff andi v0,v0,0xff +9fc00eac: 304400ff andi a0,v0,0xff +9fc00eb0: 2c620041 sltiu v0,v1,65 +9fc00eb4: 10400002 beqz v0,9fc00ec0 +9fc00eb8: 2462ffc9 addiu v0,v1,-55 +9fc00ebc: 2462ffd0 addiu v0,v1,-48 +9fc00ec0: 304300ff andi v1,v0,0xff +9fc00ec4: 00041100 sll v0,a0,0x4 +9fc00ec8: 00621025 or v0,v1,v0 +9fc00ecc: 304200ff andi v0,v0,0xff +9fc00ed0: ad420004 sw v0,4(t2) +9fc00ed4: ad400000 sw zero,0(t2) +9fc00ed8: 00405821 move t3,v0 +9fc00edc: 00a03021 move a2,a1 +9fc00ee0: 0bf003d5 j 9fc00f54 +9fc00ee4: 00003821 move a3,zero +9fc00ee8: 90c20004 lbu v0,4(a2) +9fc00eec: 00000000 nop +9fc00ef0: 2443ffc9 addiu v1,v0,-55 +9fc00ef4: 2444ffd0 addiu a0,v0,-48 +9fc00ef8: 2c420041 sltiu v0,v0,65 +9fc00efc: 10400002 beqz v0,9fc00f08 +9fc00f00: 306300ff andi v1,v1,0xff +9fc00f04: 308300ff andi v1,a0,0xff +9fc00f08: 90c20005 lbu v0,5(a2) +9fc00f0c: 306800ff andi t0,v1,0xff +9fc00f10: 2444ffc9 addiu a0,v0,-55 +9fc00f14: 2443ffd0 addiu v1,v0,-48 +9fc00f18: 2c420041 sltiu v0,v0,65 +9fc00f1c: 10400002 beqz v0,9fc00f28 +9fc00f20: 308400ff andi a0,a0,0xff +9fc00f24: 306400ff andi a0,v1,0xff +9fc00f28: 8d430000 lw v1,0(t2) +9fc00f2c: 00081100 sll v0,t0,0x4 +9fc00f30: 00821025 or v0,a0,v0 +9fc00f34: 304200ff andi v0,v0,0xff +9fc00f38: 00031a00 sll v1,v1,0x8 +9fc00f3c: 004b2021 addu a0,v0,t3 +9fc00f40: 00431025 or v0,v0,v1 +9fc00f44: ad420000 sw v0,0(t2) +9fc00f48: 308b00ff andi t3,a0,0xff +9fc00f4c: 24e70001 addiu a3,a3,1 +9fc00f50: 24c60002 addiu a2,a2,2 +9fc00f54: 00e9102a slt v0,a3,t1 +9fc00f58: 1440ffe3 bnez v0,9fc00ee8 +9fc00f5c: 25220002 addiu v0,t1,2 +9fc00f60: 8d440004 lw a0,4(t2) +9fc00f64: 00021040 sll v0,v0,0x1 +9fc00f68: 00091827 nor v1,zero,t1 +9fc00f6c: 00832021 addu a0,a0,v1 +9fc00f70: 00a21021 addu v0,a1,v0 +9fc00f74: ad440004 sw a0,4(t2) +9fc00f78: ad42000c sw v0,12(t2) +9fc00f7c: 0bf003f9 j 9fc00fe4 +9fc00f80: 00003021 move a2,zero +9fc00f84: 90e20000 lbu v0,0(a3) +9fc00f88: 00000000 nop +9fc00f8c: 2444ffc9 addiu a0,v0,-55 +9fc00f90: 2445ffd0 addiu a1,v0,-48 +9fc00f94: 2c420041 sltiu v0,v0,65 +9fc00f98: 10400002 beqz v0,9fc00fa4 +9fc00f9c: 308400ff andi a0,a0,0xff +9fc00fa0: 30a400ff andi a0,a1,0xff +9fc00fa4: 90e20001 lbu v0,1(a3) +9fc00fa8: 308700ff andi a3,a0,0xff +9fc00fac: 2445ffc9 addiu a1,v0,-55 +9fc00fb0: 2444ffd0 addiu a0,v0,-48 +9fc00fb4: 2c420041 sltiu v0,v0,65 +9fc00fb8: 14400002 bnez v0,9fc00fc4 +9fc00fbc: 308400ff andi a0,a0,0xff +9fc00fc0: 30a400ff andi a0,a1,0xff +9fc00fc4: 00071100 sll v0,a3,0x4 +9fc00fc8: 00821025 or v0,a0,v0 +9fc00fcc: 304200ff andi v0,v0,0xff +9fc00fd0: 00661821 addu v1,v1,a2 +9fc00fd4: 004b2021 addu a0,v0,t3 +9fc00fd8: a0620000 sb v0,0(v1) +9fc00fdc: 308b00ff andi t3,a0,0xff +9fc00fe0: 24c60001 addiu a2,a2,1 +9fc00fe4: 8d420004 lw v0,4(t2) +9fc00fe8: 8d43000c lw v1,12(t2) +9fc00fec: 00062040 sll a0,a2,0x1 +9fc00ff0: 00c2102a slt v0,a2,v0 +9fc00ff4: 1440ffe3 bnez v0,9fc00f84 +9fc00ff8: 00643821 addu a3,v1,a0 +9fc00ffc: 90e40000 lbu a0,0(a3) +9fc01000: 00000000 nop +9fc01004: 2c820041 sltiu v0,a0,65 +9fc01008: 10400003 beqz v0,9fc01018 +9fc0100c: 00e01821 move v1,a3 +9fc01010: 0bf00407 j 9fc0101c +9fc01014: 2482ffd0 addiu v0,a0,-48 +9fc01018: 2482ffc9 addiu v0,a0,-55 +9fc0101c: 90630001 lbu v1,1(v1) +9fc01020: 304200ff andi v0,v0,0xff +9fc01024: 304400ff andi a0,v0,0xff +9fc01028: 2c620041 sltiu v0,v1,65 +9fc0102c: 10400002 beqz v0,9fc01038 +9fc01030: 2462ffc9 addiu v0,v1,-55 +9fc01034: 2462ffd0 addiu v0,v1,-48 +9fc01038: 304200ff andi v0,v0,0xff +9fc0103c: 00041900 sll v1,a0,0x4 +9fc01040: 00431825 or v1,v0,v1 +9fc01044: 000b1027 nor v0,zero,t3 +9fc01048: 304200ff andi v0,v0,0xff +9fc0104c: 306300ff andi v1,v1,0xff +9fc01050: 14430004 bne v0,v1,9fc01064 +9fc01054: 00000000 nop +9fc01058: 8d420008 lw v0,8(t2) +9fc0105c: 03e00008 jr ra +9fc01060: 00000000 nop +9fc01064: 03e00008 jr ra +9fc01068: 00001021 move v0,zero -bfc0106c : -bfc0106c: 00800008 jr a0 -bfc01070: 00000000 nop -bfc01074: 03e00008 jr ra -bfc01078: 00000000 nop +9fc0106c : +9fc0106c: 00800008 jr a0 +9fc01070: 00000000 nop +9fc01074: 03e00008 jr ra +9fc01078: 00000000 nop -bfc0107c : -bfc0107c: 3c1a1000 lui k0,0x1000 -bfc01080: 375a000a ori k0,k0,0xa -bfc01084: 409a6000 mtc0 k0,c0_sr -bfc01088: 00800008 jr a0 -bfc0108c: 42000010 rfe -bfc01090: 03e00008 jr ra -bfc01094: 00000000 nop +9fc0107c : +9fc0107c: 3c1a1000 lui k0,0x1000 +9fc01080: 375a000a ori k0,k0,0xa +9fc01084: 409a6000 mtc0 k0,c0_sr +9fc01088: 00800008 jr a0 +9fc0108c: 42000010 rfe +9fc01090: 03e00008 jr ra +9fc01094: 00000000 nop -bfc01098 : -bfc01098: 401a6000 mfc0 k0,c0_sr -bfc0109c: 3c1bffbf lui k1,0xffbf -bfc010a0: 377bffff ori k1,k1,0xffff -bfc010a4: 035bd024 and k0,k0,k1 -bfc010a8: 3c1b0200 lui k1,0x200 -bfc010ac: 035bd025 or k0,k0,k1 -bfc010b0: 409a6000 mtc0 k0,c0_sr -bfc010b4: 00800008 jr a0 -bfc010b8: 42000010 rfe -bfc010bc: 03e00008 jr ra -bfc010c0: 00000000 nop +9fc01098 : +9fc01098: 401a6000 mfc0 k0,c0_sr +9fc0109c: 3c1bffbf lui k1,0xffbf +9fc010a0: 377bffff ori k1,k1,0xffff +9fc010a4: 035bd024 and k0,k0,k1 +9fc010a8: 3c1b0200 lui k1,0x200 +9fc010ac: 035bd025 or k0,k0,k1 +9fc010b0: 409a6000 mtc0 k0,c0_sr +9fc010b4: 00800008 jr a0 +9fc010b8: 42000010 rfe +9fc010bc: 03e00008 jr ra +9fc010c0: 00000000 nop -bfc010c4 : -bfc010c4: 27bdffd8 addiu sp,sp,-40 -bfc010c8: afb30020 sw s3,32(sp) -bfc010cc: afb10018 sw s1,24(sp) -bfc010d0: afb00014 sw s0,20(sp) -bfc010d4: afbf0024 sw ra,36(sp) -bfc010d8: afb2001c sw s2,28(sp) -bfc010dc: 00809821 move s3,a0 -bfc010e0: 24110073 li s1,115 -bfc010e4: 24100053 li s0,83 -bfc010e8: 0ff00081 jal bfc00204 -bfc010ec: 00000000 nop -bfc010f0: 14510005 bne v0,s1,bfc01108 -bfc010f4: 00000000 nop -bfc010f8: 00008021 move s0,zero -bfc010fc: 2412000a li s2,10 -bfc01100: 0bf0044a j bfc01128 -bfc01104: 2411000d li s1,13 -bfc01108: 1450fff7 bne v0,s0,bfc010e8 -bfc0110c: 00000000 nop -bfc01110: 0bf0043f j bfc010fc -bfc01114: 00008021 move s0,zero -bfc01118: 0ff00081 jal bfc00204 -bfc0111c: a0620000 sb v0,0(v1) -bfc01120: 10510003 beq v0,s1,bfc01130 -bfc01124: 26100001 addiu s0,s0,1 -bfc01128: 1452fffb bne v0,s2,bfc01118 -bfc0112c: 02701821 addu v1,s3,s0 -bfc01130: 8fbf0024 lw ra,36(sp) -bfc01134: 02001021 move v0,s0 -bfc01138: 8fb30020 lw s3,32(sp) -bfc0113c: 8fb2001c lw s2,28(sp) -bfc01140: 8fb10018 lw s1,24(sp) -bfc01144: 8fb00014 lw s0,20(sp) -bfc01148: 03e00008 jr ra -bfc0114c: 27bd0028 addiu sp,sp,40 +9fc010c4 : +9fc010c4: 27bdffd8 addiu sp,sp,-40 +9fc010c8: afb30020 sw s3,32(sp) +9fc010cc: afb10018 sw s1,24(sp) +9fc010d0: afb00014 sw s0,20(sp) +9fc010d4: afbf0024 sw ra,36(sp) +9fc010d8: afb2001c sw s2,28(sp) +9fc010dc: 00809821 move s3,a0 +9fc010e0: 24110073 li s1,115 +9fc010e4: 24100053 li s0,83 +9fc010e8: 0ff00081 jal 9fc00204 +9fc010ec: 00000000 nop +9fc010f0: 14510005 bne v0,s1,9fc01108 +9fc010f4: 00000000 nop +9fc010f8: 00008021 move s0,zero +9fc010fc: 2412000a li s2,10 +9fc01100: 0bf0044a j 9fc01128 +9fc01104: 2411000d li s1,13 +9fc01108: 1450fff7 bne v0,s0,9fc010e8 +9fc0110c: 00000000 nop +9fc01110: 0bf0043f j 9fc010fc +9fc01114: 00008021 move s0,zero +9fc01118: 0ff00081 jal 9fc00204 +9fc0111c: a0620000 sb v0,0(v1) +9fc01120: 10510003 beq v0,s1,9fc01130 +9fc01124: 26100001 addiu s0,s0,1 +9fc01128: 1452fffb bne v0,s2,9fc01118 +9fc0112c: 02701821 addu v1,s3,s0 +9fc01130: 8fbf0024 lw ra,36(sp) +9fc01134: 02001021 move v0,s0 +9fc01138: 8fb30020 lw s3,32(sp) +9fc0113c: 8fb2001c lw s2,28(sp) +9fc01140: 8fb10018 lw s1,24(sp) +9fc01144: 8fb00014 lw s0,20(sp) +9fc01148: 03e00008 jr ra +9fc0114c: 27bd0028 addiu sp,sp,40 -bfc01150
: -bfc01150: 27bdfd98 addiu sp,sp,-616 -bfc01154: 27a40140 addiu a0,sp,320 -bfc01158: 00002821 move a1,zero -bfc0115c: 24060100 li a2,256 -bfc01160: afb20248 sw s2,584(sp) -bfc01164: afb10244 sw s1,580(sp) -bfc01168: afb00240 sw s0,576(sp) -bfc0116c: 3c11a000 lui s1,0xa000 -bfc01170: afbf0264 sw ra,612(sp) -bfc01174: afbe0260 sw s8,608(sp) -bfc01178: afb7025c sw s7,604(sp) -bfc0117c: afb60258 sw s6,600(sp) -bfc01180: afb50254 sw s5,596(sp) -bfc01184: afb40250 sw s4,592(sp) -bfc01188: 0ff0056c jal bfc015b0 -bfc0118c: afb3024c sw s3,588(sp) -bfc01190: 3c036000 lui v1,0x6000 -bfc01194: 36220004 ori v0,s1,0x4 -bfc01198: 3463b1ff ori v1,v1,0xb1ff -bfc0119c: ac430000 sw v1,0(v0) -bfc011a0: 3c022000 lui v0,0x2000 -bfc011a4: 27b20020 addiu s2,sp,32 -bfc011a8: 34421000 ori v0,v0,0x1000 -bfc011ac: ae220000 sw v0,0(s1) -bfc011b0: 02402021 move a0,s2 -bfc011b4: 3c05a400 lui a1,0xa400 -bfc011b8: 8e300000 lw s0,0(s1) -bfc011bc: 0ff002eb jal bfc00bac -bfc011c0: 00000000 nop -bfc011c4: 04410004 bgez v0,bfc011d8 -bfc011c8: 00102c02 srl a1,s0,0x10 -bfc011cc: 3c04bfc0 lui a0,0xbfc0 -bfc011d0: 0bf00494 j bfc01250 -bfc011d4: 248416a8 addiu a0,a0,5800 -bfc011d8: 02402021 move a0,s2 -bfc011dc: 0ff00358 jal bfc00d60 -bfc011e0: 30a5007f andi a1,a1,0x7f -bfc011e4: 00409021 move s2,v0 -bfc011e8: 8e220000 lw v0,0(s1) -bfc011ec: 3c030800 lui v1,0x800 -bfc011f0: 00431024 and v0,v0,v1 -bfc011f4: 14400045 bnez v0,bfc0130c -bfc011f8: 3c11bfc0 lui s1,0xbfc0 -bfc011fc: 0ff000b0 jal bfc002c0 -bfc01200: 2624175c addiu a0,s1,5980 -bfc01204: 3c02a400 lui v0,0xa400 -bfc01208: 02428021 addu s0,s2,v0 -bfc0120c: 8e030000 lw v1,0(s0) -bfc01210: 3c023149 lui v0,0x3149 -bfc01214: 3442464a ori v0,v0,0x464a -bfc01218: 10620011 beq v1,v0,bfc01260 -bfc0121c: 3c024a46 lui v0,0x4a46 -bfc01220: 34424931 ori v0,v0,0x4931 -bfc01224: 1062000e beq v1,v0,bfc01260 -bfc01228: 00000000 nop -bfc0122c: 0ff000b0 jal bfc002c0 -bfc01230: 2624175c addiu a0,s1,5980 -bfc01234: 3c04bfc0 lui a0,0xbfc0 -bfc01238: 0ff000b0 jal bfc002c0 -bfc0123c: 248416d0 addiu a0,a0,5840 -bfc01240: 0ff000e8 jal bfc003a0 -bfc01244: 02402021 move a0,s2 -bfc01248: 3c04bfc0 lui a0,0xbfc0 -bfc0124c: 248416e8 addiu a0,a0,5864 -bfc01250: 0ff000b0 jal bfc002c0 -bfc01254: 00000000 nop -bfc01258: 0bf00560 j bfc01580 -bfc0125c: 24020001 li v0,1 -bfc01260: 3c04bfc0 lui a0,0xbfc0 -bfc01264: 0ff000b0 jal bfc002c0 -bfc01268: 248416f4 addiu a0,a0,5876 -bfc0126c: 0ff000e8 jal bfc003a0 -bfc01270: 02402021 move a0,s2 -bfc01274: 3c04bfc0 lui a0,0xbfc0 -bfc01278: 0ff000b0 jal bfc002c0 -bfc0127c: 24841718 addiu a0,a0,5912 -bfc01280: 8e02000c lw v0,12(s0) -bfc01284: 8e110004 lw s1,4(s0) -bfc01288: 00024082 srl t0,v0,0x2 -bfc0128c: 8e070008 lw a3,8(s0) -bfc01290: 00002021 move a0,zero -bfc01294: 0bf004aa j bfc012a8 -bfc01298: 00001821 move v1,zero -bfc0129c: 8cc20000 lw v0,0(a2) -bfc012a0: 00000000 nop -bfc012a4: aca20000 sw v0,0(a1) -bfc012a8: 0088102b sltu v0,a0,t0 -bfc012ac: 00673021 addu a2,v1,a3 -bfc012b0: 00712821 addu a1,v1,s1 -bfc012b4: 24840001 addiu a0,a0,1 -bfc012b8: 1440fff8 bnez v0,bfc0129c -bfc012bc: 24630004 addiu v1,v1,4 -bfc012c0: 3c04bfc0 lui a0,0xbfc0 -bfc012c4: 0ff000b0 jal bfc002c0 -bfc012c8: 24841720 addiu a0,a0,5920 -bfc012cc: 3c04bfc0 lui a0,0xbfc0 -bfc012d0: 0ff000b0 jal bfc002c0 -bfc012d4: 24841728 addiu a0,a0,5928 -bfc012d8: 8e040004 lw a0,4(s0) -bfc012dc: 0ff000e8 jal bfc003a0 -bfc012e0: 00000000 nop -bfc012e4: 3c04bfc0 lui a0,0xbfc0 -bfc012e8: 0ff000b0 jal bfc002c0 -bfc012ec: 2484175c addiu a0,a0,5980 -bfc012f0: 3c1a1000 lui k0,0x1000 -bfc012f4: 375a000a ori k0,k0,0xa -bfc012f8: 409a6000 mtc0 k0,c0_sr -bfc012fc: 02200008 jr s1 -bfc01300: 42000010 rfe -bfc01304: 0bf00560 j bfc01580 -bfc01308: 00001021 move v0,zero -bfc0130c: 0ff000b0 jal bfc002c0 -bfc01310: 2624175c addiu a0,s1,5980 -bfc01314: 3c04bfc0 lui a0,0xbfc0 -bfc01318: 0ff000b0 jal bfc002c0 -bfc0131c: 24841734 addiu a0,a0,5940 -bfc01320: 3c024000 lui v0,0x4000 -bfc01324: 3c034010 lui v1,0x4010 -bfc01328: ac400000 sw zero,0(v0) -bfc0132c: 24420004 addiu v0,v0,4 -bfc01330: 1443fffd bne v0,v1,bfc01328 -bfc01334: 00009821 move s3,zero -bfc01338: 3c02bfc0 lui v0,0xbfc0 -bfc0133c: 245516cc addiu s5,v0,5836 -bfc01340: 3c02bfc0 lui v0,0xbfc0 -bfc01344: 24561720 addiu s6,v0,5920 -bfc01348: 3c02bfc0 lui v0,0xbfc0 -bfc0134c: 245e17d4 addiu s8,v0,6100 -bfc01350: 3c02bfc0 lui v0,0xbfc0 -bfc01354: 245717f4 addiu s7,v0,6132 -bfc01358: 3c04bfc0 lui a0,0xbfc0 -bfc0135c: 0ff000b0 jal bfc002c0 -bfc01360: 24841754 addiu a0,a0,5972 -bfc01364: 3c14bfc0 lui s4,0xbfc0 -bfc01368: 27b00040 addiu s0,sp,64 -bfc0136c: 0ff00431 jal bfc010c4 -bfc01370: 02002021 move a0,s0 -bfc01374: 00403021 move a2,v0 -bfc01378: 02002821 move a1,s0 -bfc0137c: 27a40010 addiu a0,sp,16 -bfc01380: 0ff00384 jal bfc00e10 -bfc01384: 00408821 move s1,v0 -bfc01388: 00401821 move v1,v0 -bfc0138c: 24020002 li v0,2 -bfc01390: 10620005 beq v1,v0,bfc013a8 -bfc01394: 24020004 li v0,4 -bfc01398: 1462ffef bne v1,v0,bfc01358 -bfc0139c: 00000000 nop -bfc013a0: 0bf004ff j bfc013fc -bfc013a4: 3c04bfc0 lui a0,0xbfc0 -bfc013a8: 8fa50010 lw a1,16(sp) -bfc013ac: 8fa60014 lw a2,20(sp) -bfc013b0: 0bf004f4 j bfc013d0 -bfc013b4: 00001821 move v1,zero -bfc013b8: 8fa2001c lw v0,28(sp) -bfc013bc: 00000000 nop -bfc013c0: 00431021 addu v0,v0,v1 -bfc013c4: 90420000 lbu v0,0(v0) -bfc013c8: 24630001 addiu v1,v1,1 -bfc013cc: a0820000 sb v0,0(a0) -bfc013d0: 8fa20014 lw v0,20(sp) -bfc013d4: 00000000 nop -bfc013d8: 0062102b sltu v0,v1,v0 -bfc013dc: 1440fff6 bnez v0,bfc013b8 -bfc013e0: 00652021 addu a0,v1,a1 -bfc013e4: 00c51821 addu v1,a2,a1 -bfc013e8: 0263102b sltu v0,s3,v1 -bfc013ec: 10400060 beqz v0,bfc01570 -bfc013f0: 02208021 move s0,s1 -bfc013f4: 0bf0055c j bfc01570 -bfc013f8: 00609821 move s3,v1 -bfc013fc: 0ff000b0 jal bfc002c0 -bfc01400: 24841758 addiu a0,a0,5976 -bfc01404: 8fa60010 lw a2,16(sp) -bfc01408: 26470100 addiu a3,s2,256 -bfc0140c: 02661823 subu v1,s3,a2 -bfc01410: 27b10020 addiu s1,sp,32 -bfc01414: 3c024a46 lui v0,0x4a46 -bfc01418: 00e32821 addu a1,a3,v1 -bfc0141c: 02202021 move a0,s1 -bfc01420: 34424931 ori v0,v0,0x4931 -bfc01424: afa60144 sw a2,324(sp) -bfc01428: afa3014c sw v1,332(sp) -bfc0142c: afa70148 sw a3,328(sp) -bfc01430: 0ff00364 jal bfc00d90 -bfc01434: afa20140 sw v0,320(sp) -bfc01438: 3c04bfc0 lui a0,0xbfc0 -bfc0143c: 24841760 addiu a0,a0,5984 -bfc01440: 0ff000b0 jal bfc002c0 -bfc01444: afa20150 sw v0,336(sp) -bfc01448: 8fa4014c lw a0,332(sp) -bfc0144c: 0ff000e8 jal bfc003a0 -bfc01450: 00000000 nop -bfc01454: 0ff000b0 jal bfc002c0 -bfc01458: 02a02021 move a0,s5 -bfc0145c: 3c04bfc0 lui a0,0xbfc0 -bfc01460: 0ff000b0 jal bfc002c0 -bfc01464: 2484177c addiu a0,a0,6012 -bfc01468: 0ff000e8 jal bfc003a0 -bfc0146c: 02402021 move a0,s2 -bfc01470: 0ff000b0 jal bfc002c0 -bfc01474: 02a02021 move a0,s5 -bfc01478: 3c04bfc0 lui a0,0xbfc0 -bfc0147c: 0ff000b0 jal bfc002c0 -bfc01480: 24841798 addiu a0,a0,6040 -bfc01484: 8fa40150 lw a0,336(sp) -bfc01488: 0ff000e8 jal bfc003a0 -bfc0148c: 00000000 nop -bfc01490: 0ff000b0 jal bfc002c0 -bfc01494: 02a02021 move a0,s5 -bfc01498: 3c04bfc0 lui a0,0xbfc0 -bfc0149c: 0ff000b0 jal bfc002c0 -bfc014a0: 248417b4 addiu a0,a0,6068 -bfc014a4: 8fa6014c lw a2,332(sp) -bfc014a8: 02202021 move a0,s1 -bfc014ac: 24c60100 addiu a2,a2,256 -bfc014b0: 0ff00304 jal bfc00c10 -bfc014b4: 02402821 move a1,s2 -bfc014b8: 0440001f bltz v0,bfc01538 -bfc014bc: 00408021 move s0,v0 -bfc014c0: 0ff000b0 jal bfc002c0 -bfc014c4: 02c02021 move a0,s6 -bfc014c8: 0ff000b0 jal bfc002c0 -bfc014cc: 03c02021 move a0,s8 -bfc014d0: 02202021 move a0,s1 -bfc014d4: 02402821 move a1,s2 -bfc014d8: 27a60140 addiu a2,sp,320 -bfc014dc: 0ff00334 jal bfc00cd0 -bfc014e0: 24070100 li a3,256 -bfc014e4: 04400014 bltz v0,bfc01538 -bfc014e8: 00408021 move s0,v0 -bfc014ec: 8fa50148 lw a1,328(sp) -bfc014f0: 8fa60144 lw a2,324(sp) -bfc014f4: 8fa7014c lw a3,332(sp) -bfc014f8: 0ff00334 jal bfc00cd0 -bfc014fc: 02202021 move a0,s1 -bfc01500: 0440000d bltz v0,bfc01538 -bfc01504: 00408021 move s0,v0 -bfc01508: 0ff000b0 jal bfc002c0 -bfc0150c: 02c02021 move a0,s6 -bfc01510: 3c04bfc0 lui a0,0xbfc0 -bfc01514: 0ff000b0 jal bfc002c0 -bfc01518: 248417e4 addiu a0,a0,6116 -bfc0151c: 8fa50148 lw a1,328(sp) -bfc01520: 8fa60144 lw a2,324(sp) -bfc01524: 8fa7014c lw a3,332(sp) -bfc01528: 0ff0033c jal bfc00cf0 -bfc0152c: 02202021 move a0,s1 -bfc01530: 0441000a bgez v0,bfc0155c -bfc01534: 00408021 move s0,v0 -bfc01538: 0ff000b0 jal bfc002c0 -bfc0153c: 268417c4 addiu a0,s4,6084 -bfc01540: 0ff000e8 jal bfc003a0 -bfc01544: 02002021 move a0,s0 -bfc01548: 3c04bfc0 lui a0,0xbfc0 -bfc0154c: 0ff000b0 jal bfc002c0 -bfc01550: 248417d0 addiu a0,a0,6096 -bfc01554: 0bf0055c j bfc01570 -bfc01558: 00000000 nop -bfc0155c: 0ff000b0 jal bfc002c0 -bfc01560: 02e02021 move a0,s7 -bfc01564: 3c02bfc0 lui v0,0xbfc0 -bfc01568: 00400008 jr v0 -bfc0156c: 00000000 nop -bfc01570: 0601ff7e bgez s0,bfc0136c -bfc01574: 27b00040 addiu s0,sp,64 -bfc01578: 0bf004d7 j bfc0135c -bfc0157c: 3c04bfc0 lui a0,0xbfc0 -bfc01580: 8fbf0264 lw ra,612(sp) -bfc01584: 8fbe0260 lw s8,608(sp) -bfc01588: 8fb7025c lw s7,604(sp) -bfc0158c: 8fb60258 lw s6,600(sp) -bfc01590: 8fb50254 lw s5,596(sp) -bfc01594: 8fb40250 lw s4,592(sp) -bfc01598: 8fb3024c lw s3,588(sp) -bfc0159c: 8fb20248 lw s2,584(sp) -bfc015a0: 8fb10244 lw s1,580(sp) -bfc015a4: 8fb00240 lw s0,576(sp) -bfc015a8: 03e00008 jr ra -bfc015ac: 27bd0268 addiu sp,sp,616 +9fc01150
: +9fc01150: 27bdfd98 addiu sp,sp,-616 +9fc01154: 27a40140 addiu a0,sp,320 +9fc01158: 00002821 move a1,zero +9fc0115c: 24060100 li a2,256 +9fc01160: afb20248 sw s2,584(sp) +9fc01164: afb10244 sw s1,580(sp) +9fc01168: afb00240 sw s0,576(sp) +9fc0116c: 3c11ac00 lui s1,0xac00 +9fc01170: afbf0264 sw ra,612(sp) +9fc01174: afbe0260 sw s8,608(sp) +9fc01178: afb7025c sw s7,604(sp) +9fc0117c: afb60258 sw s6,600(sp) +9fc01180: afb50254 sw s5,596(sp) +9fc01184: afb40250 sw s4,592(sp) +9fc01188: 0ff0056c jal 9fc015b0 +9fc0118c: afb3024c sw s3,588(sp) +9fc01190: 3c036000 lui v1,0x6000 +9fc01194: 36220004 ori v0,s1,0x4 +9fc01198: 3463b1ff ori v1,v1,0xb1ff +9fc0119c: ac430000 sw v1,0(v0) +9fc011a0: 3c022000 lui v0,0x2000 +9fc011a4: 27b20020 addiu s2,sp,32 +9fc011a8: 34421000 ori v0,v0,0x1000 +9fc011ac: ae220000 sw v0,0(s1) +9fc011b0: 02402021 move a0,s2 +9fc011b4: 3c05a400 lui a1,0xa400 +9fc011b8: 8e300000 lw s0,0(s1) +9fc011bc: 0ff002eb jal 9fc00bac +9fc011c0: 00000000 nop +9fc011c4: 04410004 bgez v0,9fc011d8 +9fc011c8: 00102c02 srl a1,s0,0x10 +9fc011cc: 3c049fc0 lui a0,0x9fc0 +9fc011d0: 0bf00494 j 9fc01250 +9fc011d4: 248416a8 addiu a0,a0,5800 +9fc011d8: 02402021 move a0,s2 +9fc011dc: 0ff00358 jal 9fc00d60 +9fc011e0: 30a5007f andi a1,a1,0x7f +9fc011e4: 00409021 move s2,v0 +9fc011e8: 8e220000 lw v0,0(s1) +9fc011ec: 3c030800 lui v1,0x800 +9fc011f0: 00431024 and v0,v0,v1 +9fc011f4: 14400045 bnez v0,9fc0130c +9fc011f8: 3c119fc0 lui s1,0x9fc0 +9fc011fc: 0ff000b0 jal 9fc002c0 +9fc01200: 2624175c addiu a0,s1,5980 +9fc01204: 3c02a400 lui v0,0xa400 +9fc01208: 02428021 addu s0,s2,v0 +9fc0120c: 8e030000 lw v1,0(s0) +9fc01210: 3c023149 lui v0,0x3149 +9fc01214: 3442464a ori v0,v0,0x464a +9fc01218: 10620011 beq v1,v0,9fc01260 +9fc0121c: 3c024a46 lui v0,0x4a46 +9fc01220: 34424931 ori v0,v0,0x4931 +9fc01224: 1062000e beq v1,v0,9fc01260 +9fc01228: 00000000 nop +9fc0122c: 0ff000b0 jal 9fc002c0 +9fc01230: 2624175c addiu a0,s1,5980 +9fc01234: 3c049fc0 lui a0,0x9fc0 +9fc01238: 0ff000b0 jal 9fc002c0 +9fc0123c: 248416d0 addiu a0,a0,5840 +9fc01240: 0ff000e8 jal 9fc003a0 +9fc01244: 02402021 move a0,s2 +9fc01248: 3c049fc0 lui a0,0x9fc0 +9fc0124c: 248416e8 addiu a0,a0,5864 +9fc01250: 0ff000b0 jal 9fc002c0 +9fc01254: 00000000 nop +9fc01258: 0bf00560 j 9fc01580 +9fc0125c: 24020001 li v0,1 +9fc01260: 3c049fc0 lui a0,0x9fc0 +9fc01264: 0ff000b0 jal 9fc002c0 +9fc01268: 248416f4 addiu a0,a0,5876 +9fc0126c: 0ff000e8 jal 9fc003a0 +9fc01270: 02402021 move a0,s2 +9fc01274: 3c049fc0 lui a0,0x9fc0 +9fc01278: 0ff000b0 jal 9fc002c0 +9fc0127c: 24841718 addiu a0,a0,5912 +9fc01280: 8e02000c lw v0,12(s0) +9fc01284: 8e110004 lw s1,4(s0) +9fc01288: 00024082 srl t0,v0,0x2 +9fc0128c: 8e070008 lw a3,8(s0) +9fc01290: 00002021 move a0,zero +9fc01294: 0bf004aa j 9fc012a8 +9fc01298: 00001821 move v1,zero +9fc0129c: 8cc20000 lw v0,0(a2) +9fc012a0: 00000000 nop +9fc012a4: aca20000 sw v0,0(a1) +9fc012a8: 0088102b sltu v0,a0,t0 +9fc012ac: 00673021 addu a2,v1,a3 +9fc012b0: 00712821 addu a1,v1,s1 +9fc012b4: 24840001 addiu a0,a0,1 +9fc012b8: 1440fff8 bnez v0,9fc0129c +9fc012bc: 24630004 addiu v1,v1,4 +9fc012c0: 3c049fc0 lui a0,0x9fc0 +9fc012c4: 0ff000b0 jal 9fc002c0 +9fc012c8: 24841720 addiu a0,a0,5920 +9fc012cc: 3c049fc0 lui a0,0x9fc0 +9fc012d0: 0ff000b0 jal 9fc002c0 +9fc012d4: 24841728 addiu a0,a0,5928 +9fc012d8: 8e040004 lw a0,4(s0) +9fc012dc: 0ff000e8 jal 9fc003a0 +9fc012e0: 00000000 nop +9fc012e4: 3c049fc0 lui a0,0x9fc0 +9fc012e8: 0ff000b0 jal 9fc002c0 +9fc012ec: 2484175c addiu a0,a0,5980 +9fc012f0: 3c1a1000 lui k0,0x1000 +9fc012f4: 375a000a ori k0,k0,0xa +9fc012f8: 409a6000 mtc0 k0,c0_sr +9fc012fc: 02200008 jr s1 +9fc01300: 42000010 rfe +9fc01304: 0bf00560 j 9fc01580 +9fc01308: 00001021 move v0,zero +9fc0130c: 0ff000b0 jal 9fc002c0 +9fc01310: 2624175c addiu a0,s1,5980 +9fc01314: 3c049fc0 lui a0,0x9fc0 +9fc01318: 0ff000b0 jal 9fc002c0 +9fc0131c: 24841734 addiu a0,a0,5940 +9fc01320: 3c028000 lui v0,0x8000 +9fc01324: 3c038010 lui v1,0x8010 +9fc01328: ac400000 sw zero,0(v0) +9fc0132c: 24420004 addiu v0,v0,4 +9fc01330: 1443fffd bne v0,v1,9fc01328 +9fc01334: 00009821 move s3,zero +9fc01338: 3c029fc0 lui v0,0x9fc0 +9fc0133c: 245516cc addiu s5,v0,5836 +9fc01340: 3c029fc0 lui v0,0x9fc0 +9fc01344: 24561720 addiu s6,v0,5920 +9fc01348: 3c029fc0 lui v0,0x9fc0 +9fc0134c: 245e17d4 addiu s8,v0,6100 +9fc01350: 3c029fc0 lui v0,0x9fc0 +9fc01354: 245717f4 addiu s7,v0,6132 +9fc01358: 3c049fc0 lui a0,0x9fc0 +9fc0135c: 0ff000b0 jal 9fc002c0 +9fc01360: 24841754 addiu a0,a0,5972 +9fc01364: 3c149fc0 lui s4,0x9fc0 +9fc01368: 27b00040 addiu s0,sp,64 +9fc0136c: 0ff00431 jal 9fc010c4 +9fc01370: 02002021 move a0,s0 +9fc01374: 00403021 move a2,v0 +9fc01378: 02002821 move a1,s0 +9fc0137c: 27a40010 addiu a0,sp,16 +9fc01380: 0ff00384 jal 9fc00e10 +9fc01384: 00408821 move s1,v0 +9fc01388: 00401821 move v1,v0 +9fc0138c: 24020002 li v0,2 +9fc01390: 10620005 beq v1,v0,9fc013a8 +9fc01394: 24020004 li v0,4 +9fc01398: 1462ffef bne v1,v0,9fc01358 +9fc0139c: 00000000 nop +9fc013a0: 0bf004ff j 9fc013fc +9fc013a4: 3c049fc0 lui a0,0x9fc0 +9fc013a8: 8fa50010 lw a1,16(sp) +9fc013ac: 8fa60014 lw a2,20(sp) +9fc013b0: 0bf004f4 j 9fc013d0 +9fc013b4: 00001821 move v1,zero +9fc013b8: 8fa2001c lw v0,28(sp) +9fc013bc: 00000000 nop +9fc013c0: 00431021 addu v0,v0,v1 +9fc013c4: 90420000 lbu v0,0(v0) +9fc013c8: 24630001 addiu v1,v1,1 +9fc013cc: a0820000 sb v0,0(a0) +9fc013d0: 8fa20014 lw v0,20(sp) +9fc013d4: 00000000 nop +9fc013d8: 0062102b sltu v0,v1,v0 +9fc013dc: 1440fff6 bnez v0,9fc013b8 +9fc013e0: 00652021 addu a0,v1,a1 +9fc013e4: 00c51821 addu v1,a2,a1 +9fc013e8: 0263102b sltu v0,s3,v1 +9fc013ec: 10400060 beqz v0,9fc01570 +9fc013f0: 02208021 move s0,s1 +9fc013f4: 0bf0055c j 9fc01570 +9fc013f8: 00609821 move s3,v1 +9fc013fc: 0ff000b0 jal 9fc002c0 +9fc01400: 24841758 addiu a0,a0,5976 +9fc01404: 8fa60010 lw a2,16(sp) +9fc01408: 26470100 addiu a3,s2,256 +9fc0140c: 02661823 subu v1,s3,a2 +9fc01410: 27b10020 addiu s1,sp,32 +9fc01414: 3c024a46 lui v0,0x4a46 +9fc01418: 00e32821 addu a1,a3,v1 +9fc0141c: 02202021 move a0,s1 +9fc01420: 34424931 ori v0,v0,0x4931 +9fc01424: afa60144 sw a2,324(sp) +9fc01428: afa3014c sw v1,332(sp) +9fc0142c: afa70148 sw a3,328(sp) +9fc01430: 0ff00364 jal 9fc00d90 +9fc01434: afa20140 sw v0,320(sp) +9fc01438: 3c049fc0 lui a0,0x9fc0 +9fc0143c: 24841760 addiu a0,a0,5984 +9fc01440: 0ff000b0 jal 9fc002c0 +9fc01444: afa20150 sw v0,336(sp) +9fc01448: 8fa4014c lw a0,332(sp) +9fc0144c: 0ff000e8 jal 9fc003a0 +9fc01450: 00000000 nop +9fc01454: 0ff000b0 jal 9fc002c0 +9fc01458: 02a02021 move a0,s5 +9fc0145c: 3c049fc0 lui a0,0x9fc0 +9fc01460: 0ff000b0 jal 9fc002c0 +9fc01464: 2484177c addiu a0,a0,6012 +9fc01468: 0ff000e8 jal 9fc003a0 +9fc0146c: 02402021 move a0,s2 +9fc01470: 0ff000b0 jal 9fc002c0 +9fc01474: 02a02021 move a0,s5 +9fc01478: 3c049fc0 lui a0,0x9fc0 +9fc0147c: 0ff000b0 jal 9fc002c0 +9fc01480: 24841798 addiu a0,a0,6040 +9fc01484: 8fa40150 lw a0,336(sp) +9fc01488: 0ff000e8 jal 9fc003a0 +9fc0148c: 00000000 nop +9fc01490: 0ff000b0 jal 9fc002c0 +9fc01494: 02a02021 move a0,s5 +9fc01498: 3c049fc0 lui a0,0x9fc0 +9fc0149c: 0ff000b0 jal 9fc002c0 +9fc014a0: 248417b4 addiu a0,a0,6068 +9fc014a4: 8fa6014c lw a2,332(sp) +9fc014a8: 02202021 move a0,s1 +9fc014ac: 24c60100 addiu a2,a2,256 +9fc014b0: 0ff00304 jal 9fc00c10 +9fc014b4: 02402821 move a1,s2 +9fc014b8: 0440001f bltz v0,9fc01538 +9fc014bc: 00408021 move s0,v0 +9fc014c0: 0ff000b0 jal 9fc002c0 +9fc014c4: 02c02021 move a0,s6 +9fc014c8: 0ff000b0 jal 9fc002c0 +9fc014cc: 03c02021 move a0,s8 +9fc014d0: 02202021 move a0,s1 +9fc014d4: 02402821 move a1,s2 +9fc014d8: 27a60140 addiu a2,sp,320 +9fc014dc: 0ff00334 jal 9fc00cd0 +9fc014e0: 24070100 li a3,256 +9fc014e4: 04400014 bltz v0,9fc01538 +9fc014e8: 00408021 move s0,v0 +9fc014ec: 8fa50148 lw a1,328(sp) +9fc014f0: 8fa60144 lw a2,324(sp) +9fc014f4: 8fa7014c lw a3,332(sp) +9fc014f8: 0ff00334 jal 9fc00cd0 +9fc014fc: 02202021 move a0,s1 +9fc01500: 0440000d bltz v0,9fc01538 +9fc01504: 00408021 move s0,v0 +9fc01508: 0ff000b0 jal 9fc002c0 +9fc0150c: 02c02021 move a0,s6 +9fc01510: 3c049fc0 lui a0,0x9fc0 +9fc01514: 0ff000b0 jal 9fc002c0 +9fc01518: 248417e4 addiu a0,a0,6116 +9fc0151c: 8fa50148 lw a1,328(sp) +9fc01520: 8fa60144 lw a2,324(sp) +9fc01524: 8fa7014c lw a3,332(sp) +9fc01528: 0ff0033c jal 9fc00cf0 +9fc0152c: 02202021 move a0,s1 +9fc01530: 0441000a bgez v0,9fc0155c +9fc01534: 00408021 move s0,v0 +9fc01538: 0ff000b0 jal 9fc002c0 +9fc0153c: 268417c4 addiu a0,s4,6084 +9fc01540: 0ff000e8 jal 9fc003a0 +9fc01544: 02002021 move a0,s0 +9fc01548: 3c049fc0 lui a0,0x9fc0 +9fc0154c: 0ff000b0 jal 9fc002c0 +9fc01550: 248417d0 addiu a0,a0,6096 +9fc01554: 0bf0055c j 9fc01570 +9fc01558: 00000000 nop +9fc0155c: 0ff000b0 jal 9fc002c0 +9fc01560: 02e02021 move a0,s7 +9fc01564: 3c02bfc0 lui v0,0xbfc0 +9fc01568: 00400008 jr v0 +9fc0156c: 00000000 nop +9fc01570: 0601ff7e bgez s0,9fc0136c +9fc01574: 27b00040 addiu s0,sp,64 +9fc01578: 0bf004d7 j 9fc0135c +9fc0157c: 3c049fc0 lui a0,0x9fc0 +9fc01580: 8fbf0264 lw ra,612(sp) +9fc01584: 8fbe0260 lw s8,608(sp) +9fc01588: 8fb7025c lw s7,604(sp) +9fc0158c: 8fb60258 lw s6,600(sp) +9fc01590: 8fb50254 lw s5,596(sp) +9fc01594: 8fb40250 lw s4,592(sp) +9fc01598: 8fb3024c lw s3,588(sp) +9fc0159c: 8fb20248 lw s2,584(sp) +9fc015a0: 8fb10244 lw s1,580(sp) +9fc015a4: 8fb00240 lw s0,576(sp) +9fc015a8: 03e00008 jr ra +9fc015ac: 27bd0268 addiu sp,sp,616 -bfc015b0 : -bfc015b0: 2cc20010 sltiu v0,a2,16 -bfc015b4: 00804821 move t1,a0 -bfc015b8: 1440002d bnez v0,bfc01670 -bfc015bc: 00804021 move t0,a0 -bfc015c0: 30870003 andi a3,a0,0x3 -bfc015c4: 10e0000e beqz a3,bfc01600 -bfc015c8: 24820004 addiu v0,a0,4 -bfc015cc: 00052600 sll a0,a1,0x18 -bfc015d0: 00471023 subu v0,v0,a3 -bfc015d4: 00042603 sra a0,a0,0x18 -bfc015d8: 01201821 move v1,t1 -bfc015dc: a0640000 sb a0,0(v1) -bfc015e0: 24630001 addiu v1,v1,1 -bfc015e4: 1462fffd bne v1,v0,bfc015dc -bfc015e8: 00000000 nop -bfc015ec: 00071027 nor v0,zero,a3 -bfc015f0: 24c3fffb addiu v1,a2,-5 -bfc015f4: 24440005 addiu a0,v0,5 -bfc015f8: 00623023 subu a2,v1,v0 -bfc015fc: 01244021 addu t0,t1,a0 -bfc01600: 30a500ff andi a1,a1,0xff -bfc01604: 01003821 move a3,t0 -bfc01608: 10a00005 beqz a1,bfc01620 -bfc0160c: 00a01821 move v1,a1 -bfc01610: 00051200 sll v0,a1,0x8 -bfc01614: 00451025 or v0,v0,a1 -bfc01618: 00021c00 sll v1,v0,0x10 -bfc0161c: 00621825 or v1,v1,v0 -bfc01620: 000610c2 srl v0,a2,0x3 -bfc01624: 1040001c beqz v0,bfc01698 -bfc01628: 30c60007 andi a2,a2,0x7 -bfc0162c: 01002021 move a0,t0 -bfc01630: 00403821 move a3,v0 -bfc01634: 24e7ffff addiu a3,a3,-1 -bfc01638: ac830000 sw v1,0(a0) -bfc0163c: ac830004 sw v1,4(a0) -bfc01640: 14e0fffc bnez a3,bfc01634 -bfc01644: 24840008 addiu a0,a0,8 -bfc01648: 000210c0 sll v0,v0,0x3 -bfc0164c: 01023821 addu a3,t0,v0 -bfc01650: 00e02021 move a0,a3 -bfc01654: 2cc20004 sltiu v0,a2,4 -bfc01658: 14400005 bnez v0,bfc01670 -bfc0165c: 00804021 move t0,a0 -bfc01660: ace30000 sw v1,0(a3) -bfc01664: 24e40004 addiu a0,a3,4 -bfc01668: 24c6fffc addiu a2,a2,-4 -bfc0166c: 00804021 move t0,a0 -bfc01670: 10c00007 beqz a2,bfc01690 -bfc01674: 00000000 nop -bfc01678: 00051600 sll v0,a1,0x18 -bfc0167c: 00021603 sra v0,v0,0x18 -bfc01680: 24c6ffff addiu a2,a2,-1 -bfc01684: a1020000 sb v0,0(t0) -bfc01688: 14c0fffd bnez a2,bfc01680 -bfc0168c: 25080001 addiu t0,t0,1 -bfc01690: 03e00008 jr ra -bfc01694: 01201021 move v0,t1 -bfc01698: 0bf00595 j bfc01654 -bfc0169c: 01002021 move a0,t0 +9fc015b0 : +9fc015b0: 2cc20010 sltiu v0,a2,16 +9fc015b4: 00804821 move t1,a0 +9fc015b8: 1440002d bnez v0,9fc01670 +9fc015bc: 00804021 move t0,a0 +9fc015c0: 30870003 andi a3,a0,0x3 +9fc015c4: 10e0000e beqz a3,9fc01600 +9fc015c8: 24820004 addiu v0,a0,4 +9fc015cc: 00052600 sll a0,a1,0x18 +9fc015d0: 00471023 subu v0,v0,a3 +9fc015d4: 00042603 sra a0,a0,0x18 +9fc015d8: 01201821 move v1,t1 +9fc015dc: a0640000 sb a0,0(v1) +9fc015e0: 24630001 addiu v1,v1,1 +9fc015e4: 1462fffd bne v1,v0,9fc015dc +9fc015e8: 00000000 nop +9fc015ec: 00071027 nor v0,zero,a3 +9fc015f0: 24c3fffb addiu v1,a2,-5 +9fc015f4: 24440005 addiu a0,v0,5 +9fc015f8: 00623023 subu a2,v1,v0 +9fc015fc: 01244021 addu t0,t1,a0 +9fc01600: 30a500ff andi a1,a1,0xff +9fc01604: 01003821 move a3,t0 +9fc01608: 10a00005 beqz a1,9fc01620 +9fc0160c: 00a01821 move v1,a1 +9fc01610: 00051200 sll v0,a1,0x8 +9fc01614: 00451025 or v0,v0,a1 +9fc01618: 00021c00 sll v1,v0,0x10 +9fc0161c: 00621825 or v1,v1,v0 +9fc01620: 000610c2 srl v0,a2,0x3 +9fc01624: 1040001c beqz v0,9fc01698 +9fc01628: 30c60007 andi a2,a2,0x7 +9fc0162c: 01002021 move a0,t0 +9fc01630: 00403821 move a3,v0 +9fc01634: 24e7ffff addiu a3,a3,-1 +9fc01638: ac830000 sw v1,0(a0) +9fc0163c: ac830004 sw v1,4(a0) +9fc01640: 14e0fffc bnez a3,9fc01634 +9fc01644: 24840008 addiu a0,a0,8 +9fc01648: 000210c0 sll v0,v0,0x3 +9fc0164c: 01023821 addu a3,t0,v0 +9fc01650: 00e02021 move a0,a3 +9fc01654: 2cc20004 sltiu v0,a2,4 +9fc01658: 14400005 bnez v0,9fc01670 +9fc0165c: 00804021 move t0,a0 +9fc01660: ace30000 sw v1,0(a3) +9fc01664: 24e40004 addiu a0,a3,4 +9fc01668: 24c6fffc addiu a2,a2,-4 +9fc0166c: 00804021 move t0,a0 +9fc01670: 10c00007 beqz a2,9fc01690 +9fc01674: 00000000 nop +9fc01678: 00051600 sll v0,a1,0x18 +9fc0167c: 00021603 sra v0,v0,0x18 +9fc01680: 24c6ffff addiu a2,a2,-1 +9fc01684: a1020000 sb v0,0(t0) +9fc01688: 14c0fffd bnez a2,9fc01680 +9fc0168c: 25080001 addiu t0,t0,1 +9fc01690: 03e00008 jr ra +9fc01694: 01201021 move v0,t1 +9fc01698: 0bf00595 j 9fc01654 +9fc0169c: 01002021 move a0,t0 diff --git a/projects/mips_sys/src/mips_sys.vhd b/projects/mips_sys/src/mips_sys.vhd index b59b783..bffd0aa 100644 --- a/projects/mips_sys/src/mips_sys.vhd +++ b/projects/mips_sys/src/mips_sys.vhd @@ -43,7 +43,7 @@ ENTITY mips_sys IS GENERIC ( sys_freq_in : real := 100.0; - cpu_freq : real := 100.0; + cpu_freq : real := 60.0; sdram_phaseshift : integer := 0; tsvga : vga_timespec_t := ts_vga_800_600_60 @@ -154,10 +154,10 @@ END mips_sys; ARCHITECTURE behavior OF mips_sys IS - COMPONENT mips_top + COMPONENT mips_top_netlist Port ( - debug : out chip_debug_t; + debug : out unsigned(1 downto 0); eb : in STD_LOGIC; nmi : in STD_LOGIC; cpu_clk : in STD_LOGIC; @@ -487,7 +487,7 @@ ARCHITECTURE behavior OF mips_sys IS signal usb_inten : std_logic; signal phy_inten : std_logic; - signal debug : chip_debug_t; + signal debug : unsigned(1 downto 0); -- DDR SDRAM constant BURST_LEN : natural := 2; @@ -539,8 +539,8 @@ BEGIN sys_phy_mdio <= gpo_0(31); eb <= sys_dip(7); - sys_error(0) <= debug.imem_err; - sys_error(1) <= debug.dmem_err; + sys_error(0) <= debug(0); + sys_error(1) <= debug(1); nmi <= not sys_rst_n_in; rst_in <= not sys_rst_n_in and sys_btn(0); sys_flash_byten <= '1'; @@ -604,18 +604,34 @@ int_sample: end if; end process; +------------------------------------------------------------------ +-- Memory mux +------------------------------------------------------------------ +-- rom_u : Virtual = 0xBFC00000, Physical = 0x1FC00000 +-- rom_c : Virtual = 0x9FC00000, Physical = 0x1FC00000 + +-- ram_u : Virtual = 0xA0000000, Physical = 0x00000000 +-- ram_c : Virtual = 0x80000000, Physical = 0x00000000 +-- flash_u : Virtual = 0xA4000000, Physical = 0x04000000 +-- flash_c : Virtual = 0x88000000, Physical = 0x08000000 +-- io_u : Virtual = 0xAC000000, Physical = 0x0C000000 +-- io_c : Virtual = 0x8C000000, Physical = 0x0C000000 + mem_mux: process(ADDR_O) begin mem_area <= mem_dead; - mem_mapped_io <= '0'; + mem_mapped_io <= '0'; if ADDR_O(31 downto 28) = X"0" then - mem_area <= mem_flash; - elsif ADDR_O(31 downto 28) = X"1" then - mem_area <= mem_emac; - elsif ADDR_O(31 downto 28) = X"A" then - mem_mapped_io <= '1'; if ADDR_O(27 downto 26) = "00" then + mem_area <= mem_sdram; + elsif ADDR_O(27 downto 26) = "01" then + mem_area <= mem_flash; + mem_mapped_io <= '1'; + elsif ADDR_O(27 downto 26) = "10" then + mem_area <= mem_flash; + elsif ADDR_O(27 downto 26) = "11" then + mem_mapped_io <= '1'; if ADDR_O(18 downto 16) = "000" then mem_area <= mem_gpio; elsif ADDR_O(18 downto 16) = "001" then @@ -637,16 +653,55 @@ mem_mux: elsif ADDR_O(18 downto 16) = "101" then mem_area <= mem_emac; end if; - elsif ADDR_O(27 downto 26) = "01" then - mem_area <= mem_flash; - end if; - elsif (ADDR_O(31 downto 28) = X"B" and ADDR_O(15) = '0') then + end if; + elsif (ADDR_O(31 downto 28) = X"1" and ADDR_O(15) = '0') then mem_area <= mem_rom; - elsif (ADDR_O(31 downto 28) = X"8" or ADDR_O(30) = '1') then - mem_area <= mem_sdram; end if; end process; +-- mem_mux: +-- process(ADDR_O) +-- begin +-- mem_area <= mem_dead; +-- mem_mapped_io <= '0'; +-- if ADDR_O(31 downto 28) = X"0" then +-- mem_area <= mem_flash; +-- elsif ADDR_O(31 downto 28) = X"1" then +-- mem_area <= mem_emac; +-- elsif ADDR_O(31 downto 28) = X"A" then +-- mem_mapped_io <= '1'; +-- if ADDR_O(27 downto 26) = "00" then +-- if ADDR_O(18 downto 16) = "000" then +-- mem_area <= mem_gpio; +-- elsif ADDR_O(18 downto 16) = "001" then +-- if ADDR_O(9 downto 8) = "00" then +-- mem_area <= mem_uart0; +-- elsif ADDR_O(9 downto 8) = "01" then +-- mem_area <= mem_uart1; +-- elsif ADDR_O(9 downto 8) = "10" then +-- mem_area <= mem_ps2_0; +-- elsif ADDR_O(9 downto 8) = "11" then +-- mem_area <= mem_ps2_1; +-- end if; +-- elsif ADDR_O(18 downto 16) = "010" then +-- mem_area <= mem_usb; +-- elsif ADDR_O(18 downto 16) = "011" then +-- mem_area <= mem_vga; +-- elsif ADDR_O(18 downto 16) = "100" then +-- mem_area <= mem_ac97; +-- elsif ADDR_O(18 downto 16) = "101" then +-- mem_area <= mem_emac; +-- end if; +-- elsif ADDR_O(27 downto 26) = "01" then +-- mem_area <= mem_flash; +-- end if; +-- elsif (ADDR_O(31 downto 28) = X"B" and ADDR_O(15) = '0') then +-- mem_area <= mem_rom; +-- elsif (ADDR_O(31 downto 28) = X"8" or ADDR_O(30) = '1') then +-- mem_area <= mem_sdram; +-- end if; +-- end process; + signal_mux: process(mem_area, CYC_O) begin @@ -725,7 +780,7 @@ signal_mux: SDAT_O_gpio when CYC_I_gpio = '1' else X"DEADBEEF"; ------------------------------------------------------------------ -inst_mips_top: mips_top +inst_mips_top_netlist: mips_top_netlist PORT MAP ( debug => debug, diff --git a/projects/mips_sys/src/mips_sys_sim.vhd b/projects/mips_sys/src/mips_sys_sim.vhd index 3e9ac87..e607a12 100644 --- a/projects/mips_sys/src/mips_sys_sim.vhd +++ b/projects/mips_sys/src/mips_sys_sim.vhd @@ -44,6 +44,8 @@ GENERIC ( sys_freq_in : real := 100.0; cpu_freq : real := 100.0; + WITH_TLB : boolean := true; + TRANSLATE_KSEG0_1 : boolean := true; sdram_phaseshift : integer := 0; tsvga : vga_timespec_t := ts_vga_800_600_72 @@ -448,6 +450,63 @@ int_sample: end if; end process; +------------------------------------------------------------------ +-- Memory mux +------------------------------------------------------------------ +-- rom_u : Virtual = 0xBFC00000, Physical = 0x1FC00000 +-- rom_c : Virtual = 0x9FC00000, Physical = 0x1FC00000 + +-- ram_u : Virtual = 0xA0000000, Physical = 0x00000000 +-- ram_c : Virtual = 0x80000000, Physical = 0x00000000 +-- flash_u : Virtual = 0xA4000000, Physical = 0x04000000 +-- flash_c : Virtual = 0x88000000, Physical = 0x08000000 +-- io_u : Virtual = 0xAC000000, Physical = 0x0C000000 +-- io_c : Virtual = 0x8C000000, Physical = 0x0C000000 + +gen_mem_mux_translate: +if TRANSLATE_KSEG0_1 = true generate +mem_mux: + process(ADDR_O) + begin + mem_area <= mem_dead; + flash_page_mode_en <= '0'; + if ADDR_O(31 downto 28) = X"0" then + if ADDR_O(27 downto 26) = "00" then + mem_area <= mem_sdram; + elsif ADDR_O(27 downto 26) = "01" then + mem_area <= mem_flash; + elsif ADDR_O(27 downto 26) = "10" then + mem_area <= mem_flash; + flash_page_mode_en <= '1'; + elsif ADDR_O(27 downto 26) = "11" then + if ADDR_O(18 downto 16) = "000" then + mem_area <= mem_gpio; + elsif ADDR_O(18 downto 16) = "001" then + if ADDR_O(9 downto 8) = "00" then + mem_area <= mem_uart0; + elsif ADDR_O(9 downto 8) = "01" then + mem_area <= mem_uart1; + elsif ADDR_O(9 downto 8) = "10" then + mem_area <= mem_uart2; + end if; + elsif ADDR_O(18 downto 16) = "010" then + mem_area <= mem_usb; + elsif ADDR_O(18 downto 16) = "011" then + mem_area <= mem_vga; + elsif ADDR_O(18 downto 16) = "100" then + mem_area <= mem_ac97; + elsif ADDR_O(18 downto 16) = "101" then + mem_area <= mem_emac; + end if; + end if; + elsif (ADDR_O(31 downto 28) = X"1" and ADDR_O(15) = '0') then + mem_area <= mem_rom; + end if; + end process; +end generate; + +gen_mem_mux_non_translate: +if TRANSLATE_KSEG0_1 = false generate mem_mux: process(ADDR_O) begin @@ -490,6 +549,7 @@ mem_mux: mem_area <= mem_sdram; end if; end process; +end generate; signal_mux: process(mem_area, CYC_O) @@ -570,6 +630,13 @@ signal_mux: ------------------------------------------------------------------ inst_mips_top: entity work.mips_top + GENERIC MAP + ( + icache_size => 256, -- words + dcache_size => 256, -- words + WITH_TLB => WITH_TLB, + TRANSLATE_KSEG0_1 => TRANSLATE_KSEG0_1 + ) PORT MAP ( debug => debug,